{"id":6475,"date":"2026-07-11T11:40:29","date_gmt":"2026-07-11T11:40:29","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-12-test-2-reading\/"},"modified":"2026-07-12T03:24:17","modified_gmt":"2026-07-12T03:24:17","slug":"celpip-set-12-test-2-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-12-test-2-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 12 \u00b7 Practice Test 2"},"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 12<\/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(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMiAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAyIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiAiUHJhY3RpY2UgVGVzdCAyIiwgInBhcnRzIjogW3siaWQiOiAxLCAibmFtZSI6ICJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsICJ0aW1lIjogIjEwIG1pbnV0ZXMiLCAicGFzc2FnZSI6IHsidHlwZSI6ICJ0ZXh0IiwgImxhYmVsIjogIlJlYWQgdGhlIGZvbGxvd2luZyBtZXNzYWdlLiIsICJodG1sIjogIjxwPkdvb2QgYWZ0ZXJub29uLDwvcD48cD5JIGFtIHdyaXRpbmcgdG8geW91IHJlZ2FyZGluZyB0aGUgbmV3IHZpb2xpbiB0ZWFjaGVyIHRoYXQgbXkgZGF1Z2h0ZXIgaGFzIGJlZW4gYXNzaWduZWQuIE15IGRhdWdodGVyLCB3aG8gaXMgZWlnaHQgeWVhcnMgb2xkLCBoYXMgYmVlbiBzdHVkeWluZyB2aW9saW4gYXQgeW91ciBtdXNpYyBzY2hvb2wgc2luY2Ugc2hlIHdhcyB0aHJlZS4gQXMgeW91IGtub3csIFRhcmEsIG15IGRhdWdodGVyJnJzcXVvO3MgdGVhY2hlciBvdmVyIHRoaXMgZml2ZS15ZWFyIHNwYW4sIHJlY2VudGx5IGJlY2FtZSBzZXJpb3VzbHkgaWxsIGFuZCBoYWQgdG8gc3RvcCB0ZWFjaGluZy4gVGhpcyB3YXMgYSBncmVhdCBkaXNhcHBvaW50bWVudCB0byBib3RoIG15IGRhdWdodGVyIGFuZCBtZSwgYXMgVGFyYSB3YXMgdHJ1bHkgZXhjZXB0aW9uYWwgYXQgaGVyIGpvYi4gV2Ugc2luY2VyZWx5IGhvcGUgdGhhdCBzaGUgcmVjb3ZlcnMgc29vbi48L3A+PHA+TmVpdGhlciBteSBkYXVnaHRlciBub3IgSSBoYXZlIGJlZW4gaW1wcmVzc2VkIHdpdGggdGhlIHRlYWNoZXIgY2hvc2VuIHRvIHRha2Ugb3ZlciBUYXJhJnJzcXVvO3Mgc3R1ZGVudHMuIEF0IGZpcnN0IEkgdGhvdWdodCB0aGUgcHJvYmxlbSB3YXMgb25lIG9mIGFkanVzdG1lbnQgYW5kIHRoYXQgaXQgd291bGQgcmVzb2x2ZSBpdHNlbGYgb25jZSB0aGUgdGVhY2hlciB3YXMgdXNlZCB0byB0aGUgbmV3IHNjaG9vbCBhbmQgc3R1ZGVudHMuIEhvd2V2ZXIsIGFmdGVyIDIgbW9udGhzLCBub3RoaW5nIGhhcyBpbXByb3ZlZCwgYW5kIEkgaGF2ZSBjb21lIHRvIHJlYWxpemUgdGhhdCB0aGUgdGVhY2hlciBpcyBzaW1wbHkgdW5wcm9mZXNzaW9uYWwgYW5kIHBvb3JseSBxdWFsaWZpZWQuIFNoZSBoYXMgYmVlbiBsYXRlIGZvciBhbG1vc3QgZXZlcnkgb25lIG9mIG15IGRhdWdodGVyJnJzcXVvO3MgbGVzc29ucy4gV2hpbGUgSSBjYW4gdW5kZXJzdGFuZCBvY2Nhc2lvbmFsbHkgYmVpbmcgaGVsZCB1cCBpbiB0cmFmZmljLCB0aGlzIHByb2JsZW0gaGFzIGJlY29tZSBoYWJpdHVhbC4gU2luY2UgbXkgZGF1Z2h0ZXImcnNxdW87cyBsZXNzb25zIGFyZSBvbmx5IDMwIG1pbnV0ZXMgbG9uZywgdGhlIDUgdG8gMTAgbWludXRlcyBzaGUgbG9zZXMgZWFjaCB3ZWVrIGR1ZSB0byBoZXIgdGVhY2hlciZyc3F1bztzIHRhcmRpbmVzcyBhcmUgc2lnbmlmaWNhbnQuIEZ1cnRoZXJtb3JlLCBJIHNlcmlvdXNseSBxdWVzdGlvbiB3aGV0aGVyIHRoaXMgdGVhY2hlciBzaG91bGQgYmUgdGVhY2hpbmcgeW91bmcgY2hpbGRyZW4uIFNoZSBoYXMgdmVyeSBsaXR0bGUgcGF0aWVuY2UgYW5kIGZyZXF1ZW50bHkgbG9zZXMgaGVyIHRlbXBlciB3aGVuIG15IGRhdWdodGVyIG1ha2VzIGEgbWlzdGFrZS4gSW4gYWRkaXRpb24sIG15IGRhdWdodGVyIGlzIHNlbnQgaG9tZSBmcm9tIGVhY2ggbGVzc29uIHdpdGggbW9yZSBwaWVjZXMgdGhhbiBhbnkgOC15ZWFyLW9sZCBzaG91bGQgYmUgZXhwZWN0ZWQgdG8gbGVhcm4gaW4gYSB3ZWVrLiBNdXNpYyBpcyBzdXBwb3NlZCB0byBiZSBoZXIgaG9iYnksIG5vdCBoZXIgam9iLjwvcD48cD5TaW5jZSBiZWdpbm5pbmcgd2l0aCB0aGlzIG5ldyB0ZWFjaGVyLCBJIGhhdmUgbm90aWNlZCBib3RoIG15IGRhdWdodGVyJnJzcXVvO3MgY29uZmlkZW5jZSBhbmQgaW50ZXJlc3QgaW4gcGxheWluZyB0aGUgdmlvbGluIGhhdmUgZGVjbGluZWQgc2lnbmlmaWNhbnRseSwgYSBmYWN0IHdoaWNoIGxpa2VseSBsZWQgdG8gdGhlIGxvd2VyLXRoYW4tdXN1YWwgbWFyayBzaGUgcmVjZWl2ZWQgb24gaGVyIHJlY2VudCBtdXNpYyBleGFtLiBUaGVyZWZvcmUsIGVmZmVjdGl2ZSBpbW1lZGlhdGVseSwgSSB3b3VsZCBhc2sgeW91IHRvIGFzc2lnbiBoZXIgdG8gYW4gYWx0ZXJuYXRlIGluc3RydWN0b3IuIEkgaGF2ZSBiZWVuIHZlcnkgaW1wcmVzc2VkIHdpdGggeW91ciBzY2hvb2wgdW50aWwgbm93LCBidXQgaWYgeW91IGFyZSB1bmFibGUgdG8gZmluZCBhIHN1aXRhYmxlIHJlcGxhY2VtZW50IGZvciB0aGlzIHRlYWNoZXIsIEkgd2lsbCBoYXZlIG5vIG90aGVyIGNob2ljZSBidXQgdG8gY2FuY2VsIGFsbCBvZiBteSBkYXVnaHRlciZyc3F1bztzIGZ1dHVyZSBsZXNzb25zLjwvcD48cD5TaW5jZXJlbHksPGJyPk1hcmlvIFBlcmV6PC9wPiJ9LCAiYmxvY2tzIjogW3sidHlwZSI6ICJzdGVtbGlzdCIsICJpbnN0ciI6ICJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24gYWNjb3JkaW5nIHRvIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiB0aGUgbWVzc2FnZS4iLCAiaXRlbXMiOiBbeyJuIjogMSwgInByZSI6ICJUaGUgZGF1Z2h0ZXIgaGFzIHN0dWRpZWQgbXVzaWMgZm9yIiwgIm9wdGlvbnMiOiBbIjIgeWVhcnMuIiwgIjMgeWVhcnMuIiwgIjUgeWVhcnMuIiwgIjggeWVhcnMuIl0sICJrZXkiOiAzfSwgeyJuIjogMiwgInByZSI6ICJUaGUgY3VycmVudCBtdXNpYyB0ZWFjaGVyIiwgIm9wdGlvbnMiOiBbImRyaXZlcyB0byB3b3JrIG1vc3QgZGF5cyBvZiB0aGUgd2Vlay4iLCAiZnJlcXVlbnRseSBzaG93cyB1cCAzMCBtaW51dGVzIGxhdGUuIiwgImdpdmVzIHRoZSBkYXVnaHRlciBhIGxvdCBvZiB3b3JrLiIsICJpcyBnZW5lcmFsbHkgb24gdGltZSBmb3IgaGVyIGxlc3NvbnMuIl0sICJrZXkiOiAzfSwgeyJuIjogMywgInByZSI6ICJUaGUgY3VycmVudCBtdXNpYyB0ZWFjaGVyIGhhcyIsICJvcHRpb25zIjogWyJuZXZlciB0YXVnaHQgbXVzaWMgdG8gY2hpbGRyZW4gYmVmb3JlLiIsICJyZWNlbnRseSByZWNvdmVyZWQgZnJvbSBhIHNlcmlvdXMgaWxsbmVzcy4iLCAicmVjZW50bHkgc3RhcnRlZCB3b3JraW5nIGF0IHRoZSBzY2hvb2wuIiwgInRhdWdodCBhdCB0aGUgc2Nob29sIGZvciBtYW55IHllYXJzLiJdLCAia2V5IjogM30sIHsibiI6IDQsICJwcmUiOiAiVGhlIGZhdGhlciB0aGlua3MgaGlzIGRhdWdodGVyIHNob3VsZCIsICJvcHRpb25zIjogWyJlbmpveSBsZWFybmluZyB0byBwbGF5IHRoZSB2aW9saW4uIiwgImhhdmUgbW9yZSBwYXRpZW5jZSB3aXRoIGhlcnNlbGYuIiwgIm1ha2UgZmV3IG1pc3Rha2VzIHdoZW4gcGxheWluZy4iLCAicHJhY3RpY2UgbW9yZSB0aGFuIHNoZSBkb2VzLiJdLCAia2V5IjogMX0sIHsibiI6IDUsICJwcmUiOiAiVGhlIHByaW1hcnkgcHVycG9zZSBvZiB0aGUgbGV0dGVyIGlzIHRvIiwgIm9wdGlvbnMiOiBbImFzayBmb3IgYSBkaWZmZXJlbnQgdGVhY2hlci4iLCAiY2FuY2VsIHVwY29taW5nIG11c2ljIGxlc3NvbnMuIiwgImV4cHJlc3MgY29uY2VybiBhbmQgc3ltcGF0aHkuIiwgInJlcXVlc3QgdGhhdCBzb21lb25lIGJlIGZpcmVkLiJdLCAia2V5IjogMX0sIHsibiI6IDYsICJwcmUiOiAiVGhlIGxldHRlciBtYWlubHkgZXhwcmVzc2VzIiwgIm9wdGlvbnMiOiBbImRpc3NhdGlzZmFjdGlvbi4iLCAiaW5kaWZmZXJlbmNlLiIsICJzYWRuZXNzLiIsICJ3b3JyeS4iXSwgImtleSI6IDF9XX0sIHsidHlwZSI6ICJjbG96ZSIsICJpbnN0ciI6ICJIZXJlIGlzIGEgcmVzcG9uc2UgdG8gdGhlIG1lc3NhZ2UuIENvbXBsZXRlIHRoZSByZXNwb25zZSBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwgImJvZHkiOiBbIkRlYXIgTXIuIFBlcmV6LFxuXG5UaGFuayB5b3UgZm9yIHlvdXIgbGV0dGVyLiBJIGFtIHZlcnkgc29ycnkgdG8gaGVhciB0aGF0IHlvdXIiLCB7ImIiOiA3LCAib3B0aW9ucyI6IFsiZGF1Z2h0ZXIgZmFpbGVkIGhlciByZWNlbnQgbXVzaWMgZXhhbSIsICJleHBlY3RhdGlvbnMgYXMgYSBwYXJlbnQgd2VyZSBub3QgbWV0IiwgImluc3RydWN0b3IgaGFzIGJlZW4gY2FuY2VsbGluZyBsZXNzb25zIiwgInBsYW4gaXMgdG8gZmluZCBhbiBhbHRlcm5hdGUgc2Nob29sIl0sICJrZXkiOiAyfSwgIi4gSSBjYW4gYXNzdXJlIHlvdSB0aGF0IG91ciBzY2hvb2wgc2NyZWVucyBhbmQgc2VsZWN0cyBlYWNoIG9mIGl0cyB0ZWFjaGVycyB2ZXJ5IGNhcmVmdWxseS4gRm9yIHRoaXMgcmVhc29uIEkgZmluZCIsIHsiYiI6IDgsICJvcHRpb25zIjogWyJ0aGlzIGFic2VuY2UgdXBzZXR0aW5nIiwgInlvdXIgZGVjaXNpb24gc3VycHJpc2luZyIsICJ0aGlzIGdyYWRlIHRvIGJlIHVudXN1YWwiLCAieW91ciBjb21tZW50cyBkaXN0cmVzc2luZyJdLCAia2V5IjogNH0sICIsIGFuZCB0aGUgbWF0dGVyIHdpbGwgYmUgbG9va2VkIGludG8gaW1tZWRpYXRlbHkuIFN1Y2ggYSIsIHsiYiI6IDksICJvcHRpb25zIjogWyJsYWNrIG9mIHByb2Zlc3Npb25hbGlzbSIsICJkaXNyZXNwZWN0IGZvciBhdXRob3JpdHkiLCAicG9vciBzaG93aW5nIGF0IGV4YW1zIiwgImRpc3JlZ2FyZCBmb3Igc2Nob29sIHBvbGljeSJdLCAia2V5IjogMX0sICJpcyBub3Qgc29tZXRoaW5nIHRoYXQgaXMgdG9sZXJhdGVkIGF0IG91ciBzY2hvb2wuXG5cbkkgYWdyZWUgdGhhdCBUYXJhIHdhcyBhIHBhcnRpY3VsYXJseSIsIHsiYiI6IDEwLCAib3B0aW9ucyI6IFsiZW50ZXJ0YWluaW5nIHRlYWNoZXIiLCAiZ2lmdGVkIHRlYWNoZXIiLCAiaGFyZHdvcmtpbmcgc3R1ZGVudCIsICJ0YWxlbnRlZCBzdHVkZW50Il0sICJrZXkiOiAyfSwgIjsgc2hlIHdpbGwgbm90IGJlIGVhc3kgdG8gcmVwbGFjZS4gSSB3aWxsIGZpbmQgYW5vdGhlciB0ZWFjaGVyIGZvciB5b3VyIGRhdWdodGVyIGFzIHNvb24gYXMgcG9zc2libGUuIE1lYW53aGlsZSwgdG8gc2hvdyBteSBhcHByZWNpYXRpb24gZm9yIHlvdXIgd2lsbGluZ25lc3MgdG8iLCB7ImIiOiAxMSwgIm9wdGlvbnMiOiBbImNvbnRpbnVlIHdpdGggdGhlIHNhbWUgdGVhY2hlciIsICJnaXZlIHVzIGEgc2Vjb25kIGNoYW5jZSIsICJyZWNvbW1lbmQgb3VyIHNjaG9vbCB0byBvdGhlcnMiLCAid2FpdCB1bnRpbCBUYXJhIHJldHVybnMiXSwgImtleSI6IDJ9LCAiLCBJIGhhdmUgZW5jbG9zZWQgYSBnaWZ0IG9mIHR3byBmcmVlIHRpY2tldHMgdG8gdGhlIHN5bXBob255LlxuXG5JZiB5b3UgaGF2ZSBhbnkgb3RoZXIgY29tbWVudHMgb3IgY29uY2VybnMsIHBsZWFzZSBkbyBub3QgaGVzaXRhdGUgdG8gY29udGFjdCBtZS5cblxuU2luY2VyZWx5LFxuRWQgU2FuZGVyc29uIl19XX0sIHsiaWQiOiAyLCAibmFtZSI6ICJSZWFkaW5nIFBhcnQgMjogUmVhZGluZyB0byBBcHBseSBhIERpYWdyYW0iLCAidGltZSI6ICI4IG1pbnV0ZXMiLCAicGFzc2FnZSI6IHsidHlwZSI6ICJ0ZXh0IiwgImxhYmVsIjogIlJlYWQgdGhlIGZvbGxvd2luZyBkaWFncmFtLiIsICJodG1sIjogIjxzdHlsZT4uYWUtZGN7Ym9yZGVyOjFweCBzb2xpZCAjY2JkNWUxO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6MTRweDtiYWNrZ3JvdW5kOiNmZmZ9LmFlLWRjLWhlYWR7YmFja2dyb3VuZDojZjJjOTRjO2NvbG9yOiMzMzM7cGFkZGluZzoxMnB4IDE0cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmFlLWRjLWhlYWQgaDN7bWFyZ2luOjA7Y29sb3I6IzMzMztmb250LXNpemU6MTlweH0uYWUtZGMtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgMWZyO2dhcDoxcHg7YmFja2dyb3VuZDojY2JkNWUxfS5hZS1kYy1jb2x7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MTBweCAxMnB4fS5hZS1kYy1jb2wgaDR7bWFyZ2luOjAgMCAycHg7Y29sb3I6IzJmNmYzZTtmb250LXNpemU6MTVweH0uYWUtZGMtY29sIC5waHttYXJnaW46MCAwIDZweDtmb250LXNpemU6MTIuNXB4O2NvbG9yOiMzMzN9LmFlLWRjLWNvbCB1bHttYXJnaW46MDtwYWRkaW5nLWxlZnQ6MThweDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjV9QG1lZGlhKG1heC13aWR0aDo1NjBweCl7LmFlLWRjLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn19PC9zdHlsZT48ZGl2IGNsYXNzPVwiYWUtZGNcIj48ZGl2IGNsYXNzPVwiYWUtZGMtaGVhZFwiPjxoMz5RdWFsaXR5IERheWNhcmUgQ2VudHJlcyBmb3IgRmFtaWxpZXMgTGl2aW5nIGluIENlbnRyZXRvd24hPC9oMz48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZGMtZ3JpZFwiPjxkaXYgY2xhc3M9XCJhZS1kYy1jb2xcIj48aDQ+U3VuZmxvd2VyIERheWNhcmU8L2g0PjxwIGNsYXNzPVwicGhcIj48c3Ryb25nPlBob25lOjwvc3Ryb25nPiA2MDQtMDk5LTkwMDk8L3A+PHVsPjxsaT5BbGwgZGF5Y2FyZSB3b3JrZXJzIGhhdmUgYSBkaXBsb21hIGluIEVhcmx5IENoaWxkaG9vZCBFZHVjYXRpb24uPC9saT48bGk+UHJvZ3JhbSBpbmNsdWRlcyBkYWlseSBsZXNzb25zIGluIGFydCwgZGFuY2UgYW5kIG11c2ljIHRhdWdodCBieSBjZXJ0aWZpZWQgaW5zdHJ1Y3RvcnMuIFdlZWtseSBleGN1cnNpb25zIHRvIGZ1biBhdHRyYWN0aW9ucy48L2xpPjxsaT5JbmRvb3IgYW5kIG91dGRvb3IgcGxheSBhcmVhcy48L2xpPjxsaT5NZWFscyBhbmQgc25hY2tzIG1hZGUgZnJvbSBoZWFsdGh5LCBvcmdhbmljIGluZ3JlZGllbnRzLjwvbGk+PGxpPlJhdGVkIG9uZSBvZiB0aGUgdG9wIGRheWNhcmVzIGluIHRvd24hPC9saT48bGk+Q3VycmVudGx5IGEgd2FpdCBsaXN0IGZvciBhbGwgYWdlIGdyb3Vwcy4gUGxlYXNlIHBob25lIHRvIHBsYWNlIHlvdXIgY2hpbGQmcnNxdW87cyBuYW1lIG9uIG91ciBsaXN0LjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZGMtY29sXCI+PGg0PkJsdWVTa3kgSG9tZSBEYXljYXJlPC9oND48cCBjbGFzcz1cInBoXCI+PHN0cm9uZz5QaG9uZTo8L3N0cm9uZz4gNzc4LTg3OC0wODcwPC9wPjx1bD48bGk+TGljZW5zZWQgZGF5Y2FyZSBwcm92aWRlciB3aXRoIG1hbnkgeWVhcnMmcnNxdW87IGV4cGVyaWVuY2UuPC9saT48bGk+RGFpbHkgZ2FtZXMsIHN0b3JpZXMsIGFydCBhbmQgZGFuY2UuIFdlZWtseSBmaWVsZHRyaXBzIHRvIGxvY2FsIGF0dHJhY3Rpb25zLjwvbGk+PGxpPk5ld2x5IHB1cmNoYXNlZCBvdXRkb29yIHBsYXkgYXJlYS48L2xpPjxsaT5Mb2NhdGVkIGNsb3NlIHRvIHRyYW5zaXQgc3RhdGlvbi48L2xpPjxsaT5BIGNvbXBldGl0aXZlIHNpYmxpbmcgZGlzY291bnQgaXMgYXZhaWxhYmxlLjwvbGk+PGxpPkZ1bGwgYW5kIHBhcnQtdGltZSBvcHRpb25zLiBJbmZhbnRzIGFuZCB0b2RkbGVycyB3ZWxjb21lLjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtZGMtY29sXCI+PGg0PkNvbW11bml0eSBDZW50cmUgRGF5Y2FyZTwvaDQ+PHAgY2xhc3M9XCJwaFwiPjxzdHJvbmc+UGhvbmU6PC9zdHJvbmc+IDY0MC00MDYtMDQ2NDwvcD48dWw+PGxpPlZvbHVudGVlci1ydW4gKGFsbCB2b2x1bnRlZXJzIGhhdmUgZXh0ZW5zaXZlIGV4cGVyaWVuY2Ugd29ya2luZyB3aXRoIGNoaWxkcmVuKS48L2xpPjxsaT5EYWlseSBhY3Rpdml0aWVzIGluY2x1ZGUgc3RvcnktdGltZSwgZ2FtZXMsIGFydCwgbXVzaWMsIGFuZCBzd2ltbWluZy48L2xpPjxsaT5MYXJnZSBpbmRvb3IgcGxheSBhcmVhIHdpdGggc3RhdGUgb2YgdGhlIGFydCBzYWZldHkgZmVhdHVyZXMuPC9saT48bGk+SW5kb29yIHN3aW1taW5nIHBvb2wgLSBjZXJ0aWZpZWQgbGlmZWd1YXJkIG9uIHNpdGUuPC9saT48bGk+SW5mYW50ICgzLTE4IG1vbnRocykgYW5kIHRvZGRsZXIgKDE4IG1vbnRocyB0byA0IHllYXJzKSBwcm9ncmFtcyBhdmFpbGFibGUuPC9saT48bGk+UmVnaXN0ZXIgZWFybHkgYXMgc3BhY2UgaXMgbGltaXRlZCBmb3IgdGhlIGluZmFudCBwcm9ncmFtLjwvbGk+PC91bD48L2Rpdj48L2Rpdj48L2Rpdj4ifSwgImJsb2NrcyI6IFt7InR5cGUiOiAiY2xvemUiLCAiaW5zdHIiOiAiUmVhZCB0aGUgZm9sbG93aW5nIGVtYWlsIG1lc3NhZ2UgYWJvdXQgdGhlIGRpYWdyYW0gb24gdGhlIGxlZnQuIENvbXBsZXRlIHRoZSBlbWFpbCBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwgImJvZHkiOiBbIlN1YmplY3Q6IERheWNhcmUgUHJvdmlkZXJzXG5UbzogQW5uYSBSb2JlcnRzb24gPGFubmEucm9iZXJ0c29uQGNhbm1haWwuY29tPlxuRnJvbTogSmVubiBTYW5jaGV6IDxqZW5uLnNhbmNoZXpAbWFpbC5jb20+XG5cbkhpIEFubmEsXG5cbkkgZm91bmQgdGhpcyBmbHllciBhdCB0aGUgcmVjcmVhdGlvbiBjZW50cmUuIFNhcmEgd2lsbCBiZSByZWFkeSBmb3IgZGF5Y2FyZSBzb29uIHNvIElcdTIwMTl2ZSBzdGFydGVkIGxvb2tpbmcgYXJvdW5kLiBZb3Ugd2VudCB0aHJvdWdoIHRoaXMgd2l0aCB5b3VyIGtpZHMgdGhyZWUgeWVhcnMgYWdvLCBzbyBJXHUyMDE5bSBob3BpbmcgdG8gZ2V0IHNvbWUgYWR2aWNlLlxuXG5JIGltYWdpbmUgbW9zdCBkYXljYXJlcyBoYXZlIHNpbWlsYXIgYWN0aXZpdGllcy4gSG93ZXZlciwgSSBsaWtlIHRoYXQgU3VuZmxvd2VyIERheWNhcmUgb2ZmZXJzIiwgeyJiIjogMSwgIm9wdGlvbnMiOiBbImxlc3NvbnMgd2l0aCBwcm9mZXNzaW9uYWwgdGVhY2hlcnMiLCAiZGFpbHkgbGVzc29ucyBpbiB2YXJpb3VzIG91dGRvb3Igc3BvcnRzIiwgImNvb2tpbmcgY2xhc3NlcyBkZXNpZ25lZCBmb3IgY2hpbGRyZW4iLCAiYW4gZWFybHkgY2hpbGRob29kIHJlYWRpbmcgcHJvZ3JhbSJdLCAia2V5IjogMX0sICIuIFRoZSBjZW50cmUgcnVuIGJ5IHZvbHVudGVlcnMgaXMgcHJvYmFibHkgdGhlIG1vc3QgYWZmb3JkYWJsZS4gVW5mb3J0dW5hdGVseSwgU2FyYSBpc25cdTIwMTl0IHBhcnRpY3VsYXJseSBmb25kIG9mIHdhdGVyLCBJIHRoaW5rIElcdTIwMTlkIGJlIG5lcnZvdXMgc2VuZGluZyBoZXIgdGhlcmUgc2luY2UgdGhleSBoYXZlIiwgeyJiIjogMiwgIm9wdGlvbnMiOiBbImRhaWx5IHN3aW0gdGltZSIsICJ3YXRlciBjb2xvdXJzIiwgInRlZW5hZ2UgbGlmZWd1YXJkcyIsICJpbmV4cGVyaWVuY2VkIHN0YWZmIl0sICJrZXkiOiAxfSwgIi4gSSBhbHNvIGRvblx1MjAxOXQgbGlrZSB0aGF0LCBhdCB0aGUgQ29tbXVuaXR5IENlbnRyZSBEYXljYXJlLCBpdCBkb2Vzblx1MjAxOXQgc2VlbSBwb3NzaWJsZSIsIHsiYiI6IDMsICJvcHRpb25zIjogWyJmb3IgdGhlIGNoaWxkcmVuIHRvIHBsYXkgb3V0ZG9vcnMiLCAidG8gc2VuZCBTYXJhIGJlZm9yZSAxOCBtb250aHMiLCAiZm9yIHRoZSBjaGlsZHJlbiB0byBnZXQgZXhlcmNpc2UiLCAidG8gcmVnaXN0ZXIgU2FyYSBpbiBhZHZhbmNlIl0sICJrZXkiOiAxfSwgIi5cblxuT2YgdGhlIHRocmVlIG9wdGlvbnMsIFN1bmZsb3dlciBEYXljYXJlIHNlZW1zIHRoZSBvbmUgd2l0aCB0aGUgbW9zdCIsIHsiYiI6IDQsICJvcHRpb25zIjogWyJwb3B1bGFyIHByb2dyYW0iLCAidXAtdG8tZGF0ZSBwbGF5IGFyZWEiLCAiY29udmVuaWVudCBsb2NhdGlvbiIsICJmbGV4aWJsZSBvcHRpb25zIl0sICJrZXkiOiAxfSwgIi4gSG93ZXZlciwgdGhlIGhvbWUgZGF5Y2FyZSBpcyB0aGUgb25seSBvbmUgdGhhdCBvZmZlcnMiLCB7ImIiOiA1LCAib3B0aW9ucyI6IFsiZGlzY291bnRlZCBwcmljZXMgZm9yIG11bHRpcGxlIGNoaWxkcmVuIiwgInJlZ3VsYXIgdHJpcHMgb3V0c2lkZSB0aGUgZGF5Y2FyZSIsICJhbiBvdXRkb29yIHBsYXkgYXJlYSBmb3IgdGhlIGNoaWxkcmVuIiwgImEgcHJvZ3JhbSBmb3IgYmFiaWVzIGFuZCB0b2RkbGVycyJdLCAia2V5IjogMX0sICIuIFRoYXQgd291bGQgY2VydGFpbmx5IGJlIG5pY2UhXG5cbkkgbm90aWNlZCB0aGF0IG5vbmUgb2YgdGhlIGNlbnRyZXMgbGlzdCB0aGVpciBwcmljZXMuIERvIHlvdSBrbm93IGlmIGRheWNhcmUgcHJpY2VzIGFyZSByZWd1bGF0ZWQ\/IEFueSBpbnB1dCB3b3VsZCBiZSBhcHByZWNpYXRlZC4gTGV0XHUyMDE5cyBjaGF0IHNvb24hXG5cbkJlc3QsXG5KZW5uIl19LCB7InR5cGUiOiAic3RlbWxpc3QiLCAiaW5zdHIiOiAiVXNpbmcgdGhlIGRyb3AtZG93biBtZW51ICggJiM5NjYyOyApLCBjaG9vc2UgdGhlIGJlc3Qgb3B0aW9uLiIsICJpdGVtcyI6IFt7Im4iOiA2LCAicHJlIjogIkplbm4gaXMgZW1haWxpbmcgQW5uYSIsICJvcHRpb25zIjogWyJ0byBnZXQgaGVscCBpbiBzZWxlY3RpbmcgZGF5Y2FyZS4iLCAidG8gZ2l2ZSBBbm5hIGFkdmljZSBvbiBkYXljYXJlcy4iLCAidG8gdGVsbCBBbm5hIHdoaWNoIGRheWNhcmUgc2hlIGNob3NlLiIsICJ0byBzdWdnZXN0IGRheWNhcmVzIHRvIHZvbHVudGVlciBhdC4iXSwgImtleSI6IDF9LCB7Im4iOiA3LCAicHJlIjogIkplbm4gd29uZGVycyBhYm91dCBkYXljYXJlIHByaWNlcyBiZWNhdXNlIHNoZSIsICJvcHRpb25zIjogWyJoZWFyZCBzb21lIGRheWNhcmVzIGNvc3QgbGVzcyB0aGFuIG90aGVycy4iLCAiaXMgd29ycmllZCB3aGV0aGVyIHNoZSBjYW4gYWZmb3JkIGRheWNhcmUuIiwgIndhcyB1bmFibGUgdG8gZmluZCBwcmljZXMgZm9yIHRoZSBkYXljYXJlcy4iLCAid291bGQgbGlrZSB0byBzZWUgZGF5IGNhcmUgcHJpY2UgY29udHJvbHMuIl0sICJrZXkiOiAzfSwgeyJuIjogOCwgInByZSI6ICJBbm5hIGhhcyBjaGlsZHJlbiB3aG8gYXJlIHByb2JhYmx5IiwgIm9wdGlvbnMiOiBbIm9sZGVyIHRoYW4gU2FyYS4iLCAidGhlIHNhbWUgYWdlIGFzIFNhcmEuIiwgImluIFNhcmFcdTIwMTlzIGRheWNhcmUuIiwgInlvdW5nZXIgdGhhbiBTYXJhLiJdLCAia2V5IjogMX1dfV19LCB7ImlkIjogMywgIm5hbWUiOiAiUmVhZGluZyBQYXJ0IDM6IFJlYWRpbmcgZm9yIEluZm9ybWF0aW9uIiwgInRpbWUiOiAiOSBtaW51dGVzIiwgInBhc3NhZ2UiOiB7InR5cGUiOiAidGV4dCIsICJsYWJlbCI6ICJSZWFkIHRoZSBmb2xsb3dpbmcgcGFzc2FnZS4iLCAiaHRtbCI6ICI8cD48c3Ryb25nPkEuPC9zdHJvbmc+IE9uZSBvZiB0aGUgbW9zdCBwb3B1bGFyIHRvdXJpc3QgYXR0cmFjdGlvbnMgb2YgdGhlIE1hcml0aW1lIFByb3ZpbmNlcyBpcyBHcmVlbiBHYWJsZXMgSG91c2UgaW4gUHJpbmNlIEVkd2FyZCBJc2xhbmQuIE9mIGNvdXJzZSwgQW5uZSBoZXJzZWxmIGlzIGEgZmljdGlvbmFsIGNoYXJhY3RlciBpbiB0aGUgbm92ZWxzIG9mIEx1Y3kgTWF1ZCBNb250Z29tZXJ5LiBIb3dldmVyLCB0aGUgcGxhY2VzIEFubmUgc3VwcG9zZWRseSBpbmhhYml0ZWQsIGVzcGVjaWFsbHkgdGhlIEdyZWVuIEdhYmxlcyBmYXJtaG91c2UsIGF0dHJhY3QgbWFueSB0aG91c2FuZHMgb2YgdG91cmlzdHMgZXZlcnkgeWVhci4gU2hvcGtlZXBlcnMgbWFya2V0IGl0ZW1zIGJhc2VkIG9uIHRoZSBub3ZlbHMsIGV2ZW4gc3RyYXcgaGF0cyB3aXRoIHJlZCBicmFpZHMgc28gdGhhdCB5b3VuZyBnaXJscyBjYW4gbG9vayBsaWtlIEFubmUuIFNoZSBpcyBhbHNvIGNlbGVicmF0ZWQgaW4gYSBwZXJtYW5lbnRseSBydW5uaW5nIGxpdmUgbXVzaWNhbCBpbiB0aGUgY2FwaXRhbCBjaXR5IG9mIENoYXJsb3R0ZXRvd24uPC9wPjxwPjxzdHJvbmc+Qi48L3N0cm9uZz4gQW5uZSBhbmQgaGVyIHN0b3J5IGhhdmUgYXR0cmFjdGVkIENhbmFkaWFuIGZhbnMgc2luY2UgMTkwOC4gVGhlIGRhdGVkIGxhbmd1YWdlIGFuZCBBbm5lJnJzcXVvO3MgZW50aHVzaWFzdGljIG1vbm9sb2d1ZXMgb2YgdGhlIG9yaWdpbmFsIHRleHQgYXJlIGNoYWxsZW5naW5nIHRvIHJlYWQsIGJ1dCBvbmNlIHlvdSBtZWV0IEFubmUgU2hpcmxleSwgcmVzY3VlZCBmcm9tIGFuIG9ycGhhbmFnZSBieSBNYXR0aGV3IGFuZCBNYXJpbGxhIEN1dGhiZXJ0LCB5b3UgYXJlIGhvb2tlZCBpbnRvIGhlciBsaWZlLiBBbm5lJnJzcXVvO3Mgc3RvcnkgaXMgYmFzZWQgb24gTW9udGdvbWVyeSZyc3F1bztzIG93biBsaWZlLiBCb3JuIGluIGEgUEVJIHZpbGxhZ2UsIE1vbnRnb21lcnkgd2FzIGFuIG9ycGhhbiBieSBhZ2Ugc2V2ZW4gYW5kIHJhaXNlZCBieSBoZXIgc3RyaWN0LCBDdXRoYmVydC1saWtlIGdyYW5kcGFyZW50cyBpbiBDYXZlbmRpc2guIE1vbnRnb21lcnkgaGFkIGEgbG9uZWx5IGNoaWxkaG9vZCBhbmQgZGVwZW5kZWQgb24gaW1hZ2luYXJ5IGZyaWVuZHMsIGp1c3QgbGlrZSBBbm5lIGRpZC4gTGlrZSBBbm5lLCBNb250Z29tZXJ5IHdhcyBsaXZlbHksIGludGVsbGlnZW50LCBhbmQgZmxpcnRhdGlvdXMsIGFuZCwgbGlrZSBBbm5lLCBzaGUgc3VwcG9ydGVkIGhlcnNlbGYgYXMgYSB0ZWFjaGVyLjwvcD48cD48c3Ryb25nPkMuPC9zdHJvbmc+IE1vbnRnb21lcnkgd3JvdGUgc2l4IG5vdmVscyBhYm91dCBBbm5lLCBwb3J0cmF5aW5nIGhlciBsaWZlIGZyb20gYWdlIDExIHRvIDQwLiBUaGUgZmlyc3QgYm9vaywgQW5uZSBvZiBHcmVlbiBHYWJsZXMsIGFwcGVhbHMgdG8gd29tZW4gb2YgYWxsIGFnZXMuIE1hbnkgcmVhZGVycyBoYXZlIHRyaWVkIHRvIGFuYWx5emUgdGhpcyBhcHBlYWwsIHdoaWNoIGJvaWxzIGRvd24gdG8gdGhpczogQW5uZSBzaG93cyB1cyB0aGUga2V5IHRvIGVzc2VudGlhbCBoYXBwaW5lc3MuIFNoZSByZXByZXNlbnRzIGFsbCB3b21lbiwgZXNwZWNpYWxseSBkdXJpbmcgdGhlIGZvcm1hdGl2ZSB5ZWFycywgd2FudGluZyB0byBiZSBzbWFydCwgZnVubnksIGhvbmVzdCwgYW5kIG9wdGltaXN0aWMuIEFubmUgYWdvbml6ZWQgb3ZlciBoZXIgcmVkIGhhaXIsIGZyZXF1ZW50bHkgYSBzdGlnbWEgdGhhdCBpbnZpdGVzIHRlYXNpbmcuIEFsbCB3b21lbiBtYXkgbm90IHdvcnJ5IGFib3V0IHJlZCBoYWlyLCBidXQgYWxsIHdvcnJ5IGFib3V0IHRoZWlyIGZhdWx0cyBhbmQgdGhlaXIgbG9va3MsIGVzcGVjaWFsbHkgYXQgQW5uZSZyc3F1bztzIGFnZSBpbiB0aGUgZmlyc3QgYm9vay48L3A+PHA+PHN0cm9uZz5ELjwvc3Ryb25nPiBUaGUgQW5uZSBib29rcywgdHJhbnNsYXRlZCBpbnRvIG1vcmUgdGhhbiAzMCBsYW5ndWFnZXMsIGF0dHJhY3QgcmVhZGVycyB3b3JsZHdpZGUuIFRoZSBKYXBhbmVzZSBhcmUgYW1vbmcgdGhlIG1vc3QgYXJkZW50IG9mIEFubmUgZmFucywgb2Z0ZW4gZmx5aW5nIG1vcmUgdGhhbiAxMCwwMDAga2lsb21ldHJlcyBmb3IgMTggaG91cnMgdG8gc3BlbmQgYSBmZXcgZGF5cyB2aXNpdGluZyBBbm5lIHNpdGVzIGluIFBFSS4gSmFwYW5lc2UgaXMgc3Bva2VuIGF0IG1vc3Qgb2YgdGhlIHRvdXJpc3QgYXR0cmFjdGlvbnMgYW5kIHNob3BzIGluIFBFSS4gQW5uZSBldmVuIGF0dHJhY3RlZCB0aGUgYXR0ZW50aW9uIG9mIFByaW5jZSBXaWxsaWFtIGFuZCBoaXMgYnJpZGUgS2F0ZSBNaWRkbGV0b24gZHVyaW5nIHRoZWlyIHZpc2l0IHRvIENhbmFkYSBpbiAyMDExLiBBbm5lIG9mIEdyZWVuIEdhYmxlcyB3YXMgdGhlIER1Y2hlc3MmcnNxdW87cyBmYXZvdXJpdGUgYm9vayBhcyBhIGNoaWxkLCBzbyBzaGUgbWFkZSBzdXJlIHRoZWlyIHRvdXIgaW5jbHVkZWQgUEVJLiBMaWtlIG1vc3QgQW5uZSBlbnRodXNpYXN0cywgS2F0ZSB5ZWFybmVkIHRvIHNlZSBBbm5lJnJzcXVvO3MgaG9tZWxhbmQuPC9wPjxwPjxzdHJvbmc+RS48L3N0cm9uZz4gTm90IGdpdmVuIGluIGFueSBvZiB0aGUgYWJvdmUgcGFyYWdyYXBocy48L3A+In0sICJibG9ja3MiOiBbeyJ0eXBlIjogIm1hdGNoIiwgImluc3RyIjogIkRlY2lkZSB3aGljaCBwYXJhZ3JhcGgsIEEgdG8gRCwgaGFzIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiBlYWNoIHN0YXRlbWVudCBiZWxvdy4gU2VsZWN0IEUgaWYgdGhlIGluZm9ybWF0aW9uIGlzIG5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIHBhcmFncmFwaHMuIiwgImxldHRlcnMiOiBbIkEiLCAiQiIsICJDIiwgIkQiLCAiRSJdLCAiaXRlbXMiOiBbeyJuIjogMSwgInRleHQiOiAiTG9jYWwgbWVyY2hhbnRzIGNhcGl0YWxpemUgb24gdmlzaXRvcnNcdTIwMTkgZW50aHVzaWFzbSBmb3IgQW5uZS4iLCAia2V5IjogMX0sIHsibiI6IDIsICJ0ZXh0IjogIkV2ZW4gcm95YWx0eSBhcHByZWNpYXRlcyB0aGUgZW5kZWFyaW5nIEFubmUgY2hhcmFjdGVyLiIsICJrZXkiOiA0fSwgeyJuIjogMywgInRleHQiOiAiVGhlIEphcGFuZXNlIGFkb3JlIEFubmUgYmVjYXVzZSB0aGV5IGhhdmUgYSBzaW1pbGFyIGNoYXJhY3RlciBpbiB0aGVpciBjdWx0dXJlLiIsICJrZXkiOiA1fSwgeyJuIjogNCwgInRleHQiOiAiVGhlIEFubmUgc3RvcnkgaXMgcG9ydHJheWVkIGluIGFuIG9uZ29pbmcgc3RhZ2UgcGVyZm9ybWFuY2UuIiwgImtleSI6IDF9LCB7Im4iOiA1LCAidGV4dCI6ICJBbm5lIGlzIGEgYmVsb3ZlZCBjaGFyYWN0ZXIgaW4gcGFydCBiZWNhdXNlIGhlciBzdHJ1Z2dsZXMgYXJlIHJlbGF0YWJsZS4iLCAia2V5IjogM30sIHsibiI6IDYsICJ0ZXh0IjogIlRoZXJlIGFyZSBtYW55IHBhcmFsbGVscyBiZXR3ZWVuIE1vbnRnb21lcnlcdTIwMTlzIGFuZCBBbm5lXHUyMDE5cyBoYXJkc2hpcHMuIiwgImtleSI6IDJ9LCB7Im4iOiA3LCAidGV4dCI6ICJUaGUgd3JpdGluZyBzdHlsZSBvZiB0aGUgc3RvcmllcyBtYWtlcyB0aGVtIGRpZmZpY3VsdCB0byByZWFkLiIsICJrZXkiOiAyfSwgeyJuIjogOCwgInRleHQiOiAiTHVjeSBNYXVkIE1vbnRnb21lcnkgaGFkIGRpZmZpY3VsdHkgd3JpdGluZyB0aGUgQW5uZSBvZiBHcmVlbiBHYWJsZXMgbm92ZWxzLiIsICJrZXkiOiA1fSwgeyJuIjogOSwgInRleHQiOiAiTW9udGdvbWVyeVx1MjAxOXMgc3RvcmllcyBvZiBBbm5lIGhhdmUgY3Jvc3MtY3VsdHVyYWwgYXBwZWFsLiIsICJrZXkiOiA0fV19XX0sIHsiaWQiOiA0LCAibmFtZSI6ICJSZWFkaW5nIFBhcnQgNDogUmVhZGluZyBmb3IgVmlld3BvaW50cyIsICJ0aW1lIjogIjEyIG1pbnV0ZXMiLCAicGFzc2FnZSI6IHsidHlwZSI6ICJ0ZXh0IiwgImxhYmVsIjogIlJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlIGZyb20gYSB3ZWJzaXRlLiIsICJodG1sIjogIjxwPkEgcmVjZW50IHN1cmdlIG9mIGhpZ2gtcHJvZmlsZSBkYXRhIGJyZWFjaGVzIGhhcyBwcm9tcHRlZCByZW5ld2VkIGludGVyZXN0IGluIGN5YmVyc2VjdXJpdHkuIEF0IGlzc3VlIGlzIHRoZSBzZWN1cml0eSBhbmQgY29uZmlkZW50aWFsaXR5IG9mIHRob3VzYW5kcyBvZiB0ZXJhYnl0ZXMgb2YgYnVzaW5lc3MgYW5kIGdvdmVybm1lbnQgZGF0YS4gU29tZSBleHBlcnRzIGFyZSBub3cgd2FybmluZyB0aGF0LCB1bmxlc3MgZHJhc3RpYyBzdGVwcyBhcmUgdGFrZW4gdG8gc3RyZW5ndGhlbiBjeWJlcnNlY3VyaXR5LCB0aGUgZW50aXJlIHByb2Nlc3Mgb2YgZGlnaXRhbGl6YXRpb24gY291bGQgYmUgdGhyZWF0ZW5lZC48L3A+PHA+JmxkcXVvO1RoZSBwYXN0IGZldyBtb250aHMgaGF2ZSBiZWVuIHJlYWxseSB1bm5lcnZpbmcgZm9yIGEgbG90IG9mIGRlY2lzaW9uLW1ha2Vycy4gUGVvcGxlIHJlYWQgdGhlIG5ld3MgYW5kIHRoZXkgcmVhbGl6ZSB0aGF0IGJyZWFjaGVzIGNvdWxkIGhhcHBlbiB0byB0aGVpciBjb21wYW55LCBvZnRlbiBqZW9wYXJkaXppbmcgeWVhcnMgb2Ygd29yaywgaWYgbm90IHRoZWlyIG9yZ2FuaXphdGlvbiZyc3F1bztzIHZlcnkgc3Vydml2YWwsJnJkcXVvOyBzYWlkIE1vbmEgSmFja21hbiwgYSBmZWRlcmFsIGdvdmVybm1lbnQgcG9saWN5IGFuYWx5c3QuICZsZHF1bztJdCZyc3F1bztzIGdvdHRlbiB0byB0aGUgcG9pbnQgd2hlcmUgcGVvcGxlIGFyZSBxdWVzdGlvbmluZyB0aGUgd2hvbGUgZGlnaXRhbCByZXZvbHV0aW9uLiBJIGNhbiZyc3F1bzt0IHJlYWxseSBzYXkgSSBibGFtZSB0aGVtLiBXaGVuIHlvdSBsb29rIGF0IHRoZSBzY2FsZSBvZiB0aGUgbGVha3MgYW5kIHRoZSBzdHJlbmd0aCBvZiB0aGUgb3JnYW5pemF0aW9ucyB0aGF0IHdlcmUgaGFja2VkLCB5b3UgaGF2ZSB0byBmZWVsIHZ1bG5lcmFibGUuIElmIHlvdSBhcmUgYSBzbWFsbCBidXNpbmVzcyBvd25lciB3aG8gZGVwZW5kcyBvbiBwcm9wcmlldGFyeSBpbmZvcm1hdGlvbiwgaXNuJnJzcXVvO3QgaXQgYmV0dGVyIHRvIGxlYXZlIGV2ZXJ5dGhpbmcgb2ZmbGluZSBhbmQgc3RpY2sgd2l0aCBwZW4gYW5kIHBhcGVyIG1ldGhvZHM\/JnJkcXVvOzwvcD48cD4mbGRxdW87VGhvc2Ugd2hvIHNheSB0aGF0IGhhY2tpbmcgY291bGQgc29tZWhvdyBoYXJtIHRoZSBJVCBpbmR1c3RyeSBkb24mcnNxdW87dCB1bmRlcnN0YW5kIHRoZSBsb25nLXRlcm0gdGVjaG5vbG9naWNhbCBmb3JjZXMgdGhhdCBhcmUgYXQgd29yay4gU29sdXRpb25zIGFyZSBiZWluZyBmb3VuZCBhcyBtb3JlIGNhc2ggaXMgaW5mdXNlZCBpbnRvIHRoZSBzeXN0ZW0sJnJkcXVvOyBvcGluZWQgQ2Fzc2FuZHJhIEJsYWNrLCBhbiBJVCBpbmR1c3RyeSBhbmFseXN0LiAmbGRxdW87U2VjdXJpdHkgY29uc3VsdGFudHMgbWFrZSB0aG91c2FuZHMgb2YgZG9sbGFycyBpbnN0YWxsaW5nIGZpcmV3YWxscywgYXV0aGVudGljYXRpb24gc29mdHdhcmUsIGFuZCBjeWJlcmFjdGl2aXR5IG1vbml0b3Jpbmcgc3lzdGVtcy4gQ3liZXJzZWN1cml0eSBjb21wYW5pZXMgaGF2ZSBiZWVuIGZsb3VyaXNoaW5nOyB0aGVzZSBoaWdoLXByb2ZpbGUgaGFja2luZyBjYXNlcyBhcmUgbGlrZSBmcmVlIHB1YmxpY2l0eSBmb3IgdGhlbS4mcmRxdW87PC9wPjxwPkhvd2V2ZXIsIG5vdCBldmVyeW9uZSBiZWxpZXZlcyB0aGF0IG1vcmUgY29zdGx5LCBzb3BoaXN0aWNhdGVkIHN5c3RlbXMgYXJlIHRoZSBhbnN3ZXIgdG8gbW9kZXJuIGN5YmVyc2VjdXJpdHkgdGhyZWF0cy4gJmxkcXVvO1doZW4gZGVhbGluZyB3aXRoIGhhY2tlcnMsIHRoZSBiZXN0IHRvb2wgd2UgaGF2ZSBpbiBvdXIgYXJzZW5hbCBpcyBlZHVjYXRpb24sJnJkcXVvOyB3ZWlnaHMgaW4gTWFyayBMZXZpbnN0ZWluLCBDaGllZiBJbmZvcm1hdGlvbiBPZmZpY2VyIGF0IGEgbGFyZ2UgQ2FuYWRpYW4gZW5naW5lZXJpbmcgY29uc3VsdGluZyBmaXJtLiAmbGRxdW87TW9zdCBvZiB0aGVzZSBsYXJnZSBsZWFrcyB3ZXJlIHRoZSByZXN1bHRzIG9mIHZlcnkgc2ltcGxlIHBoaXNoaW5nIHNjYW1zLCB3aGVyZWJ5IGhhY2tlcnMgd2VyZSB1bndpdHRpbmdseSBnaXZlbiBuZXR3b3JrIGFjY2VzcyBieSBlbXBsb3llZXMuIEkgZG9uJnJzcXVvO3Qgd29ycnkgZm9yIHRoZSBJVCBpbmR1c3RyeSwgYmVjYXVzZSB0aGVzZSBhcmUgYmFzaWMgaXNzdWVzIHRoYXQgY2FuIGJlIHJlc29sdmVkIGF0IGEgbG93IGNvc3QsIGJ1dCB3ZSBuZWVkIHByb3BlciB0cmFpbmluZyBhbmQgY29vcmRpbmF0aW9uIGFjcm9zcyB0aGUgc2VjdG9yLiZyZHF1bzs8L3A+In0sICJibG9ja3MiOiBbeyJ0eXBlIjogInN0ZW1saXN0IiwgImluc3RyIjogIlVzaW5nIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKSwgY2hvb3NlIHRoZSBiZXN0IG9wdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGluZm9ybWF0aW9uIGdpdmVuIG9uIHRoZSB3ZWJzaXRlLiIsICJpdGVtcyI6IFt7Im4iOiAxLCAicHJlIjogIkN5YmVyc2VjdXJpdHkgY29tcGFuaWVzIGhhdmUgbGlrZWx5IiwgIm9wdGlvbnMiOiBbImxvc3QgbWFueSBza2lsbGVkIGVtcGxveWVlcy4iLCAiZXhwZXJpZW5jZWQgaW5jcmVhc2VkIGhpcmluZy4iLCAiYmVlbiBzdWZmZXJpbmcgZmluYW5jaWFsbHkuIiwgImJlZW4gYmVoaW5kIHRoZSBkYXRhIGJyZWFjaGVzLiJdLCAia2V5IjogMn0sIHsibiI6IDIsICJwcmUiOiAiSmFja21hbiB3b3VsZCBhZ3JlZSB0aGF0IiwgIm9wdGlvbnMiOiBbIm5ld3Mgc3RvcmllcyBoYXZlIGV4YWdnZXJhdGVkIHRoZSB0aHJlYXQgb2YgZGF0YSBicmVhY2hlcy4iLCAic21hbGxlciBidXNpbmVzc2VzIGFyZSBsZXNzIHZ1bG5lcmFibGUgdG8gYmVpbmcgaGFja2VkLiIsICJ0aGUgZmVkZXJhbCBnb3Zlcm5tZW50IGhhcyBhIGR1dHkgdG8gc2h1dCBkb3duIGhhY2tlcnMuIiwgInRoZSBpbnRlcm5ldCBpcyBhIHJpc2t5IGxvY2F0aW9uIHRvIHN0b3JlIHNlbnNpdGl2ZSBkYXRhLiJdLCAia2V5IjogNH0sIHsibiI6IDMsICJwcmUiOiAiT25lIGlzc3VlIG1lbnRpb25lZCByZWdhcmRpbmcgZGF0YSBicmVhY2hlcyBpcyB0aGF0IiwgIm9wdGlvbnMiOiBbInRoZXlcdTIwMTlyZSBmcmVxdWVudGx5IGV4YWdnZXJhdGVkIGluIHRoZSBuZXdzLiIsICJjeWJlcnNlY3VyaXR5IGNvbXBhbmllcyBjYW5ub3Qga2VlcCBwYWNlLiIsICJzbWFsbCBidXNpbmVzc2VzIGFyZSB0aGUgcHJpbWFyeSB0YXJnZXRzLiIsICJ0aGV5XHUyMDE5cmUgb2Z0ZW4gaW5hZHZlcnRlbnRseSBjYXVzZWQgYnkgc3RhZmYuIl0sICJrZXkiOiA0fSwgeyJuIjogNCwgInByZSI6ICJDYXNzYW5kcmEgQmxhY2sgYmVsaWV2ZXMgdGhhdCBjeWJlcnNlY3VyaXR5IGNvbmNlcm5zIiwgIm9wdGlvbnMiOiBbImhhcm0gdGhlIElUIGluZHVzdHJ5IGluIHRoZSBsb25nIHJ1bi4iLCAicmVxdWlyZSBsaXR0bGUgZmluYW5jaW5nIHRvIGFkZHJlc3MuIiwgImJlbmVmaXQgY3liZXJzZWN1cml0eSBjb21wYW5pZXMuIiwgImhhdmUgYmVlbiBpbnN1ZmZpY2llbnRseSBwdWJsaWNpemVkLiJdLCAia2V5IjogM30sIHsibiI6IDUsICJwcmUiOiAiQWNjb3JkaW5nIHRvIHRoZSBhcnRpY2xlLCByZWNlbnQgY3liZXJzZWN1cml0eSBicmVhY2hlcyBoYXZlIiwgIm9wdGlvbnMiOiBbImNhdXNlZCBza2VwdGljaXNtIGFib3V0IGNvbXB1dGluZy4iLCAicmV2aXZlZCB1c2Ugb2YgcGFwZXIgZG9jdW1lbnRhdGlvbi4iLCAiYmVjb21lIGVhc2llciB0byBmaXggc3lzdGVtYXRpY2FsbHkuIiwgImNhdXNlZCB0aGUgSVQgaW5kdXN0cnkgdG8gaGl0IGEgd2FsbC4iXSwgImtleSI6IDF9XX0sIHsidHlwZSI6ICJjbG96ZSIsICJpbnN0ciI6ICJUaGUgZm9sbG93aW5nIGlzIGEgY29tbWVudCBieSBhIHZpc2l0b3IgdG8gdGhlIHdlYnNpdGUgcGFnZS4gQ29tcGxldGUgdGhlIGNvbW1lbnQgYnkgY2hvb3NpbmcgdGhlIGJlc3Qgb3B0aW9uIHRvIGZpbGwgaW4gZWFjaCBibGFuay4iLCAiYm9keSI6IFsiSVx1MjAxOXZlIGJlZW4gd29ya2luZyBhcyBhbiBJVCBjb25zdWx0YW50IGZvciBvdmVyIGEgZGVjYWRlLCBoZWxwaW5nIGNvbXBhbmllcyB0cmFuc2l0aW9uIHRvd2FyZHMgb25saW5lIGFjdGl2aXRpZXMuIEkgd291bGQgdGVuZCB0byBhZ3JlZSB3aXRoIE1zLiBCbGFjayB3aGVuIHNoZSBzYXlzIHRoYXQgdGhlcmUgYXJlIiwgeyJiIjogNiwgIm9wdGlvbnMiOiBbIm5ldHdvcmsgcHJvdGVjdGlvbiBleHBlcnRzIiwgInZhcmlvdXMgZ292ZXJubWVudCBhbmFseXN0cyIsICJyZWZvcm1lZCBjb21wdXRlciBoYWNrZXJzIiwgImZhbW91cyBwdWJsaWNpdHkgY29uc3VsdGFudHMiXSwgImtleSI6IDF9LCAiZW5zdXJpbmcgdGhlIGNvbnRpbnVhdGlvbiBvZiB0aGUgZGlnaXRhbGl6YXRpb24gcHJvY2Vzcy4iLCB7ImIiOiA3LCAib3B0aW9ucyI6IFsiSXQgaXMgdGhlcmVmb3JlIGEgZ29vZCB0aGluZyB0aGF0IiwgIlNoZVx1MjAxOXMgaGl0IHRoZSBtYXJrIGluIHNheWluZyB0aGF0IiwgIlNvIGl0XHUyMDE5cyBubyBzbWFsbCB3b25kZXIgdGhhdCIsICJUaGlzIGNvbnRpbnVlcyBldmVuIHdoaWxlIl0sICJrZXkiOiAzfSwgImJpZyBkYXRhLCBtYWNoaW5lIGxlYXJuaW5nLCBhbmQgY2xvdWQgY29tcHV0aW5nIGFyZSBiZWNvbWluZyBodWdlIGJ1c2luZXNzIGFkdmFudGFnZXMsIGFuZCBjb21wYW5pZXMgdGhhdCBmYWlsIHRvIGFkYXB0IHdpbGwgYmUgdW5hYmxlIHRvIGNvbXBldGUuIE9mIGNvdXJzZSwgdGhpcyBtZWFucyB0aGF0IiwgeyJiIjogOCwgIm9wdGlvbnMiOiBbInNhZmVndWFyZGluZyBkaWdpdGFsIGluZm9ybWF0aW9uIiwgImVtcGxveWVlIHRyYWluaW5nIGNvdXJzZXdhcmUiLCAicHVibGljaXppbmcgaW5mb3JtYXRpb24gYnJlYWNoZXMiLCAiaW50ZXJuZXQgdGVjaG5vbG9neSBjb29yZGluYXRpb24iXSwgImtleSI6IDF9LCAiaXMgYmVjb21pbmcgdmVyeSBwcm9maXRhYmxlLiIsIHsiYiI6IDksICJvcHRpb25zIjogWyJDb250cmFyeSB0byIsICJCYXNlZCBvbiByZXNlYXJjaCBieSIsICJUbyBwYXJhcGhyYXNlIiwgIkFzIGVsdWRlZCB0byBieSJdLCAia2V5IjogMX0sICJNci4gTGV2aW5zdGVpbiwgSSBiZWxpZXZlIHRoYXQgdGhlcmUgaXMgYSB0ZWNobm9sb2dpY2FsIGFybXMgcmFjZSBoYXBwZW5pbmcgYmV0d2VlbiBjeWJlcnNlY3VyaXR5IGV4cGVydHMgYW5kIGhhY2tlcnMuIiwgeyJiIjogMTAsICJvcHRpb25zIjogWyJUcmFpbmluZyBjb3Vyc2VzIiwgIlNvZnR3YXJlIHByb2dyYW1zIiwgIk5ldHdvcmsgcmVzdHJpY3Rpb25zIiwgIlNvcGhpc3RpY2F0ZWQgdG9vbHMiXSwgImtleSI6IDF9LCAiYXJlIG5vdCBlbm91Z2ggdG8gZW5zdXJlIHNlY3VyaXR5LiBTeXN0ZW1zIGhhdmUgdG8gYmUgYnVpbHQgYmVmb3JlIGVtcGxveWVlcyBjYW4gbGVhcm4gaG93IHRvIHVzZSB0aGVtIHByb3Blcmx5LiJdfV19XX07CgpmdW5jdGlvbiBjbGJFc3RpbWF0ZVIocmF3KXsKICBpZiAocmF3ID49IDM1KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDEwXHUyMDEzMTInLCBub3RlOidBZHZhbmNlZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDMwKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDknLCAgbm90ZTonRWZmZWN0aXZlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgOCcsICBub3RlOidHb29kIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjIpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNycsICBub3RlOidBZGVxdWF0ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDE3KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDYnLCAgbm90ZTonRGV2ZWxvcGluZyBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDExKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDUnLCAgbm90ZTonQWNxdWlyaW5nIHByb2ZpY2llbmN5JyB9OwogIHJldHVybiB7IGxldmVsOidDRUxQSVAgNCBvciBiZWxvdycsIG5vdGU6J0tlZXAgcHJhY3RpY2luZyEnIH07Cn0KCihmdW5jdGlvbigpewogIC8qIC0tLS0gaW5qZWN0IHNjb3BlZCBDU1MgKFdvcmRQcmVzcy1zYWZlOiA8c3R5bGU+IGluIGNvbnRlbnQgY2FuIGJlIHN0cmlwcGVkKSAtLS0tICovCiAgdmFyIENTUyA9IGAKLmNscHItd3JhcHstLW5hdnk6IzA1MEUyMDstLWI5MDA6IzBEMjM1MjstLWI3MDA6IzEyNDVBODstLWI1MDA6IzI1NjNFQjstLWI0MDA6IzNCODJGNjstLWIyMDA6IzkzQzVGRDstLWIxMDA6I0RCRUFGRTstLWI1MDojRUZGNkZGOy0tdGVhbDojMEQ5NDg4Oy0tY3lhbjojMDZCNkQ0Oy0tZ3JlZW46IzEwQjk4MTstLWdyZWVuNTA6I0VDRkRGNTstLXJvc2U6I0Y0M0Y1RTstLXRleHQ6IzBGMTcyQTstLW11dGVkOiM0NzU1Njk7LS1zdWJ0bGU6Izk0QTNCODstLWJvcmRlcjojRTJFOEYwOy0tYmFyLWJnOiNFOEVCRUY7LS1iYXItYm9yZGVyOiNEM0Q5RTA7LS1iYXItdGV4dDojMUYyOTM3Oy0tcGFuZWwtcC1iZzojRjRGNUY3Oy0tcGFuZWwtcC1ib3JkZXI6I0UzRTZFQTstLXBhbmVsLXEtYmc6I0U5RjRGNzstLXBhbmVsLXEtYm9yZGVyOiNENkU4RUQ7LS1kZC1vcGVuLWJnOiNDQkVCRjQ7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJyxzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sc2Fucy1zZXJpZjtjb2xvcjp2YXIoLS10ZXh0KTttYXgtd2lkdGg6MTE4MHB4O21hcmdpbjowIGF1dG87cGFkZGluZzoxNnB4IDE2cHggNTZweDtsaW5lLWhlaWdodDoxLjU7Zm9udC1zaXplOjE2cHg7fQouY2xwci13cmFwICosLmNscHItd3JhcCAqOjpiZWZvcmUsLmNscHItd3JhcCAqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7fQouY2xwci13cmFwIGJ1dHRvbntmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO30KLmNscHItd3JhcCBoMSwuY2xwci13cmFwIGgyLC5jbHByLXdyYXAgaDMsLmNscHItd3JhcCBwe21hcmdpbjowO30KLmNscHItaGVyb3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoyMnB4O2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjM0cHggMzhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxM3B4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym94LXNoYWRvdzowIDIwcHggNDBweCAtMjBweCByZ2JhKDUsMTQsMzIsLjQ1KTt9Ci5jbHByLWF1cm9yYXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouY2xwci1hdXJvcmEgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2ZpbHRlcjpibHVyKDQ2cHgpO29wYWNpdHk6LjU1O30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDEpe3dpZHRoOjQyMHB4O2hlaWdodDo0MjBweDtsZWZ0Oi0xMjBweDt0b3A6LTIwMHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMTI0NUE4IDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMil7d2lkdGg6MzgwcHg7aGVpZ2h0OjM4MHB4O3JpZ2h0Oi04MHB4O3RvcDotMTYwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMwRDk0ODggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgzKXt3aWR0aDozNDBweDtoZWlnaHQ6MzQwcHg7cmlnaHQ6MjIlO2JvdHRvbTotMjQwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWhlcm8tYmFkZ2Vze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fQouY2xwci1iYWRnZS1icmFuZHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tYjkwMCk7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6NHB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtsZXR0ZXItc3BhY2luZzouMDFlbTt9Ci5jbHByLWJhZGdlLXNldHtjb2xvcjp2YXIoLS1iMjAwKTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7fQouY2xwci1oZXJvIGgxe3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTpjbGFtcCgyNnB4LDR2dyw0MHB4KTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO2xpbmUtaGVpZ2h0OjEuMTI7fQouY2xwci1oZXJvLXN1Yntwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojQzdEMkUzO2ZvbnQtc2l6ZToxNC41cHg7bWF4LXdpZHRoOjc2MHB4O30KLmNscHItaGVyby1jaGlwc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWNoaXB7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I0U1RUVGQjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtwYWRkaW5nOjVweCAxMXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7fQouY2xwci1jdGF7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo2cHg7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTVweDtwYWRkaW5nOjEycHggMjJweDtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDEycHggMjRweCAtMTBweCByZ2JhKDM3LDk5LDIzNSwuOCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyxiYWNrZ3JvdW5kIC4xNXM7fQouY2xwci1jdGE6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7YmFja2dyb3VuZDp2YXIoLS1iNDAwKTt9Ci5jbHByLXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tdG9wOjE4cHg7cGFkZGluZzoxMHB4IDE0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDZweCAxOHB4IC0xMnB4IHJnYmEoMTUsMjMsNDIsLjI1KTtwb3NpdGlvbjpzdGlja3k7dG9wOjhweDt6LWluZGV4OjMwO30KLmNscHItdG9vbGJhcltoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXRvb2xiYXItc3BhY2Vye2ZsZXg6MTt9Ci5jbHByLXNjb3JlLWNoaXB7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLXRidG57YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtjb2xvcjp2YXIoLS10ZXh0KTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo4cHggMTVweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxib3gtc2hhZG93IC4xMnM7fQouY2xwci10YnRuOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTRweCAtOHB4IHJnYmEoMTUsMjMsNDIsLjMpO30KLmNscHItdGJ0bi1jaGVja3tiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTtib3JkZXItY29sb3I6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci10YnRuLWNoZWNrOmhvdmVye2JhY2tncm91bmQ6IzBjYTY3ODt9Ci5jbHByLXRidG5bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lO2JveC1zaGFkb3c6bm9uZTt9Ci5jbHByLXNpbXttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1zaW1baGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1kb3Rze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbjowIDAgMTJweCAycHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1kb3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1tdXRlZCk7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjE1czt9Ci5jbHByLWRvdCBie2Rpc3BsYXk6aW5saW5lLWZsZXg7d2lkdGg6MTlweDtoZWlnaHQ6MTlweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWIxMDApO2NvbG9yOnZhcigtLWI5MDApO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMXB4O30KLmNscHItZG90LmNscHItY3Vye2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1jdXIgYntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI1KTtjb2xvcjojZmZmO30KLmNscHItZG90LmNscHItZG9uZSBie2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci1jYXR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMXB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1iYXItYmcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItYmFyLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iYXItdGV4dCk7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItYmFyLXRpbWVye2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWJhci10ZXh0KTt3aGl0ZS1zcGFjZTpub3dyYXA7fQouY2xwci1iYXItdGltZXIgYntmb250LXdlaWdodDo4MDA7fQouY2xwci1jb2xze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MDt9Ci5jbHByLXBhc3NhZ2V7cGFkZGluZzoyMHB4IDIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbC1wLWJnKTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0OjEyMDBweDtvdmVyZmxvdzphdXRvO30KLmNscHItcWNvbHtwYWRkaW5nOjE4cHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXEtYmcpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1wbGFiZWwsLmNscHItaW5zdHJ7ZGlzcGxheTpmbGV4O2dhcDo5cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7bWFyZ2luLWJvdHRvbToxMnB4O30KLmNscHItcGxhYmVsOjpiZWZvcmUsLmNscHItaW5zdHI6OmJlZm9yZXtjb250ZW50OiJpIjtmbGV4Om5vbmU7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc3R5bGU6aXRhbGljO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjFweDt9Ci5jbHByLXBhc3NhZ2UgcHtmb250LXNpemU6MTQuNXB4O2NvbG9yOiMxZTJhM2E7bWFyZ2luLWJvdHRvbToxMXB4O2xpbmUtaGVpZ2h0OjEuNzI7fQouY2xwci1waW1ne3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2s7fQouY2xwci1ibG9ja3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1xLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTZweCAxNnB4O21hcmdpbi1ib3R0b206MTZweDt9Ci5jbHByLXN0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO3BhZGRpbmc6OXB4IDA7bGluZS1oZWlnaHQ6MS43O30KLmNscHItc3RlbSArIC5jbHByLXN0ZW17Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNFNkVERjE7fQouY2xwci1zbnVte2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTt9Ci5jbHByLWNsb3ple2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO2xpbmUtaGVpZ2h0OjIuMTU7fQouY2xwci1jbG96ZSAuY2xwci1wYXJhe21hcmdpbi1ib3R0b206MTJweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt9Ci5jbHByLW1hdGNoLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTJweDtwYWRkaW5nOjExcHggMDtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNjt9Ci5jbHByLW1hdGNoLXJvdyArIC5jbHByLW1hdGNoLXJvd3tib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLW1hdGNoLXJvdyAuY2xwci1zbnVte21hcmdpbi10b3A6NXB4O30KLyogZHJvcGRvd24gd2lkZ2V0ICovCi5jbHByLWRke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjoycHggMnB4O30KLmNscHItZGQtYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjY0cHg7bWF4LXdpZHRoOjM0MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNCN0MyQ0U7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo1cHggOXB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6MS4zNTt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnMsYm9yZGVyLWNvbG9yIC4xMnM7fQouY2xwci1kZC1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLmNscHItb3BlbiAuY2xwci1kZC1idG57YmFja2dyb3VuZDp2YXIoLS1kZC1vcGVuLWJnKTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fQouY2xwci1kZC10eHR7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItZGQtdHh0LmNscHItZW1wdHl7Y29sb3I6dmFyKC0tc3VidGxlKTtsZXR0ZXItc3BhY2luZzozcHg7fQouY2xwci1kZC1jYXJldHtmb250LXNpemU6OXB4O2NvbG9yOnZhcigtLWI3MDApO2ZsZXg6bm9uZTt9Ci5jbHByLWRkLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2MDt0b3A6Y2FsYygxMDAlICsgNHB4KTtsZWZ0OjA7bWluLXdpZHRoOjI0MHB4O21heC13aWR0aDozNjBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjQzZEMERBO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCAxNnB4IDM0cHggLTEycHggcmdiYSgxNSwyMyw0MiwuNCk7cGFkZGluZzo1cHg7ZGlzcGxheTpub25lO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLW1lbnV7ZGlzcGxheTpibG9jazt9Ci5jbHByLWRkLW9wdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OXB4O3BhZGRpbmc6OHB4IDlweDtib3JkZXItcmFkaXVzOjZweDtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLXRleHQpO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuNDt9Ci5jbHByLWRkLW9wdDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7fQouY2xwci1kZC1vcHQgLmNscHItcmFkaW97ZmxleDpub25lO3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjEuNXB4IHNvbGlkICM5QUE3QjQ7bWFyZ2luLXRvcDoxcHg7fQouY2xwci1kZC1vcHQuY2xwci1zZWwgLmNscHItcmFkaW97Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDQyJSwjZmZmIDQ3JSk7fQouY2xwci1kZC5jbHByLXJpZ2h0IC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApO2JvcmRlcjoycHggc29saWQgdmFyKC0tZ3JlZW4pO2NvbG9yOiMwNDc4NTc7fQouY2xwci1kZC5jbHByLXdyb25nIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOiNGRkYxRjI7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1yb3NlKTtjb2xvcjojQkUxMjNDO30KLmNscHItc29sdmVke2Rpc3BsYXk6bm9uZTttYXJnaW4tbGVmdDo3cHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItc29sdmVke2Rpc3BsYXk6aW5saW5lO30KLmNscHItbmF2e2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE0cHggMThweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1uYXZidG57YmFja2dyb3VuZDp2YXIoLS1iOTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O3BhZGRpbmc6OXB4IDIwcHg7Ym9yZGVyLXJhZGl1czo5cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxiYWNrZ3JvdW5kIC4xMnM7fQouY2xwci1uYXZidG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNzAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt9Ci5jbHByLW5hdmJ0bi5jbHByLWdob3N0e2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bltkaXNhYmxlZF17b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7fQouY2xwci1yZXN1bHRze21hcmdpbi10b3A6MThweDt9Ci5jbHByLXJlc3VsdHNbaGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1yZXMtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjI0cHggMjZweDtib3gtc2hhZG93OjAgMTZweCA0MHB4IC0yMnB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItcmVzLXRvcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoyMHB4O2ZsZXgtd3JhcDp3cmFwO30KLmNscHItcmVzLXNjb3Jle2ZvbnQtc2l6ZTo0NHB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTtsaW5lLWhlaWdodDoxO30KLmNscHItcmVzLXNjb3JlIHNwYW57Zm9udC1zaXplOjIwcHg7Y29sb3I6dmFyKC0tc3VidGxlKTt9Ci5jbHByLXJlcy1jbGJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTBweCAxNnB4O30KLmNscHItcmVzLWNsYiBie2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE4cHg7Y29sb3I6dmFyKC0tYjkwMCk7fQouY2xwci1yZXMtY2xiIHNtYWxse2NvbG9yOnZhcigtLW11dGVkKTt9Ci5jbHByLXJlcy1icmVha3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxNnB4O30KLmNscHItcmVzLXBpbGx7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNGMUY1Rjk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjZweCAxM3B4O30KLmNscHItcmVzLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtmbGV4LXdyYXA6d3JhcDt9CkBtZWRpYShtYXgtd2lkdGg6ODIwcHgpey5jbHByLWNvbHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmNscHItcGFzc2FnZXtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7bWF4LWhlaWdodDpub25lO30uY2xwci1xY29se21heC1oZWlnaHQ6bm9uZTt9fQpgOwogIHZhciBzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7IHN0LnRleHRDb250ZW50ID0gQ1NTOyBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KTsKICB2YXIgd3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByV3JhcCcpOwogIHZhciBzdGFydEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU3RhcnQnKTsKICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByVG9vbGJhcicpOwogIHZhciBzaW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNpbScpOwogIHZhciBkb3RzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckRvdHMnKTsKICB2YXIgY2F0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNhdCcpOwogIHZhciByZXN1bHRzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc3VsdHMnKTsKICB2YXIgc2NvcmVDaGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTY29yZUNoaXAnKTsKICB2YXIgY2hlY2tCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNoZWNrJyk7CiAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXNldCcpOwoKICB2YXIgUSA9IFtdOwogIHZhciBjdXJQYXJ0ID0gMDsKICB2YXIgY2hlY2tlZCA9IGZhbHNlOwoKICBmdW5jdGlvbiBlbCh0YWcsIGNscywgaHRtbCl7IHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsgaWYoY2xzKWUuY2xhc3NOYW1lPWNsczsgaWYoaHRtbCE9bnVsbCllLmlubmVySFRNTD1odG1sOyByZXR1cm4gZTsgfQoKICAvKiBCdWlsZCB0aGUgcGVyc2lzdGVudCBxdWVzdGlvbiBsaXN0IE9OQ0U7IGF0dGFjaCAuX3EgdG8gZWFjaCBpdGVtL2JsYW5rIHNvCiAgICAgcmUtcmVuZGVyaW5nIGEgcGFydCByZXVzZXMgdGhlIHNhbWUgc3RhdGUgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4gKi8KICBmdW5jdGlvbiBpbml0UXVlc3Rpb25zKCl7CiAgICBRID0gW107CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpewogICAgICBwYXJ0LmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uKGJsayl7CiAgICAgICAgaWYoYmxrLnR5cGU9PT0nY2xvemUnKXsKICAgICAgICAgIGJsay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsgaWYodHlwZW9mIHRvaz09PSdvYmplY3QnKXsgdG9rLl9xPXtzZWw6bnVsbCxrZXk6dG9rLmtleSxuOnRvay5iLHBhcnQ6cGFydC5pZH07IFEucHVzaCh0b2suX3EpOyB9IH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBibGsuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7IGl0Ll9xPXtzZWw6bnVsbCxrZXk6aXQua2V5LG46aXQubixwYXJ0OnBhcnQuaWR9OyBRLnB1c2goaXQuX3EpOyB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBtYWtlRHJvcGRvd24ob3B0aW9ucywgcXJlZil7CiAgICB2YXIgZGQgPSBlbCgnc3BhbicsJ2NscHItZGQnKTsKICAgIHZhciBidG4gPSBlbCgnYnV0dG9uJywnY2xwci1kZC1idG4nKTsKICAgIHZhciB0eHQgPSBlbCgnc3BhbicsJ2NscHItZGQtdHh0IGNscHItZW1wdHknLCcgICAnKTsKICAgIHZhciBjYXJldCA9IGVsKCdzcGFuJywnY2xwci1kZC1jYXJldCcsJ1x1MjViZScpOwogICAgYnRuLmFwcGVuZENoaWxkKHR4dCk7IGJ0bi5hcHBlbmRDaGlsZChjYXJldCk7CiAgICB2YXIgc29sdmVkID0gZWwoJ3NwYW4nLCdjbHByLXNvbHZlZCcsJycpOwogICAgdmFyIG1lbnUgPSBlbCgnc3BhbicsJ2NscHItZGQtbWVudScpOwogICAgb3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG9wdCwgaSl7CiAgICAgIHZhciBvID0gZWwoJ3NwYW4nLCdjbHByLWRkLW9wdCcpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1yYWRpbycpKTsKICAgICAgby5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxvcHQpKTsKICAgICAgby5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICBpZihjaGVja2VkKSByZXR1cm47CiAgICAgICAgcXJlZi5zZWwgPSBpKzE7CiAgICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0OyB0eHQuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7CiAgICAgICAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1zZWwnKTt9KTsKICAgICAgICBvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICAgICAgY2xvc2VBbGwoKTsKICAgICAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgICAgfSk7CiAgICAgIG1lbnUuYXBwZW5kQ2hpbGQobyk7CiAgICB9KTsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgdmFyIHdhc09wZW4gPSBkZC5jbGFzc0xpc3QuY29udGFpbnMoJ2NscHItb3BlbicpOwogICAgICBjbG9zZUFsbCgpOwogICAgICBpZighd2FzT3BlbikgZGQuY2xhc3NMaXN0LmFkZCgnY2xwci1vcGVuJyk7CiAgICB9KTsKICAgIGRkLmFwcGVuZENoaWxkKGJ0bik7IGRkLmFwcGVuZENoaWxkKHNvbHZlZCk7IGRkLmFwcGVuZENoaWxkKG1lbnUpOwogICAgcXJlZi5kZEVsID0gZGQ7IHFyZWYudHh0RWwgPSB0eHQ7IHFyZWYuc29sdmVkRWwgPSBzb2x2ZWQ7IHFyZWYub3B0aW9ucyA9IG9wdGlvbnM7CiAgICBpZihxcmVmLnNlbCE9bnVsbCl7CiAgICAgIHR4dC50ZXh0Q29udGVudCA9IG9wdGlvbnNbcXJlZi5zZWwtMV07IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgdmFyIHNvID0gbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKVtxcmVmLnNlbC0xXTsgaWYoc28pIHNvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICB9CiAgICByZXR1cm4gZGQ7CiAgfQogIGZ1bmN0aW9uIGNsb3NlQWxsKCl7IHdyYXAucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQuY2xwci1vcGVuJykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItb3BlbicpO30pOyB9CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUFsbCk7CgogIGZ1bmN0aW9uIGJ1aWxkUGFydChwaSl7CiAgICB2YXIgcGFydCA9IFJEQVRBLnBhcnRzW3BpXTsKICAgIGNhdEVsLmlubmVySFRNTD0nJzsKICAgIHZhciBiYXIgPSBlbCgnZGl2JywnY2xwci1iYXInKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1iYXItdGl0bGUnLCAnUHJhY3RpY2UgVGVzdCAyIFx1MjAxMyAnK3BhcnQubmFtZSkpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aW1lcicsJ1N1Z2dlc3RlZCB0aW1lOiA8Yj4nK3BhcnQudGltZSsnPC9iPicpKTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGJhcik7CiAgICB2YXIgY29scyA9IGVsKCdkaXYnLCdjbHByLWNvbHMnKTsKICAgIHZhciBsZWZ0ID0gZWwoJ2RpdicsJ2NscHItcGFzc2FnZScpOwogICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1wbGFiZWwnLCBwYXJ0LnBhc3NhZ2UubGFiZWwpKTsKICAgIGlmKHBhcnQucGFzc2FnZS50eXBlPT09J2ltYWdlJyl7CiAgICAgIHZhciBpbWcgPSBlbCgnaW1nJywnY2xwci1waW1nJyk7IGltZy5zcmMgPSBwYXJ0LnBhc3NhZ2Uuc3JjOyBpbWcuYWx0ID0gcGFydC5wYXNzYWdlLmFsdHx8Jyc7IGxlZnQuYXBwZW5kQ2hpbGQoaW1nKTsKICAgIH0gZWxzZSB7CiAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsbnVsbCwgcGFydC5wYXNzYWdlLmh0bWwpKTsKICAgIH0KICAgIHZhciByaWdodCA9IGVsKCdkaXYnLCdjbHByLXFjb2wnKTsKICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxvY2speyByaWdodC5hcHBlbmRDaGlsZChidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KSk7IH0pOwogICAgY29scy5hcHBlbmRDaGlsZChsZWZ0KTsgY29scy5hcHBlbmRDaGlsZChyaWdodCk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChjb2xzKTsKICAgIHZhciBuYXYgPSBlbCgnZGl2JywnY2xwci1uYXYnKTsKICAgIHZhciBwcmV2ID0gZWwoJ2J1dHRvbicsJ2NscHItbmF2YnRuIGNscHItZ2hvc3QnLCdcdTIxOTAgUHJldmlvdXMgcGFydCcpOwogICAgdmFyIG5leHQgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4nLCdOZXh0IHBhcnQgXHUyMTkyJyk7CiAgICBwcmV2LmRpc2FibGVkID0gKHBpPT09MCk7IG5leHQuZGlzYWJsZWQgPSAocGk9PT1SREFUQS5wYXJ0cy5sZW5ndGgtMSk7CiAgICBwcmV2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk+MCkgZ28ocGktMSk7IH0pOwogICAgbmV4dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmKHBpPFJEQVRBLnBhcnRzLmxlbmd0aC0xKSBnbyhwaSsxKTsgfSk7CiAgICBuYXYuYXBwZW5kQ2hpbGQocHJldik7IG5hdi5hcHBlbmRDaGlsZChuZXh0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKG5hdik7CiAgICBpZihjaGVja2VkKSBhcHBseU1hcmtzKCk7CiAgfQoKICBmdW5jdGlvbiBidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KXsKICAgIHZhciB3cmFwQiA9IGVsKCdkaXYnLCdjbHByLWJsb2NrJyk7CiAgICB3cmFwQi5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1pbnN0cicsIGJsb2NrLmluc3RyKSk7CiAgICBpZihibG9jay50eXBlPT09J3N0ZW1saXN0Jyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1zdGVtJyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnByZSsnICcpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGl0Lm9wdGlvbnMsIGl0Ll9xKSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdjbG96ZScpewogICAgICB2YXIgYm94ID0gZWwoJ2RpdicsJ2NscHItY2xvemUnKTsKICAgICAgYmxvY2suYm9keS5mb3JFYWNoKGZ1bmN0aW9uKHRvayl7CiAgICAgICAgaWYodHlwZW9mIHRvaz09PSdzdHJpbmcnKXsKICAgICAgICAgIHZhciBzZWdzID0gdG9rLnNwbGl0KCdcblxuJyk7CiAgICAgICAgICBzZWdzLmZvckVhY2goZnVuY3Rpb24oc2VnLCBpZHgpewogICAgICAgICAgICBpZihpZHg+MCl7IGJveC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwnPGJyPjxicj4nKSk7IH0KICAgICAgICAgICAgYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNlZykpOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24odG9rLm9wdGlvbnMsIHRvay5fcSkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHdyYXBCLmFwcGVuZENoaWxkKGJveCk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdtYXRjaCcpewogICAgICBibG9jay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsKICAgICAgICB2YXIgcm93ID0gZWwoJ2RpdicsJ2NscHItbWF0Y2gtcm93Jyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bihibG9jay5sZXR0ZXJzLCBpdC5fcSkpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItc251bScsIGl0Lm4rJy4nKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCBpdC50ZXh0KSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gd3JhcEI7CiAgfQoKICBmdW5jdGlvbiBidWlsZERvdHMoKXsKICAgIGRvdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHAsIGkpewogICAgICB2YXIgZCA9IGVsKCdidXR0b24nLCdjbHByLWRvdCcrKGk9PT1jdXJQYXJ0PycgY2xwci1jdXInOicnKSk7CiAgICAgIGQuYXBwZW5kQ2hpbGQoZWwoJ2InLG51bGwsKGkrMSkpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxbJ0NvcnJlc3BvbmRlbmNlJywnQXBwbHkgYSBEaWFncmFtJywnSW5mb3JtYXRpb24nLCdWaWV3cG9pbnRzJ11baV0pKTsKICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKGkpOyB9KTsKICAgICAgZG90c0VsLmFwcGVuZENoaWxkKGQpOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGdvKHBpKXsgY3VyUGFydD1waTsgYnVpbGREb3RzKCk7IGJ1aWxkUGFydChwaSk7IGNhdEVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7IH0KCiAgZnVuY3Rpb24gdXBkYXRlU2NvcmVDaGlwKCl7CiAgICB2YXIgYW5zID0gUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsIT1udWxsO30pLmxlbmd0aDsKICAgIHNjb3JlQ2hpcC50ZXh0Q29udGVudCA9IGNoZWNrZWQgPyAoUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsPT09cS5rZXk7fSkubGVuZ3RoKycgLyAnK1EubGVuZ3RoKycgY29ycmVjdCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGFucysnIC8gJytRLmxlbmd0aCsnIGFuc3dlcmVkJyk7CiAgfQoKICBmdW5jdGlvbiBhcHBseU1hcmtzKCl7CiAgICBRLmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICAgIGlmKCFxLmRkRWwpIHJldHVybjsKICAgICAgcS5kZEVsLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItcmlnaHQnLCdjbHByLXdyb25nJyk7CiAgICAgIGlmKHEuc2VsPT09cS5rZXkpeyBxLmRkRWwuY2xhc3NMaXN0LmFkZCgnY2xwci1yaWdodCcpOyB9CiAgICAgIGVsc2UgewogICAgICAgIHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXdyb25nJyk7CiAgICAgICAgaWYocS5zb2x2ZWRFbCkgcS5zb2x2ZWRFbC50ZXh0Q29udGVudCA9ICdcdTI3MTMgJytxLm9wdGlvbnNbcS5rZXktMV07CiAgICAgICAgaWYocS5zZWw9PW51bGwgJiYgcS50eHRFbCl7IHEudHh0RWwudGV4dENvbnRlbnQ9JyhubyBhbnN3ZXIpJzsgcS50eHRFbC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsgfQogICAgICB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGRvQ2hlY2soKXsKICAgIGNoZWNrZWQgPSB0cnVlOwogICAgYXBwbHlNYXJrcygpOwogICAgdmFyIGNvcnJlY3QgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGg7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIGNoZWNrQnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgIHZhciBieVBhcnQgPSB7fTsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsgYnlQYXJ0W3EucGFydF09YnlQYXJ0W3EucGFydF18fHtjOjAsdDowfTsgYnlQYXJ0W3EucGFydF0udCsrOyBpZihxLnNlbD09PXEua2V5KWJ5UGFydFtxLnBhcnRdLmMrKzsgfSk7CiAgICB2YXIgZXN0ID0gY2xiRXN0aW1hdGVSKGNvcnJlY3QpOwogICAgdmFyIHBpbGxzID0gUkRBVEEucGFydHMubWFwKGZ1bmN0aW9uKHApeyB2YXIgYj1ieVBhcnRbcC5pZF18fHtjOjAsdDowfTsgcmV0dXJuICc8c3BhbiBjbGFzcz0iY2xwci1yZXMtcGlsbCI+UGFydCAnK3AuaWQrJzogJytiLmMrJy8nK2IudCsnPC9zcGFuPic7IH0pLmpvaW4oJycpOwogICAgcmVzdWx0c0VsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jYXJkIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXRvcCI+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1zY29yZSI+Jytjb3JyZWN0Kyc8c3Bhbj4vJytRLmxlbmd0aCsnPC9zcGFuPjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtY2xiIj48Yj4nK2VzdC5sZXZlbCsnPC9iPjxzbWFsbD4nK2VzdC5ub3RlKycgJm1pZGRvdDsgZXN0aW1hdGVkIFJlYWRpbmcgYmFuZDwvc21hbGw+PC9kaXY+JwogICAgICArICc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWJyZWFrIj4nK3BpbGxzKyc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIGNscHItZ2hvc3QiIGlkPSJjbHByUmV2aWV3Ij5SZXZpZXcgYW5zd2VycyBpbiBlYWNoIHBhcnQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJjbHByLW5hdmJ0biIgaWQ9ImNscHJSZXRyeSI+VHJ5IGFnYWluPC9idXR0b24+PC9kaXY+JwogICAgICArICc8cCBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpIj5Fc3RpbWF0ZWQgYmFuZCBpcyBhIHN0dWR5IGd1aWRlIG9ubHksIG5vdCBhbiBvZmZpY2lhbCBDRUxQSVAgc2NvcmUuIENvcnJlY3QgYW5zd2VycyBhcmUgc2hvd24gd2l0aCBhIGdyZWVuIGNoZWNrIG9uIGVhY2ggZHJvcC1kb3duIHlvdSBhbnN3ZXJlZCBpbmNvcnJlY3RseS48L3A+JwogICAgICArICc8L2Rpdj4nOwogICAgcmVzdWx0c0VsLmhpZGRlbiA9IGZhbHNlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXRyeScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXZpZXcnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKDApOyB9KTsKICAgIHJlc3VsdHNFbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgZnVuY3Rpb24gcmVzZXRBbGwoKXsKICAgIGNoZWNrZWQ9ZmFsc2U7IGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOwogICAgY2hlY2tCdG4uZGlzYWJsZWQ9ZmFsc2U7CiAgICByZXN1bHRzRWwuaGlkZGVuPXRydWU7IHJlc3VsdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KDApOwogICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICBzaW0uc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsKICB9CgogIHN0YXJ0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHdyYXAucXVlcnlTZWxlY3RvcignLmNscHItaGVybycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgdG9vbGJhci5oaWRkZW49ZmFsc2U7IHNpbS5oaWRkZW49ZmFsc2U7CiAgICBpbml0UXVlc3Rpb25zKCk7IGN1clBhcnQ9MDsgY2hlY2tlZD1mYWxzZTsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7IHVwZGF0ZVNjb3JlQ2hpcCgpOwogIH0pOwogIGNoZWNrQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZG9DaGVjayk7CiAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7Cn0pKCk7\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 12 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-6475","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6475","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=6475"}],"version-history":[{"count":1,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6475\/revisions"}],"predecessor-version":[{"id":6541,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6475\/revisions\/6541"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}