{"id":6393,"date":"2026-07-10T16:52:08","date_gmt":"2026-07-10T16:52:08","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-7-test-1-writing\/"},"modified":"2026-07-12T03:24:42","modified_gmt":"2026-07-12T03:24:42","slug":"celpip-set-7-test-1-writing","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-7-test-1-writing\/","title":{"rendered":"CELPIP Writing \u2014 Set 7 \u00b7 Practice Test 1"},"content":{"rendered":"<div class=\"clpw-wrap\" id=\"clpwApp\"><\/div>\n<p><script>eval(atob(\"dmFyIFdEQVRBPXsibWV0YSI6eyJicmFuZCI6IkNFTFBJUCIsInNldCI6IlNldCA3IFx1MDBiNyBQcmFjdGljZSBUZXN0IDEiLCJ0aXRsZSI6IkNFTFBJUCBXcml0aW5nIFByYWN0aWNlIFRlc3QiLCJ0b3RhbE1pbiI6NTN9LCJ0YXNrcyI6W3siaWQiOjEsImJhclRpdGxlIjoiUHJhY3RpY2UgVGVzdCAxIFx1MjAxMyBXcml0aW5nIFRhc2sgMTogV3JpdGluZyBhbiBFbWFpbCIsIm5hbWUiOiJXcml0aW5nIGFuIEVtYWlsIiwibWludXRlcyI6MjcsIndvcmRBaW0iOiIxNTBcdTIwMTMyMDAgd29yZHMiLCJyZWFkSGVhZCI6IlJlYWQgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbi4iLCJzY2VuYXJpbyI6IkluIHRoZSBtYWlsLCB5b3UgcmVjZWl2ZWQgYW4gYWR2ZXJ0aXNlbWVudCBhYm91dCB0aGUgb3BlbmluZyBvZiBhIG5ldyBkZXBhcnRtZW50IHN0b3JlLiBUaGUgYWR2ZXJ0aXNlbWVudCBzYWlkIHRoYXQgdGhleSBoYXZlIG1hbnkgaXRlbXMgYXQgc3BlY2lhbCBsb3cgcHJpY2VzLiBIb3dldmVyLCB3aGVuIHlvdSB3ZW50IHRvIHRoZSBzdG9yZSwgeW91IGNvdWxkIG5vdCBmaW5kIHRoZSBpdGVtcy4iLCJwcm9tcHRIZWFkIjoiV3JpdGUgYW4gZW1haWwgdG8gdGhlIGRlcGFydG1lbnQgc3RvcmUgbWFuYWdlciBpbiBhYm91dCAxNTBcdTIwMTMyMDAgd29yZHMuIFlvdXIgZW1haWwgc2hvdWxkIGRvIHRoZSBmb2xsb3dpbmcgdGhpbmdzOiIsImJ1bGxldHMiOlsiRXhwbGFpbiB3aHkgeW91IHdlbnQgdG8gdGhlIG9wZW5pbmcuIiwiQ29tcGxhaW4gYWJvdXQgdGhlIHN0b3JlIG5vdCBoYXZpbmcgdGhlIGl0ZW1zIHRoZXkgYWR2ZXJ0aXNlZC4iLCJEZXNjcmliZSBob3cgeW91IHdvdWxkIGxpa2UgdGhlIHN0b3JlIHRvIGZpeCB0aGUgcHJvYmxlbS4iXSwib3B0aW9ucyI6bnVsbCwic2FtTm90ZSI6IlRoZXNlIGFyZSBBbGxFbmdsaXNoNFUgbW9kZWwgYW5zd2VycyB3cml0dGVuIGZvciB0aGlzIGV4YWN0IFRhc2sgMSBlbWFpbCBwcm9tcHQgKGNvbXBsYWluaW5nIHRoYXQgdGhlIGFkdmVydGlzZWQgc2FsZSBpdGVtcyB3ZXJlIG5vdCBpbiB0aGUgc3RvcmUpLCBzaG93biBhdCB0aHJlZSBzY29yZSBsZXZlbHMgKENFTFBJUCA0XHUyMDEzNSwgN1x1MjAxMzggYW5kIDEwXHUyMDEzMTIpIHNvIHlvdSBjYW4gc2VlIGhvdyB0aGUgc2FtZSB0YXNrIHJlYWRzIGFzIGl0IGltcHJvdmVzLiBUaGV5IGFyZSBBRTRVIHN0dWR5IG1vZGVscywgbm90IG9mZmljaWFsIENFTFBJUCBzYW1wbGVzOyB0aGUgNFx1MjAxMzUgbW9kZWwgZGVsaWJlcmF0ZWx5IGtlZXBzIHNvbWUgZXJyb3JzLiIsInNhbXBsZXMiOlt7ImxldmVsIjoiQ0VMUElQIDRcdTIwMTM1IFJlc3BvbnNlIiwibm90ZSI6IkEgYmVsaWV2YWJsZSBjb21wbGFpbnQgd2l0aCBhbGwgdGhyZWUgYnVsbGV0czsgc2hvcnQgc2VudGVuY2VzIGFuZCBmcmVxdWVudCBzbWFsbCBlcnJvcnMuIiwidGV4dCI6IkRlYXIgTWFuYWdlcixcblxuSSBhbSB3cml0aW5nIGFib3V0IHlvdXIgc3RvcmUgb3BlbmluZyBsYXN0IFNhdHVyZGF5LiBJIGFtIG5vdCBoYXBweSBhbmQgSSB3YW50IHRvIGV4cGxhaW4uXG5cbkxhc3Qgd2VlayBJIHJlY2VpdmVkIHlvdXIgYWR2ZXJ0aXNlbWVudCBpbiBteSBtYWlsYm94LiBJdCBzaG93IG1hbnkgaXRlbXMgd2l0aCBzcGVjaWFsIGxvdyBwcmljZXMgXHUyMDE0IGEgY29mZmVlIG1hY2hpbmUgZm9yICQ0OSwgYmVkIHNoZWV0cyBmb3IgJDE5LCBhbmQgY2hpbGRyZW4gamFja2V0cyA1MCBwZXJjZW50IG9mZi4gQmVjYXVzZSBvZiB0aGlzIHBhcGVyLCBJIHRha2UgdGhlIGJ1cyA0MCBtaW51dGVzIGFuZCBjb21lIHRvIHlvdXIgb3BlbmluZyBhdCAxMCBpbiB0aGUgbW9ybmluZy5cblxuQnV0IGluIHRoZSBzdG9yZSwgSSBjb3VsZCBub3QgZmluZCB0aGVzZSBpdGVtcyEgSSBhc2sgdHdvIHN0YWZmIGFuZCB0aGV5IGRvbid0IGtub3cgbm90aGluZyBhYm91dCB0aGUgY29mZmVlIG1hY2hpbmUuIE9uZSB3b3JrZXIgc2F5IG1heWJlIGl0IGlzIHNvbGQgb3V0LCBidXQgdGhlIHN0b3JlIG9wZW4gb25seSBvbmUgaG91ciBiZWZvcmUuIEkgdGhpbmsgeW91IHByaW50IGFkdmVydGlzZW1lbnQgZm9yIHRoaW5ncyB5b3UgZG9uJ3QgcmVhbGx5IGhhdmUuIEkgd2FzdGUgbXkgbW9ybmluZyBhbmQgbXkgYnVzIG1vbmV5LlxuXG5QbGVhc2UgZml4IHRoaXMgcHJvYmxlbS4gSSB3YW50IHlvdSB0byBnaXZlIG1lIHRoZSBzYW1lIGl0ZW1zIHdpdGggdGhlIGFkdmVydGlzZW1lbnQgcHJpY2UsIHdoZW4gdGhleSBjb21lIGJhY2sgdG8gdGhlIHN0b3JlLiBBIHJhaW4gY2hlY2sgb3IgYSBjb3Vwb24gaXMgb2theSBmb3IgbWUuIEFuZCBwbGVhc2Ugc2F5IHNvcnJ5IHRvIHRoZSBjdXN0b21lcnMuXG5cblRoYW5rIHlvdSxcbkhvYSBUcmFuIn0seyJsZXZlbCI6IkNFTFBJUCA3XHUyMDEzOCBSZXNwb25zZSIsIm5vdGUiOiJTdHJ1Y3R1cmVkIGFuZCBmaXJtOiByZWFzb24gZm9yIHRoZSB2aXNpdCwgcHJlY2lzZSBjb21wbGFpbnQgd2l0aCBkZXRhaWxzLCBhbmQgdHdvIGNvbmNyZXRlIHJlbWVkaWVzLiIsInRleHQiOiJEZWFyIFN0b3JlIE1hbmFnZXIsXG5cbkkgYW0gd3JpdGluZyB0byBleHByZXNzIG15IGRpc2FwcG9pbnRtZW50IGFib3V0IHlvdXIgZ3JhbmQtb3BlbmluZyBzYWxlIGxhc3QgU2F0dXJkYXkuXG5cbllvdXIgZmx5ZXIsIHdoaWNoIGFycml2ZWQgaW4gbXkgbWFpbGJveCB0aGUgd2VlayBiZWZvcmUsIGFkdmVydGlzZWQgc2V2ZXJhbCBvdXRzdGFuZGluZyBvZmZlcnMgXHUyMDE0IGEgY29mZmVlIG1hY2hpbmUgZm9yICQ0OSwgcXVlZW4gYmVkIHNoZWV0cyBmb3IgJDE5IGFuZCB3aW50ZXIgamFja2V0cyBhdCBoYWxmIHByaWNlLiBUaG9zZSBkZWFscyB3ZXJlIGV4YWN0bHkgd2h5IEkgbWFkZSB0aGUgdHJpcDogSSB0cmF2ZWxsZWQgZm9ydHkgbWludXRlcyBhY3Jvc3MgdG93biBhbmQgYXJyaXZlZCBqdXN0IGFmdGVyIHRoZSBkb29ycyBvcGVuZWQgYXQgMTAgYS5tLiwgcGxhbm5pbmcgdG8gYnV5IGdpZnRzIGZvciBteSBmYW1pbHkuXG5cblRvIG15IHN1cnByaXNlLCBub25lIG9mIHRoZSBhZHZlcnRpc2VkIGl0ZW1zIGNvdWxkIGJlIGZvdW5kLiBUaGUgc2hlbHZlcyBoZWxkIG9ubHkgcmVndWxhci1wcmljZWQgcHJvZHVjdHMsIGFuZCB0aGUgdHdvIHN0YWZmIG1lbWJlcnMgSSBhc2tlZCBoYWQgbm90IGV2ZW4gaGVhcmQgb2YgdGhlIHByb21vdGlvbnMuIElmIHRoZSBpdGVtcyBzb2xkIG91dCwgaXQgaGFwcGVuZWQgd2l0aGluIG1pbnV0ZXMgXHUyMDE0IHdoaWNoIHN1Z2dlc3RzIG9ubHkgYSBoYW5kZnVsIHdlcmUgZXZlciBzdG9ja2VkLiBBZHZlcnRpc2luZyBkZWFscyBhIHN0b3JlIGNhbm5vdCBzdXBwbHkgaXMgdW5mYWlyIHRvIGN1c3RvbWVycyB3aG8gc3BlbmQgdGltZSBhbmQgbW9uZXkgZ2V0dGluZyB0aGVyZS5cblxuSSB3b3VsZCBsaWtlIHlvdSB0byBmaXggdGhpcyBpbiB0d28gd2F5czogcGxlYXNlIGlzc3VlIHJhaW4gY2hlY2tzIHNvIGN1c3RvbWVycyBjYW4gYnV5IHRoZSBhZHZlcnRpc2VkIGl0ZW1zIGF0IHRoZSBhZHZlcnRpc2VkIHByaWNlcyBvbmNlIHJlc3RvY2tlZCwgYW5kIGNvbmZpcm0gdGhpcyBwb2xpY3kgcHVibGljbHkgc28gc2hvcHBlcnMgYXJlIG5vdCBtaXNsZWQgYWdhaW4uXG5cbkkgbG9vayBmb3J3YXJkIHRvIHlvdXIgcmVwbHkuXG5cblNpbmNlcmVseSxcbkhvYSBUcmFuIn0seyJsZXZlbCI6IkNFTFBJUCAxMFx1MjAxMzEyIFJlc3BvbnNlIiwibm90ZSI6IlBvbGlzaGVkIGFuZCBwb2ludGVkOiByZWNvbnN0cnVjdHMgdGhlIGV2ZW50cywgbmFtZXMgdGhlIHByaW5jaXBsZSBhdCBzdGFrZSwgYW5kIHByb3Bvc2VzIHJlbWVkaWVzIHRoYXQgcHJvdGVjdCB0aGUgc3RvcmUncyBvd24gcmVwdXRhdGlvbi4iLCJ0ZXh0IjoiRGVhciBTdG9yZSBNYW5hZ2VyLFxuXG5JIGFtIHdyaXRpbmcgYWJvdXQgU2F0dXJkYXkncyBncmFuZCBvcGVuaW5nIFx1MjAxNCBhbiBldmVudCBJIGF0dGVuZGVkIHdpdGggZ2VudWluZSBlbnRodXNpYXNtIGFuZCBsZWZ0IHdpdGggYSBwb29yIGltcHJlc3Npb24gSSBob3BlIHlvdSB3aWxsIHdhbnQgdG8gcmVwYWlyLlxuXG5UaGUgZmx5ZXIgZGVsaXZlcmVkIHRvIG15IGhvbWUgcHJvbWlzZWQgcmVtYXJrYWJsZSBvcGVuaW5nIHNwZWNpYWxzOiBhICQ0OSBjb2ZmZWUgbWFjaGluZSwgJDE5IHF1ZWVuIHNoZWV0IHNldHMsIGFuZCBoYWxmLXByaWNlIGNoaWxkcmVuJ3MgamFja2V0cy4gT24gdGhlIHN0cmVuZ3RoIG9mIHRob3NlIG9mZmVycyBJIHJlYXJyYW5nZWQgbXkgU2F0dXJkYXksIHRyYXZlbGxlZCBmb3J0eSBtaW51dGVzIGJ5IGJ1cywgYW5kIHdhcyBpbiB5b3VyIHN0b3JlIHdpdGhpbiBmaWZ0ZWVuIG1pbnV0ZXMgb2Ygb3BlbmluZy5cblxuWWV0IG5vbmUgb2YgdGhlIGFkdmVydGlzZWQgaXRlbXMgd2VyZSBhbnl3aGVyZSB0byBiZSBmb3VuZC4gTm8gZW1wdHkgc2hlbGYgdGFncywgbm8gc29sZCBvdXQgc2lnbnMgXHUyMDE0IGFuZCwgbW9yZSB0ZWxsaW5nbHksIHRoZSBzdGFmZiBJIHNwb2tlIHdpdGgga25ldyBub3RoaW5nIGFib3V0IHRoZSBwcm9tb3Rpb25zIGF0IGFsbC4gV2hhdGV2ZXIgdGhlIGNhdXNlLCB0aGUgcHJhY3RpY2FsIGVmZmVjdCBpcyB3aGF0IGNvbnN1bWVyLXByb3RlY3Rpb24gYWdlbmNpZXMgY2FsbCBiYWl0IGFkdmVydGlzaW5nOiBjdXN0b21lcnMgZHJhd24gaW4gYnkgb2ZmZXJzIHRoYXQgZG8gbm90IGV4aXN0IGluIG1lYW5pbmdmdWwgcXVhbnRpdHkuXG5cbkkgYmVsaWV2ZSB0aGUgZml4IHNob3VsZCBtYXRjaCB0aGUgcHJvbWlzZS4gUGxlYXNlIGhvbm91ciB0aGUgZmx5ZXIgd2l0aCByYWluIGNoZWNrcyBhdCB0aGUgYWR2ZXJ0aXNlZCBwcmljZXMsIHBvc3QgYSBjbGVhciBub3RpY2UgYWJvdXQgYXZhaWxhYmlsaXR5LCBhbmQgYnJpZWYgeW91ciBmbG9vciBzdGFmZiBzbyB0aGV5IGNhbiBhY3R1YWxseSBkaXJlY3QgY3VzdG9tZXJzIHRvIHByb21vdGlvbmFsIHN0b2NrLlxuXG5BIG5ldyBzdG9yZSBnZXRzIGV4YWN0bHkgb25lIGZpcnN0IGltcHJlc3Npb24gcGVyIGN1c3RvbWVyLiBJIHdvdWxkIGJlIGdsYWQgdG8gZ2l2ZSB5b3VycyBhIHNlY29uZCBjaGFuY2UgXHUyMDE0IHRoZSBuZXh0IG1vdmUgaXMgeW91cnMuXG5cblNpbmNlcmVseSxcbkhvYSBUcmFuIn1dfSx7ImlkIjoyLCJiYXJUaXRsZSI6IlByYWN0aWNlIFRlc3QgMSBcdTIwMTMgV3JpdGluZyBUYXNrIDI6IFJlc3BvbmRpbmcgdG8gU3VydmV5IFF1ZXN0aW9ucyIsIm5hbWUiOiJSZXNwb25kaW5nIHRvIFN1cnZleSBRdWVzdGlvbnMiLCJtaW51dGVzIjoyNiwid29yZEFpbSI6IjE1MFx1MjAxMzIwMCB3b3JkcyIsInJlYWRIZWFkIjoiUmVhZCB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uLiIsInNjZW5hcmlvSGVhZCI6IkJhcmJlY3VlcyBvbiBCYWxjb25pZXMgU3VydmV5Iiwic2NlbmFyaW8iOiJZb3VyIGFwYXJ0bWVudCBtYW5hZ2VyIGlzIHN1cnZleWluZyB5b3VyIG9waW5pb24gYWJvdXQgcGVvcGxlIHVzaW5nIGJhcmJlY3VlcyBvbiB0aGVpciBhcGFydG1lbnQgYmFsY29uaWVzLiBUaGUgYXBhcnRtZW50IGJhbGNvbmllcyBhcmUgc21hbGwuIFNvbWUgcmVzaWRlbnRzIHRoaW5rIHRoYXQgYmVjYXVzZSBiYXJiZWN1ZXMgY2FuIGNhdXNlIHNtb2tlIGFuZCBjYXRjaCBmaXJlLCB0aGV5IHNob3VsZCBub3QgYmUgYWxsb3dlZC4gSG93ZXZlciwgb3RoZXJzIHRoaW5rIHRoYXQgdXNpbmcgYmFyYmVjdWVzIHNob3VsZCBiZSBhbGxvd2VkIGJlY2F1c2UgcGVvcGxlIGxpa2UgdG8gZW5qb3kgc3VtbWVyIGZvb2QgYXQgdGhlaXIgaG9tZS4gWW91ciBtYW5hZ2VyIGFza2VkIHlvdSB0byBjb21wbGV0ZSBhbiBvcGluaW9uIHN1cnZleS4iLCJwcm9tcHRIZWFkIjoiQ2hvb3NlIHRoZSBvcHRpb24gdGhhdCB5b3UgcHJlZmVyLiBXaHkgZG8geW91IHByZWZlciB5b3VyIGNob2ljZT8gRXhwbGFpbiB0aGUgcmVhc29ucyBmb3IgeW91ciBjaG9pY2UuIFdyaXRlIGFib3V0IDE1MFx1MjAxMzIwMCB3b3Jkcy4iLCJidWxsZXRzIjpbXSwib3B0aW9ucyI6W3sia2V5IjoiQSIsImxhYmVsIjoiT3B0aW9uIEE6IFJlc2lkZW50cyBzaG91bGQgbm90IGJlIGFsbG93ZWQgdG8gdXNlIGJhcmJlY3VlcyBvbiB0aGVpciBiYWxjb25pZXMuIn0seyJrZXkiOiJCIiwibGFiZWwiOiJPcHRpb24gQjogUmVzaWRlbnRzIHNob3VsZCBiZSBhbGxvd2VkIHRvIHVzZSBiYXJiZWN1ZXMgb24gdGhlaXIgYmFsY29uaWVzLiJ9XSwic2FtTm90ZSI6IlRoZXNlIGFyZSBBbGxFbmdsaXNoNFUgbW9kZWwgYW5zd2VycyB3cml0dGVuIGZvciB0aGlzIGV4YWN0IFRhc2sgMiBvcGluaW9uLXN1cnZleSBwcm9tcHQgKHdoZXRoZXIgcmVzaWRlbnRzIG1heSB1c2UgYmFyYmVjdWVzIG9uIHNtYWxsIGFwYXJ0bWVudCBiYWxjb25pZXMpLCBzaG93biBhdCB0aHJlZSBzY29yZSBsZXZlbHMgKENFTFBJUCA0XHUyMDEzNSwgN1x1MjAxMzggYW5kIDEwXHUyMDEzMTIpIHNvIHlvdSBjYW4gc2VlIGhvdyB0aGUgc2FtZSB0YXNrIHJlYWRzIGFzIGl0IGltcHJvdmVzLiBUaGV5IGFyZSBBRTRVIHN0dWR5IG1vZGVscywgbm90IG9mZmljaWFsIENFTFBJUCBzYW1wbGVzOyB0aGUgNFx1MjAxMzUgbW9kZWwgZGVsaWJlcmF0ZWx5IGtlZXBzIHNvbWUgZXJyb3JzLiIsInNhbXBsZXMiOlt7ImxldmVsIjoiQ0VMUElQIDRcdTIwMTM1IFJlc3BvbnNlIiwibm90ZSI6Ik9wdGlvbiBBIHdpdGggcGVyc29uYWwsIGNvbmNyZXRlIGNvbXBsYWludHM7IG1lc3NhZ2UgaXMgY2xlYXIgZGVzcGl0ZSBiYXNpYyBncmFtbWFyLiIsInRleHQiOiJJIGNob29zZSBPcHRpb24gQS4gSSB0aGluayBiYXJiZWN1ZXMgc2hvdWxkIG5vdCBiZSBhbGxvd2VkIG9uIHRoZSBiYWxjb25pZXMuXG5cbkZpcnN0LCBpdCBpcyBhYm91dCBzYWZldHkuIE91ciBiYWxjb25pZXMgYXJlIHZlcnkgc21hbGwsIGFuZCB0aGUgYmFyYmVjdWUgZmlyZSBpcyB2ZXJ5IGNsb3NlIHRvIHRoZSB3YWxsIGFuZCB0aGUgY2hhaXJzLiBPbmUgc3Ryb25nIHdpbmQsIGFuZCBzb21ldGhpbmcgY2FuIHN0YXJ0IHRvIGJ1cm4uIFdlIGhhdmUgbWFueSBjaGlsZHJlbiBhbmQgb2xkIHBlb3BsZSBpbiB0aGlzIGJ1aWxkaW5nLiBJZiBmaXJlIHN0YXJ0IG9uIGZsb29yIGZpdmUsIGl0IGNhbiBnbyB0byBhbGwgdGhlIGZsb29ycy4gVGhpcyBpcyB0b28gZGFuZ2Vyb3VzLlxuXG5TZWNvbmQsIHRoZSBzbW9rZSBwcm9ibGVtLiBXaGVuIG15IG5laWdoYm9yIG1ha2UgYmFyYmVjdWUsIGFsbCB0aGUgc21va2UgY29tZSBpbnNpZGUgbXkgYXBhcnRtZW50LCBpbiBteSBjbG90aGVzIGFuZCBteSBiYWJ5IHJvb20uIEkgbXVzdCBjbG9zZSBhbGwgd2luZG93cyBpbiB0aGUgaG90IHN1bW1lci4gSXQgaXMgbm90IGZhaXIgZm9yIHRoZSBwZW9wbGUgd2hvIGRvbid0IGJhcmJlY3VlLlxuXG5JIHVuZGVyc3RhbmQgcGVvcGxlIGxvdmUgc3VtbWVyIGZvb2QsIG1lIHRvbyEgQnV0IHdlIGhhdmUgYSBwYXJrIHdpdGggcHVibGljIGJhcmJlY3VlIHBsYWNlIG9ubHkgdGVuIG1pbnV0ZXMgd2Fsa2luZy4gTWF5YmUgdGhlIGJ1aWxkaW5nIGNhbiBhbHNvIG1ha2Ugb25lIHNoYXJlZCBiYXJiZWN1ZSBjb3JuZXIgaW4gdGhlIGJhY2t5YXJkLCBmYXIgZnJvbSB0aGUgd2luZG93cy5cblxuU28sIGZvciBzYWZldHkgb2YgZXZlcnlib2R5LCBJIHByZWZlciBPcHRpb24gQS4ifSx7ImxldmVsIjoiQ0VMUElQIDdcdTIwMTM4IFJlc3BvbnNlIiwibm90ZSI6IkEgZmlybSBPcHRpb24gQSBidWlsdCBvbiBzYWZldHkgYW5kIHNoYXJlZC1haXIgYXJndW1lbnRzLCBzb2Z0ZW5lZCBieSBhIHByYWN0aWNhbCBhbHRlcm5hdGl2ZS4iLCJ0ZXh0IjoiSW4gcmVzcG9uc2UgdG8gdGhlIG1hbmFnZXIncyBzdXJ2ZXksIEkgd291bGQgY2hvb3NlIE9wdGlvbiBBOiBiYXJiZWN1ZXMgc2hvdWxkIG5vdCBiZSBwZXJtaXR0ZWQgb24gb3VyIGJhbGNvbmllcy5cblxuU2FmZXR5IGlzIHRoZSBkZWNpc2l2ZSByZWFzb24uIE91ciBiYWxjb25pZXMgYXJlIGJhcmVseSB0d28gbWV0cmVzIGRlZXAsIHdoaWNoIG1lYW5zIGFuIG9wZW4gZmxhbWUgc2l0cyBkaXJlY3RseSBiZXNpZGUgcmFpbGluZ3MsIGZ1cm5pdHVyZSBhbmQgdGhlIGJ1aWxkaW5nIHdhbGwuIEZpcmUgZGVwYXJ0bWVudHMgcmVndWxhcmx5IHdhcm4gdGhhdCBiYWxjb255IGJhcmJlY3VlcyBhcmUgYSBsZWFkaW5nIGNhdXNlIG9mIGFwYXJ0bWVudCBmaXJlcywgYW5kIGluIGEgYnVpbGRpbmcgb2YgdHdvIGh1bmRyZWQgdW5pdHMsIG9uZSBjYXJlbGVzcyBldmVuaW5nIGNvdWxkIGVuZGFuZ2VyIGV2ZXJ5b25lLiBVbmxpa2UgYSBob3VzZSwgYW4gYXBhcnRtZW50IGZpcmUgaXMgbmV2ZXIgYSBwcml2YXRlIG1hdHRlci5cblxuVGhlIHNlY29uZCByZWFzb24gaXMgc2hhcmVkIGFpci4gQmFsY29uaWVzIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLCBzbyBzbW9rZSByaXNlcyBzdHJhaWdodCBpbnRvIHRoZSB1bml0cyBhYm92ZSBcdTIwMTQgaW50byBsYXVuZHJ5LCBvcGVuIHdpbmRvd3MgYW5kIHRoZSBsdW5ncyBvZiBuZWlnaGJvdXJzIHdpdGggYXN0aG1hLiBUaG9zZSByZXNpZGVudHMgZGlkIG5vdCBjaG9vc2UgdGhlIGJhcmJlY3VlLCBidXQgdGhleSBwYXkgaXRzIHByaWNlLlxuXG5UaGF0IHNhaWQsIHRoZSBkZXNpcmUgZm9yIHN1bW1lciBncmlsbGluZyBpcyBjb21wbGV0ZWx5IGxlZ2l0aW1hdGUuIFRoZSBmYWlyIHNvbHV0aW9uIGlzIGEgZGVzaWduYXRlZCBiYXJiZWN1ZSBhcmVhIGluIHRoZSBjb3VydHlhcmQsIGF3YXkgZnJvbSB0aGUgd2FsbHMsIHdoaWNoIG1hbnkgYnVpbGRpbmdzIG9wZXJhdGUgc3VjY2Vzc2Z1bGx5IHdpdGggYSBzaW1wbGUgYm9va2luZyBzaGVldC5cblxuQmFubmluZyBiYWxjb255IGJhcmJlY3VlcyB3aGlsZSBwcm92aWRpbmcgYSBzYWZlIGFsdGVybmF0aXZlIHJlc3BlY3RzIGV2ZXJ5b25lLiBJIHN1cHBvcnQgT3B0aW9uIEEuIn0seyJsZXZlbCI6IkNFTFBJUCAxMFx1MjAxMzEyIFJlc3BvbnNlIiwibm90ZSI6IkEgbnVhbmNlZCBPcHRpb24gQiBhbnN3ZXI6IGRlZmVuZHMgdGhlIGZyZWVkb20gd2l0aCBjb25kaXRpb25zLCB0dXJuaW5nIHRoZSBzYWZldHkgY2FzZSBpbnRvIGEgcmVndWxhdGlvbiBhcmd1bWVudC4iLCJ0ZXh0IjoiVGhvdWdoIEkgdGFrZSB0aGUgZmlyZS1zYWZldHkgY29uY2VybnMgc2VyaW91c2x5LCBJIHdvdWxkIGNob29zZSBPcHRpb24gQjogcmVzaWRlbnRzIHNob3VsZCBiZSBhbGxvd2VkIHRvIGJhcmJlY3VlIG9uIHRoZWlyIGJhbGNvbmllcyBcdTIwMTQgdW5kZXIgc2Vuc2libGUgcnVsZXMuXG5cbk15IHN0YXJ0aW5nIHBvaW50IGlzIHByb3BvcnRpb25hbGl0eS4gQSBiYWxjb255IGlzIHRoZSBvbmx5IG91dGRvb3Igc3BhY2UgYW4gYXBhcnRtZW50IGR3ZWxsZXIgaGFzLCBhbmQgc3VtbWVyIGdyaWxsaW5nIGlzIG9uZSBvZiBpdHMgY2hpZWYgcGxlYXN1cmVzOyBhbiBvdXRyaWdodCBiYW4gY29uZmlzY2F0ZXMgdGhhdCBlbmpveW1lbnQgZnJvbSB0d28gaHVuZHJlZCBob3VzZWhvbGRzIGJlY2F1c2Ugb2Ygd2hhdCBhIGNhcmVsZXNzIGZldyBtaWdodCBkby4gV2UgZG8gbm90IGJhbiBvdmVucyBiZWNhdXNlIGtpdGNoZW5zIGNhbiBjYXRjaCBmaXJlIFx1MjAxNCB3ZSBzZXQgc3RhbmRhcmRzLlxuXG5TdGFuZGFyZHMgYXJlIGV4YWN0bHkgd2hhdCB3b3VsZCB3b3JrIGhlcmUuIFRoZSBidWlsZGluZyBjb3VsZCBwZXJtaXQgb25seSBlbGVjdHJpYyBvciBzbWFsbCBwcm9wYW5lIGdyaWxscyBiZWxvdyBhIHNldCBzaXplLCByZXF1aXJlIGEgY2xlYXIgZGlzdGFuY2UgZnJvbSByYWlsaW5ncyBhbmQgd2FsbHMsIHJlc3RyaWN0IGdyaWxsaW5nIHRvIHJlYXNvbmFibGUgZXZlbmluZyBob3VycywgYW5kIGhvbGQgdXNlcnMgbGlhYmxlIGZvciBkYW1hZ2UuIEluc3VyYW5jZSBjb21wYW5pZXMgYW5kIG1hbnkgbXVuaWNpcGFsIGNvZGVzIGFscmVhZHkgZGlzdGluZ3Vpc2ggYmV0d2VlbiBjaGFyY29hbCAoZ2VudWluZWx5IHJpc2t5IG9uIGJhbGNvbmllcykgYW5kIGVsZWN0cmljIGdyaWxscyAobGl0dGxlIHJpc2tpZXIgdGhhbiBhIHRvYXN0ZXIpLiBCYW5uaW5nIHRoZSBmaXJzdCB3aGlsZSBhbGxvd2luZyB0aGUgc2Vjb25kIGFkZHJlc3NlcyBuZWFybHkgYWxsIHRoZSBkYW5nZXIgd2hpbGUgcHJlc2VydmluZyBuZWFybHkgYWxsIHRoZSBmcmVlZG9tLlxuXG5BcyBmb3Igc21va2UsIGNvdXJ0ZXN5IHJ1bGVzIFx1MjAxNCBubyBncmlsbGluZyB1bmRlciBhIG5laWdoYm91cidzIG9wZW4gd2luZG93LCBsaWRzIG9uIFx1MjAxNCBoYW5kbGUgdGhlIG51aXNhbmNlIHRoZSBzYW1lIHdheSB3ZSBoYW5kbGUgbXVzaWMgb3IgcGV0cy5cblxuUmVndWxhdGUgdGhlIHJpc2ssIGtlZXAgdGhlIHBsZWFzdXJlLiBJIHN1cHBvcnQgT3B0aW9uIEIuIn1dfV0sInJ1YnJpYyI6W3siayI6IkNvbnRlbnQgLyBDb2hlcmVuY2UiLCJkIjoiQWxsIHJlcXVpcmVkIHBvaW50cyBhcmUgY292ZXJlZCBhbmQgZGV2ZWxvcGVkIHdpdGggY2xlYXIsIGxvZ2ljYWxseSBjb25uZWN0ZWQgaWRlYXMgYW5kIHBhcmFncmFwaHMuIn0seyJrIjoiVm9jYWJ1bGFyeSIsImQiOiJXb3JkIGNob2ljZSBpcyB2YXJpZWQsIHByZWNpc2UgYW5kIHN1aXRzIHRoZSB0b25lIChhIHNlbWktZm9ybWFsIGVtYWlsIC8gYSByZWFzb25lZCBvcGluaW9uKS4ifSx7ImsiOiJSZWFkYWJpbGl0eSIsImQiOiJHcmFtbWFyLCBzcGVsbGluZyBhbmQgcHVuY3R1YXRpb24gYXJlIGFjY3VyYXRlIGVub3VnaCB0aGF0IHRoZSByZWFkZXIgaXMgbmV2ZXIgc2xvd2VkIGRvd24uIn0seyJrIjoiVGFzayBGdWxmaWxsbWVudCIsImQiOiJUaGUgcmVzcG9uc2UgZml0cyB0aGUgcHVycG9zZSBhbmQgYXVkaWVuY2UsIGtlZXBzIHRoZSAxNTBcdTIwMTMyMDAgd29yZCBsZW5ndGgsIGFuZCByZWFkcyBsaWtlIGEgcmVhbCBlbWFpbCAvIHN1cnZleSBhbnN3ZXIuIn1dLCJzY29yaW5nTm90ZSI6IkNFTFBJUCBXcml0aW5nIGlzIHJhdGVkIGJ5IGh1bWFuIHJhdGVycyBvbiBhIHNjYWxlIGZyb20gTSB0byAxMiB0aGF0IG1hcHMgMToxIHRvIHRoZSBDYW5hZGlhbiBMYW5ndWFnZSBCZW5jaG1hcmtzIChDTEIpLiBFYWNoIHRhc2sgaXMganVkZ2VkIGhvbGlzdGljYWxseSBvbiBmb3VyIGRpbWVuc2lvbnMgXHUyMDE0IENvbnRlbnQvQ29oZXJlbmNlLCBWb2NhYnVsYXJ5LCBSZWFkYWJpbGl0eSBhbmQgVGFzayBGdWxmaWxsbWVudC4gVGhlcmUgaXMgbm8gc2luZ2xlIFx1MjAxOGNvcnJlY3RcdTIwMTkgYW5zd2VyLCBzbyB1c2UgdGhlIHNhbXBsZSByZXNwb25zZXMgYW5kIHRoZSBzZWxmLWNoZWNrIGJlbG93IHRvIHNlZSB3aGVyZSB5b3VyIHdyaXRpbmcgc2l0cyBhbmQgd2hhdCB0byBpbXByb3ZlLiJ9OwooZnVuY3Rpb24oKXsKICAidXNlIHN0cmljdCI7CiAgaWYod2luZG93Ll9fY2xwd0luaXQpIHJldHVybjsgd2luZG93Ll9fY2xwd0luaXQgPSB0cnVlOwoKICB2YXIgTFMgPSAiYWU0dV9jbHB3X3MxdDFfdjEiOwogIHZhciBzdGF0ZSA9IHsgYWN0aXZlOjEsIHNhbXBsZXM6ezE6ZmFsc2UsMjpmYWxzZX0sIHRhYjp7MTowLDI6MH0sIG9wdDpudWxsLAogICAgICAgICAgICAgICAgdGV4dDp7MToiIiwyOiIifSwgcnVicmljOnsxOnt9LDI6e319LAogICAgICAgICAgICAgICAgdGltZXI6ezE6e3JlbTpXREFUQS50YXNrc1swXS5taW51dGVzKjYwLHJ1bjpmYWxzZSxpdjpudWxsfSwKICAgICAgICAgICAgICAgICAgICAgICAgMjp7cmVtOldEQVRBLnRhc2tzWzFdLm1pbnV0ZXMqNjAscnVuOmZhbHNlLGl2Om51bGx9fSB9OwoKICAvLyAtLS0tLS0tLS0tIGhlbHBlcnMgLS0tLS0tLS0tLQogIGZ1bmN0aW9uIGVzYyhzKXsgcmV0dXJuIFN0cmluZyhzKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iik7IH0KICBmdW5jdGlvbiB3YyhzKXsgdmFyIG09KHN8fCIiKS50cmltKCkubWF0Y2goL1xTKy9nKTsgcmV0dXJuIG0\/bS5sZW5ndGg6MDsgfQogIGZ1bmN0aW9uIGZtdChzZWMpeyBzZWM9TWF0aC5tYXgoMCxzZWN8MCk7IHZhciBtPU1hdGguZmxvb3Ioc2VjLzYwKSwgcz1zZWMlNjA7IHJldHVybiAobTwxMD8iMCI6IiIpK20rIjoiKyhzPDEwPyIwIjoiIikrczsgfQogIGZ1bmN0aW9uIGxvYWQoKXsgdHJ5eyB2YXIgbz1KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExTKSk7IGlmKG8mJnR5cGVvZiBvPT09Im9iamVjdCIpewogICAgICAgIHN0YXRlLnRleHRbMV09by50MXx8IiI7IHN0YXRlLnRleHRbMl09by50Mnx8IiI7IHN0YXRlLm9wdD1vLm9wdHx8bnVsbDsKICAgICAgICBzdGF0ZS5ydWJyaWNbMV09by5yMXx8e307IHN0YXRlLnJ1YnJpY1syXT1vLnIyfHx7fTsgfSB9Y2F0Y2goZSl7fSB9CiAgZnVuY3Rpb24gc2F2ZSgpeyB0cnl7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKExTLCBKU09OLnN0cmluZ2lmeSh7CiAgICAgICAgdDE6c3RhdGUudGV4dFsxXSwgdDI6c3RhdGUudGV4dFsyXSwgb3B0OnN0YXRlLm9wdCwgcjE6c3RhdGUucnVicmljWzFdLCByMjpzdGF0ZS5ydWJyaWNbMl0gfSkpOyB9Y2F0Y2goZSl7fQogICAgICAgIGZsYXNoU2F2ZWQoKTsgfQogIHZhciBzYXZlZFRPPW51bGw7CiAgZnVuY3Rpb24gZmxhc2hTYXZlZCgpeyB2YXIgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdTYXZlZCIpOyBpZighZWwpIHJldHVybjsKICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKCJjbHB3LXNhdmVkLW9uIik7IGlmKHNhdmVkVE8pIGNsZWFyVGltZW91dChzYXZlZFRPKTsKICAgICAgICBzYXZlZFRPPXNldFRpbWVvdXQoZnVuY3Rpb24oKXsgZWwuY2xhc3NMaXN0LnJlbW92ZSgiY2xwdy1zYXZlZC1vbiIpOyB9LDEyMDApOyB9CgogIC8vIC0tLS0tLS0tLS0gQ1NTIC0tLS0tLS0tLS0KICB2YXIgQ1NTID0gIiIKICArIi5jbHB3LXdyYXB7LS1uYXZ5OiMwNTBFMjA7LS1iOTAwOiMwRDIzNTI7LS1iNzAwOiMxMjQ1QTg7LS1iNTAwOiMyNTYzRUI7LS1iNDAwOiMzQjgyRjY7LS1iMjAwOiM5M0M1RkQ7LS1iMTAwOiNEQkVBRkU7LS1iNTA6I0VGRjZGRjstLXRlYWw6IzBEOTQ4ODstLWdyZWVuOiMxMEI5ODE7LS1ncmVlbjUwOiNFQ0ZERjU7LS1yb3NlOiNGNDNGNUU7LS1yb3NlNTA6I0ZGRjFGMzstLW9yYW5nZTojRjk3MzE2Oy0tYW1iZXI1MDojRkZGQkVCOy0tdGV4dDojMEYxNzJBOy0tbXV0ZWQ6IzQ3NTU2OTstLXN1YnRsZTojOTRBM0I4Oy0tYm9yZGVyOiNFMkU4RjA7LS1jcmltc29uOiNCNDJCM0M7LS1wYWdlOiNGOEZBRkY7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJyxzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sc2Fucy1zZXJpZjtjb2xvcjp2YXIoLS10ZXh0KTttYXgtd2lkdGg6MTE0MHB4O21hcmdpbjowIGF1dG87cGFkZGluZzoxNnB4IDE2cHggNTZweDtsaW5lLWhlaWdodDoxLjU1O2ZvbnQtc2l6ZToxNnB4O30iCiAgKyIuY2xwdy13cmFwICosLmNscHctd3JhcCAqOjpiZWZvcmUsLmNscHctd3JhcCAqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7fSIKICArIi5jbHB3LXdyYXAgYnV0dG9ue2ZvbnQtZmFtaWx5OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7fSIKICArIi5jbHB3LXdyYXAgaDEsLmNscHctd3JhcCBoMiwuY2xwdy13cmFwIGgzLC5jbHB3LXdyYXAgcHttYXJnaW46MDt9IgogIC8vIGhlcm8KICArIi5jbHB3LWhlcm97cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MjJweDtiYWNrZ3JvdW5kOnZhcigtLW5hdnkpO2NvbG9yOiNmZmY7cGFkZGluZzozNHB4IDM4cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTNweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2JveC1zaGFkb3c6MCAyMHB4IDQwcHggLTIwcHggcmdiYSg1LDE0LDMyLC40NSksMCA0cHggMTJweCAtNnB4IHJnYmEoNSwxNCwzMiwuMyk7fSIKICArIi5jbHB3LWF1cm9yYXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7fSIKICArIi5jbHB3LWF1cm9yYSBzcGFue3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO2ZpbHRlcjpibHVyKDYwcHgpO29wYWNpdHk6LjU7YW5pbWF0aW9uOmNscHdGbG9hdCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlO30iCiAgKyIuY2xwdy1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMSl7d2lkdGg6NDIwcHg7aGVpZ2h0OjQyMHB4O2xlZnQ6LTEyMHB4O3RvcDotMjAwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMxMjQ1QTggMCUsdHJhbnNwYXJlbnQgNzAlKTt9IgogICsiLmNscHctYXVyb3JhIHNwYW46bnRoLWNoaWxkKDIpe3dpZHRoOjM4MHB4O2hlaWdodDozODBweDtyaWdodDotODBweDt0b3A6LTE2MHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMEQ5NDg4IDAlLHRyYW5zcGFyZW50IDcwJSk7YW5pbWF0aW9uLWRlbGF5Oi00czt9IgogICsiLmNscHctYXVyb3JhIHNwYW46bnRoLWNoaWxkKDMpe3dpZHRoOjM0MHB4O2hlaWdodDozNDBweDtyaWdodDoyMiU7Ym90dG9tOi0yNDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzI1NjNFQiAwJSx0cmFuc3BhcmVudCA3MCUpO2FuaW1hdGlvbi1kZWxheTotOHM7fSIKICArIkBrZXlmcmFtZXMgY2xwd0Zsb2F0e2Zyb217dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgxKTt9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDQwcHgsMjZweCwwKSBzY2FsZSgxLjEyKTt9fSIKICArIi5jbHB3LWhiYWRnZXN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9IgogICsiLmNscHctYmJyYW5ke2JhY2tncm91bmQ6dmFyKC0tY3JpbXNvbik7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjEycHg7bGV0dGVyLXNwYWNpbmc6LjEyZW07cGFkZGluZzo1cHggMTJweDtib3JkZXItcmFkaXVzOjZweDt9IgogICsiLmNscHctYnNldHtjb2xvcjp2YXIoLS1iMjAwKTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7fSIKICArIi5jbHB3LWhlcm8gaDF7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOmNsYW1wKDI2cHgsNHZ3LDQwcHgpO2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzotLjAyZW07bGluZS1oZWlnaHQ6MS4xMjt9IgogICsiLmNscHctaGVyby1zdWJ7cG9zaXRpb246cmVsYXRpdmU7Y29sb3I6I0M3RDJFODtmb250LXNpemU6MTVweDttYXgtd2lkdGg6NjBjaDt9IgogICsiLmNscHctaGNoaXBze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO30iCiAgKyIuY2xwdy1jaGlwe2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDkpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxNDcsMTk3LDI1MywuMjUpO2NvbG9yOiNEQkVBRkU7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6NnB4IDE0cHg7Ym9yZGVyLXJhZGl1czozMnB4O2JhY2tkcm9wLWZpbHRlcjpibHVyKDRweCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBlYXNlLGJhY2tncm91bmQgLjI1cyBlYXNlO30iCiAgKyIuY2xwdy1jaGlwOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTUpO30iCiAgKyIuY2xwdy1jdGF7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MTBweDtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo3MDA7cGFkZGluZzoxM3B4IDM0cHg7bWFyZ2luLXRvcDoycHg7Ym94LXNoYWRvdzowIDEwcHggMjJweCAtOHB4IHJnYmEoMzcsOTksMjM1LC42NSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjIycyBlYXNlLGJveC1zaGFkb3cgLjIycyBlYXNlLGJhY2tncm91bmQgLjIycyBlYXNlO30iCiAgKyIuY2xwdy1jdGE6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7YmFja2dyb3VuZDp2YXIoLS1iNDAwKTtib3gtc2hhZG93OjAgMTRweCAyNnB4IC04cHggcmdiYSgzNyw5OSwyMzUsLjc1KTt9IgogIC8vIHRvb2xiYXIKICArIi5jbHB3LXRvb2xze3Bvc2l0aW9uOnN0aWNreTt0b3A6OHB4O3otaW5kZXg6NjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkzKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzo4cHggMTJweDttYXJnaW46MThweCAwIDA7Ym94LXNoYWRvdzowIDhweCAyNHB4IC0xNHB4IHJnYmEoMTUsMjMsNDIsLjI1KSwwIDJweCA2cHggLTRweCByZ2JhKDE1LDIzLDQyLC4xMik7bWluLWhlaWdodDo1MnB4O30iCiAgKyIuY2xwdy13Y291bnR7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLWI5MDApO2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO2JvcmRlci1yYWRpdXM6MzJweDtwYWRkaW5nOjdweCAxNHB4O30iCiAgKyIuY2xwdy1zcGFjZXJ7ZmxleDoxO30iCiAgKyIuY2xwdy1zYXZlZHtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tZ3JlZW4pO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fSIKICArIi5jbHB3LXNhdmVkLW9ue29wYWNpdHk6MTt9IgogICsiLmNscHctdGJ0bntib3JkZXItcmFkaXVzOjEwcHg7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO3BhZGRpbmc6OXB4IDE2cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7bWluLWhlaWdodDo0MHB4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlLGJveC1zaGFkb3cgLjJzIGVhc2UsYmFja2dyb3VuZCAuMnMgZWFzZTt9IgogICsiLmNscHctdGJ0bjpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNnB4IDE0cHggLThweCByZ2JhKDE1LDIzLDQyLC4zKTt9IgogIC8vIGRvdHMKICArIi5jbHB3LXNpbXttYXJnaW4tdG9wOjE4cHg7fSIKICArIi5jbHB3LWRvdHN7ZGlzcGxheTpmbGV4O2dhcDo2cHg7bWFyZ2luOjAgMCAxMHB4IDJweDt9IgogICsiLmNscHctZG90e2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tc3VidGxlKTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo3MDA7Ym9yZGVyLXJhZGl1czozMnB4O3BhZGRpbmc6NXB4IDE0cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4yNXMgZWFzZSxjb2xvciAuMjVzIGVhc2U7fSIKICArIi5jbHB3LWRvdC5vbntiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2JvcmRlci1jb2xvcjp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO30iCiAgKyIuY2xwdy1kb3QuZmlsbGVke2JhY2tncm91bmQ6dmFyKC0tYjEwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWIyMDApO2NvbG9yOnZhcigtLWI5MDApO30iCiAgLy8gY2F0IGNhcmQKICArIi5jbHB3LWNhdHtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNEM0Q5RTA7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJnYmEoMTUsMjMsNDIsLjIyKSwwIDJweCA4cHggLTVweCByZ2JhKDE1LDIzLDQyLC4xKTt9IgogICsiLmNscHctdGFza3tkaXNwbGF5Om5vbmU7fSIKICArIi5jbHB3LXRhc2sub257ZGlzcGxheTpibG9jazt9IgogICsiLmNscHctYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7YmFja2dyb3VuZDojRThFQkVGO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNEM0Q5RTA7Ym9yZGVyLXJhZGl1czoxMHB4IDEwcHggMCAwO3BhZGRpbmc6OXB4IDE0cHg7bWluLWhlaWdodDo0NHB4O30iCiAgKyIuY2xwdy1iYXItdHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzFGMjkzNztmbGV4OjE7bWluLXdpZHRoOjA7fSIKICArIi5jbHB3LWJhci10aW1le2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiMxRjI5Mzc7d2hpdGUtc3BhY2U6bm93cmFwO30iCiAgKyIuY2xwdy1iYXItdGltZSBie2ZvbnQtd2VpZ2h0OjgwMDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7fSIKICArIi5jbHB3LWJhci10aW1lLmxvdyBie2NvbG9yOnZhcigtLXJvc2UpO30iCiAgLy8gc3BsaXQKICArIi5jbHB3LXNwbGl0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDIyMHB4LDI5MHB4KSAxZnI7fSIKICArIi5jbHB3LXJlYWR7YmFja2dyb3VuZDojRjRGNkY4O2JvcmRlci1yaWdodDoxcHggc29saWQgI0UzRTZFQTtwYWRkaW5nOjE2cHggMTZweCAxOHB4O30iCiAgKyIuY2xwdy13cml0ZXtiYWNrZ3JvdW5kOiNFQUY0Rjc7cGFkZGluZzoxNnB4IDE4cHggMThweDt9IgogICsiLmNscHctcmhlYWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjhweDttYXJnaW4tYm90dG9tOjhweDt9IgogICsiLmNscHctaW5mb3tmbGV4Om5vbmU7d2lkdGg6MThweDtoZWlnaHQ6MThweDttYXJnaW4tdG9wOjFweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtc3R5bGU6aXRhbGljO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1mYW1pbHk6R2VvcmdpYSxzZXJpZjt9IgogICsiLmNscHctcmhlYWQgcHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7fSIKICArIi5jbHB3LXNjZW5hcmlvLWh7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOiMzMzQxNTU7bWFyZ2luLWJvdHRvbTo0cHg7fSIKICArIi5jbHB3LXNjZW5hcmlve2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6IzMzNDE1NTtsaW5lLWhlaWdodDoxLjY7fSIKICArIi5jbHB3LXNhbXRvZ2dsZXttYXJnaW4tdG9wOjE0cHg7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWNyaW1zb24pO2NvbG9yOnZhcigtLWNyaW1zb24pO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O2JvcmRlci1yYWRpdXM6OXB4O3BhZGRpbmc6MTFweCAxMnB4O3RleHQtYWxpZ246Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnMgZWFzZSxjb2xvciAuMnMgZWFzZTt9IgogICsiLmNscHctc2FtdG9nZ2xlOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tY3JpbXNvbik7Y29sb3I6I2ZmZjt9IgogICsiLmNscHctcHJvbXB0cm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDo4cHg7bWFyZ2luLWJvdHRvbTo4cHg7fSIKICArIi5jbHB3LXByb21wdHJvdyBwe2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iOTAwKTt9IgogICsiLmNscHctYnVsbGV0c3ttYXJnaW46MCAwIDEycHggMDtwYWRkaW5nLWxlZnQ6MjBweDtjb2xvcjojMzM0MTU1O2ZvbnQtc2l6ZToxMy41cHg7fSIKICArIi5jbHB3LWJ1bGxldHMgbGl7bWFyZ2luOjNweCAwO30iCiAgKyIuY2xwdy1vcHRze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDttYXJnaW46MCAwIDEycHg7fSIKICArIi5jbHB3LW9wdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OXB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNENkU4RUQ7Ym9yZGVyLXJhZGl1czo5cHg7cGFkZGluZzoxMHB4IDEycHg7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjEzLjVweDtjb2xvcjojMzM0MTU1O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4ycyBlYXNlLGJhY2tncm91bmQgLjJzIGVhc2U7fSIKICArIi5jbHB3LW9wdDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fSIKICArIi5jbHB3LW9wdC5zZWx7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2JhY2tncm91bmQ6dmFyKC0tYjUwKTt9IgogICsiLmNscHctb3B0IGlucHV0e21hcmdpbi10b3A6M3B4O2FjY2VudC1jb2xvcjp2YXIoLS1iNTAwKTtmbGV4Om5vbmU7fSIKICArIi5jbHB3LXRhe3dpZHRoOjEwMCU7bWluLWhlaWdodDoyNjBweDtyZXNpemU6dmVydGljYWw7Ym9yZGVyOjFweCBzb2xpZCAjQzlENkRjO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MTNweCAxNHB4O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjE0LjVweDtsaW5lLWhlaWdodDoxLjY7Y29sb3I6IzBGMTcyQTtiYWNrZ3JvdW5kOiNmZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgxNSwyMyw0MiwuMDUpO30iCiAgKyIuY2xwdy10YTpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOnZhcigtLWI0MDApO2JveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoNTksMTMwLDI0NiwuMTUpO30iCiAgKyIuY2xwdy13bWV0ZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOjlweDt9IgogICsiLmNscHctd3BpbGx7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxM3B4O2JvcmRlci1yYWRpdXM6MzJweDtwYWRkaW5nOjZweCAxNHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tbXV0ZWQpO30iCiAgKyIuY2xwdy13cGlsbC5sb3d7Y29sb3I6dmFyKC0tbXV0ZWQpO30iCiAgKyIuY2xwdy13cGlsbC5nb29ke2NvbG9yOiMwNDc4NTc7YmFja2dyb3VuZDp2YXIoLS1ncmVlbjUwKTtib3JkZXItY29sb3I6I0E3RjNEMDt9IgogICsiLmNscHctd3BpbGwub3Zlcntjb2xvcjojQjQ1MzA5O2JhY2tncm91bmQ6dmFyKC0tYW1iZXI1MCk7Ym9yZGVyLWNvbG9yOiNGREU2OEE7fSIKICArIi5jbHB3LXdwaWxsLm1heHtjb2xvcjojQkUxMjNDO2JhY2tncm91bmQ6dmFyKC0tcm9zZTUwKTtib3JkZXItY29sb3I6I0ZFQ0REMzt9IgogICsiLmNscHctdG1ye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttYXJnaW4tbGVmdDphdXRvO30iCiAgKyIuY2xwdy10bXItYnRue2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTIuNXB4O2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6N3B4IDEycHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycyBlYXNlLGNvbG9yIC4ycyBlYXNlLGJvcmRlci1jb2xvciAuMnMgZWFzZTt9IgogICsiLmNscHctdG1yLWJ0bjpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7Y29sb3I6dmFyKC0tYjcwMCk7fSIKICArIi5jbHB3LXRtci1idG4ucnVue2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7fSIKICAvLyBzYW1wbGUgcGFuZWwKICArIi5jbHB3LXNhbXBsZXN7bWFyZ2luLXRvcDoxNHB4O2JvcmRlci10b3A6MXB4IGRhc2hlZCAjRDNEOUUwO3BhZGRpbmc6MTZweCAxOHB4IDIwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MCAwIDEwcHggMTBweDt9IgogICsiLmNscHctc2FtcGxlc1toaWRkZW5de2Rpc3BsYXk6bm9uZTt9IgogICsiLmNscHctc2Ftbm90ZXtmb250LXNpemU6MTIuNXB4O2NvbG9yOnZhcigtLW11dGVkKTttYXJnaW4tYm90dG9tOjEycHg7fSIKICArIi5jbHB3LXRhYnN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLWJvdHRvbToxMnB4O30iCiAgKyIuY2xwdy10YWJ7Ym9yZGVyOjFweCBzb2xpZCAjRDlERUU1O2JhY2tncm91bmQ6I0YxRjNGNjtjb2xvcjojNDc1NTY5O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTNweDtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjlweCAxNnB4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnMgZWFzZSxjb2xvciAuMnMgZWFzZTt9IgogICsiLmNscHctdGFiLm9ue2JhY2tncm91bmQ6dmFyKC0tY3JpbXNvbik7Ym9yZGVyLWNvbG9yOnZhcigtLWNyaW1zb24pO2NvbG9yOiNmZmY7fSIKICArIi5jbHB3LXNhbWJvZHl7YmFja2dyb3VuZDojRjdGOEZBO2JvcmRlcjoxcHggc29saWQgI0U3RUFFRTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxNnB4IDE4cHg7fSIKICArIi5jbHB3LXNhbWx2bHtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LjA2ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLWNyaW1zb24pO21hcmdpbi1ib3R0b206OHB4O30iCiAgKyIuY2xwdy1zYW10ZXh0e2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiMxRjI5Mzc7bGluZS1oZWlnaHQ6MS43O3doaXRlLXNwYWNlOnByZS13cmFwO30iCiAgKyIuY2xwdy1zYW1oaW50e21hcmdpbi10b3A6MTJweDtmb250LXNpemU6MTIuNXB4O2NvbG9yOiM0NzU1Njk7YmFja2dyb3VuZDojRUVGMkZGO2JvcmRlcjoxcHggc29saWQgI0RCRTNGRjtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjlweCAxMnB4O30iCiAgKyIuY2xwdy1zYW1oaW50IGJ7Y29sb3I6dmFyKC0tYjkwMCk7fSIKICAvLyBydWJyaWMgLyBzY29yaW5nCiAgKyIuY2xwdy1wYW5lbHttYXJnaW4tdG9wOjE4cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoyMHB4IDIycHg7Ym94LXNoYWRvdzowIDEwcHggMzBweCAtMjBweCByZ2JhKDE1LDIzLDQyLC4yKTt9IgogICsiLmNscHctcGFuZWwgaDJ7Zm9udC1zaXplOjE5cHg7Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWI5MDApO21hcmdpbi1ib3R0b206NHB4O30iCiAgKyIuY2xwdy1wYW5lbCAuY2xwdy1sZWFke2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpO21hcmdpbi1ib3R0b206MTRweDt9IgogICsiLmNscHctcnViZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjEwcHg7fSIKICArIi5jbHB3LXJ1YntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMXB4O3BhZGRpbmc6MTJweCAxNHB4O2JhY2tncm91bmQ6I0ZDRkRGRjtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMgZWFzZSxiYWNrZ3JvdW5kIC4ycyBlYXNlO30iCiAgKyIuY2xwdy1ydWI6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWI0MDApO30iCiAgKyIuY2xwdy1ydWIuZG9uZXtib3JkZXItY29sb3I6I0E3RjNEMDtiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApO30iCiAgKyIuY2xwdy1ydWIgaW5wdXR7bWFyZ2luLXRvcDozcHg7YWNjZW50LWNvbG9yOnZhcigtLWdyZWVuKTtmbGV4Om5vbmU7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDt9IgogICsiLmNscHctcnViLWt7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tYjkwMCk7fSIKICArIi5jbHB3LXJ1Yi1ke2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNTttYXJnaW4tdG9wOjJweDt9IgogICsiLmNscHctc2NvcmVib3h7bWFyZ2luLXRvcDoxNHB4O2ZvbnQtc2l6ZToxM3B4O2NvbG9yOiMzMzQxNTU7bGluZS1oZWlnaHQ6MS42O2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjE0cHggMTZweDt9IgogICsiLmNscHctc2NvcmVib3ggYntjb2xvcjp2YXIoLS1iOTAwKTt9IgogICsiLmNscHctY2xicm93e2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MTJweDt9IgogICsiLmNscHctY2xidGFne2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iNzAwKTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iMTAwKTtib3JkZXItcmFkaXVzOjMycHg7cGFkZGluZzo2cHggMTNweDt9IgogICsiLmNscHctZm9vdHttYXJnaW4tdG9wOjE2cHg7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tc3VidGxlKTt0ZXh0LWFsaWduOmNlbnRlcjt9IgogICsiQG1lZGlhKG1heC13aWR0aDo4MjBweCl7LmNscHctc3BsaXR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmNscHctcmVhZHtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRTNFNkVBO30uY2xwdy1ydWJncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7fS5jbHB3LWhlcm97cGFkZGluZzoyNnB4IDIycHg7fX0iCiAgOwoKICBmdW5jdGlvbiBpbmplY3RDU1MoKXsgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdTdHlsZSIpKSByZXR1cm47CiAgICB2YXIgc3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsgc3QuaWQ9ImNscHdTdHlsZSI7IHN0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKENTUykpOwogICAgKGRvY3VtZW50LmhlYWR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQoc3QpOyB9CgogIC8vIC0tLS0tLS0tLS0gYnVpbGQgLS0tLS0tLS0tLQogIGZ1bmN0aW9uIHRhc2tIVE1MKHQpewogICAgdmFyIGQ9V0RBVEEudGFza3NbdC0xXTsgdmFyIGg9IiI7CiAgICBoKz0nPGRpdiBjbGFzcz0iY2xwdy10YXNrJysodD09PXN0YXRlLmFjdGl2ZT8nIG9uJzonJykrJyIgZGF0YS10YXNrPSInK3QrJyIgaWQ9ImNscHdUYXNrJyt0KyciPic7CiAgICBoKz0gJzxkaXYgY2xhc3M9ImNscHctYmFyIj48c3BhbiBjbGFzcz0iY2xwdy1iYXItdCI+Jytlc2MoZC5iYXJUaXRsZSkrJzwvc3Bhbj4nCiAgICAgICArJzxzcGFuIGNsYXNzPSJjbHB3LWJhci10aW1lIiBpZD0iY2xwd0JhclRpbWUnK3QrJyI+VGltZSByZW1haW5pbmc6IDxiPicrZm10KHN0YXRlLnRpbWVyW3RdLnJlbSkrJzwvYj48L3NwYW4+JwogICAgICAgKyc8YnV0dG9uIGNsYXNzPSJjbHB3LXRtci1idG4iIGRhdGEtdG5leHQ9IicrdCsnIj4nKyh0PFdEQVRBLnRhc2tzLmxlbmd0aD8nTkVYVCc6J0RPTkUnKSsnPC9idXR0b24+PC9kaXY+JzsKICAgIGgrPSAnPGRpdiBjbGFzcz0iY2xwdy1zcGxpdCI+JzsKICAgIC8vIGxlZnQKICAgIGgrPSAgJzxkaXYgY2xhc3M9ImNscHctcmVhZCI+JzsKICAgIGgrPSAgICc8ZGl2IGNsYXNzPSJjbHB3LXJoZWFkIj48c3BhbiBjbGFzcz0iY2xwdy1pbmZvIj5pPC9zcGFuPjxwPicrZXNjKGQucmVhZEhlYWQpKyc8L3A+PC9kaXY+JzsKICAgIGlmKGQuc2NlbmFyaW9IZWFkKXsgaCs9JzxkaXYgY2xhc3M9ImNscHctc2NlbmFyaW8taCI+Jytlc2MoZC5zY2VuYXJpb0hlYWQpKyc8L2Rpdj4nOyB9CiAgICBoKz0gICAnPGRpdiBjbGFzcz0iY2xwdy1zY2VuYXJpbyI+Jytlc2MoZC5zY2VuYXJpbykrJzwvZGl2Pic7CiAgICBoKz0gICAnPGJ1dHRvbiBjbGFzcz0iY2xwdy1zYW10b2dnbGUiIGRhdGEtc2FtdG9nZ2xlPSInK3QrJyI+Q2xpY2sgaGVyZSB0byB2aWV3IHNhbXBsZSByZXNwb25zZXM8L2J1dHRvbj4nOwogICAgaCs9ICAnPC9kaXY+JzsKICAgIC8vIHJpZ2h0CiAgICBoKz0gICc8ZGl2IGNsYXNzPSJjbHB3LXdyaXRlIj4nOwogICAgaCs9ICAgJzxkaXYgY2xhc3M9ImNscHctcHJvbXB0cm93Ij48c3BhbiBjbGFzcz0iY2xwdy1pbmZvIj5pPC9zcGFuPjxwPicrZXNjKGQucHJvbXB0SGVhZCkrJzwvcD48L2Rpdj4nOwogICAgaWYoZC5idWxsZXRzICYmIGQuYnVsbGV0cy5sZW5ndGgpeyBoKz0nPHVsIGNsYXNzPSJjbHB3LWJ1bGxldHMiPic7IGQuYnVsbGV0cy5mb3JFYWNoKGZ1bmN0aW9uKGIpeyBoKz0nPGxpPicrZXNjKGIpKyc8L2xpPic7IH0pOyBoKz0nPC91bD4nOyB9CiAgICBpZihkLm9wdGlvbnMpeyBoKz0nPGRpdiBjbGFzcz0iY2xwdy1vcHRzIj4nOyBkLm9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbihvKXsKICAgICAgICBoKz0nPGxhYmVsIGNsYXNzPSJjbHB3LW9wdCcrKHN0YXRlLm9wdD09PW8ua2V5Pycgc2VsJzonJykrJyIgZGF0YS1vcHR3cmFwPSInK28ua2V5KyciPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iY2xwd09wdCIgdmFsdWU9Iicrby5rZXkrJyInKyhzdGF0ZS5vcHQ9PT1vLmtleT8nIGNoZWNrZWQnOicnKSsnPjxzcGFuPicrZXNjKG8ubGFiZWwpKyc8L3NwYW4+PC9sYWJlbD4nOyB9KTsKICAgICAgICBoKz0nPC9kaXY+JzsgfQogICAgaCs9ICAgJzx0ZXh0YXJlYSBjbGFzcz0iY2xwdy10YSIgaWQ9ImNscHdUYScrdCsnIiBkYXRhLXRhPSInK3QrJyIgcGxhY2Vob2xkZXI9IlR5cGUgeW91ciByZXNwb25zZSBoZXJlLi4uIj4nK2VzYyhzdGF0ZS50ZXh0W3RdKSsnPC90ZXh0YXJlYT4nOwogICAgaCs9ICAgJzxkaXYgY2xhc3M9ImNscHctd21ldGVyIj4nOwogICAgaCs9ICAgICAnPHNwYW4gY2xhc3M9ImNscHctd3BpbGwiIGlkPSJjbHB3V3BpbGwnK3QrJyI+MCB3b3Jkczwvc3Bhbj4nOwogICAgaCs9ICAgICAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi41cHg7Y29sb3I6IzY0NzQ4QjsiPmFpbSAnK2VzYyhkLndvcmRBaW0pKyc8L3NwYW4+JzsKICAgIGgrPSAgICAgJzxzcGFuIGNsYXNzPSJjbHB3LXRtciI+JwogICAgICAgICAgICAgKyc8YnV0dG9uIGNsYXNzPSJjbHB3LXRtci1idG4iIGRhdGEtdHN0YXJ0PSInK3QrJyI+U3RhcnQgdGltZXI8L2J1dHRvbj4nCiAgICAgICAgICAgICArJzxidXR0b24gY2xhc3M9ImNscHctdG1yLWJ0biIgZGF0YS10cmVzZXQ9IicrdCsnIj5SZXNldDwvYnV0dG9uPjwvc3Bhbj4nOwogICAgaCs9ICAgJzwvZGl2Pic7CiAgICBoKz0gICc8L2Rpdj4nOwogICAgaCs9ICc8L2Rpdj4nOyAvLyBzcGxpdAogICAgLy8gc2FtcGxlcwogICAgaCs9ICc8ZGl2IGNsYXNzPSJjbHB3LXNhbXBsZXMiIGlkPSJjbHB3U2FtJyt0KyciIGhpZGRlbj4nOwogICAgaCs9ICAgJzxkaXYgY2xhc3M9ImNscHctc2Ftbm90ZSI+JysoZC5zYW1Ob3RlP2Quc2FtTm90ZTonVGhlc2UgYXJlIHRoZSBvZmZpY2lhbCBwcmFjdGljZSBzYW1wbGUgcmVzcG9uc2VzIGF0IHRocmVlIHNjb3JlIGxldmVscy4gTG93ZXItbGV2ZWwgc2FtcGxlcyBrZWVwIHRoZWlyIG9yaWdpbmFsIG1pc3Rha2VzIG9uIHB1cnBvc2UgJm1kYXNoOyBzdHVkeSB3aGF0IGNoYW5nZXMgYXMgdGhlIHNjb3JlIHJpc2VzLicpKyc8L2Rpdj4nOwogICAgaCs9ICAgJzxkaXYgY2xhc3M9ImNscHctdGFicyIgaWQ9ImNscHdUYWJzJyt0KyciPic7CiAgICBkLnNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihzLGkpeyBoKz0nPGJ1dHRvbiBjbGFzcz0iY2xwdy10YWInKyhpPT09MD8nIG9uJzonJykrJyIgZGF0YS10YWI9IicrdCsnIiBkYXRhLWk9IicraSsnIj4nK2VzYyhzLmxldmVsKSsnPC9idXR0b24+JzsgfSk7CiAgICBoKz0gICAnPC9kaXY+JzsKICAgIGgrPSAgICc8ZGl2IGNsYXNzPSJjbHB3LXNhbWJvZHkiIGlkPSJjbHB3U2FtQm9keScrdCsnIj48L2Rpdj4nOwogICAgaCs9ICc8L2Rpdj4nOwogICAgaCs9JzwvZGl2Pic7CiAgICByZXR1cm4gaDsKICB9CgogIGZ1bmN0aW9uIHJlbmRlcigpewogICAgdmFyIHJvb3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdBcHAiKTsgaWYoIXJvb3QpIHJldHVybjsKICAgIHZhciBtPVdEQVRBLm1ldGEsIGg9IiI7CiAgICAvLyBoZXJvCiAgICBoKz0nPHNlY3Rpb24gY2xhc3M9ImNscHctaGVybyI+PGRpdiBjbGFzcz0iY2xwdy1hdXJvcmEiPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2Pic7CiAgICBoKz0gJzxkaXYgY2xhc3M9ImNscHctaGJhZGdlcyI+PHNwYW4gY2xhc3M9ImNscHctYmJyYW5kIj4nK2VzYyhtLmJyYW5kKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJjbHB3LWJzZXQiPicrZXNjKG0uc2V0KSsnPC9zcGFuPjwvZGl2Pic7CiAgICBoKz0gJzxoMT4nK2VzYyhtLnRpdGxlKSsnPC9oMT4nOwogICAgaCs9ICc8cCBjbGFzcz0iY2xwdy1oZXJvLXN1YiI+V3JpdGUgeW91ciByZXNwb25zZSwgdGltZSB5b3Vyc2VsZiwgdGhlbiBjb21wYXJlIGl0IHdpdGggb2ZmaWNpYWwgc2FtcGxlIGFuc3dlcnMgYXQgdGhyZWUgc2NvcmUgbGV2ZWxzICZtZGFzaDsgQ0VMUElQIDQmbmRhc2g7NSwgNyZuZGFzaDs4IGFuZCAxMCZuZGFzaDsxMi48L3A+JzsKICAgIGgrPSAnPGRpdiBjbGFzcz0iY2xwdy1oY2hpcHMiPjxzcGFuIGNsYXNzPSJjbHB3LWNoaXAiPjIgdGFza3M8L3NwYW4+PHNwYW4gY2xhc3M9ImNscHctY2hpcCI+ficrbS50b3RhbE1pbisnIG1pbnV0ZXM8L3NwYW4+PHNwYW4gY2xhc3M9ImNscHctY2hpcCI+MTUwJm5kYXNoOzIwMCB3b3JkcyBlYWNoPC9zcGFuPjxzcGFuIGNsYXNzPSJjbHB3LWNoaXAiPlNhbXBsZSBhbnN3ZXJzIGluY2x1ZGVkPC9zcGFuPjwvZGl2Pic7CiAgICBoKz0gJzxidXR0b24gY2xhc3M9ImNscHctY3RhIiBpZD0iY2xwd1N0YXJ0Ij5TdGFydCB3cml0aW5nPC9idXR0b24+JzsKICAgIGgrPSc8L3NlY3Rpb24+JzsKICAgIC8vIHRvb2xiYXIKICAgIGgrPSc8ZGl2IGNsYXNzPSJjbHB3LXRvb2xzIj48c3BhbiBjbGFzcz0iY2xwdy13Y291bnQiIGlkPSJjbHB3VG90V29yZHMiPldvcmRzICZtZGFzaDsgVGFzayAxOiAwICZtaWRkb3Q7IFRhc2sgMjogMDwvc3Bhbj48c3BhbiBjbGFzcz0iY2xwdy1zYXZlZCIgaWQ9ImNscHdTYXZlZCI+RHJhZnQgc2F2ZWQgJiMxMDAwMzs8L3NwYW4+PHNwYW4gY2xhc3M9ImNscHctc3BhY2VyIj48L3NwYW4+PGJ1dHRvbiBjbGFzcz0iY2xwdy10YnRuIiBpZD0iY2xwd1Jlc2V0QWxsIj5SZXNldCBhbGw8L2J1dHRvbj48L2Rpdj4nOwogICAgLy8gc2ltCiAgICBoKz0nPHNlY3Rpb24gY2xhc3M9ImNscHctc2ltIj48ZGl2IGNsYXNzPSJjbHB3LWRvdHMiIGlkPSJjbHB3RG90cyI+JzsKICAgIFdEQVRBLnRhc2tzLmZvckVhY2goZnVuY3Rpb24oZCl7IGgrPSc8YnV0dG9uIGNsYXNzPSJjbHB3LWRvdCIgZGF0YS1kb3Q9IicrZC5pZCsnIj5UYXNrICcrZC5pZCsnICZtaWRkb3Q7ICcrZXNjKGQubmFtZSkrJzwvYnV0dG9uPic7IH0pOwogICAgaCs9JzwvZGl2PjxkaXYgY2xhc3M9ImNscHctY2F0IiBpZD0iY2xwd0NhdCI+JzsKICAgIFdEQVRBLnRhc2tzLmZvckVhY2goZnVuY3Rpb24oZCl7IGgrPXRhc2tIVE1MKGQuaWQpOyB9KTsKICAgIGgrPSc8L2Rpdj48L3NlY3Rpb24+JzsKICAgIC8vIHJ1YnJpYyBwYW5lbAogICAgaCs9JzxzZWN0aW9uIGNsYXNzPSJjbHB3LXBhbmVsIj48aDI+U2NvcmUgeW91ciBvd24gd3JpdGluZzwvaDI+PHAgY2xhc3M9ImNscHctbGVhZCI+VGhlcmUgaXMgbm8gYW5zd2VyIGtleSBmb3IgV3JpdGluZy4gUmF0ZSBlYWNoIHJlc3BvbnNlIGFnYWluc3QgdGhlIGZvdXIgb2ZmaWNpYWwgQ0VMUElQIGRpbWVuc2lvbnMuPC9wPic7CiAgICBoKz0nPGRpdiBjbGFzcz0iY2xwdy1ydWJncmlkIiBpZD0iY2xwd1J1YkdyaWQiPjwvZGl2Pic7CiAgICBoKz0nPGRpdiBjbGFzcz0iY2xwdy1zY29yZWJveCI+Jytlc2MoV0RBVEEuc2NvcmluZ05vdGUpKyc8ZGl2IGNsYXNzPSJjbHB3LWNsYnJvdyI+PHNwYW4gY2xhc3M9ImNscHctY2xidGFnIj5NPC9zcGFuPjxzcGFuIGNsYXNzPSJjbHB3LWNsYnRhZyI+Q0xCIDQmbmRhc2g7NSAmcmFycjsgZGV2ZWxvcGluZzwvc3Bhbj48c3BhbiBjbGFzcz0iY2xwdy1jbGJ0YWciPkNMQiA3Jm5kYXNoOzggJnJhcnI7IGFkZXF1YXRlJm5kYXNoO2dvb2Q8L3NwYW4+PHNwYW4gY2xhc3M9ImNscHctY2xidGFnIj5DTEIgOSZuZGFzaDsxMiAmcmFycjsgc3Ryb25nPC9zcGFuPjwvZGl2PjwvZGl2Pic7CiAgICBoKz0nPC9zZWN0aW9uPic7CiAgICBoKz0nPGRpdiBjbGFzcz0iY2xwdy1mb290Ij5BbGxFbmdsaXNoNFUgJm1pZGRvdDsgQ0VMUElQIFdyaXRpbmcgUHJhY3RpY2UgJm1pZGRvdDsgJytlc2MoV0RBVEEubWV0YS5zZXQpKyc8L2Rpdj4nOwogICAgcm9vdC5pbm5lckhUTUw9aDsKICAgIGJ1aWxkUnVicmljKCk7CiAgICBXREFUQS50YXNrcy5mb3JFYWNoKGZ1bmN0aW9uKGQpeyByZW5kZXJTYW1wbGUoZC5pZCk7IHVwZGF0ZVdDKGQuaWQpOyB9KTsKICAgIHdpcmVFdmVudHMoKTsKICAgIHJlZnJlc2hEb3RzKCk7CiAgICB1cGRhdGVUb3RhbHMoKTsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkUnVicmljKCl7CiAgICB2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd1J1YkdyaWQiKTsgaWYoIWcpIHJldHVybjsgdmFyIGg9IiI7CiAgICBXREFUQS5ydWJyaWMuZm9yRWFjaChmdW5jdGlvbihyLGkpewogICAgICB2YXIgb24gPSBzdGF0ZS5ydWJyaWNbc3RhdGUuYWN0aXZlXSAmJiBzdGF0ZS5ydWJyaWNbc3RhdGUuYWN0aXZlXVtpXTsKICAgICAgaCs9JzxsYWJlbCBjbGFzcz0iY2xwdy1ydWInKyhvbj8nIGRvbmUnOicnKSsnIiBkYXRhLXJ1YndyYXA9IicraSsnIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRhdGEtcnViPSInK2krJyInKyhvbj8nIGNoZWNrZWQnOicnKSsnPjxzcGFuPjxzcGFuIGNsYXNzPSJjbHB3LXJ1Yi1rIj4nK2VzYyhyLmspKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNscHctcnViLWQiPicrZXNjKHIuZCkrJzwvc3Bhbj48L3NwYW4+PC9sYWJlbD4nOwogICAgfSk7CiAgICBnLmlubmVySFRNTD1oOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyU2FtcGxlKHQpewogICAgdmFyIGQ9V0RBVEEudGFza3NbdC0xXSwgaT1zdGF0ZS50YWJbdF0sIHM9ZC5zYW1wbGVzW2ldOwogICAgdmFyIGJvZHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdTYW1Cb2R5Iit0KTsgaWYoIWJvZHkpIHJldHVybjsKICAgIGJvZHkuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjbHB3LXNhbWx2bCI+Jytlc2Mocy5sZXZlbCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNscHctc2FtdGV4dCI+Jytlc2Mocy50ZXh0KSsnPC9kaXY+JwogICAgICArJzxkaXYgY2xhc3M9ImNscHctc2FtaGludCI+PGI+V2hhdCBzZXRzIHRoaXMgbGV2ZWwgYXBhcnQ6PC9iPiAnK2VzYyhzLm5vdGUpKyc8L2Rpdj4nOwogICAgdmFyIHRhYnM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdUYWJzIit0KTsgaWYodGFicyl7IEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodGFicy5jaGlsZHJlbixmdW5jdGlvbihiLGJpKXsgYi5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsYmk9PT1pKTsgfSk7IH0KICB9CgogIGZ1bmN0aW9uIHVwZGF0ZVdDKHQpewogICAgdmFyIG49d2Moc3RhdGUudGV4dFt0XSk7IHZhciBwaWxsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbHB3V3BpbGwiK3QpOyBpZighcGlsbCkgcmV0dXJuOwogICAgcGlsbC50ZXh0Q29udGVudD1uKyhuPT09MT8iIHdvcmQiOiIgd29yZHMiKTsKICAgIHBpbGwuY2xhc3NOYW1lPSJjbHB3LXdwaWxsICIrKG48MTUwPyJsb3ciOihuPD0yMDA\/Imdvb2QiOihuPD0yNTA\/Im92ZXIiOiJtYXgiKSkpOwogICAgdXBkYXRlVG90YWxzKCk7CiAgfQogIGZ1bmN0aW9uIHVwZGF0ZVRvdGFscygpewogICAgdmFyIGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbHB3VG90V29yZHMiKTsgaWYoZWwpIGVsLmlubmVySFRNTD0iV29yZHMgJm1kYXNoOyBUYXNrIDE6ICIrd2Moc3RhdGUudGV4dFsxXSkrIiAmbWlkZG90OyBUYXNrIDI6ICIrd2Moc3RhdGUudGV4dFsyXSk7CiAgfQoKICBmdW5jdGlvbiByZWZyZXNoRG90cygpewogICAgdmFyIGRvdHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdEb3RzIik7IGlmKCFkb3RzKSByZXR1cm47CiAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvdHMuY2hpbGRyZW4sZnVuY3Rpb24oYil7IHZhciBpZD0rYi5nZXRBdHRyaWJ1dGUoImRhdGEtZG90Iik7CiAgICAgIGIuY2xhc3NMaXN0LnRvZ2dsZSgib24iLGlkPT09c3RhdGUuYWN0aXZlKTsKICAgICAgYi5jbGFzc0xpc3QudG9nZ2xlKCJmaWxsZWQiLCBpZCE9PXN0YXRlLmFjdGl2ZSAmJiB3YyhzdGF0ZS50ZXh0W2lkXSk+MCk7IH0pOwogICAgV0RBVEEudGFza3MuZm9yRWFjaChmdW5jdGlvbihkKXsgdmFyIGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbHB3VGFzayIrZC5pZCk7IGlmKGVsKSBlbC5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsZC5pZD09PXN0YXRlLmFjdGl2ZSk7IH0pOwogIH0KCiAgZnVuY3Rpb24gc3dpdGNoVGFzayh0KXsgc3RhdGUuYWN0aXZlPXQ7IHJlZnJlc2hEb3RzKCk7IGJ1aWxkUnVicmljKCk7CiAgICB2YXIgY2F0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbHB3Q2F0Iik7IGlmKGNhdCYmY2F0LnNjcm9sbEludG9WaWV3KSBjYXQuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJzdGFydCJ9KTsgfQoKICAvLyB0aW1lcnMKICBmdW5jdGlvbiB0aWNrKHQpeyB2YXIgVD1zdGF0ZS50aW1lclt0XTsgaWYoVC5yZW08PTApeyBzdG9wVGltZXIodCk7IHJldHVybjsgfSBULnJlbS0tOyBwYWludFRpbWUodCk7IGlmKFQucmVtPD0wKSBzdG9wVGltZXIodCk7IH0KICBmdW5jdGlvbiBwYWludFRpbWUodCl7IHZhciBlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd0JhclRpbWUiK3QpOyB2YXIgVD1zdGF0ZS50aW1lclt0XTsKICAgIGlmKGVsKXsgZWwuaW5uZXJIVE1MPSJUaW1lIHJlbWFpbmluZzogPGI+IitmbXQoVC5yZW0pKyI8L2I+IjsgZWwuY2xhc3NMaXN0LnRvZ2dsZSgibG93IixULnJlbTw9MTIwKTsgfQogICAgdmFyIGJ0bj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10c3RhcnQ9IicrdCsnIl0nKTsgaWYoYnRuKXsgYnRuLnRleHRDb250ZW50PVQucnVuPyJQYXVzZSB0aW1lciI6KFQucmVtPD0wPyJUaW1lIHVwIjoiU3RhcnQgdGltZXIiKTsgYnRuLmNsYXNzTGlzdC50b2dnbGUoInJ1biIsVC5ydW4pOyB9IH0KICBmdW5jdGlvbiBzdGFydFRpbWVyKHQpeyB2YXIgVD1zdGF0ZS50aW1lclt0XTsgaWYoVC5yZW08PTApIHJldHVybjsgVC5ydW49dHJ1ZTsgaWYoVC5pdikgY2xlYXJJbnRlcnZhbChULml2KTsgVC5pdj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3RpY2sodCk7fSwxMDAwKTsgcGFpbnRUaW1lKHQpOyB9CiAgZnVuY3Rpb24gc3RvcFRpbWVyKHQpeyB2YXIgVD1zdGF0ZS50aW1lclt0XTsgVC5ydW49ZmFsc2U7IGlmKFQuaXYpeyBjbGVhckludGVydmFsKFQuaXYpOyBULml2PW51bGw7IH0gcGFpbnRUaW1lKHQpOyB9CiAgZnVuY3Rpb24gdG9nZ2xlVGltZXIodCl7IHN0YXRlLnRpbWVyW3RdLnJ1bj9zdG9wVGltZXIodCk6c3RhcnRUaW1lcih0KTsgfQogIGZ1bmN0aW9uIHJlc2V0VGltZXIodCl7IHN0b3BUaW1lcih0KTsgc3RhdGUudGltZXJbdF0ucmVtPVdEQVRBLnRhc2tzW3QtMV0ubWludXRlcyo2MDsgcGFpbnRUaW1lKHQpOyB9CgogIC8vIC0tLS0tLS0tLS0gZXZlbnRzIC0tLS0tLS0tLS0KICBmdW5jdGlvbiB3aXJlRXZlbnRzKCl7CiAgICB2YXIgcm9vdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xwd0FwcCIpOwogICAgdmFyIHN0YXJ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbHB3U3RhcnQiKTsKICAgIGlmKHN0YXJ0KSBzdGFydC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsgc3dpdGNoVGFzaygxKTsgc3RhcnRUaW1lcigxKTsgfSk7CiAgICB2YXIgcmVzZXRBbGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdSZXNldEFsbCIpOwogICAgaWYocmVzZXRBbGwpIHJlc2V0QWxsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpewogICAgICBpZighY29uZmlybSgiQ2xlYXIgYm90aCBkcmFmdHMsIHNlbGVjdGVkIG9wdGlvbiBhbmQgdGltZXJzIG9uIHRoaXMgZGV2aWNlPyIpKSByZXR1cm47CiAgICAgIHN0YXRlLnRleHRbMV09IiI7c3RhdGUudGV4dFsyXT0iIjtzdGF0ZS5vcHQ9bnVsbDtzdGF0ZS5ydWJyaWM9ezE6e30sMjp7fX07CiAgICAgIHJlc2V0VGltZXIoMSk7cmVzZXRUaW1lcigyKTsgc2F2ZSgpOyByZW5kZXIoKTsgfSk7CgogICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7CiAgICAgIHZhciBlbD1lLnRhcmdldC5jbG9zZXN0KCJbZGF0YS1kb3RdLFtkYXRhLXNhbXRvZ2dsZV0sW2RhdGEtdGFiXSxbZGF0YS10c3RhcnRdLFtkYXRhLXRyZXNldF0sW2RhdGEtdG5leHRdIik7IGlmKCFlbCkgcmV0dXJuOwogICAgICBpZihlbC5oYXNBdHRyaWJ1dGUoImRhdGEtZG90IikpeyBzd2l0Y2hUYXNrKCtlbC5nZXRBdHRyaWJ1dGUoImRhdGEtZG90IikpOyB9CiAgICAgIGVsc2UgaWYoZWwuaGFzQXR0cmlidXRlKCJkYXRhLXNhbXRvZ2dsZSIpKXsgdmFyIHQ9K2VsLmdldEF0dHJpYnV0ZSgiZGF0YS1zYW10b2dnbGUiKTsgdmFyIHA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNscHdTYW0iK3QpOwogICAgICAgIGlmKHApeyBwLmhpZGRlbj0hcC5oaWRkZW47IGVsLnRleHRDb250ZW50PXAuaGlkZGVuPyJDbGljayBoZXJlIHRvIHZpZXcgc2FtcGxlIHJlc3BvbnNlcyI6IkhpZGUgc2FtcGxlIHJlc3BvbnNlcyI7IGlmKCFwLmhpZGRlbikgcmVuZGVyU2FtcGxlKHQpOyB9IH0KICAgICAgZWxzZSBpZihlbC5oYXNBdHRyaWJ1dGUoImRhdGEtdGFiIikpeyB2YXIgdHQ9K2VsLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTsgc3RhdGUudGFiW3R0XT0rZWwuZ2V0QXR0cmlidXRlKCJkYXRhLWkiKTsgcmVuZGVyU2FtcGxlKHR0KTsgfQogICAgICBlbHNlIGlmKGVsLmhhc0F0dHJpYnV0ZSgiZGF0YS10c3RhcnQiKSl7IHRvZ2dsZVRpbWVyKCtlbC5nZXRBdHRyaWJ1dGUoImRhdGEtdHN0YXJ0IikpOyB9CiAgICAgIGVsc2UgaWYoZWwuaGFzQXR0cmlidXRlKCJkYXRhLXRyZXNldCIpKXsgcmVzZXRUaW1lcigrZWwuZ2V0QXR0cmlidXRlKCJkYXRhLXRyZXNldCIpKTsgfQogICAgICBlbHNlIGlmKGVsLmhhc0F0dHJpYnV0ZSgiZGF0YS10bmV4dCIpKXsgdmFyIGN1cj0rZWwuZ2V0QXR0cmlidXRlKCJkYXRhLXRuZXh0Iik7IGlmKGN1cjxXREFUQS50YXNrcy5sZW5ndGgpeyBzd2l0Y2hUYXNrKGN1cisxKTsgfSB9CiAgICB9KTsKCiAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbihlKXsgdmFyIHRhPWUudGFyZ2V0LmNsb3Nlc3QoIltkYXRhLXRhXSIpOyBpZighdGEpIHJldHVybjsKICAgICAgdmFyIHQ9K3RhLmdldEF0dHJpYnV0ZSgiZGF0YS10YSIpOyBzdGF0ZS50ZXh0W3RdPXRhLnZhbHVlOyB1cGRhdGVXQyh0KTsgcmVmcmVzaERvdHMoKTsgc2F2ZSgpOyB9KTsKCiAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oZSl7CiAgICAgIHZhciBvcHQ9ZS50YXJnZXQuY2xvc2VzdCgnaW5wdXRbbmFtZT0iY2xwd09wdCJdJyk7CiAgICAgIGlmKG9wdCl7IHN0YXRlLm9wdD1vcHQudmFsdWU7IEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtb3B0d3JhcF0iKSxmdW5jdGlvbihsKXsgbC5jbGFzc0xpc3QudG9nZ2xlKCJzZWwiLGwuZ2V0QXR0cmlidXRlKCJkYXRhLW9wdHdyYXAiKT09PXN0YXRlLm9wdCk7IH0pOyBzYXZlKCk7IHJldHVybjsgfQogICAgICB2YXIgcnViPWUudGFyZ2V0LmNsb3Nlc3QoIltkYXRhLXJ1Yl0iKTsKICAgICAgaWYocnViKXsgdmFyIGk9K3J1Yi5nZXRBdHRyaWJ1dGUoImRhdGEtcnViIik7IGlmKCFzdGF0ZS5ydWJyaWNbc3RhdGUuYWN0aXZlXSkgc3RhdGUucnVicmljW3N0YXRlLmFjdGl2ZV09e307IHN0YXRlLnJ1YnJpY1tzdGF0ZS5hY3RpdmVdW2ldPXJ1Yi5jaGVja2VkOwogICAgICAgIHZhciB3cmFwPXJ1Yi5jbG9zZXN0KCJbZGF0YS1ydWJ3cmFwXSIpOyBpZih3cmFwKSB3cmFwLmNsYXNzTGlzdC50b2dnbGUoImRvbmUiLHJ1Yi5jaGVja2VkKTsgc2F2ZSgpOyB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGJvb3QoKXsgbG9hZCgpOyBpbmplY3RDU1MoKTsgcmVuZGVyKCk7IH0KICBpZihkb2N1bWVudC5yZWFkeVN0YXRlPT09ImxvYWRpbmciKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixib290KTsgZWxzZSBib290KCk7Cn0pKCk7Cgo=\"));<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Writing Set 7 Practice Test 1: Task 1 (email) and Task 2 (survey response) with timers and word counter, plus a self-assessment guide. 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-6393","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6393","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=6393"}],"version-history":[{"count":1,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6393\/revisions"}],"predecessor-version":[{"id":6568,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6393\/revisions\/6568"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}