{"id":6027,"date":"2026-07-06T02:10:17","date_gmt":"2026-07-06T02:10:17","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-1-test-2-reading\/"},"modified":"2026-07-12T03:25:19","modified_gmt":"2026-07-12T03:25:19","slug":"celpip-set-1-test-2-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-1-test-2-reading\/","title":{"rendered":"CELPIP Set 1 Test 2 \u2013 Reading Practice Test"},"content":{"rendered":"<div class=\"clpr-wrap\" id=\"clprWrap\">\n<section class=\"clpr-hero\">\n<div class=\"clpr-aurora\"><span><\/span><span><\/span><span><\/span><\/div>\n<div class=\"clpr-hero-badges\"> <span class=\"clpr-badge-brand\">AllEnglish4U<\/span> <span class=\"clpr-badge-set\">CELPIP General &middot; Set 1<\/span> <\/div>\n<h1>Reading Practice Test 2<\/h1>\n<p class=\"clpr-hero-sub\">4 parts &middot; 38 questions &middot; about 55 minutes. Read each passage and choose the best option for every drop-down. Official Paragon question set with verified answer key.<\/p>\n<div class=\"clpr-hero-chips\"> <span class=\"clpr-chip\">Part 1 &middot; Correspondence<\/span> <span class=\"clpr-chip\">Part 2 &middot; Apply a Diagram<\/span> <span class=\"clpr-chip\">Part 3 &middot; Information<\/span> <span class=\"clpr-chip\">Part 4 &middot; Viewpoints<\/span> <\/div>\n<p> <button class=\"clpr-cta\" id=\"clprStart\">Start the Reading Test<\/button> <\/section>\n<div class=\"clpr-toolbar\" id=\"clprToolbar\" hidden> <span class=\"clpr-score-chip\" id=\"clprScoreChip\">0 \/ 38 answered<\/span> <span class=\"clpr-toolbar-spacer\"><\/span> <button class=\"clpr-tbtn\" id=\"clprReset\">Reset<\/button> <button class=\"clpr-tbtn clpr-tbtn-check\" id=\"clprCheck\">Check answers<\/button> <\/div>\n<div class=\"clpr-sim\" id=\"clprSim\" hidden>\n<div class=\"clpr-dots\" id=\"clprDots\"><\/div>\n<div class=\"clpr-cat\" id=\"clprCat\"><\/div>\n<\/p><\/div>\n<div class=\"clpr-results\" id=\"clprResults\" hidden><\/div>\n<\/p><\/div>\n<p><script>eval(atob(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMiAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAyIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDIiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPkRlYXIgQW5nZWxhLDwvcD5cbjxwPkkndmUgY29tZSB1cCB3aXRoIGEgZ3JlYXQgaWRlYSB0byBhZGQgdG8geW91ciB0b3VyaXN0IGJvb2tsZXQgb2YgaW50ZXJlc3RpbmcgYW5kIHVudXN1YWwgdGhpbmdzIHRvIGRvIGluIG91ciBwcm92aW5jZS4gQXMgeW91IGtub3csIEknbSBvbiB2YWNhdGlvbiBmb3IgNCB3ZWVrcy4gSSBkZWNpZGVkIHRvIGNoZWNrIG91dCBhcHBsZSBwaWNraW5nIGFzIGEgc2Vhc29uYWwgd29ya2VyLiBDYW4geW91IGltYWdpbmUgbWUgcGlja2luZyBhcHBsZXM\/IFRoaXMgd2Fzbid0IG15IG9yaWdpbmFsIHBsYW4sIGJ1dCBJIHNhdyBhIGZldyBhZHMgZm9yIHBpY2tlcnMgcG9zdGVkIGF0IGEgY2FmXHUwMGU5LCBhbmQgSSB0aG91Z2h0IGl0IHdvdWxkIGJlIGludGVyZXN0aW5nLiBBbHRob3VnaCwgSSB3YXMgYSBsaXR0bGUgd29ycmllZCBiZWNhdXNlIHRoZSB3b3JrIGlzIGV4dHJlbWVseSBkaWZmZXJlbnQgZnJvbSBteSB1c3VhbCB3ZWIgZGVzaWduIGpvYi48L3A+XG48cD5BZnRlciBhcHBseWluZyBmb3Igb25lIG9mIHRoZSBqb2JzLCBJIGJvdWdodCBjaGVhcCB3b3JrIGNsb3RoZXMgZnJvbSBhIHN0b3JlIGluIGEgbmVhcmJ5IHRvd24uIFRoZSBlbXBsb3llciBzdWdnZXN0ZWQgSSBnZXQgYnVnIHNwcmF5IGFuZCBzdW5zY3JlZW4sIGFzIHdlbGwuIEFsdGhvdWdoIGl0J3MgZmFsbCwgdGhlIG9yY2hhcmRzIHN0aWxsIGhhdmUgaW5zZWN0cyBhbmQgdGhlIHN1biBpcyBzdGlsbCBzdHJvbmcuPC9wPlxuPHA+SSBoYWQgaGVhcmQgZ2V0dGluZyB3b3JrIGF0IGFuIG9yY2hhcmQgd2FzIGVhc3kgaW4gYXV0dW1uLCBhbmQgaXQgd2FzIHRydWUhIFRoZXkgZGlkbid0IGV2ZW4gYXNrIGZvciBhIHJlc3VtZSBvciByZWZlcmVuY2VzLiBUaGV5IGp1c3Qgd2FudGVkIHRvIGtub3cgaG93IGxvbmcgSSB3b3VsZCBiZSBhdmFpbGFibGUsIGFuZCB3aGVuIEkgY291bGQgc3RhcnQuIFRoZSBwYXkgaXMgbG93IGFuZCBpdCdzIGluIGNhc2gsIGFuZCB0aGUgaG91cnMgYXJlIGxvbmdlciB0aGFuIEkgZXhwZWN0ZWQsIGJ1dCB0aGV5IHByb3ZpZGUgZnJlZSBhY2NvbW1vZGF0aW9uIG9uIHRoZSBmYXJtIGFuZCB0aHJlZSBiaWcgbWVhbHMgYSBkYXkuIEkgbGVmdCBteSBjb21wdXRlciBhbmQgc21hcnRwaG9uZSBhdCB3b3JrLCB0aGlua2luZyBJIGNvdWxkIGxpdmUgd2l0aG91dCB0aGVtLiBXZWxsLCBJJ20gY2VydGFpbmx5IGRvaW5nIHRoYXQhIEltYWdpbmUgaGFuZHdyaXRpbmcgYSBsZXR0ZXIgbGlrZSB0aGlzIGluIHRoZSB0d2VudHktZmlyc3QgY2VudHVyeSEgVW5iZWxpZXZhYmxlISBJJ20gYWxzbyBrZWVwaW5nIGEgaGFuZHdyaXR0ZW4gam91cm5hbC48L3A+XG48cD5BIGZ1bGwgZGF5IHBpY2tpbmcgYXBwbGVzIGNhbiBiZSB2ZXJ5IHRpcmluZy4gV2UgY2xpbWIgdXAgYW5kIGRvd24gbGFkZGVycyB0byBnZXQgYWxsIHRoZSBhcHBsZXMgb24gYSB0cmVlLiBXZSBjYXJlZnVsbHkgdHdpc3QgdGhlIHN0ZW0gb2YgZWFjaCBhcHBsZSB0byBnZXQgaXQgb2ZmIHRoZSB0cmVlLiBPbmNlIHBpY2tlZCwgdGhlIGFwcGxlIGdvZXMgZ2VudGx5IGludG8gYSBjb250YWluZXIuIEFmdGVyIHlvdSBtYXN0ZXIgdGhlIHRlY2huaXF1ZSwgaXQncyBhbWF6aW5nIGhvdyBtYW55IGFwcGxlcyB5b3UgY2FuIHBpY2sgaW4gYSBkYXkuIEF0IHRoZSBlbmQgb2YgdGhlIGRheSwgd2UgYWxsIGdldCB0b2dldGhlciBpbiB0aGUga2l0Y2hlbiBhbmQgdGFsayBhYm91dCBtYW55IGRpZmZlcmVudCB0aGluZ3MgY29tcGxldGVseSB1bnJlbGF0ZWQgdG8gYXBwbGVzLCB1bnRpbCB3ZSdyZSB0b28gc2xlZXB5IHRvIHNheSBhbm90aGVyIHdvcmQuIEknbSBsZWFybmluZyBhIGxvdCBhYm91dCB3aGF0IHBlb3BsZSBkbyBvdXRzaWRlIG15IGxpdHRsZSB3ZWIgZGVzaWduIHdvcmxkLjwvcD5cbjxwPkkgd291bGQgbG92ZSB0byBoZWFyIGhvdyB5b3VyIGJvb2tsZXQgaXMgZ29pbmcuIE1haWwgaXMgZGVsaXZlcmVkIGRpcmVjdGx5IHRvIHRoZSBhcHBsZSBmYXJtIHNldmVyYWwgdGltZXMgYSB3ZWVrLCBzbyBob3BlZnVsbHkgeW91IGNhbiBnZXQgYSBsZXR0ZXIgdG8gbWUgYmVmb3JlIEkgZ2V0IGJhY2sgdG8gdGhlIGNpdHkuPC9wPlxuPHA+U2luY2VyZWx5LDxicj5KYW5pY2U8L3A+In0sImJsb2NrcyI6W3sidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24gYWNjb3JkaW5nIHRvIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiB0aGUgbWVzc2FnZS4iLCJpdGVtcyI6W3sibiI6MSwicHJlIjoiV2h5IGlzIEphbmljZSBwaWNraW5nIGFwcGxlcyB3aGlsZSBvbiB2YWNhdGlvbj8iLCJvcHRpb25zIjpbInRvIGVhcm4gY2FzaCBmb3IgaGVyIHRyaXAiLCJ0byBleHBlcmllbmNlIHNvbWV0aGluZyBuZXciLCJ0byBhZGQgbW9yZSBqb2JzIHRvIGhlciByZXN1bVx1MDBlOSIsInRvIGZpbmQgaWRlYXMgZm9yIGhlciBqb3VybmFsIl0sImtleSI6Mn0seyJuIjoyLCJwcmUiOiJXaGF0IGRvZXMgSmFuaWNlIHBsYW4gdG8gZG8gYWZ0ZXIgdGhpcyBtb250aD8iLCJvcHRpb25zIjpbInN0YXJ0IHdyaXRpbmcgYSBqb3VybmFsIiwicGljayBhcHBsZXMgaW4gb3RoZXIgYXJlYXMiLCJmaW5kIGFub3RoZXIgaW50ZXJlc3RpbmcgYWN0aXZpdHkiLCJyZXR1cm4gdG8gaGVyIHJlZ3VsYXIgam9iIl0sImtleSI6NH0seyJuIjozLCJwcmUiOiJXaHkgaXMgSmFuaWNlIGhhbmR3cml0aW5nIGEgbGV0dGVyPyIsIm9wdGlvbnMiOlsiU2hlIGZvcmdvdCB0byBicmluZyBoZXIgY29tcHV0ZXIuIiwiU2hlIGlzIHVuYWJsZSB0byBjb25uZWN0IHRvIHRoZSBpbnRlcm5ldC4iLCJTaGUgd2FudHMgdG8gYmUgd2l0aG91dCB0ZWNobm9sb2d5LiIsIlNoZSBwcmVmZXJzIGhhbmR3cml0aW5nIHRvIHR5cGluZy4iXSwia2V5IjozfSx7Im4iOjQsInByZSI6IldoYXQgaXMgSmFuaWNlJ3Mgb3BpbmlvbiBvZiB0aGUgb3RoZXIgcGlja2Vycz8iLCJvcHRpb25zIjpbIlRoZXkgYXJlIGhlbHBmdWwuIiwiVGhleSBhcmUgaW50ZXJlc3RpbmcuIiwiVGhleSBhcmUgZXhwZXJpZW5jZWQuIiwiVGhleSBhcmUgdGlyaW5nLiJdLCJrZXkiOjJ9LHsibiI6NSwicHJlIjoiSG93IGRpZCBKYW5pY2UgbGVhcm4gYWJvdXQgdGhlIGFwcGxlLXBpY2tpbmcgam9iPyIsIm9wdGlvbnMiOlsiU2hlIG92ZXJoZWFyZCBhIGNvbnZlcnNhdGlvbiBhdCB0aGUgY2FmXHUwMGU5LiIsIlRoZXJlIHdhcyBhIHN0b3J5IGFib3V0IGl0IG9uIHRoZSBpbnRlcm5ldC4iLCJPdGhlciBwaWNrZXJzIHRvbGQgaGVyIGFib3V0IHRoZSBqb2IuIiwiU2hlIHNhdyBhbiBhZHZlcnRpc2VtZW50IGZvciBwaWNrZXJzLiJdLCJrZXkiOjR9LHsibiI6NiwicHJlIjoiV2hhdCBkaWQgSmFuaWNlIHByZWRpY3QgYWJvdXQgdGhlIGpvYj8iLCJvcHRpb25zIjpbInRoYXQgc2hlIHdvdWxkIG5lZWQgdG8gZHJlc3MgZGlmZmVyZW50bHkiLCJ0aGF0IGhlciByZXN1bWUgd291bGQgYmUgdW5uZWNlc3NhcnkiLCJ0aGF0IGhlciBwYXkgd291bGQgYmUgc2ltaWxhciB0byBoZXIgdXN1YWwgam9iIiwidGhhdCBzaGUgd291bGQgbmVlZCB0byB3b3JrIHRoZSBlbnRpcmUgc2Vhc29uIl0sImtleSI6MX1dfSx7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiSGVyZSBpcyBhIHJlc3BvbnNlIHRvIHRoZSBtZXNzYWdlLiBDb21wbGV0ZSB0aGUgcmVzcG9uc2UgYnkgZmlsbGluZyBpbiB0aGUgYmxhbmtzLiBTZWxlY3QgdGhlIGJlc3QgY2hvaWNlIGZvciBlYWNoIGJsYW5rIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLiIsImJvZHkiOlsiRGVhciBKYW5pY2UsXG5cbkl0J3MgaGFyZCB0byB0aGluayBvZiB5b3UgIix7ImIiOjcsIm9wdGlvbnMiOlsiZG9pbmcgc3VjaCBkaWZmaWN1bHQgb3V0ZG9vciB3b3JrIiwibWFuYWdpbmcgdHdvIHBhcnQtdGltZSBqb2JzIiwidGFraW5nIHN1Y2ggYSBzaG9ydCB2YWNhdGlvbiIsInRhbGtpbmcgYWJvdXQgeW91ciBqb2IgZXZlcnkgbmlnaHQiXSwia2V5IjoxfSwiLCBidXQgeW91IHNvdW5kIGxpa2UgeW91J3JlIGhhdmluZyBmdW4uIEkgdHJ1c3QgeW91IGhhdmUgeW91ciBjYW1lcmEgd2l0aCB5b3UgYW5kIGFyZSB0YWtpbmcgbG90cyBvZiBwaWN0dXJlcy4gV2hlbiB5b3UgZ2V0IGhvbWUsIEkgaG9wZSB5b3Ugd2lsbCB3cml0ZSAiLHsiYiI6OCwib3B0aW9ucyI6WyJhbiBpbGx1c3RyYXRlZCBhcnRpY2xlIGZvciB0aGUgbmV3c3BhcGVyIiwiYW4gaW5zdHJ1Y3Rpb25hbCBndWlkZSBmb3IgYXBwbGUgcGlja2VycyIsImEgZGVzY3JpcHRpb24gb2YgdGhlIHBlb3BsZSB5b3UndmUgbWV0IiwiYW4gaW5mb3JtYXRpdmUgc3RvcnkgZm9yIG91ciBib29rbGV0Il0sImtleSI6NH0sIiwgdXNpbmcgeW91ciBwaWN0dXJlcyBhbmQgeW91ciBqb3VybmFsIG5vdGVzLlxuXG5JIHRoaW5rIHRoaXMgaXMgYSBncmVhdCBleGFtcGxlIG9mIGFuIHVudXN1YWwgdmlzaXRvciBhY3Rpdml0eS4gRG8gb3RoZXIgYXBwbGUtcGlja2luZyBmYXJtcyAiLHsiYiI6OSwib3B0aW9ucyI6WyJwcm92aWRlIGZyZWUgcm9vbXMgYW5kIG1lYWxzIiwiZ2l2ZSBzdWNoIGRldGFpbGVkIHRyYWluaW5nIiwiaGlyZSBhdCB0aGlzIHRpbWUgb2YgdGhlIHllYXIiLCJoZWxwIGNob29zZSBnb29kIHdvcmsgY2xvdGhlcyJdLCJrZXkiOjF9LCIsIG9yIGFyZSB5b3UganVzdCBsdWNreT8gVGhhdCdzIGFuIGltcG9ydGFudCBwb2ludCB0byBtZW50aW9uLlxuXG5BbHNvLCBpcyB0aGVyZSBubyAiLHsiYiI6MTAsIm9wdGlvbnMiOlsic3Vuc2NyZWVuIG9yIGJ1ZyBzcHJheSBwcm92aWRlZCIsImNsYXNzIG9uIGNvb2tpbmcgd2l0aCBhcHBsZXMiLCJhdmFpbGFibGUgaW50ZXJuZXQgY29ubmVjdGlvbiIsImNoYW5jZSB0byB3b3JrIG1vcmUgd2Vla3MiXSwia2V5IjozfSwiLCBvciB3YXMgaXQgeW91ciBjaG9pY2Ugbm90IHRvIHRha2UgYWR2YW50YWdlIG9mIGl0PyBIb3cgaW50ZXJlc3RpbmcgdG8gdGFsayB3aXRoIHRoZSBvdGhlciBwaWNrZXJzISBNYXliZSB0aGV5IGNhbiBnaXZlIHlvdSBzb21lICIseyJiIjoxMSwib3B0aW9ucyI6WyJjbG90aGVzIHNob3BwaW5nIiwiam9iIGZpbmRpbmciLCJzbGVlcGluZyBvdXRkb29ycyIsIndlYiBkZXNpZ24iXSwia2V5IjoyfSwiIHRpcHMgZm9yIG91ciByZWFkZXJzIGludGVyZXN0ZWQgaW4gZG9pbmcgdGhlIHNhbWUuXG5cblZvbHVudGVlcnMgbGlrZSB5b3Ugd2lsbCBtYWtlIG91ciBib29rbGV0IGEgc3VjY2Vzcy4gVGhhbmtzIVxuXG5CZXN0LFxuQW5nZWxhIl19XX0seyJpZCI6MiwibmFtZSI6IlJlYWRpbmcgUGFydCAyOiBSZWFkaW5nIHRvIEFwcGx5IGEgRGlhZ3JhbSIsInRpbWUiOiI4IG1pbnV0ZXMiLCJwYXNzYWdlIjp7InR5cGUiOiJ0ZXh0IiwibGFiZWwiOiJSZWFkIHRoZSBmb2xsb3dpbmcgZGlhZ3JhbS4iLCJodG1sIjoiPGRpdiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNC41cHg7bGluZS1oZWlnaHQ6MS41O2NvbG9yOiMxZTI3MzNcIj48ZGl2IHN0eWxlPVwiYm9yZGVyOjFweCBzb2xpZCAjQzRDQ0Q4O2JvcmRlci1yYWRpdXM6NnB4O3BhZGRpbmc6MTZweCAyMHB4O21hcmdpbjowIGF1dG8gMTZweDttYXgtd2lkdGg6NjYwcHg7YmFja2dyb3VuZDojZmZmXCI+PHAgc3R5bGU9XCJmb250LWZhbWlseTpHZW9yZ2lhLCdUaW1lcyBOZXcgUm9tYW4nLHNlcmlmO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MjJweDttYXJnaW46MCAwIDZweDtjb2xvcjojMUU2RkIwXCI+U3QuIFBhdHJpY2sncyBHZW5lcmFsIEhvc3BpdGFsPC9wPjxwIHN0eWxlPVwibWFyZ2luOjRweCAwXCI+QSBsZWFkZXIgaW4gaGlnaC10ZWNoIG1lZGljYWwgcHJvY2VkdXJlcywgU3QuIFBhdHJpY2sncyBHZW5lcmFsIEhvc3BpdGFsIGlzIHNlZWtpbmcgYSBjb21taXR0ZWQgcHJvZmVzc2lvbmFsIHRvIGpvaW4gb3VyIGRvd250b3duIGNhbXB1cyBhcyBhbjwvcD48cCBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTZweDttYXJnaW46MTJweCAwIDhweFwiPkVtZXJnZW5jeSBSb29tIE51cnNlICg0MCBob3Vycy93ZWVrKTwvcD48cCBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDttYXJnaW46MTBweCAwIDJweFwiPlJlc3BvbnNpYmlsaXRpZXM6PC9wPjxwIHN0eWxlPVwibWFyZ2luOjRweCAwXCI+LSBBZG1pdHRpbmcgcGF0aWVudHMgYWNjb3JkaW5nIHRvIHRoZWlyIGxldmVsIG9mIG5lZWQ8YnI+LSBNb25pdG9yaW5nIHBhdGllbnQgY29uZGl0aW9ucyBhbmQgYWRtaW5pc3RlcmluZyBtZWRpY2F0aW9uIGFzIHJlcXVpcmVkPGJyPi0gTGlhaXNpbmcgd2l0aCBvdGhlciBwcm9mZXNzaW9uYWxzIGluY2x1ZGluZyBzb2NpYWwgd29ya2VycywgcHN5Y2hpYXRyaXN0czxicj4tIENvbW11bmljYXRpbmcgd2l0aCBwaHlzaWNpYW5zIGFuZCBwYXRpZW50cycgcmVsYXRpdmVzPC9wPjxwIHN0eWxlPVwibWFyZ2luOjRweCAwXCI+PGI+U2FsYXJ5OjwvYj4gY29tbWVuc3VyYXRlIHdpdGggZXhwZXJpZW5jZTwvcD48cCBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDttYXJnaW46MTBweCAwIDJweFwiPlF1YWxpZmljYXRpb25zOjwvcD48cCBzdHlsZT1cIm1hcmdpbjo0cHggMFwiPi0gQmFjaGVsb3IncyBEZWdyZWUgaW4gTnVyc2luZzxicj4tIE1pbmltdW0gMiB5ZWFycycgZXhwZXJpZW5jZSBwcmVmZXJyZWQ8YnI+LSBXaWxsaW5nbmVzcyB0byB3b3JrIGV2ZW5pbmcgYW5kIHdlZWtlbmQgc2hpZnRzPC9wPjxwIHN0eWxlPVwibWFyZ2luOjRweCAwO21hcmdpbi10b3A6MTBweFwiPjxiPkFwcGx5IE5vdzo8L2I+IGhyQHN0cGF0c2dlbi5jYTwvcD48L2Rpdj48ZGl2IHN0eWxlPVwiYm9yZGVyOjFweCBzb2xpZCAjQzRDQ0Q4O2JvcmRlci1yYWRpdXM6NnB4O3BhZGRpbmc6MTZweCAyMHB4O21hcmdpbjowIGF1dG8gMTZweDttYXgtd2lkdGg6NjYwcHg7YmFja2dyb3VuZDojZmZmO21hcmdpbi1ib3R0b206MFwiPjxwIHN0eWxlPVwiZm9udC1mYW1pbHk6R2VvcmdpYSwnVGltZXMgTmV3IFJvbWFuJyxzZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjIycHg7bWFyZ2luOjAgMCA2cHg7Y29sb3I6IzRDOUEyQVwiPlJpZGdlaGVpZ2h0IE1hbm9yPC9wPjxwIHN0eWxlPVwibWFyZ2luOjRweCAwXCI+QXMgYSBsb25nLXRlcm0gY2FyZSBmYWNpbGl0eSBzZXJ2aW5nIHJ1cmFsIHNlbmlvciBjaXRpemVucyBmb3Igb3ZlciA0MCB5ZWFycywgUmlkZ2VoZWlnaHQgTWFub3IgcHJpZGVzIGl0c2VsZiBvbiB0aGUgcXVhbGl0eSBvZiBjYXJlIHdlIHByb3ZpZGUgdG8gb3VyIHJlc2lkZW50cy4gV2UgYXJlIG5vdyBhY2NlcHRpbmcgYXBwbGljYXRpb25zIGZvciBhPC9wPjxwIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNnB4O21hcmdpbjoxMnB4IDAgOHB4XCI+UGFydC1UaW1lIFJlZ2lzdGVyZWQgUHJhY3RpY2FsIE51cnNlIChSUE4pPC9wPjxwIHN0eWxlPVwiZm9udC13ZWlnaHQ6NzAwO21hcmdpbjoxMHB4IDAgMnB4XCI+QXMgYW4gUlBOIGF0IFJpZGdlaGVpZ2h0IE1hbm9yLCB5b3Ugd2lsbCBiZSBhc2tlZCB0bzo8L3A+PHAgc3R5bGU9XCJtYXJnaW46NHB4IDBcIj4tIEFzc2VzcyByZXNpZGVudHMnIG5lZWRzIGFuZCBwcm92aWRlIGluZGl2aWR1YWxpemVkIGNhcmU8YnI+LSBBZG1pbmlzdGVyIG1lZGljYXRpb25zOyBtb25pdG9yIGFuZCByZXF1ZXN0IGFkanVzdG1lbnRzIGlmIG5lZWRlZDxicj4tIENvbW11bmljYXRlIHdpdGggcmVsYXRpdmVzLCBjbGVyZ3ksIGFuZCBvdGhlciBwcm9mZXNzaW9uYWxzIChlLmcuIHBoeXNpY2FsIHRoZXJhcGlzdHMpPGJyPi0gQXNzaXN0IHJlc2lkZW50cyB3aXRoIHRoZWlyIGRhaWx5IHJvdXRpbmVzLCBpbmNsdWRpbmcgbGVhZGluZyBwaHlzaWNhbCBhY3Rpdml0eSBzZXNzaW9uczwvcD48cCBzdHlsZT1cImZvbnQtd2VpZ2h0OjcwMDttYXJnaW46MTBweCAwIDJweFwiPldlIGFyZSBsb29raW5nIGZvcjo8L3A+PHAgc3R5bGU9XCJtYXJnaW46NHB4IDBcIj4tIEJhY2hlbG9yJ3MgRGVncmVlIGluIE51cnNpbmcsIHByZWZlcmFibHkgd2l0aCBzb21lIGNvdXJzZXMgcmVsYXRlZCB0byBnZXJvbnRvbG9neTxicj4tIEFiaWxpdHkgdG8gd29yayBvbi1jYWxsIHNoaWZ0cywgaW5jbHVkaW5nIG92ZXJuaWdodHM8L3A+PHAgc3R5bGU9XCJtYXJnaW46NHB4IDA7bWFyZ2luLXRvcDoxMHB4XCI+PGI+U3RhcnRpbmcgc2FsYXJ5OjwvYj4gJDI0LjE2L2hvdXI8L3A+PHAgc3R5bGU9XCJmb250LXdlaWdodDo3MDA7bWFyZ2luOjEwcHggMCAycHhcIj5QbGVhc2Ugc2VuZCB5b3VyIHJlc3VtZSBhbmQgY292ZXIgbGV0dGVyIHRvOjwvcD48cCBzdHlsZT1cIm1hcmdpbjo0cHggMFwiPkpvYW5uZSBLbmlnaHRseSwgRmFjaWxpdHkgRGlyZWN0b3I8YnI+amtuaWdodGx5QHJpZGdlaGVpZ2h0LmNhPC9wPjwvZGl2PjwvZGl2PiJ9LCJibG9ja3MiOlt7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiUmVhZCB0aGUgZm9sbG93aW5nIGVtYWlsLiBDb21wbGV0ZSB0aGUgZW1haWwgYnkgZmlsbGluZyBpbiB0aGUgYmxhbmtzLiBTZWxlY3QgdGhlIGJlc3QgY2hvaWNlIGZvciBlYWNoIGJsYW5rIGZyb20gdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLiIsImJvZHkiOlsiU3ViamVjdDogSm9icyFcblRvOiBBbGJlcnQgPGNvb2xhbGJlcnQxMDFAY2FubWFpbC5jYT5cbkZyb206IEppbSA8amltc2NhcmVlcmNvdW5zZWxsaW5nQG1haWxpbmcuY2E+XG5cbkhpIEFsYmVydCxcblxuSSBob3BlIHRoaXMgZW1haWwgZmluZHMgeW91IHdlbGwuXG5cbkkga25vdyB0aGF0IHlvdSd2ZSBiZWVuIGdvaW5nIHRocm91Z2ggYSBoYXJkIHRpbWUgbGF0ZWx5LCBidXQgbm93IHRoYXQgeW91J3ZlIGdyYWR1YXRlZCwgaXQncyB0aW1lIHRvIHN0YXJ0IHRoaW5raW5nIHNlcmlvdXNseSBhYm91dCB5b3VyIGNhcmVlci4gQm90aCBvZiB0aGVzZSBqb2JzIHdpbGwgcHJvdmlkZSBhIGdvb2QgaW50cm9kdWN0aW9uIHRvICIseyJiIjoxLCJvcHRpb25zIjpbImxvbmctdGVybSBwYXRpZW50IGNhcmUiLCJuZWVkcyBhc3Nlc3NtZW50IHdvcmsiLCJtZW50YWwgaGVhbHRoIHN1cHBvcnQiLCJiYXNpYyBudXJzaW5nIHRlcm1zIl0sImtleSI6Mn0sIi4gVGhleSBhbHNvIGJvdGggZW50YWlsICIseyJiIjoyLCJvcHRpb25zIjpbImxlYWRpbmcgcmVzaWRlbnQgYWN0aXZpdGllcyIsImNhcmUgZm9yIHRoZSBlbGRlcmx5IiwiaW50ZXJwZXJzb25hbCBza2lsbHMiLCJjcmVhdGluZyBwYXRpZW50IHJvdXRpbmVzIl0sImtleSI6M30sIiwgd2hpY2ggSSB0aGluayBzdWl0cyB5b3UuXG5cblRoZSBhZHZhbnRhZ2Ugb2YgdGhlIGZpcnN0IG9wdGlvbiBpcyB0aGF0IGl0IGlzICIseyJiIjozLCJvcHRpb25zIjpbImFuIGFkbWluaXN0cmF0aXZlIiwiYSBwZXJtYW5lbnQiLCJhbiBlbnRyeS1sZXZlbCIsImEgd2VsbC1wYWlkIl0sImtleSI6Mn0sIiBwb3NpdGlvbi4gVGhpcyBvcHRpb24ncyAiLHsiYiI6NCwib3B0aW9ucyI6WyJjYWxtIHNldHRpbmciLCJzdHVkZW50IGNsaWVudGVsZSIsImNlbnRyYWwgbG9jYXRpb24iLCJzdGFydGluZyBzYWxhcnkiXSwia2V5IjozfSwiIGlzIGFsc28gcHJvYmFibHkgbW9yZSB0byB5b3VyIGxpa2luZy4gSSBrbm93IHlvdSB3YW50IHRvIGdldCBhbiBhcGFydG1lbnQgc29vbiwgc28geW91IHdvdWxkIGhhdmUgdG8gZmFjdG9yIHRyYW5zcG9ydGF0aW9uIGNvc3RzIGluIHlvdXIgZGVjaXNpb24tbWFraW5nLlxuXG5Ib3dldmVyLCB0aGUgc2Vjb25kIG9uZSBpcyBwcm9iYWJseSBhIGJldHRlciBvcHRpb24gZm9yIHlvdSBmb3Igbm93LiBJdCdzIGNsb3NlIHRvIHRoZSB0cmFuc2l0IHN0YXRpb24sIHNvIGl0IHdvdWxkIGJlIG1vcmUgY29udmVuaWVudCBmb3IgY29tbXV0aW5nLiBEaWQgeW91IGV2ZXIgdGFrZSBhbnkgY291cnNlcyByZWxhdGVkIHRvIGNhcmUgZm9yIHRoZSBlbGRlcmx5PyBBbnl3YXksIGl0IHNvdW5kcyBsaWtlIHRoYXQgaXMgIix7ImIiOjUsIm9wdGlvbnMiOlsiYSBiaXQgcG9pbnRsZXNzIGZvciB0aGlzIHBvc2l0aW9uIiwiYW4gYXNzZXQgcmF0aGVyIHRoYW4gYSBuZWNlc3NpdHkiLCJhIGNvdXJzZSB5b3UgbXVzdCB0YWtlIGxhdGVyIG9uIiwiYSBwcmUtcmVxdWlzaXRlIGZvciB0aGlzIHBvc2l0aW9uIl0sImtleSI6Mn0sIi5cblxuUmVnYXJkcyxcbkppbSBXYW5nIl19LHsidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24uIiwiaXRlbXMiOlt7Im4iOjYsInByZSI6IldoYXQgaXMgbGlrZWx5IHRydWUgYWJvdXQgQWxiZXJ0PyIsIm9wdGlvbnMiOlsiSGUgaXMgdHJhaW5pbmcgZm9yIGEgbmV3IGNhcmVlci4iLCJIZSBpcyBmb2N1c2luZyBvbiBzY2hvb2x3b3JrLiIsIkhlIGhhcyBub3QgZmluaXNoZWQgaGlzIHByb2dyYW0uIiwiSGUgaGFzIG5vdCBhcHBsaWVkIHRvIGFueSBqb2JzLiJdLCJrZXkiOjR9LHsibiI6NywicHJlIjoiV2hhdCBkb2VzIEFsYmVydCdzIGNhcmVlciBjb3Vuc2VsbG9yIHN1Z2dlc3QgdGhhdCBoZSBkbz8iLCJvcHRpb25zIjpbImNob29zZSBhIGpvYiBiYXNlZCBvbiBpdHMgc2FsYXJ5IiwidGFrZSBjb3Vyc2VzIHJlbGF0ZWQgdG8gZWxkZXJseSBjYXJlIiwic3RhcnQgc2VhcmNoaW5nIGZvciBoaXMgb3duIGFwYXJ0bWVudCIsInJlZHVjZSBoaXMgY29tbXV0ZSBhcyBtdWNoIGFzIGhlIGNhbiJdLCJrZXkiOjR9LHsibiI6OCwicHJlIjoiV2hhdCBpcyBBbGJlcnQncyBjYXJlZXIgY291bnNlbGxvciBhc2tpbmcgaGltIHRvIGRvIGluIHRoaXMgZW1haWw\/Iiwib3B0aW9ucyI6WyJmb3JtIGEgbW9yZSBwb3NpdGl2ZSBhdHRpdHVkZSIsInB1cnN1ZSBoaXMgY2FyZWVyIGdvYWxzIiwiZ2V0IHNlcmlvdXMgYWJvdXQgaGlzIGVkdWNhdGlvbiIsInRha2UgYWRkaXRpb25hbCBjb3Vyc2VzIl0sImtleSI6Mn1dfV19LHsiaWQiOjMsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMzogUmVhZGluZyBmb3IgSW5mb3JtYXRpb24iLCJ0aW1lIjoiOSBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIHBhc3NhZ2UuIiwiaHRtbCI6IjxwPjxiPkEuPC9iPiBKdXN0IG5vcnRoIG9mIHRoZSBjaXR5IG9mIE90dGF3YSwgR2F0aW5lYXUgUGFyayBleHRlbmRzIG92ZXIgMzYsMDAwIGhlY3RhcmVzIGFuZCBpcyBjb25zaWRlcmVkIHRoZSBOYXRpb25hbCBDYXBpdGFsIFJlZ2lvbidzIHByaW5jaXBhbCBncmVlbiBzcGFjZS4gSG93ZXZlciwgNDAwIHllYXJzIGFnbywgdGhlIEdhdGluZWF1IEhpbGxzIHNlcnZlZCBhcyB0aGUgaHVudGluZyBhbmQgZmlzaGluZyBncm91bmRzIG9mIHRoZSBBbGdvbnF1aW5zLCBvbmUgb2YgQ2FuYWRhJ3MgbWFueSBJbmRpZ2Vub3VzIHBlb3BsZXMuIEFjY29yZGluZyB0byBhcmNoYWVvbG9naWNhbCBmaW5kaW5ncywgdGhlIEdhdGluZWF1IHJlZ2lvbiB3YXMgaG9tZSB0byB0aGUgQWxnb25xdWluIHBlb3BsZXMgZm9yIGF0IGxlYXN0IDQsMDAwIHllYXJzIGJlZm9yZSBpdHMgc2V0dGxlbWVudCBieSBFdXJvcGVhbnMgaW4gdGhlIGVhcmx5IDE2MDBzLiBUaGUgYXJlYSdzIGZvcmVzdHMsIHJpdmVycywgYW5kIHVuZGVyZ3JvdW5kIHJlc291cmNlcyBhdHRyYWN0ZWQgRXVyb3BlYW4gdHJhcHBlcnMsIGxvZ2dlcnMsIG1pbmVycywgYW5kIG1lcmNoYW50cyB3aG8gZXhwbG9pdGVkIHRoZSBsYW5kIGZvciBlY29ub21pYyBnYWluLiBUaGUgYXJlYSByZW1haW5zIGEgcmVnaW9uYWwgZWNvbm9taWMgYm9vc3RlciB0b2RheS48L3A+XG48cD48Yj5CLjwvYj4gQnkgdGhlIGVhcmx5IG5pbmV0ZWVudGggY2VudHVyeSwgbG9jYWxzIGxpdmluZyBuZWFyIHRoZSBHYXRpbmVhdSBIaWxscyBiZWdhbiByZWNvZ25pemluZyB0aGUgYmVuZWZpdCBvZiBwcmVzZXJ2aW5nIHRoZSByZWdpb24sIG5vdCBvbmx5IGZvciBmdXR1cmUgZ2VuZXJhdGlvbnMgdG8gZW5qb3kgYnV0IGFsc28gdG8gZGVmZW5kIHRoZSByZWdpb24ncyByZXNvdXJjZXMgYWdhaW5zdCBleGNlc3NpdmUgbWluaW5nIGFuZCBkZWZvcmVzdGF0aW9uLiBJdCB0b29rIGRlY2FkZXMgdG8gY29udmluY2UgdGhlIGZlZGVyYWwgZ292ZXJubWVudCB0byBhdXRob3JpemUgcHJvdGVjdGVkIHN0YXR1cyBmb3IgdGhlIEdhdGluZWF1IEhpbGxzLiBNb3JlIHVyZ2VudCBpc3N1ZXMgb2NjdXBpZWQgdGhlIGdvdmVybm1lbnQncyBhdHRlbnRpb24gdW50aWwgMTkzOCwgd2hlbiBHYXRpbmVhdSBQYXJrIHdhcyBvZmZpY2lhbGx5IGZvdW5kZWQuIEFsdGhvdWdoIHByaXZhdGUgaG9tZXMgbG9jYXRlZCB0aHJvdWdob3V0IHRoZSBhcmVhIHByZXZlbnRlZCBpdCBmcm9tIGJlaW5nIGdyYW50ZWQgc3RhdHVzIGFzIGEgYm9uYSBmaWRlIE5hdGlvbmFsIFBhcmssIGl0IGlzIG1hbmFnZWQgaW4gbXVjaCB0aGUgc2FtZSB3YXkgYXMgYSBuYXRpb25hbCBwYXJrIGJ5IHRoZSBOYXRpb25hbCBDYXBpdGFsIENvbW1pc3Npb24gKE5DQykuPC9wPlxuPHA+PGI+Qy48L2I+IFRvZGF5LCBHYXRpbmVhdSBQYXJrIGlzIG9uZSBvZiB0aGUgTmF0aW9uYWwgQ2FwaXRhbCBSZWdpb24ncyBwcmluY2lwYWwgdG91cmlzdCBhdHRyYWN0aW9ucyBhbmQgaG9tZSB0byBhbiBleHRlbnNpdmUgcmFuZ2Ugb2YgeWVhci1yb3VuZCByZWNyZWF0aW9uYWwgb3Bwb3J0dW5pdGllcywgaW5jbHVkaW5nIGRvd25oaWxsIGFuZCBjcm9zcy1jb3VudHJ5IHNraWluZywgc25vd3Nob2VpbmcsIGFuZCBpY2Utc2thdGluZy4gV2VhdGhlciBwZXJtaXR0aW5nLCB2aXNpdG9ycyBjYW4gYWxzbyBlbmpveSBzd2ltbWluZywgY2Fub2VpbmcsIGFuZCBrYXlha2luZywgbm90IHRvIG1lbnRpb24gY3ljbGluZywgY2xpbWJpbmcsIGNhbXBpbmcsIGFuZCBoaWtpbmcuIFRoZSBsYXN0IG9mIHRoZXNlIGFjdGl2aXRpZXMgaXMgcGFydGljdWxhcmx5IHBvcHVsYXIgZHVyaW5nIGZhbGwncyBmaW5hbCB3ZWVrcywgd2hlbiB0aGUgdHJlZXMgc2hvdyBvZmYgdGhlaXIgbW9zdCB2aXZpZCBjb2xvdXJzLiBUaGUgcmVnaW9uJ3MgbmF0dXJhbCBiZWF1dHkgaXMgYWxzbyBleGhpYml0ZWQgaW4gdGhlIHBhcmsncyBWaXNpdG9yIENlbnRyZSwgd2hlcmUgcGhvdG9zIGFuZCBwYWludGluZ3Mgb2YgdGhlIHJlZ2lvbiBhcmUgc29sZCBhcyBzb3V2ZW5pcnMuIFRoZSBWaXNpdG9yIENlbnRyZSBhbHNvIGRpc3BsYXlzIGluZm9ybWF0aW9uIG9uIHRoZSBwYXJrJ3MgaGlzdG9yeSBhbmQgd2lsZGxpZmUsIGFuZCBzZWxscyBwYXJrIHBhc3Nlcy48L3A+XG48cD48Yj5ELjwvYj4gR2F0aW5lYXUgUGFyaydzIGNvbnRpbnVlZCBwcm90ZWN0aW9uIHJlbWFpbnMgYSBwcmlvcml0eSBmb3IgdGhlIE5DQy4gVGhlIGFkbWluaXN0cmF0aW9uIGZhY2VzIG9uZ29pbmcgY2hhbGxlbmdlcywgbW9zdCBzaWduaWZpY2FudGx5LCBhIGRpc3B1dGUgb3ZlciBwcml2YXRlIHJlc2lkZW5jZSBjb25zdHJ1Y3Rpb24gd2l0aGluIHBhcmsgYm91bmRhcmllcy4gTm9uZXRoZWxlc3MsIHRoZSBOQ0MgcmVnYXJkcyBHYXRpbmVhdSBQYXJrIGFzIGEgc3VjY2Vzc2Z1bCBleGFtcGxlIG9mIGdvdmVybm1lbnQtc3BvbnNvcmVkIGN1bHR1cmFsIGFuZCBlbnZpcm9ubWVudGFsIGNvbnNlcnZhdGlvbi4gUGxhbnMgZm9yIHRoZSBwYXJrIGluY2x1ZGUgcHJlc2VydmluZyBhbmQgcmVzdG9yaW5nIGl0cyBuYXR1cmFsIHJlc291cmNlcy4gSW4gZnV0dXJlIHllYXJzLCB0aGUgZGV2ZWxvcG1lbnQgb2YgcmVjcmVhdGlvbmFsIGFuZCBlY290b3VyaXNtIGFjdGl2aXRpZXMgd2lsbCBhaW0gdG8gaW5jcmVhc2UgcmV2ZW51ZXMgdG8gc3VwcG9ydCB0aGUgcGFyay4gRmluYWxseSwgdGhlIE5DQyB3aWxsIGV4cGFuZCBjb21tdW5pdHkgZWR1Y2F0aW9uIGZhY2lsaXRpZXMgaGlnaGxpZ2h0aW5nIHRoZSByb2xlIHRoZSBHYXRpbmVhdSBIaWxscyBoYXZlIHBsYXllZCBpbiB0aGUgcmVnaW9uJ3MgaGlzdG9yeS48L3A+XG48cD48Yj5FLjwvYj4gTm90IGdpdmVuIGluIGFueSBvZiB0aGUgYWJvdmUgcGFyYWdyYXBocy48L3A+In0sImJsb2NrcyI6W3sidHlwZSI6Im1hdGNoIiwiaW5zdHIiOiJEZWNpZGUgd2hpY2ggcGFyYWdyYXBoLCBBIHRvIEQsIGhhcyB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gZWFjaCBzdGF0ZW1lbnQgYmVsb3cuIFNlbGVjdCBFIGlmIHRoZSBpbmZvcm1hdGlvbiBpcyBub3QgZ2l2ZW4gaW4gYW55IG9mIHRoZSBwYXJhZ3JhcGhzLiIsImxldHRlcnMiOlsiQSIsIkIiLCJDIiwiRCIsIkUiXSwiaXRlbXMiOlt7Im4iOjEsInRleHQiOiJHYXRpbmVhdSBQYXJrIHdhcyBub3QgZGVzaWduYXRlZCBhcyBhIGdlbnVpbmUgYW5kIG9mZmljaWFsIG5hdGlvbmFsIHBhcmsuIiwia2V5IjoyfSx7Im4iOjIsInRleHQiOiJUaGUgcGFyaydzIGF1dGhvcml0aWVzIGFyZSBwcmVwYXJpbmcgZXh0ZW5zaXZlIHJlc3RvcmF0aW9uIHRvIGF0dHJhY3QgbW9yZSB0b3VyaXN0cy4iLCJrZXkiOjR9LHsibiI6MywidGV4dCI6Ik1hbnkgcGVvcGxlIGNvbWUgdG8gc2VlIEdhdGluZWF1IFBhcmsncyBzcGVjdGFjdWxhciBzZWFzb25hbCBkaXNwbGF5LiIsImtleSI6M30seyJuIjo0LCJ0ZXh0IjoiRm9yZWlnbiBzZXR0bGVycyByZXBsYWNlZCB0aGUgbmF0aXZlIHJlc2lkZW50cyBvZiB0aGUgcGFyay4iLCJrZXkiOjF9LHsibiI6NSwidGV4dCI6IkFydHdvcmtzIG11c3QgYmUgcHVyY2hhc2VkIGRpcmVjdGx5IGZyb20gdGhlIHBhcmsncyBuYXRpdmUgY29tbXVuaXRpZXMuIiwia2V5Ijo1fSx7Im4iOjYsInRleHQiOiJOZWFyYnkgcmVzaWRlbnRzIHN1Y2NlZWRlZCBpbiBhY3F1aXJpbmcgZW52aXJvbm1lbnRhbCBwcm90ZWN0aW9uIGZvciB0aGUgR2F0aW5lYXUgSGlsbHMgYXJlYS4iLCJrZXkiOjJ9LHsibiI6NywidGV4dCI6IlRoZSByZXZlbnVlIGdlbmVyYXRlZCBieSBHYXRpbmVhdSBQYXJrIGhhcyBiZWVuIGluY3JlYXNpbmcgaW4gcmVjZW50IGRlY2FkZXMuIiwia2V5Ijo1fSx7Im4iOjgsInRleHQiOiJIb21lb3duZXJzIGFyZSBhdHRyYWN0ZWQgdG8gR2F0aW5lYXUgUGFyayBkdWUgdG8gdGhlIHNhZmV0eSBhbmQgcHJvc3Blcml0eSBvZiB0aGUgcmVnaW9uLiIsImtleSI6NX0seyJuIjo5LCJ0ZXh0IjoiR2F0aW5lYXUgUGFyayBpcyBjb25zaWRlcmVkIHRoZSBtb3N0IGltcG9ydGFudCBlY29sb2dpY2FsIGFyZWEgaW4gdGhlIEdhdGluZWF1IHJlZ2lvbi4iLCJrZXkiOjF9XX1dfSx7ImlkIjo0LCJuYW1lIjoiUmVhZGluZyBQYXJ0IDQ6IFJlYWRpbmcgZm9yIFZpZXdwb2ludHMiLCJ0aW1lIjoiMTIgbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBwYXNzYWdlLiIsImh0bWwiOiI8cD5Ub3VyaXNtIEJyaXRpc2ggQ29sdW1iaWEgcmVjZW50bHkgYW5ub3VuY2VkIGEgcGxhbiB0byBpbmplY3QgcHVibGljIGRvbGxhcnMgaW50byBwcm9tb3RpbmcgdGhlIHJhcGlkbHkgZ3Jvd2luZyB0cmF2ZWwgbmljaGUgb2YgZWNvdG91cmlzbS4gVGhlIHByb3ZpbmNlJ3MgbmF0dXJhbCBiZWF1dHkgYXR0cmFjdHMgMjAgbWlsbGlvbiB0b3VyaXN0cyBhbm51YWxseS4gVGhlIGdvdmVybm1lbnQgYWdlbmN5IGJlbGlldmVzIHRoYXQgbnVtYmVyIHdpbGwgc29hciBpZiB0aGUgcHJvdmluY2UgcHJvbW90ZXMgZWNvdG91cmlzbS4gVGhlIHByb2JsZW0gaXMgZGVjaWRpbmcgZXhhY3RseSB3aGVyZSB0byBjaGFubmVsIHRob3NlIG1hcmtldGluZyBhbmQgYWR2ZXJ0aXNpbmcgZG9sbGFycy4gVGhlIGFnZW5jeSdzIG1hcmtldGluZyBjb29yZGluYXRvciwgTWlqdW5nIFBhcmssIHNheXMgdGhlIHBsYW4sIGZvciBub3cgYXQgbGVhc3QsIGlzIHRvIHNlbGwgQnJpdGlzaCBDb2x1bWJpYSBhcyBhIHByZW1pZXIgZGVzdGluYXRpb24gZm9yIGtheWFraW5nLiBcIktheWFraW5nIGxldHMgdG91cmlzdHMgZXhwZXJpZW5jZSBCcml0aXNoIENvbHVtYmlhJ3Mgd2F0ZXJ3YXlzIHdpdGhvdXQgZGlzdHVyYmluZyB0aGUgc3Vycm91bmRpbmcgZWNvc3lzdGVtcyxcIiBzYXlzIFBhcmsuIFwiT2NlYW4gYW5kIHJpdmVyIGtheWFraW5nIGFyZSBib3RoIGhpZ2hseSBtYXJrZXRhYmxlLiBPdXIgYWdlbmN5J3MgbmV4dCBzdGVwIGlzIGRlY2lkaW5nIG9uIHF1ZXN0aW9ucyBvZiB3aGljaCBhbmQgaG93LlwiPC9wPlxuPHA+QnVzaW5lc3Mgb3duZXIgYW5kIHRvdXIgZ3VpZGUgRXJpYyBGZXJsYW5kIGlzIG1ha2luZyBhIHB1c2ggZm9yIHRoZSBidWxrIG9mIGZ1bmRzIHRvIGJlIGNoYW5uZWxlZCBpbnRvIHByb21vdGluZyBlc3RhYmxpc2hlZCBvY2VhbiBrYXlha2luZyBidXNpbmVzc2VzIGxpa2UgaGlzIG93biwgS2F5YWstTyBJbmMuIEZlcmxhbmQgc2F5cyBhbWF0ZXVyIGtheWFrZXJzIGhhdmUgbG9uZyBiZWVuIGRyYXduIHRvIHRoZSBjb2FzdGFsIHdhdGVycyBhbmQgb3BlbiBzZWEsIHdoZXJlIHRoZSBuZWVkIHRvIGNpcmN1bW5hdmlnYXRlIG9ic3RhY2xlcyBpcyBub25leGlzdGVudC4gXCJUaGVzZSByaXZlciBrYXlha2luZyBjb21wYW5pZXMgdGhhdCBoYXZlIGJlZW4gcG9wcGluZyB1cCBsYXRlbHkgYXJlIHByb21vdGluZyB0aGVtc2VsdmVzIGFzIG1vcmUgb2YgYW4gJ2V4dHJlbWUnIHNwb3J0LCBidXQgb2NlYW4ga2F5YWtpbmcgcHJvdmlkZXMgYW4gZXF1YWxseSBleGhpbGFyYXRpbmcsIHlldCBsZXNzIGFyZHVvdXMsIGVjb3RvdXJpc20gZXhjdXJzaW9uIHRoYXQgc3BhbnMgYSB3aWRlIGRlbW9ncmFwaGljLCBpbmNsdWRpbmcgb2xkZXIgY2xpZW50ZWxlLFwiIHNheXMgRmVybGFuZC48L3A+XG48cD5CdXQgUml2ZXIgQWR2ZW50dXJlcyBMdGQuIG93bmVyIExhcnMgTm9yZ2FhcmQgc3VnZ2VzdHMgRmVybGFuZCdzIHZpZXcgaWdub3JlcyBrZXkgZGlmZmVyZW5jZXMgaW4gdGhlIHR3byBrYXlha2luZyBvcHRpb25zLiBcIlJpdmVyIGtheWFrcywgaW4gZ2VuZXJhbCwgYXJlIGRlc2lnbmVkIGZvciBzdGFiaWxpdHkgYW5kIG1hbmV1dmVyYWJpbGl0eSwgYXMgbm92aWNlIHBhZGRsZXJzIGFyZSBvZnRlbiBhdCB0aGUgbWVyY3kgb2Ygc3Ryb25nIGN1cnJlbnRzLiBXZSBoYXZlIGNsaWVudGVsZSBvZiBhbGwgYWdlcyB3aG8gd2FudCBhIG1vcmUgd2hpdGUta251Y2tsZSBleHBlcmllbmNlIHRoYW4gd2hhdCBvY2VhbiBrYXlha2luZyBjYW4gb2ZmZXIgdGhlbS4gQnV0IGFueSBnZW51aW5lIGZlYXIgc3Vic2lkZXMgd2hlbiBjbGllbnRzIGRpc2NvdmVyIHRoYXQgcml2ZXIgbmF2aWdhdGlvbiBpcyBzdHJhaWdodGZvcndhcmQsIGFuZCBuZWFyYnkgc2hvcmVzIGNhbiBiZSB1c2VkIGFzIHJlZmVyZW5jZSBwb2ludHMuXCIgQWNjb3JkaW5nIHRvIE5vcmdhYXJkLCBoaXMgeW91bmcgY29tcGFueSBib2FzdHMgYW4gaW1wcmVzc2l2ZSBudW1iZXIgb2YgZmlyc3QtdGltZSwgb25lLW9mZiBjdXN0b21lcnMsIHRoYW5rcyB0byBpdHMgY29tcGV0aXRpdmUgcHJpY2luZy48L3A+XG48cD5Bc2tlZCBhYm91dCBoZXIgYWdlbmN5J3MgZnV0dXJlIGZ1bmRpbmcgcHJpb3JpdGllcywgUGFyayBzZWVtcyB0byBpbXBseSB0aGF0IGEgcmlzaW5nIHRpZGUgd2lsbCBsaWZ0IGFsbCBib2F0cy4gVGhlIGRlY2lzaW9uLCBzaGUgaW5zaXN0cywgXCJuZWVkcyB0byB0YWtlIGludG8gYWNjb3VudCB0aGUgYnJvYWQgaW50ZXJlc3RzIG9mIHRoZSBwcm92aW5jZSwgbm90IHRoZSBwcm9maXRzIGFueSBpbmRpdmlkdWFsIGVudGVycHJpc2Ugc3RhbmRzIHRvIGdhaW4uXCI8L3A+In0sImJsb2NrcyI6W3sidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJDaG9vc2UgdGhlIGJlc3Qgb3B0aW9uIHRvIGNvbXBsZXRlIGVhY2ggc3RhdGVtZW50IGFib3V0IHRoZSBhcnRpY2xlLiIsIml0ZW1zIjpbeyJuIjoxLCJwcmUiOiJXaGF0IGlzIHRoZSB0b3BpYyBvZiB0aGUgYXJ0aWNsZT8iLCJvcHRpb25zIjpbInN1cGVyaW9yaXR5IG9mIG9jZWFuIGtheWFrcyBvdmVyIHJpdmVyIGtheWFrcyIsInBsYW5zIGZvciBwdWJsaWNseS1mdW5kZWQga2F5YWsgZWNvdG91cmlzbSIsImRpZmZlcmVuY2VzIGJldHdlZW4gb2NlYW4gYW5kIHJpdmVyIGtheWFraW5nIiwiZGlmZmljdWx0aWVzIGluIGtheWFrLWJhc2VkIGVjb3RvdXJpc20iXSwia2V5IjoyfSx7Im4iOjIsInByZSI6IkFjY29yZGluZyB0byBGZXJsYW5kLCB3aGF0IGlzIGEgZHJhd2JhY2sgb2Ygcml2ZXIga2F5YWtpbmc\/Iiwib3B0aW9ucyI6WyJ0aGUgb3ZlcmFsbCBsZXZlbCBvZiBkaWZmaWN1bHR5IGludm9sdmVkIiwidGhlIGxhY2sgb2YgbG9uZy10ZXJtIGdyb3d0aCBpbiB0aGlzIHNlY3RvciIsInRoZSBkaWZmaWN1bHR5IHByb3ZpZGluZyBhIGZ1biBleGN1cnNpb24iLCJ0aGUgcG90ZW50aWFsIGZvciBhIGRhbmdlcm91cyBleHBlcmllbmNlIl0sImtleSI6MX0seyJuIjozLCJwcmUiOiJXaGF0IGRvZXMgRmVybGFuZCBzdWdnZXN0IGFib3V0IG9jZWFuIGtheWFraW5nIGluIEJyaXRpc2ggQ29sdW1iaWE\/Iiwib3B0aW9ucyI6WyJUaGVyZSBhcmUgZmV3ZXIgb3BlcmF0b3JzIHRoYW4gdGhlcmUgYXJlIGZvciByaXZlciBrYXlha2luZy4iLCJJdCBoYXMgYSBsb25nZXIgaGlzdG9yeSBpbiB0aGUgYXJlYSB0aGFuIHJpdmVyIGtheWFraW5nLiIsIlRoZXJlIGFyZSBtb3JlIG9ic3RhY2xlcyB0aGFuIHRoZXJlIGFyZSBpbiByaXZlciBrYXlha2luZy4iLCJJdCBoYXMgYSByZXB1dGF0aW9uIGFzIGJlaW5nIG1vcmUgZGFuZ2Vyb3VzIHRoYW4gcml2ZXIga2F5YWtpbmcuIl0sImtleSI6Mn0seyJuIjo0LCJwcmUiOiJXaGF0IHR5cGUgb2YgY2xpZW50cyBkb2VzIE5vcmdhYXJkIG1vc3QgbGlrZWx5IGF0dHJhY3Q\/Iiwib3B0aW9ucyI6WyJyZXBlYXQgY3VzdG9tZXJzIiwieW91bmdlciBhZHVsdHMiLCJjb21wZXRpdGl2ZSBrYXlha2VycyIsInRocmlmeSB0b3VyaXN0cyJdLCJrZXkiOjR9LHsibiI6NSwicHJlIjoiV2hhdCBkb2VzIFBhcmsgc2F5IG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgYmVmb3JlIG1ha2luZyBhIGRlY2lzaW9uPyIsIm9wdGlvbnMiOlsid2hhdCBpcyBiZXN0IGZvciBwcmVzZXJ2aW5nIHRoZSBlbnZpcm9ubWVudCIsIndoaWNoIGFjdGl2aXRpZXMgaW50ZXJlc3QgcmVzaWRlbnRzIHRoZSBtb3N0Iiwid2hhdCBpcyBiZXN0IGZvciBCcml0aXNoIENvbHVtYmlhIG92ZXJhbGwiLCJ3aGljaCBhY3Rpdml0aWVzIHdpbGwgZWFybiB0aGUgbW9zdCBtb25leSJdLCJrZXkiOjN9XX0seyJ0eXBlIjoiY2xvemUiLCJpbnN0ciI6IlRoZSBmb2xsb3dpbmcgaXMgYSBjb21tZW50IGJ5IGEgdmlzaXRvciB0byB0aGUgd2Vic2l0ZSBwYWdlLiBDb21wbGV0ZSB0aGUgY29tbWVudCBieSBjaG9vc2luZyB0aGUgYmVzdCBvcHRpb24gdG8gZmlsbCBpbiBlYWNoIGJsYW5rLiIsImJvZHkiOlsiTXkgdW5kZXJzdGFuZGluZywgYmFzZWQgb24gdGhpcyBhcnRpY2xlLCBpcyB0aGF0IFRvdXJpc20gQnJpdGlzaCBDb2x1bWJpYSB3aWxsIGJlICIseyJiIjo2LCJvcHRpb25zIjpbInJlc2VhcmNoaW5nIHZhcmlvdXMgbGFuZCBhbmQgd2F0ZXIgc3BvcnRzIiwiZG91YmxpbmcgdGhlIG51bWJlciBvZiB0b3VyaXN0cyBmcm9tIGFicm9hZCIsInNlZWtpbmcgdG8gZWxpbWluYXRlIG9uZSB0eXBlIG9mIGtheWFraW5nIiwiYm9vc3RpbmcgdGhlIHVzZSBvZiByZXNvdXJjZXMgb24gcmVjcmVhdGlvbiJdLCJrZXkiOjR9LCIuIEkgYWxzbyBnZXQgdGhlIGRpc3RpbmN0IGltcHJlc3Npb24gdGhhdCBpZiB0aGV5ICIseyJiIjo3LCJvcHRpb25zIjpbInByZXNlbnQgdGhlIHJpc2tzIG9mIiwiaW5jcmVhc2UgcHJpY2VzIGluIiwiaGlnaGxpZ2h0IHRoZSBwZWFjZWZ1bG5lc3Mgb2YiLCJmb2N1cyBlY290b3VyaXNtIGZ1bmRpbmcgb24iXSwia2V5Ijo0fSwiIHRoZSBlbWVyZ2luZyBtYXJrZXQgb2Ygcml2ZXIga2F5YWtpbmcsIGNvbXBhbmllcyBsaWtlIEZlcmxhbmQncyB3aWxsIHN0cnVnZ2xlIHRvIHN1cnZpdmUuIFRoaXMgd291bGQgYmUgdW5mb3J0dW5hdGUuIEFzIGFuIGF2aWQgb2NlYW4ga2F5YWtlciwgSSB0YWtlIGV4Y2VwdGlvbiB0byBOb3JnYWFyZCdzIGluc2ludWF0aW9uIHRoYXQgb2NlYW4ga2F5YWtpbmcgbGFja3MgIix7ImIiOjgsIm9wdGlvbnMiOlsiYSBzZW5zZSBvZiBkYW5nZXIiLCJpbnRlcmVzdGVkIGN1c3RvbWVycyIsImEgZmluYW5jaWFsIGZ1dHVyZSIsImFwcHJvcHJpYXRlIGZ1bmRpbmciXSwia2V5IjoxfSwiLiBJJ3ZlIHBhZGRsZWQgdGhyb3VnaCBhbGwgbWFubmVyIG9mIG9jZWFuIGN1cnJlbnQgYW5kIHdhdmUgY29uZGl0aW9ucy4gSSBhZ3JlZSB3aXRoIEZlcmxhbmQncyBwb2ludCB0aGF0IG9jZWFuIGtheWFraW5nIHJlcXVpcmVzICIseyJiIjo5LCJvcHRpb25zIjpbInNvbWUgcHJldmlvdXMgZXhwZXJpZW5jZSIsImxpdHRsZSBlZmZvcnQgdG8gZG8gd2VsbCIsImxlc3MgY29tcGxpY2F0ZWQgc3RlZXJpbmciLCJtb3JlIHRpbWUgdG8gZnVsbHkgZW5qb3kiXSwia2V5IjozfSwiLiBJIGRvIGhhdmUgdG8gYWRtaXQsIHRob3VnaCwgdGhhdCB0aGUgb3duZXIgb2YgUml2ZXIgQWR2ZW50dXJlcyBoYXMgYSBwb2ludCB0aGF0IGhpcyBzcG9ydCBzZWVtcyB0byBhdHRyYWN0IG1hbnkgIix7ImIiOjEwLCJvcHRpb25zIjpbInNlcmlvdXMgYW5kIGV4cGVyaWVuY2VkIGtheWFrZXJzIiwic2hvcnQtdGVybSBhZHZlbnR1cmUgc2Vla2VycyIsInZpc2l0b3JzIHdpdGggbGFyZ2UgYnVkZ2V0cyIsInlvdW5nIHBlb3BsZSB0byBCcml0aXNoIENvbHVtYmlhIl0sImtleSI6Mn0sIiwgd2hpY2ggY291bGQgYm9vc3QgZWNvdG91cmlzbSBmb3IgdGhlIHByb3ZpbmNlLiJdfV19XX07CgpmdW5jdGlvbiBjbGJFc3RpbWF0ZVIocmF3KXsKICBpZiAocmF3ID49IDM1KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDEwXHUyMDEzMTInLCBub3RlOidBZHZhbmNlZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDMwKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDknLCAgbm90ZTonRWZmZWN0aXZlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgOCcsICBub3RlOidHb29kIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjIpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNycsICBub3RlOidBZGVxdWF0ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDE3KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDYnLCAgbm90ZTonRGV2ZWxvcGluZyBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDExKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDUnLCAgbm90ZTonQWNxdWlyaW5nIHByb2ZpY2llbmN5JyB9OwogIHJldHVybiB7IGxldmVsOidDRUxQSVAgNCBvciBiZWxvdycsIG5vdGU6J0tlZXAgcHJhY3RpY2luZyEnIH07Cn0KCihmdW5jdGlvbigpewogIC8qIC0tLS0gaW5qZWN0IHNjb3BlZCBDU1MgKFdvcmRQcmVzcy1zYWZlOiA8c3R5bGU+IGluIGNvbnRlbnQgY2FuIGJlIHN0cmlwcGVkKSAtLS0tICovCiAgdmFyIENTUyA9IGAKLmNscHItd3JhcHstLW5hdnk6IzA1MEUyMDstLWI5MDA6IzBEMjM1MjstLWI3MDA6IzEyNDVBODstLWI1MDA6IzI1NjNFQjstLWI0MDA6IzNCODJGNjstLWIyMDA6IzkzQzVGRDstLWIxMDA6I0RCRUFGRTstLWI1MDojRUZGNkZGOy0tdGVhbDojMEQ5NDg4Oy0tY3lhbjojMDZCNkQ0Oy0tZ3JlZW46IzEwQjk4MTstLWdyZWVuNTA6I0VDRkRGNTstLXJvc2U6I0Y0M0Y1RTstLXRleHQ6IzBGMTcyQTstLW11dGVkOiM0NzU1Njk7LS1zdWJ0bGU6Izk0QTNCODstLWJvcmRlcjojRTJFOEYwOy0tYmFyLWJnOiNFOEVCRUY7LS1iYXItYm9yZGVyOiNEM0Q5RTA7LS1iYXItdGV4dDojMUYyOTM3Oy0tcGFuZWwtcC1iZzojRjRGNUY3Oy0tcGFuZWwtcC1ib3JkZXI6I0UzRTZFQTstLXBhbmVsLXEtYmc6I0U5RjRGNzstLXBhbmVsLXEtYm9yZGVyOiNENkU4RUQ7LS1kZC1vcGVuLWJnOiNDQkVCRjQ7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJyxzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sc2Fucy1zZXJpZjtjb2xvcjp2YXIoLS10ZXh0KTttYXgtd2lkdGg6MTE4MHB4O21hcmdpbjowIGF1dG87cGFkZGluZzoxNnB4IDE2cHggNTZweDtsaW5lLWhlaWdodDoxLjU7Zm9udC1zaXplOjE2cHg7fQouY2xwci13cmFwICosLmNscHItd3JhcCAqOjpiZWZvcmUsLmNscHItd3JhcCAqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7fQouY2xwci13cmFwIGJ1dHRvbntmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO30KLmNscHItd3JhcCBoMSwuY2xwci13cmFwIGgyLC5jbHByLXdyYXAgaDMsLmNscHItd3JhcCBwe21hcmdpbjowO30KLmNscHItaGVyb3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoyMnB4O2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjM0cHggMzhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxM3B4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym94LXNoYWRvdzowIDIwcHggNDBweCAtMjBweCByZ2JhKDUsMTQsMzIsLjQ1KTt9Ci5jbHByLWF1cm9yYXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouY2xwci1hdXJvcmEgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2ZpbHRlcjpibHVyKDQ2cHgpO29wYWNpdHk6LjU1O30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDEpe3dpZHRoOjQyMHB4O2hlaWdodDo0MjBweDtsZWZ0Oi0xMjBweDt0b3A6LTIwMHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMTI0NUE4IDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMil7d2lkdGg6MzgwcHg7aGVpZ2h0OjM4MHB4O3JpZ2h0Oi04MHB4O3RvcDotMTYwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMwRDk0ODggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgzKXt3aWR0aDozNDBweDtoZWlnaHQ6MzQwcHg7cmlnaHQ6MjIlO2JvdHRvbTotMjQwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWhlcm8tYmFkZ2Vze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fQouY2xwci1iYWRnZS1icmFuZHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tYjkwMCk7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6NHB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtsZXR0ZXItc3BhY2luZzouMDFlbTt9Ci5jbHByLWJhZGdlLXNldHtjb2xvcjp2YXIoLS1iMjAwKTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7fQouY2xwci1oZXJvIGgxe3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTpjbGFtcCgyNnB4LDR2dyw0MHB4KTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO2xpbmUtaGVpZ2h0OjEuMTI7fQouY2xwci1oZXJvLXN1Yntwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojQzdEMkUzO2ZvbnQtc2l6ZToxNC41cHg7bWF4LXdpZHRoOjc2MHB4O30KLmNscHItaGVyby1jaGlwc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWNoaXB7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I0U1RUVGQjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtwYWRkaW5nOjVweCAxMXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7fQouY2xwci1jdGF7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo2cHg7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTVweDtwYWRkaW5nOjEycHggMjJweDtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDEycHggMjRweCAtMTBweCByZ2JhKDM3LDk5LDIzNSwuOCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyxiYWNrZ3JvdW5kIC4xNXM7fQouY2xwci1jdGE6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7YmFja2dyb3VuZDp2YXIoLS1iNDAwKTt9Ci5jbHByLXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tdG9wOjE4cHg7cGFkZGluZzoxMHB4IDE0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDZweCAxOHB4IC0xMnB4IHJnYmEoMTUsMjMsNDIsLjI1KTtwb3NpdGlvbjpzdGlja3k7dG9wOjhweDt6LWluZGV4OjMwO30KLmNscHItdG9vbGJhcltoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXRvb2xiYXItc3BhY2Vye2ZsZXg6MTt9Ci5jbHByLXNjb3JlLWNoaXB7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLXRidG57YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtjb2xvcjp2YXIoLS10ZXh0KTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo4cHggMTVweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxib3gtc2hhZG93IC4xMnM7fQouY2xwci10YnRuOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTRweCAtOHB4IHJnYmEoMTUsMjMsNDIsLjMpO30KLmNscHItdGJ0bi1jaGVja3tiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTtib3JkZXItY29sb3I6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci10YnRuLWNoZWNrOmhvdmVye2JhY2tncm91bmQ6IzBjYTY3ODt9Ci5jbHByLXRidG5bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lO2JveC1zaGFkb3c6bm9uZTt9Ci5jbHByLXNpbXttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1zaW1baGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1kb3Rze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbjowIDAgMTJweCAycHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1kb3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1tdXRlZCk7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjE1czt9Ci5jbHByLWRvdCBie2Rpc3BsYXk6aW5saW5lLWZsZXg7d2lkdGg6MTlweDtoZWlnaHQ6MTlweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWIxMDApO2NvbG9yOnZhcigtLWI5MDApO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMXB4O30KLmNscHItZG90LmNscHItY3Vye2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1jdXIgYntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI1KTtjb2xvcjojZmZmO30KLmNscHItZG90LmNscHItZG9uZSBie2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci1jYXR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMXB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1iYXItYmcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItYmFyLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iYXItdGV4dCk7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItYmFyLXRpbWVye2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWJhci10ZXh0KTt3aGl0ZS1zcGFjZTpub3dyYXA7fQouY2xwci1iYXItdGltZXIgYntmb250LXdlaWdodDo4MDA7fQouY2xwci1jb2xze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MDt9Ci5jbHByLXBhc3NhZ2V7cGFkZGluZzoyMHB4IDIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbC1wLWJnKTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0OjEyMDBweDtvdmVyZmxvdzphdXRvO30KLmNscHItcWNvbHtwYWRkaW5nOjE4cHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXEtYmcpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1wbGFiZWwsLmNscHItaW5zdHJ7ZGlzcGxheTpmbGV4O2dhcDo5cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7bWFyZ2luLWJvdHRvbToxMnB4O30KLmNscHItcGxhYmVsOjpiZWZvcmUsLmNscHItaW5zdHI6OmJlZm9yZXtjb250ZW50OiJpIjtmbGV4Om5vbmU7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc3R5bGU6aXRhbGljO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjFweDt9Ci5jbHByLXBhc3NhZ2UgcHtmb250LXNpemU6MTQuNXB4O2NvbG9yOiMxZTJhM2E7bWFyZ2luLWJvdHRvbToxMXB4O2xpbmUtaGVpZ2h0OjEuNzI7fQouY2xwci1waW1ne3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2s7fQouY2xwci1ibG9ja3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1xLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTZweCAxNnB4O21hcmdpbi1ib3R0b206MTZweDt9Ci5jbHByLXN0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO3BhZGRpbmc6OXB4IDA7bGluZS1oZWlnaHQ6MS43O30KLmNscHItc3RlbSArIC5jbHByLXN0ZW17Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNFNkVERjE7fQouY2xwci1zbnVte2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTt9Ci5jbHByLWNsb3ple2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO2xpbmUtaGVpZ2h0OjIuMTU7fQouY2xwci1jbG96ZSAuY2xwci1wYXJhe21hcmdpbi1ib3R0b206MTJweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt9Ci5jbHByLW1hdGNoLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTJweDtwYWRkaW5nOjExcHggMDtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNjt9Ci5jbHByLW1hdGNoLXJvdyArIC5jbHByLW1hdGNoLXJvd3tib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLW1hdGNoLXJvdyAuY2xwci1zbnVte21hcmdpbi10b3A6NXB4O30KLyogZHJvcGRvd24gd2lkZ2V0ICovCi5jbHByLWRke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjoycHggMnB4O30KLmNscHItZGQtYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjY0cHg7bWF4LXdpZHRoOjM0MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNCN0MyQ0U7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo1cHggOXB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6MS4zNTt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnMsYm9yZGVyLWNvbG9yIC4xMnM7fQouY2xwci1kZC1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLmNscHItb3BlbiAuY2xwci1kZC1idG57YmFja2dyb3VuZDp2YXIoLS1kZC1vcGVuLWJnKTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fQouY2xwci1kZC10eHR7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItZGQtdHh0LmNscHItZW1wdHl7Y29sb3I6dmFyKC0tc3VidGxlKTtsZXR0ZXItc3BhY2luZzozcHg7fQouY2xwci1kZC1jYXJldHtmb250LXNpemU6OXB4O2NvbG9yOnZhcigtLWI3MDApO2ZsZXg6bm9uZTt9Ci5jbHByLWRkLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2MDt0b3A6Y2FsYygxMDAlICsgNHB4KTtsZWZ0OjA7bWluLXdpZHRoOjI0MHB4O21heC13aWR0aDozNjBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjQzZEMERBO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCAxNnB4IDM0cHggLTEycHggcmdiYSgxNSwyMyw0MiwuNCk7cGFkZGluZzo1cHg7ZGlzcGxheTpub25lO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLW1lbnV7ZGlzcGxheTpibG9jazt9Ci5jbHByLWRkLW9wdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OXB4O3BhZGRpbmc6OHB4IDlweDtib3JkZXItcmFkaXVzOjZweDtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLXRleHQpO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuNDt9Ci5jbHByLWRkLW9wdDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7fQouY2xwci1kZC1vcHQgLmNscHItcmFkaW97ZmxleDpub25lO3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjEuNXB4IHNvbGlkICM5QUE3QjQ7bWFyZ2luLXRvcDoxcHg7fQouY2xwci1kZC1vcHQuY2xwci1zZWwgLmNscHItcmFkaW97Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDQyJSwjZmZmIDQ3JSk7fQouY2xwci1kZC5jbHByLXJpZ2h0IC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApO2JvcmRlcjoycHggc29saWQgdmFyKC0tZ3JlZW4pO2NvbG9yOiMwNDc4NTc7fQouY2xwci1kZC5jbHByLXdyb25nIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOiNGRkYxRjI7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1yb3NlKTtjb2xvcjojQkUxMjNDO30KLmNscHItc29sdmVke2Rpc3BsYXk6bm9uZTttYXJnaW4tbGVmdDo3cHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItc29sdmVke2Rpc3BsYXk6aW5saW5lO30KLmNscHItbmF2e2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE0cHggMThweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1uYXZidG57YmFja2dyb3VuZDp2YXIoLS1iOTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O3BhZGRpbmc6OXB4IDIwcHg7Ym9yZGVyLXJhZGl1czo5cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxiYWNrZ3JvdW5kIC4xMnM7fQouY2xwci1uYXZidG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNzAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt9Ci5jbHByLW5hdmJ0bi5jbHByLWdob3N0e2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bltkaXNhYmxlZF17b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7fQouY2xwci1yZXN1bHRze21hcmdpbi10b3A6MThweDt9Ci5jbHByLXJlc3VsdHNbaGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1yZXMtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjI0cHggMjZweDtib3gtc2hhZG93OjAgMTZweCA0MHB4IC0yMnB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItcmVzLXRvcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoyMHB4O2ZsZXgtd3JhcDp3cmFwO30KLmNscHItcmVzLXNjb3Jle2ZvbnQtc2l6ZTo0NHB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTtsaW5lLWhlaWdodDoxO30KLmNscHItcmVzLXNjb3JlIHNwYW57Zm9udC1zaXplOjIwcHg7Y29sb3I6dmFyKC0tc3VidGxlKTt9Ci5jbHByLXJlcy1jbGJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTBweCAxNnB4O30KLmNscHItcmVzLWNsYiBie2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE4cHg7Y29sb3I6dmFyKC0tYjkwMCk7fQouY2xwci1yZXMtY2xiIHNtYWxse2NvbG9yOnZhcigtLW11dGVkKTt9Ci5jbHByLXJlcy1icmVha3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxNnB4O30KLmNscHItcmVzLXBpbGx7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNGMUY1Rjk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjZweCAxM3B4O30KLmNscHItcmVzLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtmbGV4LXdyYXA6d3JhcDt9CkBtZWRpYShtYXgtd2lkdGg6ODIwcHgpey5jbHByLWNvbHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmNscHItcGFzc2FnZXtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7bWF4LWhlaWdodDpub25lO30uY2xwci1xY29se21heC1oZWlnaHQ6bm9uZTt9fQpgOwogIHZhciBzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7IHN0LnRleHRDb250ZW50ID0gQ1NTOyBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KTsKICB2YXIgd3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByV3JhcCcpOwogIHZhciBzdGFydEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU3RhcnQnKTsKICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByVG9vbGJhcicpOwogIHZhciBzaW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNpbScpOwogIHZhciBkb3RzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckRvdHMnKTsKICB2YXIgY2F0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNhdCcpOwogIHZhciByZXN1bHRzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc3VsdHMnKTsKICB2YXIgc2NvcmVDaGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTY29yZUNoaXAnKTsKICB2YXIgY2hlY2tCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNoZWNrJyk7CiAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXNldCcpOwoKICB2YXIgUSA9IFtdOwogIHZhciBjdXJQYXJ0ID0gMDsKICB2YXIgY2hlY2tlZCA9IGZhbHNlOwoKICBmdW5jdGlvbiBlbCh0YWcsIGNscywgaHRtbCl7IHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsgaWYoY2xzKWUuY2xhc3NOYW1lPWNsczsgaWYoaHRtbCE9bnVsbCllLmlubmVySFRNTD1odG1sOyByZXR1cm4gZTsgfQoKICAvKiBCdWlsZCB0aGUgcGVyc2lzdGVudCBxdWVzdGlvbiBsaXN0IE9OQ0U7IGF0dGFjaCAuX3EgdG8gZWFjaCBpdGVtL2JsYW5rIHNvCiAgICAgcmUtcmVuZGVyaW5nIGEgcGFydCByZXVzZXMgdGhlIHNhbWUgc3RhdGUgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4gKi8KICBmdW5jdGlvbiBpbml0UXVlc3Rpb25zKCl7CiAgICBRID0gW107CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpewogICAgICBwYXJ0LmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uKGJsayl7CiAgICAgICAgaWYoYmxrLnR5cGU9PT0nY2xvemUnKXsKICAgICAgICAgIGJsay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsgaWYodHlwZW9mIHRvaz09PSdvYmplY3QnKXsgdG9rLl9xPXtzZWw6bnVsbCxrZXk6dG9rLmtleSxuOnRvay5iLHBhcnQ6cGFydC5pZH07IFEucHVzaCh0b2suX3EpOyB9IH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBibGsuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7IGl0Ll9xPXtzZWw6bnVsbCxrZXk6aXQua2V5LG46aXQubixwYXJ0OnBhcnQuaWR9OyBRLnB1c2goaXQuX3EpOyB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBtYWtlRHJvcGRvd24ob3B0aW9ucywgcXJlZil7CiAgICB2YXIgZGQgPSBlbCgnc3BhbicsJ2NscHItZGQnKTsKICAgIHZhciBidG4gPSBlbCgnYnV0dG9uJywnY2xwci1kZC1idG4nKTsKICAgIHZhciB0eHQgPSBlbCgnc3BhbicsJ2NscHItZGQtdHh0IGNscHItZW1wdHknLCcgICAnKTsKICAgIHZhciBjYXJldCA9IGVsKCdzcGFuJywnY2xwci1kZC1jYXJldCcsJ1x1MjViZScpOwogICAgYnRuLmFwcGVuZENoaWxkKHR4dCk7IGJ0bi5hcHBlbmRDaGlsZChjYXJldCk7CiAgICB2YXIgc29sdmVkID0gZWwoJ3NwYW4nLCdjbHByLXNvbHZlZCcsJycpOwogICAgdmFyIG1lbnUgPSBlbCgnc3BhbicsJ2NscHItZGQtbWVudScpOwogICAgb3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG9wdCwgaSl7CiAgICAgIHZhciBvID0gZWwoJ3NwYW4nLCdjbHByLWRkLW9wdCcpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1yYWRpbycpKTsKICAgICAgby5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxvcHQpKTsKICAgICAgby5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICBpZihjaGVja2VkKSByZXR1cm47CiAgICAgICAgcXJlZi5zZWwgPSBpKzE7CiAgICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0OyB0eHQuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7CiAgICAgICAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1zZWwnKTt9KTsKICAgICAgICBvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICAgICAgY2xvc2VBbGwoKTsKICAgICAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgICAgfSk7CiAgICAgIG1lbnUuYXBwZW5kQ2hpbGQobyk7CiAgICB9KTsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgdmFyIHdhc09wZW4gPSBkZC5jbGFzc0xpc3QuY29udGFpbnMoJ2NscHItb3BlbicpOwogICAgICBjbG9zZUFsbCgpOwogICAgICBpZighd2FzT3BlbikgZGQuY2xhc3NMaXN0LmFkZCgnY2xwci1vcGVuJyk7CiAgICB9KTsKICAgIGRkLmFwcGVuZENoaWxkKGJ0bik7IGRkLmFwcGVuZENoaWxkKHNvbHZlZCk7IGRkLmFwcGVuZENoaWxkKG1lbnUpOwogICAgcXJlZi5kZEVsID0gZGQ7IHFyZWYudHh0RWwgPSB0eHQ7IHFyZWYuc29sdmVkRWwgPSBzb2x2ZWQ7IHFyZWYub3B0aW9ucyA9IG9wdGlvbnM7CiAgICBpZihxcmVmLnNlbCE9bnVsbCl7CiAgICAgIHR4dC50ZXh0Q29udGVudCA9IG9wdGlvbnNbcXJlZi5zZWwtMV07IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgdmFyIHNvID0gbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKVtxcmVmLnNlbC0xXTsgaWYoc28pIHNvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICB9CiAgICByZXR1cm4gZGQ7CiAgfQogIGZ1bmN0aW9uIGNsb3NlQWxsKCl7IHdyYXAucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQuY2xwci1vcGVuJykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItb3BlbicpO30pOyB9CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUFsbCk7CgogIGZ1bmN0aW9uIGJ1aWxkUGFydChwaSl7CiAgICB2YXIgcGFydCA9IFJEQVRBLnBhcnRzW3BpXTsKICAgIGNhdEVsLmlubmVySFRNTD0nJzsKICAgIHZhciBiYXIgPSBlbCgnZGl2JywnY2xwci1iYXInKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1iYXItdGl0bGUnLCAnUHJhY3RpY2UgVGVzdCAyIFx1MjAxMyAnK3BhcnQubmFtZSkpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aW1lcicsJ1N1Z2dlc3RlZCB0aW1lOiA8Yj4nK3BhcnQudGltZSsnPC9iPicpKTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGJhcik7CiAgICB2YXIgY29scyA9IGVsKCdkaXYnLCdjbHByLWNvbHMnKTsKICAgIHZhciBsZWZ0ID0gZWwoJ2RpdicsJ2NscHItcGFzc2FnZScpOwogICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1wbGFiZWwnLCBwYXJ0LnBhc3NhZ2UubGFiZWwpKTsKICAgIGlmKHBhcnQucGFzc2FnZS50eXBlPT09J2ltYWdlJyl7CiAgICAgIHZhciBpbWcgPSBlbCgnaW1nJywnY2xwci1waW1nJyk7IGltZy5zcmMgPSBwYXJ0LnBhc3NhZ2Uuc3JjOyBpbWcuYWx0ID0gcGFydC5wYXNzYWdlLmFsdHx8Jyc7IGxlZnQuYXBwZW5kQ2hpbGQoaW1nKTsKICAgIH0gZWxzZSB7CiAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsbnVsbCwgcGFydC5wYXNzYWdlLmh0bWwpKTsKICAgIH0KICAgIHZhciByaWdodCA9IGVsKCdkaXYnLCdjbHByLXFjb2wnKTsKICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxvY2speyByaWdodC5hcHBlbmRDaGlsZChidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KSk7IH0pOwogICAgY29scy5hcHBlbmRDaGlsZChsZWZ0KTsgY29scy5hcHBlbmRDaGlsZChyaWdodCk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChjb2xzKTsKICAgIHZhciBuYXYgPSBlbCgnZGl2JywnY2xwci1uYXYnKTsKICAgIHZhciBwcmV2ID0gZWwoJ2J1dHRvbicsJ2NscHItbmF2YnRuIGNscHItZ2hvc3QnLCdcdTIxOTAgUHJldmlvdXMgcGFydCcpOwogICAgdmFyIG5leHQgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4nLCdOZXh0IHBhcnQgXHUyMTkyJyk7CiAgICBwcmV2LmRpc2FibGVkID0gKHBpPT09MCk7IG5leHQuZGlzYWJsZWQgPSAocGk9PT1SREFUQS5wYXJ0cy5sZW5ndGgtMSk7CiAgICBwcmV2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk+MCkgZ28ocGktMSk7IH0pOwogICAgbmV4dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmKHBpPFJEQVRBLnBhcnRzLmxlbmd0aC0xKSBnbyhwaSsxKTsgfSk7CiAgICBuYXYuYXBwZW5kQ2hpbGQocHJldik7IG5hdi5hcHBlbmRDaGlsZChuZXh0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKG5hdik7CiAgICBpZihjaGVja2VkKSBhcHBseU1hcmtzKCk7CiAgfQoKICBmdW5jdGlvbiBidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KXsKICAgIHZhciB3cmFwQiA9IGVsKCdkaXYnLCdjbHByLWJsb2NrJyk7CiAgICB3cmFwQi5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1pbnN0cicsIGJsb2NrLmluc3RyKSk7CiAgICBpZihibG9jay50eXBlPT09J3N0ZW1saXN0Jyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1zdGVtJyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnByZSsnICcpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGl0Lm9wdGlvbnMsIGl0Ll9xKSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdjbG96ZScpewogICAgICB2YXIgYm94ID0gZWwoJ2RpdicsJ2NscHItY2xvemUnKTsKICAgICAgYmxvY2suYm9keS5mb3JFYWNoKGZ1bmN0aW9uKHRvayl7CiAgICAgICAgaWYodHlwZW9mIHRvaz09PSdzdHJpbmcnKXsKICAgICAgICAgIHZhciBzZWdzID0gdG9rLnNwbGl0KCdcblxuJyk7CiAgICAgICAgICBzZWdzLmZvckVhY2goZnVuY3Rpb24oc2VnLCBpZHgpewogICAgICAgICAgICBpZihpZHg+MCl7IGJveC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwnPGJyPjxicj4nKSk7IH0KICAgICAgICAgICAgYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNlZykpOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24odG9rLm9wdGlvbnMsIHRvay5fcSkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHdyYXBCLmFwcGVuZENoaWxkKGJveCk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdtYXRjaCcpewogICAgICBibG9jay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsKICAgICAgICB2YXIgcm93ID0gZWwoJ2RpdicsJ2NscHItbWF0Y2gtcm93Jyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bihibG9jay5sZXR0ZXJzLCBpdC5fcSkpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItc251bScsIGl0Lm4rJy4nKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCBpdC50ZXh0KSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gd3JhcEI7CiAgfQoKICBmdW5jdGlvbiBidWlsZERvdHMoKXsKICAgIGRvdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHAsIGkpewogICAgICB2YXIgZCA9IGVsKCdidXR0b24nLCdjbHByLWRvdCcrKGk9PT1jdXJQYXJ0PycgY2xwci1jdXInOicnKSk7CiAgICAgIGQuYXBwZW5kQ2hpbGQoZWwoJ2InLG51bGwsKGkrMSkpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxbJ0NvcnJlc3BvbmRlbmNlJywnQXBwbHkgYSBEaWFncmFtJywnSW5mb3JtYXRpb24nLCdWaWV3cG9pbnRzJ11baV0pKTsKICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKGkpOyB9KTsKICAgICAgZG90c0VsLmFwcGVuZENoaWxkKGQpOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGdvKHBpKXsgY3VyUGFydD1waTsgYnVpbGREb3RzKCk7IGJ1aWxkUGFydChwaSk7IGNhdEVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7IH0KCiAgZnVuY3Rpb24gdXBkYXRlU2NvcmVDaGlwKCl7CiAgICB2YXIgYW5zID0gUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsIT1udWxsO30pLmxlbmd0aDsKICAgIHNjb3JlQ2hpcC50ZXh0Q29udGVudCA9IGNoZWNrZWQgPyAoUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsPT09cS5rZXk7fSkubGVuZ3RoKycgLyAnK1EubGVuZ3RoKycgY29ycmVjdCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGFucysnIC8gJytRLmxlbmd0aCsnIGFuc3dlcmVkJyk7CiAgfQoKICBmdW5jdGlvbiBhcHBseU1hcmtzKCl7CiAgICBRLmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICAgIGlmKCFxLmRkRWwpIHJldHVybjsKICAgICAgcS5kZEVsLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItcmlnaHQnLCdjbHByLXdyb25nJyk7CiAgICAgIGlmKHEuc2VsPT09cS5rZXkpeyBxLmRkRWwuY2xhc3NMaXN0LmFkZCgnY2xwci1yaWdodCcpOyB9CiAgICAgIGVsc2UgewogICAgICAgIHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXdyb25nJyk7CiAgICAgICAgaWYocS5zb2x2ZWRFbCkgcS5zb2x2ZWRFbC50ZXh0Q29udGVudCA9ICdcdTI3MTMgJytxLm9wdGlvbnNbcS5rZXktMV07CiAgICAgICAgaWYocS5zZWw9PW51bGwgJiYgcS50eHRFbCl7IHEudHh0RWwudGV4dENvbnRlbnQ9JyhubyBhbnN3ZXIpJzsgcS50eHRFbC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsgfQogICAgICB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGRvQ2hlY2soKXsKICAgIGNoZWNrZWQgPSB0cnVlOwogICAgYXBwbHlNYXJrcygpOwogICAgdmFyIGNvcnJlY3QgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGg7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIGNoZWNrQnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgIHZhciBieVBhcnQgPSB7fTsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsgYnlQYXJ0W3EucGFydF09YnlQYXJ0W3EucGFydF18fHtjOjAsdDowfTsgYnlQYXJ0W3EucGFydF0udCsrOyBpZihxLnNlbD09PXEua2V5KWJ5UGFydFtxLnBhcnRdLmMrKzsgfSk7CiAgICB2YXIgZXN0ID0gY2xiRXN0aW1hdGVSKGNvcnJlY3QpOwogICAgdmFyIHBpbGxzID0gUkRBVEEucGFydHMubWFwKGZ1bmN0aW9uKHApeyB2YXIgYj1ieVBhcnRbcC5pZF18fHtjOjAsdDowfTsgcmV0dXJuICc8c3BhbiBjbGFzcz0iY2xwci1yZXMtcGlsbCI+UGFydCAnK3AuaWQrJzogJytiLmMrJy8nK2IudCsnPC9zcGFuPic7IH0pLmpvaW4oJycpOwogICAgcmVzdWx0c0VsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jYXJkIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXRvcCI+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1zY29yZSI+Jytjb3JyZWN0Kyc8c3Bhbj4vJytRLmxlbmd0aCsnPC9zcGFuPjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtY2xiIj48Yj4nK2VzdC5sZXZlbCsnPC9iPjxzbWFsbD4nK2VzdC5ub3RlKycgJm1pZGRvdDsgZXN0aW1hdGVkIFJlYWRpbmcgYmFuZDwvc21hbGw+PC9kaXY+JwogICAgICArICc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWJyZWFrIj4nK3BpbGxzKyc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIGNscHItZ2hvc3QiIGlkPSJjbHByUmV2aWV3Ij5SZXZpZXcgYW5zd2VycyBpbiBlYWNoIHBhcnQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJjbHByLW5hdmJ0biIgaWQ9ImNscHJSZXRyeSI+VHJ5IGFnYWluPC9idXR0b24+PC9kaXY+JwogICAgICArICc8cCBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpIj5Fc3RpbWF0ZWQgYmFuZCBpcyBhIHN0dWR5IGd1aWRlIG9ubHksIG5vdCBhbiBvZmZpY2lhbCBDRUxQSVAgc2NvcmUuIENvcnJlY3QgYW5zd2VycyBhcmUgc2hvd24gd2l0aCBhIGdyZWVuIGNoZWNrIG9uIGVhY2ggZHJvcC1kb3duIHlvdSBhbnN3ZXJlZCBpbmNvcnJlY3RseS48L3A+JwogICAgICArICc8L2Rpdj4nOwogICAgcmVzdWx0c0VsLmhpZGRlbiA9IGZhbHNlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXRyeScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXZpZXcnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKDApOyB9KTsKICAgIHJlc3VsdHNFbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgZnVuY3Rpb24gcmVzZXRBbGwoKXsKICAgIGNoZWNrZWQ9ZmFsc2U7IGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOwogICAgY2hlY2tCdG4uZGlzYWJsZWQ9ZmFsc2U7CiAgICByZXN1bHRzRWwuaGlkZGVuPXRydWU7IHJlc3VsdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KDApOwogICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICBzaW0uc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsKICB9CgogIHN0YXJ0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHdyYXAucXVlcnlTZWxlY3RvcignLmNscHItaGVybycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgdG9vbGJhci5oaWRkZW49ZmFsc2U7IHNpbS5oaWRkZW49ZmFsc2U7CiAgICBpbml0UXVlc3Rpb25zKCk7IGN1clBhcnQ9MDsgY2hlY2tlZD1mYWxzZTsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7IHVwZGF0ZVNjb3JlQ2hpcCgpOwogIH0pOwogIGNoZWNrQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZG9DaGVjayk7CiAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7Cn0pKCk7\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 1 Practice Test 2: 4 parts, 38 questions in the real exam format with instant scoring and answer key. About 55 minutes. Free, no sign-up.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-6027","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=6027"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6027\/revisions"}],"predecessor-version":[{"id":6609,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6027\/revisions\/6609"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}