diff --git a/test/harness/sth.js b/test/harness/sth.js index ffef339df56d33ef0e60d602b586a836efc9eef4..a66e1e2bb77a068458ee4409b91a2db96a35b6d2 100644 --- a/test/harness/sth.js +++ b/test/harness/sth.js @@ -103,7 +103,8 @@ function BrowserRunner() { win.$FAIL = $FAIL; win.$PRINT = function () {}; win.$INCLUDE = function() {}; - + win.dataPropertyAttributesAreCorrect = dataPropertyAttributesAreCorrect; + win.accessorPropertyAttributesAreCorrect = accessorPropertyAttributesAreCorrect; if(includes !== null) { // We have some includes, so loop through each include and pull in the dependencies. @@ -308,11 +309,10 @@ function compareArray(aExpected, aActual) { var s; for (var i = 0; i < aExpected.length; i++) { - if (aActual[i] != aExpected[i]) { + if (aActual[i] !== aExpected[i]) { return false; } } - return true; } @@ -386,12 +386,14 @@ function ConvertToFileUrl(pathStr) { return "file:" + pathStr.replace(/\\/g, "/"); } -function fnExists(f) { - if (typeof (f) === "function") { - return true; +function fnExists(/*arguments*/) { + for (var i = 0; i < arguments.length; i++) { + if (typeof (arguments[i]) !== "function") return false; } + return true; } + var supportsStrict = undefined; function fnSupportsStrict() { "use strict"; @@ -412,6 +414,133 @@ function fnGlobalObject() { return (function() { return this }).call(null); } +//Verify all attributes specified data property of given object: value, writable, enumerable, configurable +//If all attribute values are expected, return true, otherwise, return false +function dataPropertyAttributesAreCorrect(obj, name, value, writable, enumerable, configurable) { + var attributesCorrect = true; + + if (obj[name] !== value) { + if (typeof obj[name] === "number" && isNaN(obj[name]) && typeof value === "number" && isNaN(value)) { + // keep empty + } else { + attributesCorrect = false; + } + } + + try { + if (obj[name] === "oldValue") { + obj[name] = "newValue"; + } else { + obj[name] = "OldValue"; + } + } catch (we) { + } + + var overwrited = false; + if (obj[name] !== value) { + if (typeof obj[name] === "number" && isNaN(obj[name]) && typeof value === "number" && isNaN(value)) { + // keep empty + } else { + overwrited = true; + } + } + if (overwrited !== writable) { + attributesCorrect = false; + } + + var enumerated = false; + for (var prop in obj) { + if (obj.hasOwnProperty(prop) && prop === name) { + enumerated = true; + } + } + + if (enumerated !== enumerable) { + attributesCorrect = false; + } + + + var deleted = false; + + try { + delete obj[name]; + } catch (de) { + } + if (!obj.hasOwnProperty(name)) { + deleted = true; + } + if (deleted !== configurable) { + attributesCorrect = false; + } + + return attributesCorrect; +} + +//Verify all attributes specified accessor property of given object: get, set, enumerable, configurable +//If all attribute values are expected, return true, otherwise, return false +function accessorPropertyAttributesAreCorrect(obj, name, get, set, setVerifyHelpProp, enumerable, configurable) { + var attributesCorrect = true; + + if (get !== undefined) { + if (obj[name] !== get()) { + if (typeof obj[name] === "number" && isNaN(obj[name]) && typeof get() === "number" && isNaN(get())) { + // keep empty + } else { + attributesCorrect = false; + } + } + } else { + if (obj[name] !== undefined) { + attributesCorrect = false; + } + } + + try { + var desc = Object.getOwnPropertyDescriptor(obj, name); + if (typeof desc.set === "undefined") { + if (typeof set !== "undefined") { + attributesCorrect = false; + } + } else { + obj[name] = "toBeSetValue"; + if (obj[setVerifyHelpProp] !== "toBeSetValue") { + attributesCorrect = false; + } + } + } catch (se) { + throw se; + } + + + var enumerated = false; + for (var prop in obj) { + if (obj.hasOwnProperty(prop) && prop === name) { + enumerated = true; + } + } + + if (enumerated !== enumerable) { + attributesCorrect = false; + } + + + var deleted = false; + try { + delete obj[name]; + } catch (de) { + throw de; + } + if (!obj.hasOwnProperty(name)) { + deleted = true; + } + if (deleted !== configurable) { + attributesCorrect = false; + } + + return attributesCorrect; +} + + $(function () { presenter.setup(); diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-1.js index e2d1bcadb399ca2af8a9e90b1b2303b418f65e55..4b338d23579322da90acfddedd7f40caaad1d8b3 100644 --- a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-1.js +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-1.js @@ -38,11 +38,11 @@ test: function testcase() { try { eval("({foo : 1, get foo(){}});"); + return false; } catch(e) { - if(e instanceof SyntaxError) - return true; + return e instanceof SyntaxError; } }, diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-2.js index 1cb1a1c29f3fd0a664f17464af9de0893532b0e8..fb4795d344118d9dbcd327fc837e046b78d5ba2d 100644 --- a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-2.js +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-b-2.js @@ -38,11 +38,11 @@ test: function testcase() { try { eval("({foo : 1, set foo(x){}});"); + return false; } catch(e) { - if(e instanceof SyntaxError) - return true; + return e instanceof SyntaxError; } }, diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-1.js index 4053f71c9c4e08a2fc20d629c2d3d38adb5b8444..cee036998fb37180b1ccce27eb05715ed20623c7 100644 --- a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-1.js +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-1.js @@ -38,11 +38,11 @@ test: function testcase() { try { eval("({get foo(){}, foo : 1});"); + return false; } catch(e) { - if(e instanceof SyntaxError) - return true; + return e instanceof SyntaxError; } }, diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-2.js index c6934c596ce9e2b3ef52e95d01329b7d44cd75fa..120bffa65ce60b265f6bc64a66d9ab36ccf331ad 100644 --- a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-2.js +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-c-2.js @@ -38,11 +38,11 @@ test: function testcase() { try { eval("({set foo(x){}, foo : 1});"); + return false; } catch(e) { - if(e instanceof SyntaxError) - return true; + return e instanceof SyntaxError; } }, diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-1.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-1.js index 0bdeea05800ad0b90059a98e42f067eb752a2b78..585d48d9abc304a155e7c0c5aac973598c1ed3d4 100644 --- a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-1.js +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-1.js @@ -38,11 +38,11 @@ test: function testcase() { try { eval("({get foo(){}, get foo(){}});"); + return false; } catch(e) { - if(e instanceof SyntaxError) - return true; + return e instanceof SyntaxError; } }, precondition: function () { diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-2.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-2.js index 0c219bd09d5a37ed08f715a10a06e32e085fcbe9..dcb591c2d0810d331d8a2c9eaee30282ccb43ac3 100644 --- a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-2.js +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-2.js @@ -38,11 +38,11 @@ test: function testcase() { try { eval("({set foo(arg){}, set foo(arg1){}});"); + return false; } catch(e) { - if(e instanceof SyntaxError) - return true; + return e instanceof SyntaxError; } }, diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-3.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-3.js index 80b6f1696d04649399375b034420c59e4ece7f70..f02221c965c98843aed50cd5ff7a29edb2a75c28 100644 --- a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-3.js +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-3.js @@ -38,11 +38,11 @@ test: function testcase() { try { eval("({get foo(){}, set foo(arg){}, get foo(){}});"); + return false; } catch(e) { - if(e instanceof SyntaxError) - return true; + return e instanceof SyntaxError; } }, diff --git a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-4.js b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-4.js index d56ae6b426ac4b8554ec376dc1f6f9a4d678ef41..2ff3c7e10b8531c8b937a361c9e516fa0dccce81 100644 --- a/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-4.js +++ b/test/suite/ietestcenter/chapter11/11.1/11.1.5/11.1.5_4-4-d-4.js @@ -38,11 +38,11 @@ test: function testcase() { try { eval("({set foo(arg){}, get foo(){}, set foo(arg1){}});"); + return false; } catch(e) { - if(e instanceof SyntaxError) - return true; + return e instanceof SyntaxError; } }, diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-5.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-5.js index 03606209ee4d3de1e4177c7c8f53b05e03cc5e85..3031090a955a9ced9aed54e67787854d87f1f60f 100644 --- a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-5.js +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-5.js @@ -41,5 +41,6 @@ test: function testcase() { if (d === false && typeof(o) === 'object' && o.x === 1) { return true; } + return false; } }); diff --git a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-7.js b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-7.js index 881a9b684dc57416954a4c29ce31195174b162ae..3a82246c7294a8d8a09073bb0d3c2d3e63f994b3 100644 --- a/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-7.js +++ b/test/suite/ietestcenter/chapter11/11.4/11.4.1/11.4.1-4.a-7.js @@ -36,5 +36,6 @@ test: function testcase() { if (d === false && x === 1) { return true; } + return false; } }); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.js b/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.js index 8c30b422f2ab1efe4a142ee1e55d0ddb8e0e7f08..217b9008f2e1d3cecf2b80893d1d7c47edebe51e 100644 --- a/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.js +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.6/15.10.6.js @@ -28,8 +28,6 @@ description: "RegExp.prototype is itself a RegExp", test: function testcase() { var s = Object.prototype.toString.call(RegExp.prototype); - if (s === '[object RegExp]') { - return true; - } + return s === '[object RegExp]'; } }); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js index 1c06b2c374bece9ce0b08458a6fd8a7fc2fc2084..a22be95b43188379d5ac1473a5261dd84cb5efcf 100644 --- a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js @@ -27,7 +27,6 @@ path: "TestCases/chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1.js", description: "RegExp.prototype.source is of type String", test: function testcase() { - if((typeof(RegExp.prototype.source)) === 'string') - return true; + return (typeof(RegExp.prototype.source)) === 'string'; } }); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js index 9247d9b5dec27e64df94fcfc62272520e691efd1..d9b8f547ab35ddb351529b05644fdeb7e89b6c0d 100644 --- a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js @@ -27,7 +27,6 @@ path: "TestCases/chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1.js", description: "RegExp.prototype.global is of type Boolean", test: function testcase() { - if((typeof(RegExp.prototype.global)) === 'boolean') - return true; + return (typeof(RegExp.prototype.global)) === 'boolean'; } }); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js index c66582e3e2d819a08f84eba519855e99d220a793..68a55028d0fb879fcc4b057c36de8b81405ee0d9 100644 --- a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js @@ -27,7 +27,6 @@ path: "TestCases/chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1.js", description: "RegExp.prototype.ignoreCase is of type Boolean", test: function testcase() { - if((typeof(RegExp.prototype.ignoreCase)) === 'boolean') - return true; + return (typeof(RegExp.prototype.ignoreCase)) === 'boolean'; } }); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js index 612171f9631bdc895294f1dda069af7af0eb3a5d..50cd999c406a292f2a1c2703f68af8f17970caa4 100644 --- a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js @@ -27,7 +27,6 @@ path: "TestCases/chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1.js", description: "RegExp.prototype.multiline is of type Boolean", test: function testcase() { - if((typeof(RegExp.prototype.multiline)) === 'boolean') - return true; + return (typeof(RegExp.prototype.multiline)) === 'boolean'; } }); diff --git a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js index c2a57e569a8ba0935b15b330bb06f37ec3320622..5a92449045eada4376f7f6487ab575e7e1faa6b2 100644 --- a/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js +++ b/test/suite/ietestcenter/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js @@ -27,7 +27,6 @@ path: "TestCases/chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1.js", description: "RegExp.prototype.lastIndex is of type Number", test: function testcase() { - if((typeof(RegExp.prototype.lastIndex)) === 'number') - return true; + return (typeof(RegExp.prototype.lastIndex)) === 'number'; } }); diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178.js index fb597333ddbf52568af5721fe08ea7a503a7f889..530e57f0c22a89e71556028302c4c7f4bb775bfa 100644 --- a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178.js +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178.js @@ -37,6 +37,7 @@ test: function testcase() { desc.hasOwnProperty('set') === false) { return true; } + return false; }, precondition: function prereq() { diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179.js index 83ebdf2679e98d8f6afb97991a58cd5109c253a9..8856cb477817754c6ab9910c41759cc49ebcf3cc 100644 --- a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179.js +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179.js @@ -37,6 +37,7 @@ test: function testcase() { desc.hasOwnProperty('set') === false) { return true; } + return false; }, precondition: function prereq() { diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180.js index 7862bb1688427d7788daa02e198569f0da0e8c90..7e0f1d834c7229ee42d986c9ba48e59c71a21b35 100644 --- a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180.js +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180.js @@ -37,6 +37,7 @@ test: function testcase() { desc.hasOwnProperty('set') === false) { return true; } + return false; }, precondition: function prereq() { diff --git a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188.js b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188.js index 45fca87093cdcf38da2e3315a79255e904825ea8..798f8f1cf711b9d54365eb60ba851e304313f9c9 100644 --- a/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188.js +++ b/test/suite/ietestcenter/chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188.js @@ -34,6 +34,7 @@ test: function testcase() { if (desc === undefined) { return true; } + return false; }, precondition: function prereq() { diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js index 853567a608b0c90ca45d12a1881b7eb940f136da..64be3fef528c26f7c7ff5538acb4f7187d63f52c 100644 --- a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js @@ -28,13 +28,16 @@ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js", description: "Array.prototype.indexOf applied to undefined throws a TypeError", test: function testcase() { - try {Array.prototype.indexOf.call(undefined)} + try { + Array.prototype.indexOf.call(undefined); + return false; + } catch (e) { - if (e instanceof TypeError) return true; - } + return e instanceof TypeError; + } }, precondition: function prereq() { return fnExists(Array.prototype.indexOf); - } +} }); diff --git a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js index 04882f5cc5bda1da66e5dc87dcce0624b456c76a..dee7677cc4d4615fddcaeb8de5abe1a8c9a7d29b 100644 --- a/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js +++ b/test/suite/ietestcenter/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js @@ -28,9 +28,12 @@ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js", description: "Array.prototype.indexOf applied to null throws a TypeError", test: function testcase() { - try {Array.prototype.indexOf.call(null)} + try { + Array.prototype.indexOf.call(null); + return false; + } catch (e) { - if (e instanceof TypeError) return true; + return e instanceof TypeError; } }, diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-1.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-1.js index bbbdaa8a5a4daa18573a6bdb1d6b00539deb868d..4270a4064c18173b2042c77b15b3eddbf05537fc 100644 --- a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-1.js +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-1.js @@ -29,12 +29,12 @@ description: "String.prototype.trim throws TypeError when string is undefined", test: function testcase() { try { - String.prototype.trim.call(undefined); + String.prototype.trim.call(undefined); + return false; } catch(e) { - if(e instanceof TypeError) - return true; + return e instanceof TypeError; } }, diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-2.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-2.js index 0ba5b1165f6c5507ba640cf2932849af002b83bf..b8036fbf21f681767466f04ebae3519affd41255 100644 --- a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-2.js +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-2.js @@ -30,11 +30,11 @@ test: function testcase() { try { String.prototype.trim.call(null); + return false; } catch(e) { - if(e instanceof TypeError) - return true; + return e instanceof TypeError; } }, diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10.js index 46bf801ae58194ce4fa7eb1e1e2b4ec1dfd2f902..4e59ded17499867e6410e63969fc5ccc33e87bc9 100644 --- a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10.js +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10.js @@ -27,9 +27,7 @@ path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10.js", description: "String.prototype.trim handles whitepace and lineterminators (\\uFEFFabc)", test: function testcase() { - if ("\uFEFFabc".trim() === "abc") { - return true; - } + return "\uFEFFabc".trim() === "abc"; }, precondition: function prereq() { diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18.js index f530c2a4074ebd88a526ad8e435464633b2cf893..4c6c8fc4b2a44ed8dac8ffc2c55dc46faa61e568 100644 --- a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18.js +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18.js @@ -27,9 +27,7 @@ path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18.js", description: "String.prototype.trim handles whitepace and lineterminators (abc\\uFEFF)", test: function testcase() { - if ("abc\uFEFF".trim() === "abc") { - return true; - } + return "abc\uFEFF".trim() === "abc"; }, precondition: function prereq() { diff --git a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34.js b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34.js index b24e4b21e94c9c8811e0894f3045c10252df5a09..8652d23570982532bdf4607419131434ac1ff562 100644 --- a/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34.js +++ b/test/suite/ietestcenter/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34.js @@ -27,9 +27,7 @@ path: "TestCases/chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34.js", description: "String.prototype.trim handles whitepace and lineterminators (\\uFEFF\\uFEFF)", test: function testcase() { - if ("\uFEFF\uFEFF".trim() === "") { - return true; - } + return "\uFEFF\uFEFF".trim() === ""; }, precondition: function prereq() { diff --git a/website/resources/scripts/global/sth.js b/website/resources/scripts/global/sth.js index ffef339df56d33ef0e60d602b586a836efc9eef4..a66e1e2bb77a068458ee4409b91a2db96a35b6d2 100644 --- a/website/resources/scripts/global/sth.js +++ b/website/resources/scripts/global/sth.js @@ -103,7 +103,8 @@ function BrowserRunner() { win.$FAIL = $FAIL; win.$PRINT = function () {}; win.$INCLUDE = function() {}; - + win.dataPropertyAttributesAreCorrect = dataPropertyAttributesAreCorrect; + win.accessorPropertyAttributesAreCorrect = accessorPropertyAttributesAreCorrect; if(includes !== null) { // We have some includes, so loop through each include and pull in the dependencies. @@ -308,11 +309,10 @@ function compareArray(aExpected, aActual) { var s; for (var i = 0; i < aExpected.length; i++) { - if (aActual[i] != aExpected[i]) { + if (aActual[i] !== aExpected[i]) { return false; } } - return true; } @@ -386,12 +386,14 @@ function ConvertToFileUrl(pathStr) { return "file:" + pathStr.replace(/\\/g, "/"); } -function fnExists(f) { - if (typeof (f) === "function") { - return true; +function fnExists(/*arguments*/) { + for (var i = 0; i < arguments.length; i++) { + if (typeof (arguments[i]) !== "function") return false; } + return true; } + var supportsStrict = undefined; function fnSupportsStrict() { "use strict"; @@ -412,6 +414,133 @@ function fnGlobalObject() { return (function() { return this }).call(null); } +//Verify all attributes specified data property of given object: value, writable, enumerable, configurable +//If all attribute values are expected, return true, otherwise, return false +function dataPropertyAttributesAreCorrect(obj, name, value, writable, enumerable, configurable) { + var attributesCorrect = true; + + if (obj[name] !== value) { + if (typeof obj[name] === "number" && isNaN(obj[name]) && typeof value === "number" && isNaN(value)) { + // keep empty + } else { + attributesCorrect = false; + } + } + + try { + if (obj[name] === "oldValue") { + obj[name] = "newValue"; + } else { + obj[name] = "OldValue"; + } + } catch (we) { + } + + var overwrited = false; + if (obj[name] !== value) { + if (typeof obj[name] === "number" && isNaN(obj[name]) && typeof value === "number" && isNaN(value)) { + // keep empty + } else { + overwrited = true; + } + } + if (overwrited !== writable) { + attributesCorrect = false; + } + + var enumerated = false; + for (var prop in obj) { + if (obj.hasOwnProperty(prop) && prop === name) { + enumerated = true; + } + } + + if (enumerated !== enumerable) { + attributesCorrect = false; + } + + + var deleted = false; + + try { + delete obj[name]; + } catch (de) { + } + if (!obj.hasOwnProperty(name)) { + deleted = true; + } + if (deleted !== configurable) { + attributesCorrect = false; + } + + return attributesCorrect; +} + +//Verify all attributes specified accessor property of given object: get, set, enumerable, configurable +//If all attribute values are expected, return true, otherwise, return false +function accessorPropertyAttributesAreCorrect(obj, name, get, set, setVerifyHelpProp, enumerable, configurable) { + var attributesCorrect = true; + + if (get !== undefined) { + if (obj[name] !== get()) { + if (typeof obj[name] === "number" && isNaN(obj[name]) && typeof get() === "number" && isNaN(get())) { + // keep empty + } else { + attributesCorrect = false; + } + } + } else { + if (obj[name] !== undefined) { + attributesCorrect = false; + } + } + + try { + var desc = Object.getOwnPropertyDescriptor(obj, name); + if (typeof desc.set === "undefined") { + if (typeof set !== "undefined") { + attributesCorrect = false; + } + } else { + obj[name] = "toBeSetValue"; + if (obj[setVerifyHelpProp] !== "toBeSetValue") { + attributesCorrect = false; + } + } + } catch (se) { + throw se; + } + + + var enumerated = false; + for (var prop in obj) { + if (obj.hasOwnProperty(prop) && prop === name) { + enumerated = true; + } + } + + if (enumerated !== enumerable) { + attributesCorrect = false; + } + + + var deleted = false; + try { + delete obj[name]; + } catch (de) { + throw de; + } + if (!obj.hasOwnProperty(name)) { + deleted = true; + } + if (deleted !== configurable) { + attributesCorrect = false; + } + + return attributesCorrect; +} + + $(function () { presenter.setup(); diff --git a/website/resources/scripts/testcases/chapter11.xml b/website/resources/scripts/testcases/chapter11.xml index 87acfb6c6c3e0b20868c306c9ce6f433148fb729..6d9bcc8cef29d0543c8acac84976b063580862b6 100644 --- a/website/resources/scripts/testcases/chapter11.xml +++ b/website/resources/scripts/testcases/chapter11.xml @@ -8,14 +8,14 @@ <test id="11.1.5-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41LTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjExLzExLjEvMTEuMS41LzExLjEuNS0wLTIuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdCBsaXRlcmFsIC0gbXVsdGlwbGUgZ2V0IHNldCBwcm9wZXJ0aWVzIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBzMSA9ICJGaXJzdCBnZXR0ZXIiOw0KICB2YXIgczIgPSAiRmlyc3Qgc2V0dGVyIjsNCiAgdmFyIHMzID0gIlNlY29uZCBnZXR0ZXIiOw0KICBldmFsKCJ2YXIgbyA9IHtnZXQgZm9vKCl7IHJldHVybiBzMTt9LHNldCBmb28oYXJnKXtyZXR1cm4gczIgPSBzM30sIGdldCBiYXIoKXsgcmV0dXJuIHMzfSwgc2V0IGJhcihhcmcpeyBzMyA9IGFyZzt9fTsiKTsNCiAgaWYoby5mb28gIT09IHMxKSANCiAgICByZXR1cm4gZmFsc2U7DQogIG8uZm9vID0gMTA7DQogIGlmKHMyICE9PSBzMykgDQogICAgcmV0dXJuIGZhbHNlOw0KICBpZihvLmJhciAhPT0gczMpDQogICAgcmV0dXJuIGZhbHNlOw0KICBvLmJhciA9ICJTZWNvbmQgc2V0dGVyIjsNCiAgaWYoby5iYXIgIT09ICJTZWNvbmQgc2V0dGVyIikNCiAgICByZXR1cm4gZmFsc2U7DQogIHJldHVybiB0cnVlOw0KIH0NCn0pOw0K]]></test> <test id="11.1.5_4-4-a-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1hLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWEtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBEdXBsaWNhdGUgZGF0YSBwcm9wZXJ0eSBuYW1lIGFsbG93ZWQgaWYgbm90IGluIHN0cmljdCBtb2RlIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIA0KICBldmFsKCIoe2ZvbzowLGZvbzoxfSk7Iik7DQogIHJldHVybiB0cnVlOw0KICB9DQoNCn0pOw0K]]></test> <test id="11.1.5_4-4-a-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1hLTMiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWEtMy5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBEdXBsaWNhdGUgZGF0YSBwcm9wZXJ0eSBuYW1lIGFsbG93ZWQgZ2V0cyBsYXN0IGRlZmluZWQgdmFsdWUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgDQogIHZhciBvID0gZXZhbCgiKHtmb286MCxmb286MX0pOyIpOw0KICByZXR1cm4gby5mb289PT0xOw0KICB9DQoNCg0KfSk7DQo=]]></test> - <test id="11.1.5_4-4-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1iLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBpZiBhIGRhdGEgcHJvcGVydHkgZGVmaW5pdGlvbiBpcyBmb2xsb3dlZCBieSBnZXQgYWNjZXNzb3IgZGVmaW5pdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5DQogIHsNCiAgICBldmFsKCIoe2ZvbyA6IDEsIGdldCBmb28oKXt9fSk7Iik7DQogIH0NCiAgY2F0Y2goZSkNCiAgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAvL2FjY2Vzc29yIHByb3BlcnRpZXMgaW4gb2JqZWN0IGxpdGVyYWxzIG11c3QgYmUgYWxsb3dlZA0KICB0cnkge2V2YWwoIih7c2V0IGZvbyh4KSB7fSwgZ2V0IGZvbygpe319KTsiKTt9DQogIGNhdGNoKGUpIHtyZXR1cm4gZmFsc2V9DQogIHJldHVybiB0cnVlOw0KfQ0KfSk7DQo=]]></test> - <test id="11.1.5_4-4-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1iLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWItMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBpZiBhIGRhdGEgcHJvcGVydHkgZGVmaW5pdGlvbiBpcyBmb2xsb3dlZCBieSBzZXQgYWNjZXNzb3IgZGVmaW5pdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5DQogIHsNCiAgICBldmFsKCIoe2ZvbyA6IDEsIHNldCBmb28oeCl7fX0pOyIpOw0KICB9DQogIGNhdGNoKGUpDQogIHsNCiAgICBpZihlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gKCkgew0KICAgLy9hY2Nlc3NvciBwcm9wZXJ0aWVzIGluIG9iamVjdCBsaXRlcmFscyBtdXN0IGJlIGFsbG93ZWQNCiAgdHJ5IHtldmFsKCIoe3NldCBmb28oeCkge30sIGdldCBmb28oKXt9fSk7Iik7fQ0KICBjYXRjaChlKSB7cmV0dXJuIGZhbHNlfQ0KICByZXR1cm4gdHJ1ZTsNCn0NCn0pOw0K]]></test> - <test id="11.1.5_4-4-c-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1jLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWMtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBpZiBhIGdldCBhY2Nlc3NvciBwcm9wZXJ0eSBkZWZpbml0aW9uIGlzIGZvbGxvd2VkIGJ5IGEgZGF0YSBwcm9wZXJ0eSBkZWZpbml0aW9uIHdpdGggdGhlIHNhbWUgbmFtZSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGV2YWwoIih7Z2V0IGZvbygpe30sIGZvbyA6IDF9KTsiKTsNCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uICgpIHsNCiAgIC8vYWNjZXNzb3IgcHJvcGVydGllcyBpbiBvYmplY3QgbGl0ZXJhbHMgbXVzdCBiZSBhbGxvd2VkDQogIHRyeSB7ZXZhbCgiKHtzZXQgZm9vKHgpIHt9LCBnZXQgZm9vKCl7fX0pOyIpO30NCiAgY2F0Y2goZSkge3JldHVybiBmYWxzZX0NCiAgcmV0dXJuIHRydWU7DQp9DQoNCn0pOw0K]]></test> - <test id="11.1.5_4-4-c-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1jLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWMtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBpZiBhIHNldCBhY2Nlc3NvciBwcm9wZXJ0eSBkZWZpbml0aW9uIGlzIGZvbGxvd2VkIGJ5IGEgZGF0YSBwcm9wZXJ0eSBkZWZpbml0aW9uIHdpdGggdGhlIHNhbWUgbmFtZSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGV2YWwoIih7c2V0IGZvbyh4KXt9LCBmb28gOiAxfSk7Iik7DQogIH0NCiAgY2F0Y2goZSkNCiAgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAvL2FjY2Vzc29yIHByb3BlcnRpZXMgaW4gb2JqZWN0IGxpdGVyYWxzIG11c3QgYmUgYWxsb3dlZA0KICB0cnkge2V2YWwoIih7c2V0IGZvbyh4KSB7fSwgZ2V0IGZvbygpe319KTsiKTt9DQogIGNhdGNoKGUpIHtyZXR1cm4gZmFsc2V9Ow0KICByZXR1cm4gdHJ1ZTsNCn0NCg0KfSk7DQo=]]></test> - <test id="11.1.5_4-4-d-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1kLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWQtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBmb3IgZHVwbGljYXRlIHByb3BlcnR5IG5hbWUgKGdldCxnZXQpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHRyeQ0KICB7DQogICAgZXZhbCgiKHtnZXQgZm9vKCl7fSwgZ2V0IGZvbygpe319KTsiKTsNCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAvL2FjY2Vzc29yIHByb3BlcnRpZXMgaW4gb2JqZWN0IGxpdGVyYWxzIG11c3QgYmUgYWxsb3dlZA0KICB0cnkge2V2YWwoIih7c2V0IGZvbyh4KSB7fSwgZ2V0IGZvbygpe319KTsiKTt9DQogIGNhdGNoKGUpIHtyZXR1cm4gZmFsc2V9DQogIHJldHVybiB0cnVlOw0KfQ0KDQp9KTsNCg==]]></test> - <test id="11.1.5_4-4-d-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1kLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWQtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBmb3IgZHVwbGljYXRlIHByb3BlcnR5IG5hbWUgKHNldCxzZXQpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHRyeQ0KICB7DQogICAgZXZhbCgiKHtzZXQgZm9vKGFyZyl7fSwgc2V0IGZvbyhhcmcxKXt9fSk7Iik7DQogIH0NCiAgY2F0Y2goZSkNCiAgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAvL2FjY2Vzc29yIHByb3BlcnRpZXMgaW4gb2JqZWN0IGxpdGVyYWxzIG11c3QgYmUgYWxsb3dlZA0KICB0cnkge2V2YWwoIih7c2V0IGZvbyh4KSB7fSwgZ2V0IGZvbygpe319KTsiKTt9DQogIGNhdGNoKGUpIHtyZXR1cm4gZmFsc2V9DQogIHJldHVybiB0cnVlOw0KfQ0KDQp9KTsNCg==]]></test> - <test id="11.1.5_4-4-d-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1kLTMiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWQtMy5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBmb3IgZHVwbGljYXRlIHByb3BlcnR5IG5hbWUgKGdldCxzZXQsZ2V0KSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGV2YWwoIih7Z2V0IGZvbygpe30sIHNldCBmb28oYXJnKXt9LCBnZXQgZm9vKCl7fX0pOyIpOw0KICB9DQogIGNhdGNoKGUpDQogIHsNCiAgICBpZihlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gKCkgew0KICAgLy9hY2Nlc3NvciBwcm9wZXJ0aWVzIGluIG9iamVjdCBsaXRlcmFscyBtdXN0IGJlIGFsbG93ZWQNCiAgdHJ5IHtldmFsKCIoe3NldCBmb28oeCkge30sIGdldCBmb28oKXt9fSk7Iik7fQ0KICBjYXRjaChlKSB7cmV0dXJuIGZhbHNlfQ0KICByZXR1cm4gdHJ1ZTsNCn0NCg0KfSk7DQo=]]></test> - <test id="11.1.5_4-4-d-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1kLTQiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWQtNC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBmb3IgZHVwbGljYXRlIHByb3BlcnR5IG5hbWUgKHNldCxnZXQsc2V0KSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGV2YWwoIih7c2V0IGZvbyhhcmcpe30sIGdldCBmb28oKXt9LCBzZXQgZm9vKGFyZzEpe319KTsiKTsNCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKQ0KICAgICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uICgpIHsNCiAgIC8vYWNjZXNzb3IgcHJvcGVydGllcyBpbiBvYmplY3QgbGl0ZXJhbHMgbXVzdCBiZSBhbGxvd2VkDQogIHRyeSB7ZXZhbCgiKHtzZXQgZm9vKHgpIHt9LCBnZXQgZm9vKCl7fX0pOyIpO30NCiAgY2F0Y2goZSkge3JldHVybiBmYWxzZX0NCiAgcmV0dXJuIHRydWU7DQp9DQoNCn0pOw0K]]></test> + <test id="11.1.5_4-4-b-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1iLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBpZiBhIGRhdGEgcHJvcGVydHkgZGVmaW5pdGlvbiBpcyBmb2xsb3dlZCBieSBnZXQgYWNjZXNzb3IgZGVmaW5pdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5DQogIHsNCiAgICBldmFsKCIoe2ZvbyA6IDEsIGdldCBmb28oKXt9fSk7Iik7DQogICAgcmV0dXJuIGZhbHNlOw0KICB9DQogIGNhdGNoKGUpDQogIHsNCiAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAvL2FjY2Vzc29yIHByb3BlcnRpZXMgaW4gb2JqZWN0IGxpdGVyYWxzIG11c3QgYmUgYWxsb3dlZA0KICB0cnkge2V2YWwoIih7c2V0IGZvbyh4KSB7fSwgZ2V0IGZvbygpe319KTsiKTt9DQogIGNhdGNoKGUpIHtyZXR1cm4gZmFsc2V9DQogIHJldHVybiB0cnVlOw0KfQ0KfSk7DQo=]]></test> + <test id="11.1.5_4-4-b-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1iLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWItMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBpZiBhIGRhdGEgcHJvcGVydHkgZGVmaW5pdGlvbiBpcyBmb2xsb3dlZCBieSBzZXQgYWNjZXNzb3IgZGVmaW5pdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5DQogIHsNCiAgICBldmFsKCIoe2ZvbyA6IDEsIHNldCBmb28oeCl7fX0pOyIpOw0KICAgIHJldHVybiBmYWxzZTsNCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gKCkgew0KICAgLy9hY2Nlc3NvciBwcm9wZXJ0aWVzIGluIG9iamVjdCBsaXRlcmFscyBtdXN0IGJlIGFsbG93ZWQNCiAgdHJ5IHtldmFsKCIoe3NldCBmb28oeCkge30sIGdldCBmb28oKXt9fSk7Iik7fQ0KICBjYXRjaChlKSB7cmV0dXJuIGZhbHNlfQ0KICByZXR1cm4gdHJ1ZTsNCn0NCn0pOw0K]]></test> + <test id="11.1.5_4-4-c-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1jLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWMtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBpZiBhIGdldCBhY2Nlc3NvciBwcm9wZXJ0eSBkZWZpbml0aW9uIGlzIGZvbGxvd2VkIGJ5IGEgZGF0YSBwcm9wZXJ0eSBkZWZpbml0aW9uIHdpdGggdGhlIHNhbWUgbmFtZSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGV2YWwoIih7Z2V0IGZvbygpe30sIGZvbyA6IDF9KTsiKTsNCiAgICByZXR1cm4gZmFsc2U7DQogIH0NCiAgY2F0Y2goZSkNCiAgew0KICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uICgpIHsNCiAgIC8vYWNjZXNzb3IgcHJvcGVydGllcyBpbiBvYmplY3QgbGl0ZXJhbHMgbXVzdCBiZSBhbGxvd2VkDQogIHRyeSB7ZXZhbCgiKHtzZXQgZm9vKHgpIHt9LCBnZXQgZm9vKCl7fX0pOyIpO30NCiAgY2F0Y2goZSkge3JldHVybiBmYWxzZX0NCiAgcmV0dXJuIHRydWU7DQp9DQoNCn0pOw0K]]></test> + <test id="11.1.5_4-4-c-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1jLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWMtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBpZiBhIHNldCBhY2Nlc3NvciBwcm9wZXJ0eSBkZWZpbml0aW9uIGlzIGZvbGxvd2VkIGJ5IGEgZGF0YSBwcm9wZXJ0eSBkZWZpbml0aW9uIHdpdGggdGhlIHNhbWUgbmFtZSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGV2YWwoIih7c2V0IGZvbyh4KXt9LCBmb28gOiAxfSk7Iik7DQogICAgcmV0dXJuIGZhbHNlOw0KICB9DQogIGNhdGNoKGUpDQogIHsNCiAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAvL2FjY2Vzc29yIHByb3BlcnRpZXMgaW4gb2JqZWN0IGxpdGVyYWxzIG11c3QgYmUgYWxsb3dlZA0KICB0cnkge2V2YWwoIih7c2V0IGZvbyh4KSB7fSwgZ2V0IGZvbygpe319KTsiKTt9DQogIGNhdGNoKGUpIHtyZXR1cm4gZmFsc2V9Ow0KICByZXR1cm4gdHJ1ZTsNCn0NCg0KfSk7DQo=]]></test> + <test id="11.1.5_4-4-d-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1kLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWQtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBmb3IgZHVwbGljYXRlIHByb3BlcnR5IG5hbWUgKGdldCxnZXQpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHRyeQ0KICB7DQogICAgZXZhbCgiKHtnZXQgZm9vKCl7fSwgZ2V0IGZvbygpe319KTsiKTsNCiAgICByZXR1cm4gZmFsc2U7DQogIH0NCiAgY2F0Y2goZSkNCiAgew0KICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogIH0NCiB9LA0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAvL2FjY2Vzc29yIHByb3BlcnRpZXMgaW4gb2JqZWN0IGxpdGVyYWxzIG11c3QgYmUgYWxsb3dlZA0KICB0cnkge2V2YWwoIih7c2V0IGZvbyh4KSB7fSwgZ2V0IGZvbygpe319KTsiKTt9DQogIGNhdGNoKGUpIHtyZXR1cm4gZmFsc2V9DQogIHJldHVybiB0cnVlOw0KfQ0KDQp9KTsNCg==]]></test> + <test id="11.1.5_4-4-d-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1kLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWQtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBmb3IgZHVwbGljYXRlIHByb3BlcnR5IG5hbWUgKHNldCxzZXQpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHRyeQ0KICB7DQogICAgZXZhbCgiKHtzZXQgZm9vKGFyZyl7fSwgc2V0IGZvbyhhcmcxKXt9fSk7Iik7DQogICAgcmV0dXJuIGZhbHNlOw0KICB9DQogIGNhdGNoKGUpDQogIHsNCiAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAvL2FjY2Vzc29yIHByb3BlcnRpZXMgaW4gb2JqZWN0IGxpdGVyYWxzIG11c3QgYmUgYWxsb3dlZA0KICB0cnkge2V2YWwoIih7c2V0IGZvbyh4KSB7fSwgZ2V0IGZvbygpe319KTsiKTt9DQogIGNhdGNoKGUpIHtyZXR1cm4gZmFsc2V9DQogIHJldHVybiB0cnVlOw0KfQ0KDQp9KTsNCg==]]></test> + <test id="11.1.5_4-4-d-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1kLTMiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWQtMy5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBmb3IgZHVwbGljYXRlIHByb3BlcnR5IG5hbWUgKGdldCxzZXQsZ2V0KSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGV2YWwoIih7Z2V0IGZvbygpe30sIHNldCBmb28oYXJnKXt9LCBnZXQgZm9vKCl7fX0pOyIpOw0KICAgIHJldHVybiBmYWxzZTsNCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gKCkgew0KICAgLy9hY2Nlc3NvciBwcm9wZXJ0aWVzIGluIG9iamVjdCBsaXRlcmFscyBtdXN0IGJlIGFsbG93ZWQNCiAgdHJ5IHtldmFsKCIoe3NldCBmb28oeCkge30sIGdldCBmb28oKXt9fSk7Iik7fQ0KICBjYXRjaChlKSB7cmV0dXJuIGZhbHNlfQ0KICByZXR1cm4gdHJ1ZTsNCn0NCg0KfSk7DQo=]]></test> + <test id="11.1.5_4-4-d-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzQtNC1kLTQiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxMS8xMS4xLzExLjEuNS8xMS4xLjVfNC00LWQtNC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0IGxpdGVyYWwgLSBTeW50YXhFcnJvciBmb3IgZHVwbGljYXRlIHByb3BlcnR5IG5hbWUgKHNldCxnZXQsc2V0KSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGV2YWwoIih7c2V0IGZvbyhhcmcpe30sIGdldCBmb28oKXt9LCBzZXQgZm9vKGFyZzEpe319KTsiKTsNCiAgICByZXR1cm4gZmFsc2U7DQogIH0NCiAgY2F0Y2goZSkNCiAgew0KICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uICgpIHsNCiAgIC8vYWNjZXNzb3IgcHJvcGVydGllcyBpbiBvYmplY3QgbGl0ZXJhbHMgbXVzdCBiZSBhbGxvd2VkDQogIHRyeSB7ZXZhbCgiKHtzZXQgZm9vKHgpIHt9LCBnZXQgZm9vKCl7fX0pOyIpO30NCiAgY2F0Y2goZSkge3JldHVybiBmYWxzZX0NCiAgcmV0dXJuIHRydWU7DQp9DQoNCn0pOw0K]]></test> <test id="11.1.5_5-4-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzUtNC0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuMS8xMS4xLjUvMTEuMS41XzUtNC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QgbGl0ZXJhbCAtIHByb3BlcnR5IGRlc2NyaXB0b3IgZm9yIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIHZhciBvID0ge2ZvbyA6IDF9Ow0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiZm9vIik7DQogIGlmKGRlc2MudmFsdWUgPT09IDEgJiYNCiAgICAgZGVzYy53cml0YWJsZSA9PT0gdHJ1ZSAmJg0KICAgICBkZXNjLmVudW1lcmFibGUgPT09IHRydWUgJiYNCiAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IHRydWUpDQogICAgcmV0dXJuIHRydWU7DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsNCiB9DQoNCn0pOw0K]]></test> <test id="11.1.5_6-3-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzYtMy0xIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuMS8xMS4xLjUvMTEuMS41XzYtMy0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QgbGl0ZXJhbCAtIHByb3BlcnR5IGRlc2NyaXB0b3IgZm9yIGdldCBwcm9wZXJ0eSBhc3NpZ25tZW50IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZXZhbCgidmFyIG8gPSB7Z2V0IGZvbygpe3JldHVybiAxO319OyIpOw0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiZm9vIik7DQogIGlmKGRlc2MuZW51bWVyYWJsZSA9PT0gdHJ1ZSAmJg0KICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gdHJ1ZSkNCiAgICByZXR1cm4gdHJ1ZTsNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uICgpIHsNCiAgIC8vYWNjZXNzb3IgcHJvcGVydGllcyBpbiBvYmplY3QgbGl0ZXJhbHMgbXVzdCBiZSBhbGxvd2VkDQogIHRyeSB7ZXZhbCgiKHtzZXQgZm9vKHgpIHt9LCBnZXQgZm9vKCl7fX0pOyIpO30NCiAgY2F0Y2goZSkge3JldHVybiBmYWxzZX0NCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KfQ0KDQp9KTsNCg==]]></test> <test id="11.1.5_6-3-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuMS41XzYtMy0yIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuMS8xMS4xLjUvMTEuMS41XzYtMy0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJPYmplY3QgbGl0ZXJhbCAtIHByb3BlcnR5IGRlc2NyaXB0b3IgZm9yIGdldCBwcm9wZXJ0eSBhc3NpZ25tZW50IHNob3VsZCBub3QgY3JlYXRlIGEgc2V0IGZ1bmN0aW9uIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZXZhbCgidmFyIG8gPSB7Z2V0IGZvbygpe3JldHVybiAxO319OyIpOw0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiZm9vIik7DQogIHJldHVybiBkZXNjLnNldCA9PT0gdW5kZWZpbmVkDQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiAoKSB7DQogICAvL2FjY2Vzc29yIHByb3BlcnRpZXMgaW4gb2JqZWN0IGxpdGVyYWxzIG11c3QgYmUgYWxsb3dlZA0KICB0cnkge2V2YWwoIih7c2V0IGZvbyh4KSB7fSwgZ2V0IGZvbygpe319KTsiKTt9DQogIGNhdGNoKGUpIHtyZXR1cm4gZmFsc2V9DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTs7DQp9DQoNCn0pOw0K]]></test> @@ -48,9 +48,9 @@ <test id="11.4.1-4.a-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS0yIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgcmV0dXJucyB0cnVlIHdoZW4gZGVsZXRpbmcgYSBjb25maWd1cmFibGUgYWNjZXNzb3IgcHJvcGVydHkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIG8gPSB7fTsNCg0KICAvLyBkZWZpbmUgYW4gYWNjZXNzb3INCiAgLy8gZHVtbXkgZ2V0dGVyDQogIHZhciBnZXR0ZXIgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAxOyB9DQogIHZhciBkZXNjID0geyBnZXQ6IGdldHRlciwgY29uZmlndXJhYmxlOiB0cnVlIH07DQogIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZm9vIiwgZGVzYyk7DQogICAgDQogIHZhciBkID0gZGVsZXRlIG8uZm9vOw0KICBpZiAoZCA9PT0gdHJ1ZSAmJiBvLmhhc093blByb3BlcnR5KCJmb28iKSA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gKGZuRXhpc3RzKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgJiYgZm5FeGlzdHMoT2JqZWN0Lmhhc093blByb3BlcnR5KSk7DQogfQ0KfSk7DQo=]]></test> <test id="11.4.1-4.a-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS0zIiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgcmV0dXJucyBmYWxzZSB3aGVuIGRlbGV0aW5nIGEgbm9uLWNvbmZpZ3VyYWJsZSBkYXRhIHByb3BlcnR5IiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBvID0ge307DQogIHZhciBkZXNjID0geyB2YWx1ZSA6IDEsIGNvbmZpZ3VyYWJsZTogZmFsc2UgfTsgLy8gYWxsIG90aGVyIGF0dHJpYnV0ZXMgZGVmYXVsdCB0byBmYWxzZQ0KICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgImZvbyIsIGRlc2MpOw0KICANCiAgLy8gTm93LCBkZWxldGluZyBvLmZvbyBzaG91bGQgZmFpbCBiZWNhdXNlIFtbQ29uZmlndXJhYmxlXV0gb24gZm9vIGlzIGZhbHNlLg0KICB2YXIgZCA9IGRlbGV0ZSBvLmZvbzsNCiAgaWYgKGQgPT09IGZhbHNlICYmIG8uaGFzT3duUHJvcGVydHkoImZvbyIpID09PSB0cnVlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIChmbkV4aXN0cyhPYmplY3QuZGVmaW5lUHJvcGVydHkpICYmIGZuRXhpc3RzKE9iamVjdC5oYXNPd25Qcm9wZXJ0eSkpOw0KIH0NCn0pOw0K]]></test> <test id="11.4.1-4.a-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS00IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgcmV0dXJucyBmYWxzZSB3aGVuIGRlbGV0aW5nIGEgbm9uLWNvbmZpZ3VyYWJsZSBkYXRhIHByb3BlcnR5IChOYU4pIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIC8vIE5hTiAoMTUuMS4xLjEpIGhhcyBbW0NvbmZpZ3VyYWJsZV1dIHNldCB0byBmYWxzZS4NCiAgdmFyIGQgPSBkZWxldGUgTmFOOw0KICBpZiAoZCA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0NCn0pOw0K]]></test> - <test id="11.4.1-4.a-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS01IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgcmV0dXJucyBmYWxzZSB3aGVuIGRlbGV0aW5nIHRoZSBlbnZpcm9ubWVudCBvYmplY3QgaW5zaWRlICd3aXRoJyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgbyA9IG5ldyBPYmplY3QoKTsNCiAgby54ID0gMTsNCiAgdmFyIGQ7DQogIHdpdGgobykNCiAgew0KICAgIGQgPSBkZWxldGUgbzsNCiAgfQ0KICBpZiAoZCA9PT0gZmFsc2UgJiYgdHlwZW9mKG8pID09PSAnb2JqZWN0JyAmJiBvLnggPT09IDEpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0NCn0pOw0K]]></test> + <test id="11.4.1-4.a-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS01IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS01LmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgcmV0dXJucyBmYWxzZSB3aGVuIGRlbGV0aW5nIHRoZSBlbnZpcm9ubWVudCBvYmplY3QgaW5zaWRlICd3aXRoJyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgbyA9IG5ldyBPYmplY3QoKTsNCiAgby54ID0gMTsNCiAgdmFyIGQ7DQogIHdpdGgobykNCiAgew0KICAgIGQgPSBkZWxldGUgbzsNCiAgfQ0KICBpZiAoZCA9PT0gZmFsc2UgJiYgdHlwZW9mKG8pID09PSAnb2JqZWN0JyAmJiBvLnggPT09IDEpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICByZXR1cm4gZmFsc2U7DQogfQ0KfSk7DQo=]]></test> <test id="11.4.1-4.a-6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS02IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS02LmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgcmV0dXJucyB0cnVlIHdoZW4gZGVsZXRpbmcgYSBwcm9wZXJ0eSBpbnNpZGUgJ3dpdGgnIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBvID0gbmV3IE9iamVjdCgpOw0KICBvLnggPSAxOw0KICB2YXIgZDsNCiAgd2l0aChvKQ0KICB7DQogICAgZCA9IGRlbGV0ZSB4Ow0KICB9DQogIGlmIChkID09PSB0cnVlICYmIG8ueCA9PT0gdW5kZWZpbmVkKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9DQp9KTsNCg==]]></test> - <test id="11.4.1-4.a-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS03IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS03LmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgaW5zaWRlICdldmFsJyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgeCA9IDE7DQogIHZhciBkID0gZXZhbCgiZGVsZXRlIHgiKTsNCiAgaWYgKGQgPT09IGZhbHNlICYmIHggPT09IDEpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0NCn0pOw0K]]></test> + <test id="11.4.1-4.a-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS03IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS03LmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgaW5zaWRlICdldmFsJyIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgeCA9IDE7DQogIHZhciBkID0gZXZhbCgiZGVsZXRlIHgiKTsNCiAgaWYgKGQgPT09IGZhbHNlICYmIHggPT09IDEpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICByZXR1cm4gZmFsc2U7DQogfQ0KfSk7DQo=]]></test> <test id="11.4.1-4.a-8"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS04IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS04LmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgcmV0dXJucyB0cnVlIGZvciBidWlsdC1pbiBvYmplY3RzIChKU09OKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkgew0KICAgICAgdmFyIG8gPSBKU09OOw0KICAgICAgdmFyIGQgPSBkZWxldGUgSlNPTjsgIA0KICAgICAgaWYgKGQgPT09IHRydWUpIHsJICAgIA0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgIH0NCiAgfSBmaW5hbGx5IHsNCiAgICBKU09OID0gbzsNCiAgfQ0KIH0NCn0pOw0K]]></test> <test id="11.4.1-4.a-9"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTQuYS05IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTEvMTEuNC8xMS40LjEvMTEuNC4xLTQuYS05LmpzIiwNCg0KZGVzY3JpcHRpb246ICJkZWxldGUgb3BlcmF0b3IgcmV0dXJucyBmYWxzZSB3aGVuIGRlbGV0aW5nIGEgbm9uLWNvbmZpZ3VyYWJsZSBkYXRhIHByb3BlcnR5IChNYXRoLkxOMikiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGQgPSBkZWxldGUgTWF0aC5MTjI7DQogIGlmIChkID09PSBmYWxzZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfQ0KfSk7DQo=]]></test> <test id="11.4.1-5-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTEuNC4xLTUtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjExLzExLjQvMTEuNC4xLzExLjQuMS01LTEuanMiLA0KDQpkZXNjcmlwdGlvbjogImRlbGV0ZSBvcGVyYXRvciByZXR1cm5zIGZhbHNlIHdoZW4gZGVsZXRpbmcgYSBkaXJlY3QgcmVmZXJlbmNlIHRvIGEgdmFyIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciB4ID0gMTsNCg0KICAvLyBOb3csIGRlbGV0aW5nICd4JyBkaXJlY3RseSBzaG91bGQgZmFpbDsNCiAgdmFyIGQgPSBkZWxldGUgeDsNCiAgaWYoZCA9PT0gZmFsc2UgJiYgeCA9PT0gMSkNCiAgICByZXR1cm4gdHJ1ZTsNCiB9DQp9KTsNCg==]]></test> diff --git a/website/resources/scripts/testcases/chapter15.xml b/website/resources/scripts/testcases/chapter15.xml index 970a752a4ed6518a8b22ac59610a7fe15c379832..b539781541b0a8bc2c016a92b269d208033ebadd 100644 --- a/website/resources/scripts/testcases/chapter15.xml +++ b/website/resources/scripts/testcases/chapter15.xml @@ -3,16 +3,16 @@ <!-- spec structure in this file, for now the section structure is defined in the --> <!-- sections.js file --> <section name="Chapter - chapter15" numTests="3302"> - <test id="15.10.6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEwLzE1LjEwLjYvMTUuMTAuNi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZSBpcyBpdHNlbGYgYSBSZWdFeHAiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIHMgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVnRXhwLnByb3RvdHlwZSk7DQogIGlmIChzID09PSAnW29iamVjdCBSZWdFeHBdJykgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfQ0KfSk7DQo=]]></test> - <test id="15.10.7.1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy4xLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuMS8xNS4xMC43LjEtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5zb3VyY2UgaXMgb2YgdHlwZSBTdHJpbmciLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYoKHR5cGVvZihSZWdFeHAucHJvdG90eXBlLnNvdXJjZSkpID09PSAnc3RyaW5nJykNCiAgICByZXR1cm4gdHJ1ZTsNCiB9DQp9KTsNCg==]]></test> + <test id="15.10.6"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEwLzE1LjEwLjYvMTUuMTAuNi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZSBpcyBpdHNlbGYgYSBSZWdFeHAiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIHMgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVnRXhwLnByb3RvdHlwZSk7DQogIHJldHVybiBzID09PSAnW29iamVjdCBSZWdFeHBdJzsNCiB9DQp9KTsNCg==]]></test> + <test id="15.10.7.1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy4xLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuMS8xNS4xMC43LjEtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5zb3VyY2UgaXMgb2YgdHlwZSBTdHJpbmciLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgcmV0dXJuICh0eXBlb2YoUmVnRXhwLnByb3RvdHlwZS5zb3VyY2UpKSA9PT0gJ3N0cmluZyc7DQogfQ0KfSk7DQo=]]></test> <test id="15.10.7.1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy4xLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuMS8xNS4xMC43LjEtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5zb3VyY2UgaXMgYSBkYXRhIHByb3BlcnR5IHdpdGggZGVmYXVsdCBhdHRyaWJ1dGUgdmFsdWVzIChmYWxzZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90b3R5cGUsICdzb3VyY2UnKTsNCiAgDQogIGlmIChkLndyaXRhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZC5lbnVtZXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZC5jb25maWd1cmFibGUgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOyAgDQogfQ0KfSk7DQo=]]></test> - <test id="15.10.7.2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy4yLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuMi8xNS4xMC43LjItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5nbG9iYWwgaXMgb2YgdHlwZSBCb29sZWFuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGlmKCh0eXBlb2YoUmVnRXhwLnByb3RvdHlwZS5nbG9iYWwpKSA9PT0gJ2Jvb2xlYW4nKQ0KICAgIHJldHVybiB0cnVlOw0KIH0NCn0pOw0K]]></test> + <test id="15.10.7.2-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy4yLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuMi8xNS4xMC43LjItMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5nbG9iYWwgaXMgb2YgdHlwZSBCb29sZWFuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHJldHVybiAodHlwZW9mKFJlZ0V4cC5wcm90b3R5cGUuZ2xvYmFsKSkgPT09ICdib29sZWFuJzsNCiB9DQp9KTsNCg==]]></test> <test id="15.10.7.2-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy4yLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuMi8xNS4xMC43LjItMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5nbG9iYWwgaXMgYSBkYXRhIHByb3BlcnR5IHdpdGggZGVmYXVsdCBhdHRyaWJ1dGUgdmFsdWVzIChmYWxzZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90b3R5cGUsICdnbG9iYWwnKTsNCiAgDQogIGlmIChkZXNjLndyaXRhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOyAgDQogfQ0KfSk7DQo=]]></test> - <test id="15.10.7.3-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy4zLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuMy8xNS4xMC43LjMtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5pZ25vcmVDYXNlIGlzIG9mIHR5cGUgQm9vbGVhbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZigodHlwZW9mKFJlZ0V4cC5wcm90b3R5cGUuaWdub3JlQ2FzZSkpID09PSAnYm9vbGVhbicpDQogICAgcmV0dXJuIHRydWU7DQogfQ0KfSk7DQo=]]></test> + <test id="15.10.7.3-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy4zLTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuMy8xNS4xMC43LjMtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5pZ25vcmVDYXNlIGlzIG9mIHR5cGUgQm9vbGVhbiIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICByZXR1cm4gKHR5cGVvZihSZWdFeHAucHJvdG90eXBlLmlnbm9yZUNhc2UpKSA9PT0gJ2Jvb2xlYW4nOw0KIH0NCn0pOw0K]]></test> <test id="15.10.7.3-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy4zLTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuMy8xNS4xMC43LjMtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5pZ25vcmVDYXNlIGlzIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIGRlZmF1bHQgYXR0cmlidXRlIHZhbHVlcyAoZmFsc2UpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBkID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAucHJvdG90eXBlLCAnaWdub3JlQ2FzZScpOw0KICANCiAgaWYgKGQud3JpdGFibGUgPT09IGZhbHNlICYmDQogICAgICBkLmVudW1lcmFibGUgPT09IGZhbHNlICYmDQogICAgICBkLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7ICANCiB9DQp9KTsNCg==]]></test> - <test id="15.10.7.4-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy40LTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuNC8xNS4xMC43LjQtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5tdWx0aWxpbmUgaXMgb2YgdHlwZSBCb29sZWFuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIGlmKCh0eXBlb2YoUmVnRXhwLnByb3RvdHlwZS5tdWx0aWxpbmUpKSA9PT0gJ2Jvb2xlYW4nKQ0KICAgIHJldHVybiB0cnVlOw0KIH0NCn0pOw0K]]></test> + <test id="15.10.7.4-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy40LTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuNC8xNS4xMC43LjQtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5tdWx0aWxpbmUgaXMgb2YgdHlwZSBCb29sZWFuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHJldHVybiAodHlwZW9mKFJlZ0V4cC5wcm90b3R5cGUubXVsdGlsaW5lKSkgPT09ICdib29sZWFuJzsNCiB9DQp9KTsNCg==]]></test> <test id="15.10.7.4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy40LTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuNC8xNS4xMC43LjQtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5tdWx0aWxpbmUgaXMgYSBkYXRhIHByb3BlcnR5IHdpdGggZGVmYXVsdCBhdHRyaWJ1dGUgdmFsdWVzIChmYWxzZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90b3R5cGUsICdtdWx0aWxpbmUnKTsNCiAgDQogIGlmIChkLndyaXRhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZC5lbnVtZXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZC5jb25maWd1cmFibGUgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOyAgDQogfQ0KfSk7DQo=]]></test> - <test id="15.10.7.5-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy41LTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuNS8xNS4xMC43LjUtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5sYXN0SW5kZXggaXMgb2YgdHlwZSBOdW1iZXIiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYoKHR5cGVvZihSZWdFeHAucHJvdG90eXBlLmxhc3RJbmRleCkpID09PSAnbnVtYmVyJykNCiAgICByZXR1cm4gdHJ1ZTsNCiB9DQp9KTsNCg==]]></test> + <test id="15.10.7.5-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy41LTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuNS8xNS4xMC43LjUtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5sYXN0SW5kZXggaXMgb2YgdHlwZSBOdW1iZXIiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgcmV0dXJuICh0eXBlb2YoUmVnRXhwLnByb3RvdHlwZS5sYXN0SW5kZXgpKSA9PT0gJ251bWJlcic7DQogfQ0KfSk7DQo=]]></test> <test id="15.10.7.5-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTAuNy41LTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4xMC8xNS4xMC43LzE1LjEwLjcuNS8xNS4xMC43LjUtMi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiUmVnRXhwLnByb3RvdHlwZS5sYXN0SW5kZXggaXMgYSBkYXRhIHByb3BlcnR5IHdpdGggc3BlY2lmaWVkIGF0dHJpYnV0ZSB2YWx1ZXMiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90b3R5cGUsICdsYXN0SW5kZXgnKTsNCiAgDQogIGlmIChkLndyaXRhYmxlID09PSB0cnVlICYmDQogICAgICBkLmVudW1lcmFibGUgPT09IGZhbHNlICYmDQogICAgICBkLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7ICANCiB9DQp9KTsNCg==]]></test> <test id="15.12.1.1-0-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMS4xLTAtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEyLzE1LjEyLjEvMjUuMTIuMS4xLzE1LjEyLjEuMS0wLTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIlRoZSBKU09OIGxleGljYWwgZ3JhbW1hciB0cmVhdHMgd2hpdGVzcGFjZSBhcyBhIHRva2VuIHNlcGVyYXRvciIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICANCiAgdHJ5IHsNCiAgICBKU09OLnBhcnNlKCcxMlx0XHJcbiAzNCcpOyAvLyBzaG91bGQgcHJvZHVjZSBhIHN5bnRheCBlcnJvciBhcyB3aGl0ZXNwYWNlIHJlc3VsdHMgaW4gdHdvIHRva2Vucw0KICAgIH0NCiAgY2F0Y2ggKGUpIHsNCiAgICAgIGlmIChlLm5hbWUgPT09ICdTeW50YXhFcnJvcicpIHJldHVybiB0cnVlOw0KICAgICAgfQ0KICB9LA0KICANCiBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXEgKCkgew0KICByZXR1cm4gSlNPTiAmJiBmbkV4aXN0cyhKU09OLnBhcnNlKSAmJiBKU09OLnBhcnNlKCcxMjM0Jyk9PT0xMjM0Ow0KIH0NCn0gKTsNCg==]]></test> <test id="15.12.1.1-0-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMTIuMS4xLTAtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjEyLzE1LjEyLjEvMjUuMTIuMS4xLzE1LjEyLjEuMS0wLTIuanMiLA0KDQpkZXNjcmlwdGlvbjogIjxWVD4gaXMgbm90IHZhbGlkIEpTT04gd2hpdGVzcGFjZSBhcyBzcGVjaWZpZWQgYnkgdGhlIHByb2R1Y3Rpb24gSlNPTldoaXRlc3BhY2UuIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIA0KICB0cnkgew0KICAgIEpTT04ucGFyc2UoJ1x1MDAwYjEyMzQnKTsgLy8gc2hvdWxkIHByb2R1Y2UgYSBzeW50YXggZXJyb3IgDQogICAgfQ0KICBjYXRjaCAoZSkgew0KICAgICAgcmV0dXJuIHRydWU7IC8vIHRyZWF0IGFueSBleGNlcHRpb24gYXMgYSBwYXNzLCBvdGhlciB0ZXN0cyBlbnN1cmUgdGhhdCBKU09OLnBhcnNlIHRocm93cyBTeW50YXhFcnJvciBleGNlcHRpb25zDQogICAgICB9DQogIH0sDQogIA0KIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcSAoKSB7DQogIHJldHVybiBKU09OICYmIGZuRXhpc3RzKEpTT04ucGFyc2UpICYmIEpTT04ucGFyc2UoJyAxMjM0Jyk9PT0xMjM0Ow0KIH0NCn0gKTsNCg==]]></test> @@ -378,15 +378,15 @@ <test id="15.2.3.3-4-175"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xNzUiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE3NS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyBmb3IgZnVuY3Rpb25zIG9uIGJ1aWx0LWlucyAoVVJJRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVVJJRXJyb3IucHJvdG90eXBlLCAiY29uc3RydWN0b3IiKTsNCiAgaWYgKGRlc2MudmFsdWUgPT09IFVSSUVycm9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciAmJg0KICAgICAgZGVzYy53cml0YWJsZSA9PT0gdHJ1ZSAmJg0KICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IHRydWUpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogfQ0KfSk7DQo=]]></test> <test id="15.2.3.3-4-176"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xNzYiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE3Ni5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyBmb3IgZnVuY3Rpb25zIG9uIGJ1aWx0LWlucyAoSlNPTi5zdHJpbmdpZnkpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09OLCAic3RyaW5naWZ5Iik7DQogIGlmIChkZXNjLnZhbHVlID09PSBKU09OLnN0cmluZ2lmeSAmJg0KICAgICAgZGVzYy53cml0YWJsZSA9PT0gdHJ1ZSAmJg0KICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IHRydWUpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogfQ0KfSk7DQo=]]></test> <test id="15.2.3.3-4-177"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xNzciLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE3Ny5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyBmb3IgZnVuY3Rpb25zIG9uIGJ1aWx0LWlucyAoSlNPTi5wYXJzZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT04sICJwYXJzZSIpOw0KICBpZiAoZGVzYy52YWx1ZSA9PT0gSlNPTi5wYXJzZSAmJg0KICAgICAgZGVzYy53cml0YWJsZSA9PT0gdHJ1ZSAmJg0KICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IHRydWUpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogfQ0KfSk7DQo=]]></test> - <test id="15.2.3.3-4-178"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xNzgiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE3OC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEdsb2JhbC5OYU4pIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIC8vIGluIG5vbi1zdHJpY3QgbW9kZSwgJ3RoaXMnIGlzIGJvdW5kIHRvIHRoZSBnbG9iYWwgb2JqZWN0Lg0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZm5HbG9iYWxPYmplY3QoKSwgIk5hTiIpOw0KDQogIGlmIChkZXNjLndyaXRhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmhhc093blByb3BlcnR5KCdnZXQnKSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuaGFzT3duUHJvcGVydHkoJ3NldCcpID09PSBmYWxzZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsNCiB9DQp9KTsNCg==]]></test> - <test id="15.2.3.3-4-179"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xNzkiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE3OS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEdsb2JhbC5JbmZpbml0eSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgLy8gaW4gbm9uLXN0cmljdCBtb2RlLCAndGhpcycgaXMgYm91bmQgdG8gdGhlIGdsb2JhbCBvYmplY3QuDQogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmbkdsb2JhbE9iamVjdCgpLCAgIkluZmluaXR5Iik7DQoNCiAgaWYgKGRlc2Mud3JpdGFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmVudW1lcmFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuaGFzT3duUHJvcGVydHkoJ2dldCcpID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KIH0NCn0pOw0K]]></test> + <test id="15.2.3.3-4-178"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xNzgiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE3OC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEdsb2JhbC5OYU4pIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIC8vIGluIG5vbi1zdHJpY3QgbW9kZSwgJ3RoaXMnIGlzIGJvdW5kIHRvIHRoZSBnbG9iYWwgb2JqZWN0Lg0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZm5HbG9iYWxPYmplY3QoKSwgIk5hTiIpOw0KDQogIGlmIChkZXNjLndyaXRhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5lbnVtZXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5jb25maWd1cmFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmhhc093blByb3BlcnR5KCdnZXQnKSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuaGFzT3duUHJvcGVydHkoJ3NldCcpID09PSBmYWxzZSkgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogIHJldHVybiBmYWxzZTsNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KIH0NCn0pOw0K]]></test> + <test id="15.2.3.3-4-179"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xNzkiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE3OS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEdsb2JhbC5JbmZpbml0eSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgLy8gaW4gbm9uLXN0cmljdCBtb2RlLCAndGhpcycgaXMgYm91bmQgdG8gdGhlIGdsb2JhbCBvYmplY3QuDQogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmbkdsb2JhbE9iamVjdCgpLCAgIkluZmluaXR5Iik7DQoNCiAgaWYgKGRlc2Mud3JpdGFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmVudW1lcmFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuaGFzT3duUHJvcGVydHkoJ2dldCcpID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiAgcmV0dXJuIGZhbHNlOw0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogfQ0KfSk7DQo=]]></test> <test id="15.2.3.3-4-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xOCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4zLzE1LjIuMy4zLTQtMTguanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgcmV0dXJucyBkYXRhIGRlc2MgZm9yIGZ1bmN0aW9ucyBvbiBidWlsdC1pbnMgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdCwgImRlZmluZVByb3BlcnR5Iik7DQogIGlmIChkZXNjLnZhbHVlID09PSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYNCiAgICAgIGRlc2Mud3JpdGFibGUgPT09IHRydWUgJiYNCiAgICAgIGRlc2MuZW51bWVyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuY29uZmlndXJhYmxlID09PSB0cnVlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KIH0NCn0pOw0K]]></test> - <test id="15.2.3.3-4-180"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xODAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE4MC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEdsb2JhbC51bmRlZmluZWQpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIC8vIGluIG5vbi1zdHJpY3QgbW9kZSwgJ3RoaXMnIGlzIGJvdW5kIHRvIHRoZSBnbG9iYWwgb2JqZWN0Lg0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZm5HbG9iYWxPYmplY3QoKSwgICJ1bmRlZmluZWQiKTsNCg0KICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuZW51bWVyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmhhc093blByb3BlcnR5KCdzZXQnKSA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogfQ0KfSk7DQo=]]></test> + <test id="15.2.3.3-4-180"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xODAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE4MC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEdsb2JhbC51bmRlZmluZWQpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIC8vIGluIG5vbi1zdHJpY3QgbW9kZSwgJ3RoaXMnIGlzIGJvdW5kIHRvIHRoZSBnbG9iYWwgb2JqZWN0Lg0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZm5HbG9iYWxPYmplY3QoKSwgICJ1bmRlZmluZWQiKTsNCg0KICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuZW51bWVyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmhhc093blByb3BlcnR5KCdzZXQnKSA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICByZXR1cm4gZmFsc2U7DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsNCiB9DQp9KTsNCg==]]></test> <test id="15.2.3.3-4-182"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xODIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE4Mi5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKE9iamVjdC5wcm90b3R5cGUpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QsICJwcm90b3R5cGUiKTsNCg0KICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuZW51bWVyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmhhc093blByb3BlcnR5KCdzZXQnKSA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogfQ0KfSk7DQo=]]></test> <test id="15.2.3.3-4-185"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xODUiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE4NS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEZ1bmN0aW9uLnByb3RvdHlwZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEZ1bmN0aW9uLCAicHJvdG90eXBlIik7DQoNCiAgaWYgKGRlc2Mud3JpdGFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmVudW1lcmFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuaGFzT3duUHJvcGVydHkoJ2dldCcpID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KIH0NCn0pOw0K]]></test> <test id="15.2.3.3-4-186"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xODYiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE4Ni5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEZ1bmN0aW9uLmxlbmd0aCkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEZ1bmN0aW9uLCAibGVuZ3RoIik7DQoNCiAgaWYgKGRlc2Mud3JpdGFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmVudW1lcmFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuaGFzT3duUHJvcGVydHkoJ2dldCcpID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KIH0NCn0pOw0K]]></test> <test id="15.2.3.3-4-187"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xODciLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE4Ny5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEZ1bmN0aW9uIChpbnN0YW5jZSkubGVuZ3RoKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZiA9IEZ1bmN0aW9uKCdyZXR1cm4gNDI7Jyk7DQoNCiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGYsICJsZW5ndGgiKTsNCg0KICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuZW51bWVyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmhhc093blByb3BlcnR5KCdzZXQnKSA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogfQ0KfSk7DQo=]]></test> - <test id="15.2.3.3-4-188"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xODgiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE4OC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIHVuZGVmaW5lZCBmb3Igbm9uLWV4aXN0ZW50IHByb3BlcnRpZXMgb24gYnVpbHQtaW5zIChGdW5jdGlvbiAoaW5zdGFuY2UpLm5hbWUpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBmID0gRnVuY3Rpb24oJ3JldHVybiA0MjsnKTsNCg0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZiwgIm5hbWUiKTsNCg0KICBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KIH0NCn0pOw0K]]></test> + <test id="15.2.3.3-4-188"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xODgiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE4OC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIHVuZGVmaW5lZCBmb3Igbm9uLWV4aXN0ZW50IHByb3BlcnRpZXMgb24gYnVpbHQtaW5zIChGdW5jdGlvbiAoaW5zdGFuY2UpLm5hbWUpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBmID0gRnVuY3Rpb24oJ3JldHVybiA0MjsnKTsNCg0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZiwgIm5hbWUiKTsNCg0KICBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiAgcmV0dXJuIGZhbHNlOw0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogfQ0KfSk7DQo=]]></test> <test id="15.2.3.3-4-189"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xODkiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE4OS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKEFycmF5LnByb3RvdHlwZSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEFycmF5LCAicHJvdG90eXBlIik7DQoNCiAgaWYgKGRlc2Mud3JpdGFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmVudW1lcmFibGUgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuaGFzT3duUHJvcGVydHkoJ2dldCcpID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgPT09IGZhbHNlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KIH0NCn0pOw0K]]></test> <test id="15.2.3.3-4-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xOSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjIvMTUuMi4zLzE1LjIuMy4zLzE1LjIuMy4zLTQtMTkuanMiLA0KDQpkZXNjcmlwdGlvbjogIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgcmV0dXJucyBkYXRhIGRlc2MgZm9yIGZ1bmN0aW9ucyBvbiBidWlsdC1pbnMgKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LCAiZGVmaW5lUHJvcGVydGllcyIpOw0KICBpZiAoZGVzYy52YWx1ZSA9PT0gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgJiYNCiAgICAgIGRlc2Mud3JpdGFibGUgPT09IHRydWUgJiYNCiAgICAgIGRlc2MuZW51bWVyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuY29uZmlndXJhYmxlID09PSB0cnVlKSB7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOw0KIH0NCn0pOw0K]]></test> <test id="15.2.3.3-4-190"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuMi4zLjMtNC0xOTAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS4yLzE1LjIuMy8xNS4yLjMuMy8xNS4yLjMuMy00LTE5MC5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciByZXR1cm5zIGRhdGEgZGVzYyAoYWxsIGZhbHNlKSBmb3IgcHJvcGVydGllcyBvbiBidWlsdC1pbnMgKFN0cmluZy5wcm90b3R5cGUpIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcsICJwcm90b3R5cGUiKTsNCg0KICBpZiAoZGVzYy53cml0YWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuZW51bWVyYWJsZSA9PT0gZmFsc2UgJiYNCiAgICAgIGRlc2MuY29uZmlndXJhYmxlID09PSBmYWxzZSAmJg0KICAgICAgZGVzYy5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgPT09IGZhbHNlICYmDQogICAgICBkZXNjLmhhc093blByb3BlcnR5KCdzZXQnKSA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcik7DQogfQ0KfSk7DQo=]]></test> @@ -1716,7 +1716,7 @@ <test id="15.4.3.2-0-7"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC4zLjItMC03IiwNCg0KcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjMvMTUuNC4zLjIvMTUuNC4zLjItMC03LmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5pc0FycmF5IHJldHVybnMgZmFsc2UgaWYgaXRzIGFyZ3VtZW50IGlzIG5vdCBhbiBBcnJheSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB2YXIgbyA9IG5ldyBPYmplY3QoKTsNCiAgb1sxMl0gPSAxMzsNCiAgdmFyIGIgPSBBcnJheS5pc0FycmF5KG8pOw0KICBpZiAoYiA9PT0gZmFsc2UpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkuaXNBcnJheSk7DQogfQ0KfSk7DQo=]]></test> <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[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTEtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtMS0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIHVuZGVmaW5lZCB0aHJvd3MgYSBUeXBlRXJyb3IiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5IHtBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHVuZGVmaW5lZCl9DQogIGNhdGNoIChlKSB7DQogICAgIGlmIChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSByZXR1cm4gdHJ1ZTsNCiAgICAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KIH0NCn0pOw0K]]></test> + <test id="15.4.4.14-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTEtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtMS0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIHVuZGVmaW5lZCB0aHJvd3MgYSBUeXBlRXJyb3IiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5IHsNCiAgICAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh1bmRlZmluZWQpOw0KICAgICByZXR1cm4gZmFsc2U7DQogIH0NCiAgY2F0Y2ggKGUpIHsNCiAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3I7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCn0NCn0pOw0K]]></test> <test id="15.4.4.14-1-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMS0xMCIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEtMTAuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIHRoZSBNYXRoIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIE1hdGhbMV0gPSB0cnVlOw0KICAgICAgICAgICAgTWF0aC5sZW5ndGggPSAyOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoTWF0aCwgdHJ1ZSkgPT09IDE7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgTWF0aFsxXTsNCiAgICAgICAgICAgIGRlbGV0ZSBNYXRoLmxlbmd0aDsNCiAgICAgICAgfQ0KICAgIH0sDQoNCiAgICBwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgICAgICAgcmV0dXJuIGZuRXhpc3RzKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKTsNCiAgICB9DQoNCn0pOw0K]]></test> <test id="15.4.4.14-1-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE0LTEtMTEiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC0xLTExLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgYXBwbGllZCB0byBEYXRlIG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB2YXIgb2JqID0gbmV3IERhdGUoKTsNCiAgICAgICAgb2JqLmxlbmd0aCA9IDI7DQogICAgICAgIG9ialsxXSA9IHRydWU7DQoNCiAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwob2JqLCB0cnVlKSA9PT0gMTsNCiAgICB9LA0KDQogICAgcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogICAgICAgIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogICAgfQ0KDQp9KTsNCg==]]></test> <test id="15.4.4.14-1-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE0LTEtMTIiLA0KDQogICAgcGF0aDogIlRlc3RDYXNlcy9jaGFwdGVyMTUvMTUuNC8xNS40LjQvMTUuNC40LjE0LzE1LjQuNC4xNC0xLTEyLmpzIiwNCg0KICAgIGRlc2NyaXB0aW9uOiAiQXJyYXkucHJvdG90eXBlLmluZGV4T2YgYXBwbGllZCB0byBSZWdFeHAgb2JqZWN0IiwNCg0KICAgIHRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHZhciBvYmogPSBuZXcgUmVnRXhwKCk7DQogICAgICAgIG9iai5sZW5ndGggPSAyOw0KICAgICAgICBvYmpbMV0gPSB0cnVlOw0KDQogICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG9iaiwgdHJ1ZSkgPT09IDE7DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test> @@ -1724,7 +1724,7 @@ <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-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3Qoew0KDQogICAgaWQ6ICIxNS40LjQuMTQtMS0xNiIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEtMTYuanMiLA0KDQogICAgZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIHRoZSBkb2N1bWVudCBob3N0IG9iamVjdCIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBvbGRMZW4gPSBkb2N1bWVudC5sZW5ndGg7DQogICAgICAgICAgICBkb2N1bWVudFsxXSA9IHRydWU7DQogICAgICAgICAgICBkb2N1bWVudC5sZW5ndGggPSAyOw0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZG9jdW1lbnQsIHRydWUpID09PSAxOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgZGVsZXRlIGRvY3VtZW50WzFdOw0KICAgICAgICAgICAgZG9jdW1lbnQubGVuZ3RoID0gb2xkTGVuOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test> - <test id="15.4.4.14-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC40LjE0LTEtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjQvMTUuNC40LzE1LjQuNC4xNC8xNS40LjQuMTQtMS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBhcHBsaWVkIHRvIG51bGwgdGhyb3dzIGEgVHlwZUVycm9yIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHRyeSB7QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChudWxsKX0NCiAgY2F0Y2ggKGUpIHsNCiAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHJldHVybiB0cnVlOw0KICAgICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhBcnJheS5wcm90b3R5cGUuaW5kZXhPZik7DQogfQ0KfSk7DQo=]]></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> <test id="15.4.4.14-1-5"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCg0KICAgIGlkOiAiMTUuNC40LjE0LTEtNSIsDQoNCiAgICBwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNC8xNS40LjQuMTQvMTUuNC40LjE0LTEtNS5qcyIsDQoNCiAgICBkZXNjcmlwdGlvbjogIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIGFwcGxpZWQgdG8gbnVtYmVyIHByaW1pdGl2ZSIsDQoNCiAgICB0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIHRhcmdldE9iaiA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgTnVtYmVyLnByb3RvdHlwZVsxXSA9IHRhcmdldE9iajsNCiAgICAgICAgICAgIE51bWJlci5wcm90b3R5cGUubGVuZ3RoID0gMjsNCg0KICAgICAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoNSwgdGFyZ2V0T2JqKSA9PT0gMTsNCiAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgIGRlbGV0ZSBOdW1iZXIucHJvdG90eXBlWzFdOw0KICAgICAgICAgICAgZGVsZXRlIE51bWJlci5wcm90b3R5cGUubGVuZ3RoOw0KICAgICAgICB9DQogICAgfSwNCg0KICAgIHByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICAgICAgICByZXR1cm4gZm5FeGlzdHMoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpOw0KICAgIH0NCg0KfSk7DQo=]]></test> @@ -3222,21 +3222,21 @@ <test id="15.4.5-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNC41LTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS40LzE1LjQuNS8xNS40LjUtMS5qcyIsDQoNCmRlc2NyaXB0aW9uOiAiQXJyYXkgaW5zdGFuY2VzIGhhdmUgW1tDbGFzc11dIHNldCB0byAnQXJyYXknIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHZhciBhID0gW107DQogIHZhciBzID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpOw0KICBpZiAocyA9PT0gJ1tvYmplY3QgQXJyYXldJykgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfQ0KfSk7DQo=]]></test> <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[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gdGhyb3dzIFR5cGVFcnJvciB3aGVuIHN0cmluZyBpcyB1bmRlZmluZWQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5DQogIHsNCiAgICBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCh1bmRlZmluZWQpOyAgDQogIH0NCiAgY2F0Y2goZSkNCiAgew0KICAgIGlmKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test> - <test id="15.5.4.20-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gdGhyb3dzIFR5cGVFcnJvciB3aGVuIHN0cmluZyBpcyBudWxsIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHRyeQ0KICB7DQogICAgU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwobnVsbCk7ICANCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogICAgaWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikNCiAgICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> + <test id="15.5.4.20-1-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gdGhyb3dzIFR5cGVFcnJvciB3aGVuIHN0cmluZyBpcyB1bmRlZmluZWQiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5DQogIHsNCiAgICBTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCh1bmRlZmluZWQpOyANCiAgICByZXR1cm4gZmFsc2U7IA0KICB9DQogIGNhdGNoKGUpDQogIHsNCiAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFR5cGVFcnJvcjsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test> + <test id="15.5.4.20-1-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gdGhyb3dzIFR5cGVFcnJvciB3aGVuIHN0cmluZyBpcyBudWxsIiwNCg0KdGVzdDogZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogIHRyeQ0KICB7DQogICAgU3RyaW5nLnByb3RvdHlwZS50cmltLmNhbGwobnVsbCk7ICANCiAgICByZXR1cm4gZmFsc2U7DQogIH0NCiAgY2F0Y2goZSkNCiAgew0KICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> <test id="15.5.4.20-1-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gd29ya3MgZm9yIHByaW1pdGl2ZSB0eXBlIGJvb2xlYW4iLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgdHJ5DQogIHsNCiAgICBpZihTdHJpbmcucHJvdG90eXBlLnRyaW0uY2FsbCh0cnVlKSA9PSAidHJ1ZSIpDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogfQ0KfSk7DQo=]]></test> <test id="15.5.4.20-1-4"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTEtNCIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtMS00LmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gd29ya3MgZm9yIHByaW1pdGl2ZSB0eXBlIG51bWJlciIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICB0cnkNCiAgew0KICAgIGlmKFN0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKDApID09ICIwIikgDQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaChlKQ0KICB7DQogIH0NCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogfQ0KfSk7DQo=]]></test> <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-4-1"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMSIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtNC0xLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gaGFuZGxlcyBtdWx0aWxpbmUgc3RyaW5nIHdpdGggd2hpdGVwYWNlIGFuZCBsaW5ldGVybWluYXRvcnMiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCnZhciBzID0gIlx1MDAwOWEgYlwNCmMgXHUwMDA5Ig0KDQogICAgICAgICAgICANCiAgaWYgKHMudHJpbSgpID09PSAiYSBiYyIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test> - <test id="15.5.4.20-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTAuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChcXHVGRUZGYWJjKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoIlx1RkVGRmFiYyIudHJpbSgpID09PSAiYWJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> + <test id="15.5.4.20-4-10"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTAuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChcXHVGRUZGYWJjKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICByZXR1cm4gIlx1RkVGRmFiYyIudHJpbSgpID09PSAiYWJjIjsNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogfQ0KfSk7DQo=]]></test> <test id="15.5.4.20-4-11"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTEiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTEuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYmNcXHUwMDA5KSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiY1x1MDAwOSIudHJpbSgpID09PSAiYWJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> <test id="15.5.4.20-4-12"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTIuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYmNcXHUwMDBCKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiY1x1MDAwQiIudHJpbSgpID09PSAiYWJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> <test id="15.5.4.20-4-13"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTMiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTMuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYmNcXHUwMDBDKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiY1x1MDAwQyIudHJpbSgpID09PSAiYWJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> <test id="15.5.4.20-4-14"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTQiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTQuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYmNcXHUwMDIwKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiY1x1MDAyMCIudHJpbSgpID09PSAiYWJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> <test id="15.5.4.20-4-16"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTYiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTYuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYmNcXHUwMEEwKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiY1x1MDBBMCIudHJpbSgpID09PSAiYWJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> - <test id="15.5.4.20-4-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTgiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTguanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYmNcXHVGRUZGKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiY1x1RkVGRiIudHJpbSgpID09PSAiYWJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> + <test id="15.5.4.20-4-18"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTgiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTguanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYmNcXHVGRUZGKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICByZXR1cm4gImFiY1x1RkVGRiIudHJpbSgpID09PSAiYWJjIjsNCiB9LA0KDQpwcmVjb25kaXRpb246IGZ1bmN0aW9uIHByZXJlcSgpIHsNCiAgcmV0dXJuIGZuRXhpc3RzKFN0cmluZy5wcm90b3R5cGUudHJpbSk7DQogfQ0KfSk7DQo=]]></test> <test id="15.5.4.20-4-19"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMTkiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMTkuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChcXHUwMDA5YWJjXFx1MDAwOSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKCJcdTAwMDlhYmNcdTAwMDkiLnRyaW0oKSA9PT0gImFiYyIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test> <test id="15.5.4.20-4-2"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMiIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtNC0yLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gaGFuZGxlcyB3aGl0ZXBhY2UgYW5kIGxpbmV0ZXJtaW5hdG9ycyAoIFxcdTAwMDlhYmMgXFx1MDAwOSkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKCIgXHUwMDA5YWJjIFx1MDAwOSIudHJpbSgpID09PSAiYWJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> <test id="15.5.4.20-4-20"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMjAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMjAuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChcXHUwMDBCYWJjXFx1MDAwQikiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKCJcdTAwMEJhYmNcdTAwMEIiLnRyaW0oKSA9PT0gImFiYyIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test> @@ -3249,7 +3249,7 @@ <test id="15.5.4.20-4-3"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMyIsDQoNCnBhdGg6ICJUZXN0Q2FzZXMvY2hhcHRlcjE1LzE1LjUvMTUuNS40LzE1LjUuNC4yMC8xNS41LjQuMjAtNC0zLmpzIiwNCg0KZGVzY3JpcHRpb246ICJTdHJpbmcucHJvdG90eXBlLnRyaW0gaGFuZGxlcyB3aGl0ZXBhY2UgYW5kIGxpbmV0ZXJtaW5hdG9ycyAoXFx1MDAwOWFiYykiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKCJcdTAwMDlhYmMiLnRyaW0oKSA9PT0gImFiYyIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test> <test id="15.5.4.20-4-30"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMzAiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMzAuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChcXHUwMDIwXFx1MDAyMCkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKCJcdTAwMjBcdTAwMjAiLnRyaW0oKSA9PT0gIiIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test> <test id="15.5.4.20-4-32"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMzIiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMzIuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChcXHUwMEEwXFx1MDBBMCkiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKCJcdTAwQTBcdTAwQTAiLnRyaW0oKSA9PT0gIiIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test> - <test id="15.5.4.20-4-34"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMzQiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMzQuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChcXHVGRUZGXFx1RkVGRikiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgaWYgKCJcdUZFRkZcdUZFRkYiLnRyaW0oKSA9PT0gIiIpIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KIH0sDQoNCnByZWNvbmRpdGlvbjogZnVuY3Rpb24gcHJlcmVxKCkgew0KICByZXR1cm4gZm5FeGlzdHMoU3RyaW5nLnByb3RvdHlwZS50cmltKTsNCiB9DQp9KTsNCg==]]></test> + <test id="15.5.4.20-4-34"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMzQiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMzQuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChcXHVGRUZGXFx1RkVGRikiLA0KDQp0ZXN0OiBmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgcmV0dXJuICJcdUZFRkZcdUZFRkYiLnRyaW0oKSA9PT0gIiI7DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> <test id="15.5.4.20-4-35"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMzUiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMzUuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYlxcdTAwMDljKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiXHUwMDA5YyIudHJpbSgpID09PSAiYWJcdTAwMDljIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> <test id="15.5.4.20-4-36"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMzYiLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMzYuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYlxcdTAwMEJjKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiXHUwMDBCYyIudHJpbSgpID09PSAiYWJcdTAwMEJjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test> <test id="15.5.4.20-4-37"><![CDATA[RVM1SGFybmVzcy5yZWdpc3RlclRlc3QoIHsNCmlkOiAiMTUuNS40LjIwLTQtMzciLA0KDQpwYXRoOiAiVGVzdENhc2VzL2NoYXB0ZXIxNS8xNS41LzE1LjUuNC8xNS41LjQuMjAvMTUuNS40LjIwLTQtMzcuanMiLA0KDQpkZXNjcmlwdGlvbjogIlN0cmluZy5wcm90b3R5cGUudHJpbSBoYW5kbGVzIHdoaXRlcGFjZSBhbmQgbGluZXRlcm1pbmF0b3JzIChhYlxcdTAwMENjKSIsDQoNCnRlc3Q6IGZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICBpZiAoImFiXHUwMDBDYyIudHJpbSgpID09PSAiYWJcdTAwMENjIikgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQogfSwNCg0KcHJlY29uZGl0aW9uOiBmdW5jdGlvbiBwcmVyZXEoKSB7DQogIHJldHVybiBmbkV4aXN0cyhTdHJpbmcucHJvdG90eXBlLnRyaW0pOw0KIH0NCn0pOw0K]]></test>