<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>FormBuilder</name>
	<version>0.7</version>
  <mincmsversion>1.1</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZvcm1zIChpbiBmYWN0LCBpdCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aAp0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSdyZQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtGb3JtQnVpbGRlciBmb3JtPSdzYW1wbGVfZm9ybSd9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoIikgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+Cgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICJmYXN0IGZpZWxkIGFkZGVyIiBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXIncyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgiUHJldmlvdXMiLCAibmV4dCIsICJzdWJtaXQiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0ncyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+CjxwPlVubGVzcyB5b3UncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAnRGlzcGxheSAiU3VibWlzc2lvbiBUZW1wbGF0ZSIsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSdyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0J3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCdzIHNhZmUgdG8gdXNlIGZvcgplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPgo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHAKZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUKc2VwYXJhdGVseSBtYXJrZWQgIlJlcXVpcmVkIiwgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gInZpZXcgc291cmNlIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+QnV0dG9uLiBUaGlzIGRvZW5zJ3QgZG8gYW55dGhpbmcsIGJ1dCB5b3UgY2FuIGhvb2sgaXQgaW50byBzb21lIEphdmFzY3JpcHQuPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0J3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPgo8bGk+UGFzc3dvcmQgQWdhaW4gKHZlcmlmeSkuIFRoaXMgaXMgYSBmaWVsZCB0aGF0IG11c3QgbWF0Y2ggYSBQYXNzd29yZCBmaWVsZCBmb3Igc3VibWlzc2lvbgp0byBzdWNjZWVkLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPGxpPkVtYWlsICJGcm9tIE5hbWUiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAiU3ViamVjdCIgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UncmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjxsaT4tVXNlciBUYWcuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVc2VyIERlZmluZWQgVGFnLCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8L3VsPjwvbGk+CjxsaT4tTW9kdWxlIEluY2x1ZGUgVGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgb3RoZXIgbW9kdWxlIG91dHB1dCBpbnRvIHlvdXIgZm9ybSwgZS5nLiwgYSBsaXN0IG9mIHByb2R1Y3RzIGZyb20gdGhlIFByb2R1Y3RzIG1vZHVsZS48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1snZmllbGRfbmFtZSddLCBhbmQgYXMgJHBhcmFtc1snZmllbGRfYWxpYXMnXSAoaWYgZGVmaW5lZCkuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgIkRpcmVjdG9yIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCByZXN1bHRzIGJhc2VkIG9uIGZyb250ZW5kIGZpZWxkcy4gVGhpcyBmaWVsZCBpcyBhbiBlbWFpbCBkaXNwb3NpdGlvbiB0aGF0IGFsbG93cyBmb3JtIGZpZWxkcycgdXNlciBpbnB1dCB0byBzcGVjaWZ5IHRoZSBFbWFpbCBTdWJqZWN0LCAiRnJvbSBOYW1lIiwgIkZyb20gQWRkcmVzcyIsIGFuZCBEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzLjwvbGk+CjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gPHN0cm9uZz5EZXByZWNhdGVkLjwvc3Ryb25nPiBVc2UgU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIGluc3RlYWQhIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICJhcHByb3ZlZCwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICJvdXRwdXQiIGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIGEgVW5pcXVlIEZsYXQgRmlsZSBmb3IgZWFjaCBzdWJtaXNzaW9uLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIHRvIGEgdW5pcXVlIHRleHQgZmlsZSBmb3IgZWFjaCBmb3JtIHN1Ym1pc3Npb24uCllvdSBjYW4gc3BlY2lmeSBhIGZpbGVuYW1lIHBhdHRlcm4gdXNpbmcgdmFsdWVzIGZyb20gZm9ybSBmaWVsZHMsIHNldCBpdHMgZm9ybWF0LCBhbmQgc2V0IHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGZpbGVzIHdpbGwgYmUgc3RvcmVkLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjAuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgaXMgdGhlIG9ubHkgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3Nlci4gU2VlIHNlY3Rpb24gYmVsb3cuPC9saT4KPGxpPipTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uLiBDcmFmdCBhbiBIVFRQIEdFVCBvciBQT1NULCBhbmQgdHJhbnNtaXQgaXQgdXNpbmcgY1VSTCB0byB0aGUgc3BlY2lmaWVkIFVSTC4gVGhpcyBsZXRzIHlvdSB1c2UgRm9ybUJ1aWxkZXIgYXMgYSBmcm9udC1lbmQgdG8gYW55IENHSSBvciBGb3JtIEhhbmRsaW5nIHNjcmlwdCBvdXQgdGhlcmUuPC9saT4KCjwvdWw+PC9saT48L2xpPjwvdWw+Cgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntGb3JtQnVpbGRlciBmb3JtPSdteV9mb3JtJyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSdkZWZhdWx0X3ZhbHVlJ308L3A+CjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAnZGVmYXVsdF92YWx1ZScuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndpZWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24ndCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+CjxwPntGb3JtQnVpbGRlciBmb3JtPSdteV9mb3JtJyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSdkZWZhdWx0X3ZhbHVlJ308L3A+CjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsCmFuZCBjaGVjayAiU2hvdyBGaWVsZCBJRHMiPC9wPgoKPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAiQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UnbGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLiBBcyBvZiB2ZXJzaW9uIDAuNSwgdmFyaWFibGVzIGFsc28gaGF2ZSBhbGlhc2VzLCB3aGljaCB5b3UgY2FuIHVzZS48L3A+CjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91J3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCdzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPgo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICJDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUiIGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPlVzZSB3aXRoIEZvcm1Ccm93c2VyIHYzPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgc3BlY2lhbCBmZWF0dXJlcyB3aGVuIHVzaW5nIEZvcm1CdWlsZGVyIHdpdGggRm9ybUJyb3dzZXIuIFRoZSBuZXcgYXBwcm9hY2ggc3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gWE1MLCBzbyB0aGF0IGZhciBmZXdlcgpxdWVyaWVzIGFyZSBuZWVkZWQgdG8gcmV0cmlldmUgcmVjb3Jkcy4gVGhpcyBtZWFucyB5b3UgY2FuIHVzZSBGb3JtQnJvd3NlciB3aXRoIGh1bmRyZWRzIG9yIGV2ZW4gdGhvdXNhbmRzIG9mIHJlY29yZHMuIEl0IGFsc28gbWVhbnMgeW91CndpbGwgaGF2ZSB0byBjaG9vc2UgdXAgZnJvbnQgd2hpY2ggZmllbGRzIHlvdSB3aWxsIHdhbnQgdG8gYmUgYWJsZSB0byBzb3J0IGJ5LiBZb3UgY2FuIGNob29zZSB1cCB0byBmaXZlLiBDaGFuZ2luZyB0aGVzZSBhZnRlciB0aGVyZSBhcmUgc3VibWl0dGVkIHJlY29yZHMgd2lsbCByZXN1bHQgaW4gaW1wcm9wZXIgc29ydGluZyEgQSByZS1pbmRleCBmdW5jdGlvbiB3aWxsIGJlIGFkZGVkIHRvIGEgZnV0dXJlIHZlcnNpb24uPC9wPgo8cD5JbiBhZHZhbmNlZCBvcHRpb25zLCB5b3UgY2FuIHRpZSBhIGZvcm0gdG8gRnJvbnRlbmQgVXNlcnMuIFRoYXQgbWVhbnMgZWFjaCB1c2VyIGdldHMgb25lIHJlY29yZCBmb3IgdGhlIGZvcm07IHRoZXkgY2FuIGNyZWF0ZSBpdAphIHNpbmdsZSB0aW1lLCBzdWJzZXF1ZW50IHRpbWVzIHRoZXkgd2lsbCBiZSBlZGl0aW5nIHRoZWlyIHJlY29yZC4gVGhlIHJlY29yZCB3aWxsIG5vdCBiZSB2aXNpYmxlIHRvIGFueSBvdGhlciB1c2VycyAoZXhjbHVkaW5nIGFkbWlucykuClRoaXMgZm9ybSBzaG91bGQgYmUgYWRkZWQgdG8geW91ciBwYWdlIHVzaW5nIHRoZSBzeW50YXgge0Zvcm1CdWlsZGVyIGFjdGlvbj0nZmV1c2VyZm9ybScgZm9ybT0nZm9ybV9uYW1lJ30uPC9wPgo8cD5Gb3IgZ3JlYXRlciBkYXRhIHNhZmV0eSwgeW91IGNhbiBlbmNyeXB0IHRoZSBzdG9yZWQgZm9ybXMgaW4gdGhlIGRhdGFiYXNlLiBZb3UgY2FuIHVzZSB0aGUgYnVpbHQtaW4gbXljcnlwdCBsaWJyYXJ5IG9yIHRoZSBPcGVuU1NMIG1vZHVsZS4KSW4gZWl0aGVyIGNhc2UsIGZvciB0aGUgcGFzc3BocmFzZSwgeW91IGNhbiBlaXRoZXIgZW50ZXIgdGV4dCBpbiB0aGUgZmllbGQgb3IgYSBmaWxlIG5hbWUuIElmIHlvdSBzcGVjaWZ5IGEgZmlsZSBuYW1lLCB0aGUgY29udGVudHMgb2YgdGhhdApmaWxlIHdpbGwgYmUgdXNlZCBhcyB0aGUgcGFzc3BocmFzZSBmb3IgZW5jcnlwdGluZy48L3A+CjxwPklmIHlvdSBlbmNyeXB0LCBiZSBhd2FyZSB0aGF0IHRoZSBmaWVsZHMgeW91IHVzZSBmb3Igc29ydGluZyBhcmUgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gZW5jcnlwdGVkLiBZb3UgY2FuIGNob29zZSB0byBoYXNoIHRoZW07IHRoZSBjaGVhdCBoZXJlCmlzIHRoYXQgdGhlIGZpcnN0IGZvdXIgbGV0dGVycyBhcmUgbGVmdCBpbnRhY3QgdG8gYWxsb3cgZm9yIHNvcnRpbmcuIFRoZSBzb3J0aW5nIG1heSBub3QgYmUgcGVyZmVjdCwgYW5kIHRoaXMgd2Vha2VucyB0aGUgc2VjdXJpdHkgc2luY2UgaXQKZXhwb3NlcyBzb21lIGNsZWFydGV4dCwgYnV0IGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuPC9wPgo8cD48c3Ryb25nPkRJU0NMQUlNRVI8L3N0cm9uZz4uIFRoZSBlbmNyeXB0aW9uIG9mZmVyZWQgaGVyZSBzaG91bGQgYmUgY29uc2lkZXJlZCBqdXN0IG9uZSBtb3JlIGh1cmRsZSBmb3IgYSBoYWNrZXIsIG5vdCBhcyBhIGd1YXJhbnRlZSB0aGF0CnlvdXIgaW5mb3JtYXRpb24gd2lsbCBiZSBzZWN1cmUuIEEgc21hcnQgaGFja2VyIHdobyBoYXMgZm91bmQgc29tZSBleHBsb2l0IHRvIHZpZXcgZGF0YWJhc2UgcmVjb3JkcyBtYXkgd2VsbCBiZSBzbWFydCBlbm91Z2ggdG8gZ2V0IGF0CnRoZSBtb2R1bGUgc291cmNlIGNvZGUsIGFuZCBmaW5kIHRoZWlyIHdheSB0byB0aGUgcGFzc3BocmFzZS4gVGhpcyB3aWxsIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGFuIGVuZW15IHdobyBoYXMgZnVsbCBhY2Nlc3MgdG8geW91cgpzZXJ2ZXIsIHNvbWUgZmFtaWxpYXJpdHkgd2l0aCBQSFAsIGFuZCB0aGUgdGltZSB0byBwb2tlIGFyb3VuZC4gPGVtPjxzdHJvbmc+RG8gbm90PC9zdHJvbmc+IHVzZSB0aGlzIHRvIHByb3RlY3QgaGlnaC12YWx1ZSBpbmZvcm1hdGlvbiBzdWNoIGFzIGZpbmFuY2lhbCBkYXRhLApzZW5zaXRpdmUgcG9saXRpY2FsIGluZm9ybWF0aW9uLCBodW1hbiByaWdodHMgZGF0YSwgb3IgYW55dGhpbmcgZWxzZSB0aGF0IG1pZ2h0IGJlIG9mIHZhbHVlIHRvIGEgcmVwcmVzc2l2ZSBnb3Zlcm5tZW50IG9yIG9yZ2FuaXplZCBjcmltZQpjYXJ0ZWwuPC9lbT48L3A+CjxoMz5Vc2luZyB3aXRoIFVzZXIgRGVmaW5lZCBUYWdzIChVRFRzKTwvaDM+CjxwPlNldmVyYWwgb3B0aW9ucyBmb3IgY3VzdG9taXppbmcgYmVoYXZpb3IgdmlhIFVEVHMgaXMgcHJvdmlkZWQgKHRoYW5rcyB0byBraW5kIGNvZGUgY29udHJpYnV0aW9ucywgc2VlIGNyZWRpdHMpLjwvcD4KCjx1bD48bGk+Q2FsbCBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBmaWVsZCB0eXBlIHN1Ym1pdHMgdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkClRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbJ2ZpZWxkX25hbWUnXSwgYW5kCmFzICRwYXJhbXNbJ2ZpZWxkX2FsaWFzJ10gKGlmIGRlZmluZWQpLiBBcyBwZXIgYSBzdWdnZXN0aW9uLCBpdCBhbHNvIHBvcHVsYXRlcyBhbGwgb2YgdGhlIFNtYXJ0eSB2YWx1ZXMgdGhhdCB3b3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBTdWJtaXNzaW9uIFRlbXBsYXRlIHRvbyE8L2xpPgo8bGk+VXNlciBUYWcgRmllbGQuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVRFQsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+CjxsaT5WYWxpZGF0aW9uIFVEVC4gU2V0IHRoaXMgZm9yIGEgZm9ybSwgYW5kIHRoZSBVRFQgd2lsbCByZWNlaXZlIGFsbCBvZiB0aGUgZm9ybVwncyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcgp2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZAp2YWx1ZSBiZWluZyBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L2xpPgo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMKaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5Cm9mIHRoZSBmb3JtLjwvbGk+CjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UKZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZApldmVyeSB0aW1lIGFueSBwYWdlIG9mIHRoZSBmb3JtIGlzIGRpc3BsYXllZCAoaW5jbHVkaW5nIHdoZW4gdmFsaWRhdGlvbiBmYWlscykuPC9saT4KPC91bD4KPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5SdW4gaW4gTUxFIE1vZGUuIFRoaXMgY2hhbmdlcyBzb21lIHF1ZXJpZXMgYWdhaW5zdCB0aGUgY29udGVudCB0YWJsZSB0byB0cnkgdG8gcHJldmVudCB1Z2x5IGNyYXNoZXMgdW5kZXIgdGhlIE1MRSBmb3JrLiBDaGVja2luZyB0aGlzIHdpbGwgY2F1c2UgdWdseSBjcmFzaGVzIGlmIHlvdSBhcmUgTk9UIHJ1bm5pbmcgdGhlIE1MRSBmb3JrLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBubyBsb25nZXIgc2V0IGJ5IGRlZmF1bHQuIENoZWNraW5nIGl0IHdpbGwgaGlkZSB0aGUgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdGhhdCB3b3VsZCBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91J3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4KPC91bD4KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiAKc3RhdGljIHRleHQgZmllbGRzLiBJbnN0ZWFkLCBpdCBjcmVhdGVzIGEgc3R5bGVzaGVldCBjYWxsZWQgIkZvcm1CdWlsZGVyIERlZmF1bHQiIHRoYXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGFjaCB0byB0aGUgcGFnZSB0ZW1wbGF0ZQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+CgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91J2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJiMxMjM7JGZiX2hpZGRlbn0gYW5kICYjMTIzOyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJiMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQncyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQncyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oZWxwdGV4dDwvdGQ+PHRkPnRoZSBmaWVsZCdzIGhlbHAgdGV4dDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCdzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0iZm9vIik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+dGhlIGFsaWFzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5CmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmIzEyMzskbXlmaWVsZC0+dmFsdWV9ICkuCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPgo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiJCYWNrIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4iQ29udGludWUiIG9yICJTdWJtaXQiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+Cgo8aDM+Q3JlZGl0czwvaDM+CjxwPk1hbnkgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQgY29kZSwgYnVnIHJlcG9ydHMsIGNhc2gsIGFuZCBpZGVhcyB0byBGb3JtQnVpbGRlci4gQW1vbmcgdGhlbSAoYWxwaGFiZXRpY2FsbHkpOgo8dWw+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJwdGkuZXUiPkJhbHRpYyBpbnN0aXR1dGUgb2YgYWR2YW5jZWQgdGVjaG5vbG9neTwvYT4gLSBjb2RlLCBmdW5kaW5nIDwvbGk+CjxsaT5KZXJlbXkgQmFzcyAtIGNvZGUgYW5kIHN1Z2dlc3Rpb25zPC9saT4KPGxpPkFsYmVydG8gQmVuYXRpIC0gY29kZTwvbGk+CjxsaT5UeWxlciBCb2VzcGZsdWcgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+CjxsaT5KZWZmIEJvc2NoIC0gVURUIFZhbGlkYXRpb248L2xpPgo8bGk+Um9iZXJ0IENhbXBiZWxsIC0gbnVtZXJvdXMgY29kZSBjb250cmlidXRpb25zPC9saT4KPGxpPlBpb3RyYXMgQ2ltbXBlcm1hbiAtIGNvZGU8L2xpPgo8bGk+TnVubyBDb3N0YSAtIHN1Z2dlc3Rpb25zPC9saT4KPGxpPlJ5YW4gRm9zdGVyIC0gY29kZTwvbGk+CjxsaT5NYXJjIEdlbGRvbiAtIGNvZGU8L2xpPgo8bGk+S2V2aW4gR3JhbmRvbiAtIGNvZGU8L2xpPgo8bGk+Um9ubnkgS3JpanQgLSBjb2RlPC9saT4KPGxpPlBhdWwgTm9vbmUgLSBDU1MgYW5kIGlkZWFzPC9saT4KPGxpPk1vcnRlbiBQb3Vsc2VuIC0gY29kZTwvbGk+CjxsaT5QcnVlIFJvd2xhbmQgLSBidWcgZml4ZXM8L2xpPgo8bGk+U2ltb24gU2NoYXVmZWxiZXJnZXIgLSBjb2RlPC9saT4KPGxpPkFkYW0gU2hhdy1WYXJkaSAtIGZ1bmRpbmcgYW5kIGlkZWFzPC9saT4KPC91bD4KPHA+SSBhcG9sb2dpemUgZm9yIGFueSBvbWlzc2lvbnMgLSBub3RpZnkgbWUsIGFuZCBJJ2xsIGNvcnJlY3QgdGhlIG9taXNzaW9uITwvcD4KPGgzPk1pc2NlbGxhbmVvdXMgTm90ZXM8L2gzPgo8dWw+CjxsaT5BbnkgZmllbGRzIHRoYXQgc2VuZHMgZW1haWwgdG8gYSBzcGVjaWZpZWQgZW1haWwgYWRkcmVzcyB3aWxsIGFsc28gYWNjZXB0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzLjwvbGk+CjwvdWw+CjxoMz5Lbm93biBJc3N1ZXM8L2gzPgo8dWw+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgVVJMcywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJ3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPgo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPgo8L3VsPgoKPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+CjxvbD4KPGxpPkZvcm1CdWlsZGVyL0Zvcm1Ccm93c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gUEhQIDUgb3IgbGF0ZXIgdG8gZnVuY3Rpb24gY29ycmVjdGx5LjwvbGk+CjxsaT5GaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSdyZSBydW5uaW5nIENNUyAxLjYgb3IgbGF0ZXIuPC9saT4KPGxpPlNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3UncmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJ3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91J3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQncyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+VW5jaGVjayB0aGUgIkhpZGUgRXJyb3JzIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IE1ha2Ugc3VyZSB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBzZW5kIGVtYWlsIHZpYSB0aGUgdGVzdCBpbiB0aGUgQ01TTWFpbGVyIE1vZHVsZS4gSXQncyBzaW1wbHkgYW1hemluZyBob3cgbWFueSBwcm9ibGVtcyBib2lsIGRvd24gdG8gYSBtaXNjb25maWd1cmVkIENNU01haWxlci48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkndmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3IncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+CjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4KPC91bD4KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IDxlbT5odW5kcmVkcyBhbmQgaHVuZHJlZHMgb2YgaG91cnM8L2VtPiBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4KUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciBzZW5kIHlvdXIgcXVlc3Rpb25zIHdyaXR0ZW4gb24KZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzCmV2ZW4ga25vdyB3aGF0IGEgYnJva2VuIHJlY29yZCBpcz8gSSB3b3VsZCBzYXkgc2tpcHBpbmcgQ0QsIGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgd2hhdCB0aGF0IGlzIGVpdGhlci4gTGlrZSBhCnNhbXBsZSB0aGF0IGdvdCBzdHVjayBvbiBsb29wPyBEYW1uLCBJIGFtIGdldHRpbmcgb2xkLiBTbyBpcyB0aGlzIHBhcmFncmFwaC4gVGltZSB0byBtb3ZlIG9uLCBoZXJlLjwvcD48Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3IiIG1ldGhvZD0icG9zdCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVDQ19MRy5naWYiIGJvcmRlcj0iMCIgbmFtZT0ic3VibWl0IiBhbHQ9IlBheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISI+CjxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVuY3J5cHRlZCIgdmFsdWU9Ii0tLS0tQkVHSU4gUEtDUzctLS0tLU1JSUhUd1lKS29aSWh2Y05BUWNFb0lJSFFEQ0NCendDQVFFeGdnRXdNSUlCTEFJQkFEQ0JsRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjBDQVFBd0RRWUpLb1pJaHZjTkFRRUJCUUFFZ1lBSU5uQldiL1hNNGxtdkxHSGw5UmQxY3ZMNXRycVJoYzcrRm9HSDVMdG9mUWlWcmdGU3ZoN2gxb2pnNVN6VHhiZ3RpMzJaRjAvdWN1cS9PUVNEK1Z6dXVBRjF2NndWcnR5T2VDUEVBdzhqODFESk9YVmpKSHNJWTJtdmlvclBqb2xMUWtGbnYxMnlSVHB1RldGbjRaWGU1K3ZuQ2pYcUJ5MEVFL2FoekVNTW56RUxNQWtHQlNzT0F3SWFCUUF3Z2N3R0NTcUdTSWIzRFFFSEFUQVVCZ2dxaGtpRzl3MERCd1FJY0tOTndPUEZvd3VBZ2FpdlM3djBqMlhGeVE5ZHI4bmk5Rzk1ZUU3WXFvZ0dsSzl3dVNwbGxPZzlsbnJ1dm5FUXFzbVJtUW50aFFxV0NUYlp6RzIrSUV0ZU00SVVzeEV1R1RydzhwWkNVMjRUTkRja25LVXg5VXozdlN4T2gzZ3U5NXlKeUR3b2VNdmFFQTI0YnMxNFFFYkpiaE5qWTZXeEh6OStpL2xWQURCanlBT0RZTXV6YWxEa3ZkdXZ3ZUdOWms5bFlMUlJDb1BQTmlsRzFQZjZ3ODdCSHBrU004V1ExTEM5K1JXZFhmWmNtK2VnZ2dPSE1JSURnekNDQXV5Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRVUZBRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3SGhjTk1EUXdNakV6TVRBeE16RTFXaGNOTXpVd01qRXpNVEF4TXpFMVdqQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTUZIVHQzOFJNeExYSnlPMlNtUytOZGw3MlQ3b0tKNHU0dXcrNmF3bnRBTFdoMDNQZXdtSUp1emJBTFNjc1RTNHNab1MxZktjaUJHb2gxMWdJZkh6eWx2a2ROZS9oSmw2Ni9SR3FyajVyRmIwOHNBQUJOVHpEVGlxcU5wSmVCc1lzL2MyYWlHb3pwdFgyUmxuQmt0SCtTVU5wQWFqVzcyNE52Mld2aGlmNnNGQWdNQkFBR2pnZTR3Z2Vzd0hRWURWUjBPQkJZRUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJNSUc3QmdOVkhTTUVnYk13Z2JDQUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJvWUdVcElHUk1JR09NUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGakFVQmdOVkJBY1REVTF2ZFc1MFlXbHVJRlpwWlhjeEZEQVNCZ05WQkFvVEMxQmhlVkJoYkNCSmJtTXVNUk13RVFZRFZRUUxGQXBzYVhabFgyTmxjblJ6TVJFd0R3WURWUVFERkFoc2FYWmxYMkZ3YVRFY01Cb0dDU3FHU0liM0RRRUpBUllOY21WQWNHRjVjR0ZzTG1OdmJZSUJBREFNQmdOVkhSTUVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJCUVVBQTRHQkFJRmZPbGFhZ0ZybDcxK2pxNk9LaWRiV0ZTRStRNEZxUk92ZGdJT050aCs4a1NLLy9ZLzRpaHVFNFltdnpuNWNlRTNTL2lCU1FRTWp5dmIrczJUV2JRWUR3Y3AxMjlPUEliRDllcGRyNHRKT1VOaVNvanc3Qkh3WVJpUGg1OFMxeEdsRmdIRlh3ckVCYjNkZ05iTVVhK3U0cWVjdHNNQVhwVkhuRDl3SXlmbUhNWUlCbWpDQ0FaWUNBUUV3Z1pRd2dZNHhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJRXdKRFFURVdNQlFHQTFVRUJ4TU5UVzkxYm5SaGFXNGdWbWxsZHpFVU1CSUdBMVVFQ2hNTFVHRjVVR0ZzSUVsdVl5NHhFekFSQmdOVkJBc1VDbXhwZG1WZlkyVnlkSE14RVRBUEJnTlZCQU1VQ0d4cGRtVmZZWEJwTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzF5WlVCd1lYbHdZV3d1WTI5dEFnRUFNQWtHQlNzT0F3SWFCUUNnWFRBWUJna3Foa2lHOXcwQkNRTXhDd1lKS29aSWh2Y05BUWNCTUJ3R0NTcUdTSWIzRFFFSkJURVBGdzB3T0RBM01ERXdNelU1TXpsYU1DTUdDU3FHU0liM0RRRUpCREVXQkJRTTBMVjMwZkxYY0g5TTVkTW11VEJMbnNGUTRqQU5CZ2txaGtpRzl3MEJBUUVGQUFTQmdCRXoyWHFNTXFGYnVVaGorTDEyOEN3MnU4U2hPS1F0dHJLci9oaTBXUmVlbkhEWUJpSE9TdGw2M1J2NzZRMm1wZDQ1M1J2Q2o1bXE3ZFJ0dVJCNnBmSEdSRGtVWDZOMStPT0lvSWZyb0JaSUFUTmh6OUNFSHdFRmtOallnMEVHTUFHK2pjYkFqMURKalI3M2N4YmFOclhXUHhBK2hpUWhIbEFyclpBN3JGVjUtLS0tLUVORCBQS0NTNy0tLS0tCiI+CjwvZm9ybT48cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q01TTWFpbGVyID0mZ3Q7IDEuNzM8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmJycF8qPSJudWxsIiAtIEdlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9uczwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9ybV9pZD0ibnVsbCIgLSBGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmb3JtPSJudWxsIiAtIEZvcm0gTmFtZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmllbGRfaWQ9Im51bGwiIC0gRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHZhbHVlXyo9Im51bGwiIC0gRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcmVzcG9uc2VfaWQ9Im51bGwiIC0gUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXI8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBTakcgJmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjc8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+Cgk8bGk+VmVyc2lvbiAwLjcuCgkJPHVsPgoJCQk8bGk+Rml4ZWQgYSBidWcgd2hpY2ggY2F1c2VkIHRoZSBEYXRlIFN1Ym1pdHRlZCBzb3J0aW5nIGluIEZvcm0gQnJvd3NlciB0byBiZSBpbmNvbnNpc3RlbnQgYWNyb3NzIHBhZ2VzIGF0IGZpcnN0LjwvbGk+CgkJCTxsaT5GaXhlZCBhIGJ1ZyB3aGljaCBjYXVzZWQgYSBDaGVja2JveCBGaWVsZCB0byBiZSB1bmFibGUgdG8gYmUgcmVxdWlyZWQuIENoZWNrYm94IEZpZWxkcyBjYW4gbm93IGJlIG1hZGUgcmVxdWlyZWQuPC9saT4KCQkJPGxpPkZpeGVkIEJ1ZyAjNTYxMDogRmlsZSBVcGxvYWQgRmllbGQgYWR2YW5jZWQgb3B0aW9ucyBub3cgc2F2ZSBjb3JyZWN0bHkuPC9saT4KCQkJPGxpPkZpeGVkIEJ1ZyAjNTcwMjogV2hlbiB1c2luZyB0aGUgIkZyb250ZW5kIFVzZXIgYmluZGluZyIgYWR2YW5jZWQgb3B0aW9uIG9uIHRoZSBGb3JtQnJvd3NlciBEaXNwb3NpdGlvbiwgY2hlY2tib3hlcyBjYW4gbm93IGJlIHNhdmVkIGluIHRoZSAidW5jaGVja2VkIiBzdGF0ZS4gVGhhbmtzIE1pa2UgSHVnaGVzZG9uITwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzU0MjI6IE11bHRpcGxlIGZvcm1zIHVzaW5nIHRoZSAiRnJvbnRlbmQgVXNlciBiaW5kaW5nIiBhZHZhbmNlZCBvcHRpb24gb24gdGhlIEZvcm1Ccm93c2VyIERpc3Bvc2l0aW9uIG5vdyBjb3JyZWN0bHkgbG9hZCBwcmV2aW91c2x5IHN1Ym1pdHRlZCBkYXRhLiBUaGFua3MgTWlrZSBIdWdoZXNkb24hPC9saT4KCQkJPGxpPkFkZGVkOiBOZXcgRGlzcG9zaXRpb24gLSBEaXNwb3NpdGlvblVuaXF1ZUZpbGUuIFdyaXRlIGZvcm0gcmVzdWx0cyB0byBhIHVuaXF1ZSBmaWxlIGZvciBlYWNoIGZvcm0gc3VibWlzc2lvbi48L2xpPgoJCQk8bGk+QWRkZWQ6IFRpbnlNQ0UgaW50ZWdyYXRlZC48L2xpPgoJCQk8bGk+QWRkZWQ6IE5ldyBEaXNwb3NpdGlvbiAtIERpc3Bvc2l0aW9uRW1haWxCYXNlZEZyb250ZW5kRmllbGRzLiBTZW5kIGZvcm0gcmVzdWx0cyB2aWEgZW1haWwgd2l0aCBmcm9udGVuZC11c2VyLXNwZWNpZmllZCBTdWJqZWN0LCAiRnJvbSBOYW1lIiwgIkZyb20gQWRkcmVzcyIsIGFuZCBEZXN0aW5hdGlvbiBBZGRyZXNzLjwvbGk+CgkJCTxsaT5BZGRlZDogUmFuZG9tIG51bWJlciBnZW5lcmF0b3IgdG8gVW5pcXVlSW50ZWdlckZpZWxkLjwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzU1NTUvIzU0NTM6IERvbWluaWNhIChETSkgaXMgbm93IHByb3Blcmx5IHNlbGVjdGFibGUgaW4gdGhlIENvdW50cnkgUGlja2VyIEZpZWxkLjwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzQzMDc6IEZpbGVzIHVwbG9hZGVkIG9uIGVhcmxpZXIgcGFnZXMgb2YgYSBtdWx0aS1wYWdlIGZvcm0gYXJlIG5vdyBhdHRhY2hlZCB0byBFbWFpbCBEaXNwb3NpdGlvbnMgb24gbGF0ZXIgcGFnZXMuPC9saT4KCQkJPGxpPkZpeGVkIEJ1ZyAjMzYwNTogRGF0ZXMgYXJlIG5vdyB0cmFuc2xhdGVkIGluIEVtYWlsIERpc3Bvc2l0aW9ucy48L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM1MzU4OiBEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCBub3cgY3JlYXRlcyBhIGNvcnJlY3QgbGFiZWwgZm9yIGl0cyBpbnB1dCBmaWVsZC48L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICMxODIyOiBIaWRkZW4gRmllbGRzIGNhbiBub3cgYmUgZWRpdGVkIGluIGFuIEFkbWluIEZvcm0gQnJvd3Nlci48L2xpPgoJCQk8bGk+QWRkZWQgRmVhdHVyZSBSZXF1ZXN0ICM1Mjc3OiBBbGxvdyBEaXNwb3NpdGlvbkZvcm1Ccm93c2VyIHRvIGJlIGhpZGRlbi48L2xpPgoJCQk8bGk+U2V2ZXJhbCBvdGhlciBjbGVhbnVwcyBhbmQgbWlub3IgZml4ZXMuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuNi40LgoJCTx1bD4KCQkJPGxpPkJ1Z3MgZml4ZXMgZm9yIEZpZWxkIFNvcnRpbmcuIFRoYW5rcyB0byBldmVyeW9uZSB3aG8gcmVwb3J0ZWQgYW5kIFN0aWtraSBmb3IgZml4aW5nIGl0ITwvbGk+CgkJCTxsaT5JbXByb3ZlbWVudHMgRmlsZVVwbG9hZCBmaWVsZDogb3ZlcndyaXRlIGZsYWcsIGZpbGUgcmVuYW1pbmcsIGFuZCBoaWRpbmcgZmlsZW5hbWUgaW4gb3V0cHV0LjwvbGk+CgkJCTxsaT5BZGRpdGlvbmFsIHBhdGNoZXMgZnJvbSBSeWFuIEZvc3RlciBmb3IgRGF0ZVBpY2tlci48L2xpPgoJCTwvdWw+Cgk8L2xpPgo8bGk+VmVyc2lvbiAwLjYuMy4KCTx1bD4KCQk8bGk+U2VjdXJpdHkgcGF0Y2ggZm9yIFVwbG9hZCBmaWVsZCB0eXBlLjwvbGk+CgkJPGxpPk51bWVyb3VzIGJ1Z3MgZml4ZXMuIFRoYW5rcyB0byBldmVyeW9uZSB3aG8gcmVwb3J0ZWQuPC9saT4KCQk8bGk+TnVtZXJvdXMgZml4ZXMgYW5kIGltcHJvdmVtZW50cyBmb3IgdXNlIHdpdGggRm9ybUJyb3dzZXIgdjAuMy54LjwvbGk+CgkJPGxpPkltcHJvdmVtZW50cyB0byB0aGUgQ29tcHV0ZWRGaWVsZCB0eXBlIHRvIGFsbG93IG11Y2ggbW9yZSBjb21wdXRhdGlvbi48L2xpPgoJCTxsaT5WaWxraXMnIGZpeGVzIGZvciBsb2NhbGl6aW5nIENvdW50cnlQaWNrZXI8L2xpPgoJCTxsaT5SeWFuIEZvc3RlcidzIHBhdGNoIGZvciByZS1vcmRlcmluZyBkYXRlIGlucHV0cyBvbiBEYXRlUGlja2VyPC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNi4yLgoJPHVsPgoJCTxsaT5BIGxvdCBvZiBzbWFsbCBhbmQgYmlnIGJ1Z3MgZml4ZXMuIFRoYW5rcyB0byBldmVyeW9uZSB3aG8gcmVwb3J0ZWQuPC9saT4KCQk8bGk+SW50cm9kdWNpbmcgZHluYW1pYyBmaWVsZCBtYW5hZ2VtZW50LjwvbGk+CgkJPGxpPk5ldyAiWWVhclB1bGxEb3duIiBmaWVsZCB0eXBlIGFkZGVkPC9saT4KCQk8bGk+Q29tcGF0aWJsZSB3aXRoIENNU01TIDEuNy4xIGFuZCBmdXJ0aGVyLjwvbGk+CgkJPGxpPkFkZGVkIGpRdWVyeS4gUHJvdG90eXBlIHJlbW92ZWQgY29tcGxldGVseS48L2xpPgoJCTxsaT5BZGRlZCBzb21lIHN0eWxpbmcuPC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNi4xLgoJPHVsPgoJCTxsaT5OdW1lcm91cyBCdWcgZml4ZXMuIElmIHlvdXIgYnVnIGlzbid0IGZpeGVkLCBwb3N0IGl0IGluIHRoZSB0cmFja2VyITwvbGk+CgkJPGxpPk5ldyBWYWxpZGF0aW9uIFVEVCBjb2RlIHByb3ZpZGVkIGJ5IEplZmYgQm9zY2g8L2xpPgoJCTxsaT5BYmlsaXR5IHRvIHJlamVjdCBibGFuay9vbmx5IHNwYWNlcyBmb3IgcmVxdWlyZWQgZmllbGRzPC9saT4KCQk8bGk+TmV3ICJDb21wYW55RGlyZWN0b3J5IiIgRmllbGQgdHlwZSBwcm92aWRlZCBieSBKZXJlbXkgQmFzczwvbGk+CgkJPGxpPkltcHJvdmVtZW50cyB0byBkZWZhdWx0IHZhbHVlIGNvZGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M8L2xpPgoJCTxsaT5OZXcgIk1vZHVsZSBJbnRlcmZhY2UiIGZpZWxkIHR5cGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M8L2xpPgoJCTxsaT5OZXcgIlVzZXIgRGVmaW5lZCBUYWcgQ2FsbCIgZmllbGQgdHlwZTwvbGk+CgkJPGxpPkZpeCB0byBzdXBwb3J0IHN5bnRheCBoaWdobGlnaHRlcnMgZm9yIHRlbXBsYXRlcyBhbmQgSmF2YXNjcmlwdCBvbiBhZG1pbiBzaWRlPC9saT4KCQk8bGk+PC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNi4gMzAgRGVjIDA5LiBCdWcgZml4ZXMuIEZpbmFsbHkgcmVsZWFzaW5nIHRoaXMgdGhpbmchPC9saT4KPGxpPlZlcnNpb24gMC42YjIuCiAgIDx1bD4KICAgICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy4gVGhhbmtzIGZvciBhbGwgd2hvIHJlcG9ydGVkIG9uIGJ1Z3MhPC9saT4KICAgICAgPGxpPkFkZGVkIEZvcm0gRGlzcG9zaXRpb24gdG8gZG8gYW4gSFRUUCBHRVQgb3IgUE9TVCB0byBhbnkgYXJiaXRyYXJ5IFVSTCBmb3IgZm9ybSBoYW5kbGluZzwvbGk+CiAgICAgIDxsaT5BZGRlZCBjYXBhYmlsaXR5IChhbmQgZXhhbXBsZSBvZikgYWR2YW5jZWQgbXVsdGlwYWdlIGNvbnRhY3QgZm9ybSB3aGVyZSBhIHByZXZpb3VzIHJlc3BvbnNlIGdldHMgZGlzcGxheWVkIG9uIGEgc3Vic2VxdWVudCBwYWdlIGFzIHBlciB1cHRvZWxldmVuJ3MgRlI8L2xpPgogICAgICA8bGk+Rml4IGZvciB0ZW1wbGF0ZSAkZmxkX1ggcmVtYXBwaW5nIG9uIFhNTCBpbXBvcnQ8L2xpPgogICAgICA8bGk+RXh0ZW5kZWQgdG8gcHJvdmlkZSBET00vQ1NTIGlkIGF0dHJpYnV0ZXMgdG8gZmllbGRzPC9saT4KICAgICAgPGxpPkNsZWFuZWQgdXAgYmFkIHVzZSBvZiByZWZlcmVuY2VzIGZvciBQSFAgNS54PC9saT4KICAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC42YjEuCgk8dWw+CgkJPGxpPlVwZGF0ZWQgZGF0YWJhc2UgY29kZSB0byBiZSBDTVNNUyAxLjctY29tcGF0aWJsZTwvbGk+CgkJPGxpPkFkZGVkIEJ1dHRvbiBmaWVsZCB0eXBlLjwvbGk+CgkJPGxpPkltcGxlbWVudGVkIEZvcm1Ccm93c2VyIHYwLjMgRGlzcG9zaXRpb24uPC9saT4KCQk8bGk+TnVtZXJvdXMgY29kZSBmaXhlcy48L2xpPgoJPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC41LjEyLiAzIFNlcHQgMDkuIE51bWVyb3VzIHVzZXItc3VibWl0dGVkIGZpeGVzLiBUaGFua3MgdG8gQ2FsZ3V5IGFuZCBTaW1vbiBTY2hhdWZpLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xMS4gMTkgSmFuIDA5LiAoY2FsZ3V5MTAwMCkKICA8dWw+CiAgICA8bGk+QWRkcyB0aGUgY2FwYWJpbGl0eSB0byBjYWxsIGEgVURUIGJlZm9yZSB0aGUgZm9ybSBpcyBkaXNwbGF5ZWQuPC9saT4KICAgIDxsaT5Nb3ZlIGNoYW5nZWxvZyB0byBhbiBleHRlcm5hbCBmaWxlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC41LjEwLiAxMiBKYW4gMDkuIEJ1ZyBmaXhlcyB0byByZXN0b3JlIGZ1bmN0aW9uYWxpdHkgb2YgRm9ybUJyb3dzZXIuPC9saT4KPGxpPlZlcnNpb24gMC41LjkuIEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uRmlsZSBjbGFzcy48L2xpPgo8bGk+VmVyc2lvbiAwLjUuOC4gSmFuIDA5IChjYWxndXkxMDAwKSAtIE1pbm9yIGNoYW5nZSB0byB0aGUgRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciBjbGFzcy48L2xpPgo8bGk+VmVyc2lvbiAwLjUuNy4gSmFuIDA5IChjYWxndXkxMDAwKSAtIE1pbm9yIGNoYW5nZSB0byB0aGUgRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciBjbGFzcy48L2xpPgo8bGk+VmVyc2lvbiAwLjUuNi4gMjMgRGVjIDA4LiBCdWcgZml4ZXMuPC9saT4KPGxpPlZlcnNpb24gMC41LjUuIDEgT2N0IDA4LiBCdWcgZml4ZXMuIEFkZGVkIG5ldyBEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCB0byByZXBsYWNlIGRlZmljaWVuY2llcyB3aXRoIEVtYWlsIEFkZHJlc3MgJ0Zyb20nIEZpZWxkIHR5cGUuPC9saT4KPGxpPlZlcnNpb24gMC41LjQuIDI5IEF1ZyAwOC4gU2NyYXBwaW5nIHBsYW5zIGZvciAwLjYuIEJ1ZyBmaXhlcy4gVGVkJ3MgbmV3IFwiRW1haWwgXCJGcm9tIEFkZHJlc3NcIiBBZ2FpbiBGaWVsZFwiLiBBZGRlZCBkYXRhYmFzZSBpbmRpY2VzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4yLiAyNSBNYXkgMDguIEJ1Z2ZpeGVzLiBSZWxlYXNlIGluIHByZXBhcmF0aW9uIGZvciBzdWJzdGFudGlhbCByZXdvcmtpbmcgZm9yIDAuNjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xLiAzMCBBcHJpbCAwOC4gQnVnZml4ZXMsIHJld3JvdGUgc29tZSBvZiB0aGUgRmlsZSBVcGxvYWQgY29kZSB0byBwcmV2ZW50IHdoaXRlIHNjcmVlbiBvZiBhbm5veWFuY2UuPC9saT4KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPgo8bGk+VmVyc2lvbiAwLjQuNC4gMjYgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHJhZGlvIGJ1dHRvbiBncm91cHMsIGZpeCBmb3IgdmFsaWRhdGlvbiBvZiBEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC40LjEuIEJ1Z2ZpeGVzIGZvciBGaWxlIERpc3Bvc2l0aW9uIFR5cGVzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNAoJPHVsPgoJCTxsaT5VcHBlZCBtaW5pbXVtIENNUyB2ZXJzaW9uIHRvIDEuMTwvbGk+CgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPgoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4KCQk8bGk+QWRkZWQgZmllbGQgdHlwZXM6IFwiVGV4dEZpZWxkIChNdWx0aXBsZSlcIiBhbmQgXCJDb21wdXRlZCBGaWVsZFwiPC9saT4KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiBcIlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duXCIgYW5kIFwiU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9uc1wiKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+CgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9XCJ2YWx1ZVwiIHN5bnRheCAoQ2FsZ3V5KTwvbGk+CgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjMKICAgPHVsPgogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPgogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPgogICAgICA8bGk+QWRkZWQgUGF1bCBOb29uZSdzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+CiAgICAgIDxsaT5JbXBsZW1lbnRhdGlvbiBvZiBFbWFpbCBTdWJqZWN0IEZpZWxkPC9saT4KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPgogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPgogICAgICA8bGk+QWRkZWQgRHJhZyduJ0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPgogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPgogICAgICA8bGk+SW1wbGVtZW50ZWQgdGVtcGxhdGVkIGRpc3BsYXkgb2YgZm9ybSByZXN1bHRzIHVwb24gc3VibWlzc2lvbiBpbiBhZGRpdGlvbiB0byBwYWdlIHJlZGlyZWN0aW5nPC9saT4KICAgICAgPGxpPjwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcKICAgPHA+QmlnIHJlbGVhc2U6PHVsPgogICA8bGk+QWRkZWQgXCJFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzc1wiIGRpc3Bvc2l0aW9uLjwvbGk+CiAgIDxsaT5BZGRlZCBcIlRpbWVQaWNrZXJcIiBmaWVsZCB0eXBlLiBTcGxpdCBcIkxpbmtcIiBmaWVsZCBpbnRvIGEgXCJVc2VyLXN1cHBsaWVkIExpbmtcIiBmaWVsZCBhbmQgYSBcIlN0YXRpYyBMaW5rXCIgZmllbGQuPC9saT4KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPgogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPgogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yLjMKICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4yCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOgogICA8dWw+CiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMKICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UKICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQKICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuCiAgICAgIDwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4KICAgICAgPC9saT4KICAgPC91bD4KICAgPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3J3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KPC91bD4KPGJyIC8+]]></about>
	<description><![CDATA[Add, edit and manage interactive Forms]]></description>
	<requires>
	  <requiredname>CMSMailer</requiredname>
	  <requiredversion>1.73</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_add_edit_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkKCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcyx0cnVlKTsKCQkkYWVmaWVsZCA9ICRhZWZvcm0tPk5ld0ZpZWxkKCRwYXJhbXMpOwoJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl91cGQnXSkgfHwKCQkJKGlzc2V0KCRwYXJhbXNbJ2ZicnBfYWVmX2FkZCddKSAmJiAkYWVmaWVsZC0+R2V0RmllbGRUeXBlKCkgIT0gJycpKQoJCQl7CgkJCS8vIHNhdmUgdGhlIGZpZWxkLgoJCQkkdGhpcy0+RG9BY3Rpb24oJ2FkbWluX3N0b3JlX2ZpZWxkJywgJGlkLCAkcGFyYW1zKTsKCQkJcmV0dXJuOwoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9hZGQnXSkpCgkJCXsKCQkJLy8gc2hvdWxkIGhhdmUgZ290IGEgZmllbGQgdHlwZSBkZWZpbml0aW9uLCBzbyBnaXZlIHJlc3Qgb2YgdGhlIGZpZWxkIG9wdGlvbnMKCQkJLy8gcmVzZXJ2ZSB0aGlzIHNwYWNlIGZvciBzcGVjaWFsIG9wcyA6KQoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9vcHRhZGQnXSkpCgkJCXsKCQkJLy8gY2FsbCB0aGUgZmllbGQncyBvcHRpb24gYWRkIG1ldGhvZCwgd2l0aCBhbGwgYXZhaWxhYmxlIHBhcmFtZXRlcnMKCQkJJGFlZmllbGQtPkRvT3B0aW9uQWRkKCRwYXJhbXMpOwoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9vcHRkZWwnXSkpCgkJCXsKCQkJLy8gY2FsbCB0aGUgZmllbGQncyBvcHRpb24gZGVsZXRlIG1ldGhvZCwgd2l0aCBhbGwgYXZhaWxhYmxlIHBhcmFtZXRlcnMKCQkJJGFlZmllbGQtPkRvT3B0aW9uRGVsZXRlKCRwYXJhbXMpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCS8vIG5ldyBmaWVsZCwgb3IgaW1wbGljaXQgYWVmX2FkZC4KCQkJLy8gYWdhaW4sIHJlc2VydmluZyB0aGUgc3BhY2UgZm9yIGZ1dHVyZSBlbmRlYXZvcnMKCQkJfQoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZpZWxkKCRpZCwgJGFlZmllbGQsIChpc3NldCgkcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddKT8kcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddOjApLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kcGFyYW1zWydmYnJwX21lc3NhZ2UnXTonJyk7CgkJCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_edit_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2V0X2ZpZWxkX2xldmVsJ10pKQoJCQl7CgkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkX2xldmVsJywkcGFyYW1zWydmYnJwX3NldF9maWVsZF9sZXZlbCddKTsKCQkJfQoJCQkKCQkkdGFiID0gJHRoaXMtPkdldEFjdGl2ZVRhYigkcGFyYW1zKTsKCQkKCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCgkJZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRhYiwgaXNzZXQoJHBhcmFtc1snZmJycF9tZXNzYWdlJ10pPyR0aGlzLT5TaG93TWVzc2FnZSgkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSk6JycpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPkRlbGV0ZUZpZWxkKCRwYXJhbXNbJ2ZpZWxkX2lkJ10pOwoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdmaWVsZF9kZWxldGVkJykpOwo/PgoK]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPkRlbGV0ZSgpOwoKICAgICAgICAkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtX2RlbGV0ZWQnKTsKICAgICAgICAkdGhpcy0+RG9BY3Rpb24oJ2RlZmF1bHRhZG1pbicsICRpZCwgJHBhcmFtcyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_get_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAocHJlZ19tYXRjaCgnL1wudHBsJC8nLCRwYXJhbXNbJ2ZicnBfdGlkJ10pKQogICAgewogICAgJHRwbHN0ciA9IGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzLycuJHBhcmFtc1snZmJycF90aWQnXSk7CiAgICB9CmVsc2UKICAgIHsKICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gIlNFTEVDVCB2YWx1ZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgoJCSJtb2R1bGVfZmJfZm9ybV9hdHRyIFdIRVJFIGZvcm1faWQ9PyBhbmQgbmFtZT0nZm9ybV90ZW1wbGF0ZSciOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGFyYW1zWydmYnJwX3RpZCddKSk7CglpZiAoJGRicmVzdWx0ICE9PSBmYWxzZSAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkkdHBsc3RyID0gJHJvd1sndmFsdWUnXTsKCQl9CiAgICB9CgogICAgQG9iX2NsZWFuKCk7CiAgICBAb2JfY2xlYW4oKTsKICAgIGhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsKICAgIGhlYWRlcignRXhwaXJlczogMCcpOwogICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZScsZmFsc2UpOwogICAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gc3RybGVuKCR0cGxzdHIpKTsKICAgIGVjaG8gJHRwbHN0cjsKICAgIGV4aXQ7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJGFlZmllbGQgPSAkYWVmb3JtLT5OZXdGaWVsZCgkcGFyYW1zKTsKJHZhbCA9ICRhZWZpZWxkLT5BZG1pblZhbGlkYXRlKCk7CmlmICgkdmFsWzBdKQogIHsKICAgICRhZWZpZWxkLT5Qb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCk7CiAgICAkYWVmaWVsZC0+U3RvcmUodHJ1ZSk7CgkkYWVmaWVsZC0+UG9zdEZpZWxkU2F2ZVByb2Nlc3MoJHBhcmFtcyk7CiAgICAkcGFyYW1zWydmYnJwX21lc3NhZ2UnXT0kcGFyYW1zWydmYnJwX29wJ107CiAgICAkdGhpcy0+RG9BY3Rpb24oJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkaWQsICRwYXJhbXMpOwogIH0KIGVsc2UKICAgewogICAgICRhZWZpZWxkLT5Mb2FkRmllbGQoJHBhcmFtcyk7CiAgICAgJHBhcmFtc1snZmJycF9tZXNzYWdlJ10gPSAkdmFsWzFdOwogICAgIGVjaG8gJGFlZm9ybS0+QWRkRWRpdEZpZWxkKCRpZCwgJGFlZmllbGQsIChpc3NldCgkcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddKT8kcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddOjApLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kcGFyYW1zWydmYnJwX21lc3NhZ2UnXTonJyk7CiAgIH0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCi8vIFN0b3JlIGRhdGEKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwokYWVmb3JtLT5TdG9yZSgpOwoKJHRhYiA9ICR0aGlzLT5HZXRBY3RpdmVUYWIoJHBhcmFtcyk7CgovLyBDaGVjayB3aGljaCBidXR0b24gd2FzIHByZXNzZWQKaWYgKCRwYXJhbXNbJ2ZicnBfc3VibWl0J10gPT0gJHRoaXMtPkxhbmcoJ3NhdmUnKSkgewoKICAgICRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Zvcm0nLCRwYXJhbXNbJ2ZicnBfZm9ybV9vcCddKTsKICAgICR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKCQp9IGVsc2UgewoKCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICR0YWIsICR0aGlzLT5MYW5nKCdmb3JtJywkcGFyYW1zWydmYnJwX2Zvcm1fb3AnXSkpOwp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyxpc3NldCgkcGFyYW1zWydmYnJwX2hpZGVfZXJyb3JzJ10pPyRwYXJhbXNbJ2ZicnBfaGlkZV9lcnJvcnMnXTowKTsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJyxpc3NldCgkcGFyYW1zWydmYnJwX3Nob3dfdmVyc2lvbiddKT8kcGFyYW1zWydmYnJwX3Nob3dfdmVyc2lvbiddOjApOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4Jyxpc3NldCgkcGFyYW1zWydmYnJwX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSk/JHBhcmFtc1snZmJycF9yZWxheGVkX2VtYWlsX3JlZ2V4J106MCk7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ21sZV92ZXJzaW9uJyxpc3NldCgkcGFyYW1zWydmYnJwX21sZV92ZXJzaW9uJ10pPyRwYXJhbXNbJ2ZicnBfbWxlX3ZlcnNpb24nXTowKTsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlcXVpcmVfZmllbGRuYW1lcycsaXNzZXQoJHBhcmFtc1snZmJycF9yZXF1aXJlX2ZpZWxkbmFtZXMnXSk/JHBhcmFtc1snZmJycF9yZXF1aXJlX2ZpZWxkbmFtZXMnXTowKTsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VuaXF1ZV9maWVsZG5hbWVzJyxpc3NldCgkcGFyYW1zWydmYnJwX3VuaXF1ZV9maWVsZG5hbWVzJ10pPyRwYXJhbXNbJ2ZicnBfdW5pcXVlX2ZpZWxkbmFtZXMnXTowKTsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJyxpc3NldCgkcGFyYW1zWydmYnJwX2VuYWJsZV9mYXN0YWRkJ10pPyRwYXJhbXNbJ2ZicnBfZW5hYmxlX2Zhc3RhZGQnXTowKTsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJyxpc3NldCgkcGFyYW1zWydmYnJwX2VuYWJsZV9hbnRpc3BhbSddKT8kcGFyYW1zWydmYnJwX2VuYWJsZV9hbnRpc3BhbSddOjApOwoKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycsaXNzZXQoJHBhcmFtc1snZmJycF9zaG93X2ZpZWxkaWRzJ10pPyRwYXJhbXNbJ2ZicnBfc2hvd19maWVsZGlkcyddOjApOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkYWxpYXNlcycsaXNzZXQoJHBhcmFtc1snZmJycF9zaG93X2ZpZWxkYWxpYXNlcyddKT8kcGFyYW1zWydmYnJwX3Nob3dfZmllbGRhbGlhc2VzJ106MCk7CgogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdibGFua19pbnZhbGlkJyxpc3NldCgkcGFyYW1zWydmYnJwX2JsYW5rX2ludmFsaWQnXSk/JHBhcmFtc1snZmJycF9ibGFua19pbnZhbGlkJ106MCk7CgoJCSRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCcpOwogICAgICAgICR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_order.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRzcmNJbmRleCA9ICRhZWZvcm0tPkdldEZpZWxkSW5kZXhGcm9tSWQoJHBhcmFtc1snZmllbGRfaWQnXSk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ2ZicnBfZGlyJ10gPT0gJ3VwJykKICAgICAgICAgICAgewogICAgICAgICAgICAkZGVzdEluZGV4ID0gJHNyY0luZGV4IC0gMTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAkZGVzdEluZGV4ID0gJHNyY0luZGV4ICsgMTsKICAgICAgICAgICAgfQogICAgICAgICRhZWZvcm0tPlN3YXBGaWVsZHNCeUluZGV4KCRzcmNJbmRleCwkZGVzdEluZGV4KTsKCgkJLy8gZm9yY2UgcmVsb2FkIG9mIGZvcm0sIHRoaXMgaXMga2luZGEgaGFja2lzaCBidXQgY2FudCB0aGluayBvZiBhbnl0aGluZyBlbHNlIDspCgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCSR0YWIgPSAkdGhpcy0+R2V0QWN0aXZlVGFiKCRwYXJhbXMpOwoKCiAgICAgICAgZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRhYiwgJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdmaWVsZF9vcmRlcl91cGRhdGVkJykpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_required.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgIAogICAgICAgICRhZWZpZWxkID0gJGFlZm9ybS0+R2V0RmllbGRCeUlkKCRwYXJhbXNbJ2ZpZWxkX2lkJ10pOwoJCWlmICgkYWVmaWVsZCAhPT0gZmFsc2UpCgkJCXsKCQkJLy8kYWVmaWVsZC0+U2V0UmVxdWlyZWQoJHBhcmFtc1snZmJycF9hY3RpdmUnXT09J29uJz90cnVlOmZhbHNlKTsKCQkJJGFlZmllbGQtPlRvZ2dsZVJlcXVpcmVkKCk7CgkJCSRhZWZpZWxkLT5TdG9yZSgpOwogICAgICAgICAkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCX0KCQkkdGFiID0gJHRoaXMtPkdldEFjdGl2ZVRhYigkcGFyYW1zKTsKCQkKCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGFiLCAkdGhpcy0+TGFuZygnZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCcpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLy9kZWJ1Z19kaXNwbGF5KCRwYXJhbXMpOwoKaWYgKCEgaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSAmJiBpc3NldCgkcGFyYW1zWydmb3JtJ10pKQogIHsKICAgIC8vIGdldCB0aGUgZm9ybSBieSBuYW1lLCBub3QgSUQKICAgICRwYXJhbXNbJ2Zvcm1faWQnXSA9ICR0aGlzLT5HZXRGb3JtSURGcm9tQWxpYXMoJHBhcmFtc1snZm9ybSddKTsKICB9CgokaW5saW5lID0gZmFsc2U7CmlmKCAoaXNzZXQoJHBhcmFtc1snaW5saW5lJ10pKSAmJiBwcmVnX21hdGNoKCcvdChydWUpKnx5KHllcykqfDEvaScsJHBhcmFtc1snaW5saW5lJ10pKQoJewoJJGlubGluZSA9IHRydWU7Cgl9CgoKCiRmYnJwX2NhbGxjb3VudCA9IDA7CiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSx0cnVlKTsKCiRmbGQgPSAkYWVmb3JtLT5HZXRGb3JtQnJvd3NlckZpZWxkKCk7CmlmICgkZmxkICE9PSBmYWxzZSAmJiAkZmxkLT5HZXRPcHRpb24oJ2ZldV9iaW5kJywnMCcpPT0nMScpCgl7CgkkZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CglpZiAoJGZldSA9PSBmYWxzZSkKCQl7CgkJZGVidWdfZGlzcGxheSgiRkFJTEVEIHRvIGluc3RhdGlhdGUgRkVVISIpOwoJCXJldHVybjsKCQl9CglpZiAoJGZldS0+TG9nZ2VkSW5JZCgpID09PSBmYWxzZSkKCQl7CgkJZWNobyAkdGhpcy0+TGFuZygncGxlYXNlX2xvZ2luJyk7CgkJcmV0dXJuOwoJCX0KCX0KCgppZiggISgkaW5saW5lIHx8ICgkYWVmb3JtLT5HZXRBdHRyKCdpbmxpbmUnLCcwJyk9PSAnMScpKSkgJGlkID0gJ2NudG50MDEnOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9ycycsMCk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycycsMCk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9oZWFkZXInLCAkYWVmb3JtLT5SZW5kZXJGb3JtSGVhZGVyKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fZm9vdGVyJywkYWVmb3JtLT5SZW5kZXJGb3JtRm9vdGVyKCkpOwoKJGZpbmlzaGVkID0gZmFsc2U7CiRmaWVsZEV4cGFuZE9wID0gZmFsc2U7CgppZiggaXNzZXQoJHBhcmFtc1snZmJycF9jYWxsY291bnQnXSkgKQogIHsKICAgICRmYnJwX2NhbGxjb3VudCA9IChpbnQpJHBhcmFtc1snZmJycF9jYWxsY291bnQnXTsKICB9Cgpmb3JlYWNoKCRwYXJhbXMgYXMgJHBLZXk9PiRwVmFsKQogICB7CiAgIGlmIChzdWJzdHIoJHBLZXksMCw5KSA9PSAnZmJycF9GZVhfJyB8fCBzdWJzdHIoJHBLZXksMCw5KSA9PSAnZmJycF9GZURfJykKICAgICAgewogICAgICAvLyBleHBhbmRpbmcgb3Igc2hyaW5raW5nIGEgZmllbGQKICAgICAgJGZpZWxkRXhwYW5kT3AgPSB0cnVlOwogICAgICB9CiAgIH0KCmlmICggISRmaWVsZEV4cGFuZE9wICYmCiAgICAoKCRhZWZvcm0tPkdldFBhZ2VDb3VudCgpID4gMSAmJiAkYWVmb3JtLT5HZXRQYWdlTnVtYmVyKCkgPiAwKSB8fAogICAgIChpc3NldCgkcGFyYW1zWydmYnJwX2RvbmUnXSkmJiAkcGFyYW1zWydmYnJwX2RvbmUnXT09MSkpKQogICAgewogICAgJHJlcyA9ICRhZWZvcm0tPlZhbGlkYXRlKCk7CiAgICAKCS8vIGhhbmRsZSB1cGxvYWRzCiAgICAkcmVzMiA9ICRhZWZvcm0tPm1hbmFnZUZpbGVVcGxvYWRzKCk7CgogICAgaWYgKCRyZXNbMF0gPT09IGZhbHNlIHx8ICRyZXMyWzBdID09PSBmYWxzZSkKICAgICAgewoJICBpZiAoaXNzZXQoJHJlczJbMV0pICYmICFlbXB0eSgkcmVzMlsxXSkpCgkJewoJCWFycmF5X3B1c2goJHJlc1sxXSwkcmVzMlsxXSk7CgkJfQoJICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMnLCRyZXNbMV0pOwoJICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzJywxKTsKCSAgCgkgICRhZWZvcm0tPlBhZ2VCYWNrKCk7CiAgICAgIH0KICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfZG9uZSddKSAmJiAkcGFyYW1zWydmYnJwX2RvbmUnXT09MSkKICAgICAgewogICAgICAkb2sgPSB0cnVlOwogICAgICAkY2FwdGNoYSA9ICR0aGlzLT5nZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOwogICAgICBpZiAoJGFlZm9ybS0+R2V0QXR0cigndXNlX2NhcHRjaGEnLCcwJyk9PSAnMScgJiYgJGNhcHRjaGEgIT0gbnVsbCkKICAgICAgICAgewogIAkgICAgICBpZiAoISAkY2FwdGNoYS0+Q2hlY2tDYXB0Y2hhKCRwYXJhbXNbJ2ZicnBfY2FwdGNoYV9waHJhc2UnXSkpCiAgCSAgICAgICAgIHsKICAJICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhX2Vycm9yJywkYWVmb3JtLT5HZXRBdHRyKCdjYXB0Y2hhX3dyb25nJywkdGhpcy0+TGFuZygnd3JvbmdfY2FwdGNoYScpKSk7CiAgCSAgICAgICAgIAogIAkgICAgICAgICAkYWVmb3JtLT5QYWdlQmFjaygpOwogICAgICAgICAgICAkb2sgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgIGlmICgkb2spCiAgICAgICAgIHsKICAgICAgICAgJGZpbmlzaGVkID0gdHJ1ZTsKCSAgICAgICRyZXN1bHRzID0gJGFlZm9ybS0+RGlzcG9zZSgkcmV0dXJuaWQpOwoJICAgICAgfQogICAgICB9CiAgfQoKaWYgKCEgJGZpbmlzaGVkKQogICB7CiAgICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICAkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgICRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKICAgICAkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknLCRwYXJtcyk7CgogICAgIGlmIChpc3NldCgkcGFyYW1zWydmYl9mcm9tX2ZiJ10pKQoJCXsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fc3RhcnQnLAoJCQkkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3VzZXJfZWRpdF9yZXNwJywgJHJldHVybmlkLCAncG9zdCcsCgkJCQknbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIAoJCQkJKCRhZWZvcm0tPkdldEF0dHIoJ2lubGluZScsJzAnKT09ICcxJyksICcnLAoJCQkJYXJyYXkoJ2ZicnBfY2FsbGNvdW50Jz0+JGZicnBfY2FsbGNvdW50KzEpKS4KCQkJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3Jlc3BvbnNlX2lkJyxpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKT8kcGFyYW1zWydyZXNwb25zZV9pZCddOictMScpKTsKCQl9CgllbHNlCgkJewogICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fc3RhcnQnLAoJCQkgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICdwb3N0JywgCgkJCQknbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIAoJCQkJKCRhZWZvcm0tPkdldEF0dHIoJ2lubGluZScsJzAnKT09ICcxJyksICcnLAoJCQkJYXJyYXkoJ2ZicnBfY2FsbGNvdW50Jz0+JGZicnBfY2FsbGNvdW50KzEpKSk7CgkJfQoKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2RvbmUnLDApOwogICB9CmVsc2UKICAgewogICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fZG9uZScsMSk7CiAgIGlmICgkcmVzdWx0c1swXSA9PSB0cnVlKQogICAgICB7CiAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICRwYXJtc1snZm9ybV9uYW1lJ10gPSAkYWVmb3JtLT5HZXROYW1lKCk7CiAgICAgICRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKICAgICAgJHRoaXMtPlNlbmRFdmVudCgnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnLCRwYXJtcyk7CgogICAgICAkYWN0ID0gJGFlZm9ybS0+R2V0QXR0cignc3VibWl0X2FjdGlvbicsJ3RleHQnKTsKICAgICAgaWYgKCRhY3QgPT0gJ3RleHQnKQogICAgICAgICB7CiAgICAgICAgICRtZXNzYWdlID0gJGFlZm9ybS0+R2V0QXR0cignc3VibWl0X3Jlc3BvbnNlJywnJyk7CgoJCSAkYWVmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRtZXNzYWdlICk7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICBlbHNlIGlmICgkYWN0ID09ICdyZWRpcicpCiAgICAgICAgIHsKICAgICAgICAgJHJldCA9ICRhZWZvcm0tPkdldEF0dHIoJ3JlZGlyZWN0X3BhZ2UnLCctMScpOwogICAgICAgICBpZiAoJHJldCAhPSAtMSkKICAgICAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXQpOwogICAgICAgICAgICByZXR1cm47CgkgICAJCX0KICAgICAgICAgfQogICAgICB9CiAgIGVsc2UKICAgICAgewogICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAkcGFyYW1zWydmYnJwX2Vycm9yJ109Jyc7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc3VibWlzc2lvbl9lcnJvcicsCgkgCSR0aGlzLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yJykpOwoKICAgICAgJHNob3cgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9lcnJvcnMnLCcxJyk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0JywkcmVzdWx0c1sxXSk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycycsJHNob3cpOwoKICAgICAgJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgICAgJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAgICAkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJywkcGFybXMpOwogICAgICB9CiAgIH0KCiR1ZHRvbmNlID0gJGFlZm9ybS0+R2V0QXR0cigncHJlZGlzcGxheV91ZHQnLCcnKTsKJHVkdGV2ZXJ5ID0gJGFlZm9ybS0+R2V0QXR0cigncHJlZGlzcGxheV9lYWNoX3VkdCcsJycpOwppZiAoISRmaW5pc2hlZCAmJgogICAoKCFlbXB0eSgkdWR0b25jZSkgJiYgJHVkdG9uY2UgIT0gJy0xJykgfHwKICAgKCFlbXB0eSgkdWR0ZXZlcnkpICYmICR1ZHRldmVyeSAhPSAnLTEnKSkpCiAgIHsKICAgJHVzZXJ0YWdvcHMgPSAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgJHBhcm1zID0gJHBhcmFtczsKCSRwYXJtc1snRk9STSddID0mICRhZWZvcm07CgogICBpZiggaXNzZXQoJGZicnBfY2FsbGNvdW50KSAmJiAkZmJycF9jYWxsY291bnQgPT0gMCAmJgogICAgICAhZW1wdHkoJHVkdG9uY2UpICYmICItMSIgIT0gJHVkdG9uY2UgKQogICAgICB7CgkgICAkdG1wID0gJHVzZXJ0YWdvcHMtPkNhbGxVc2VyVGFnKCR1ZHRvbmNlLCRwYXJtcyk7CiAgICAgIH0KICAgaWYoIWVtcHR5KCR1ZHRldmVyeSkgJiYgIi0xIiAhPSAkdWR0ZXZlcnkpCiAgICAgIHsKCSAgICR0bXAgPSAkdXNlcnRhZ29wcy0+Q2FsbFVzZXJUYWcoJHVkdGV2ZXJ5LCRwYXJtcyk7CiAgICAgIH0KCiAgfQoKZWNobyAkYWVmb3JtLT5SZW5kZXJGb3JtKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwoqLwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCgkvLyBhbmQgYSBsaXN0IG9mIGFsbCB0aGUgZXh0YW50IGZvcm1zLgoJJGZvcm1zID0gJHRoaXMtPkdldEZvcm1zKCk7CgkkbnVtX2Zvcm1zID0gY291bnQoJGZvcm1zKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YWJoZWFkZXJzJywgJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpIC4KCQkkdGhpcy0+U2V0VGFiSGVhZGVyKCdmb3JtcycsJHRoaXMtPkxhbmcoJ2Zvcm1zJykpIC4KCQkkdGhpcy0+U2V0VGFiSGVhZGVyKCdjb25maWcnLCR0aGlzLT5MYW5nKCdjb25maWd1cmF0aW9uJykpIC4KCQkkdGhpcy0+RW5kVGFiSGVhZGVycygpLgoJCSR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm10YWInLCR0aGlzLT5TdGFydFRhYigiZm9ybXMiKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2NvbmZpZ3RhYicsJHRoaXMtPlN0YXJ0VGFiKCJjb25maWciKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWInLCR0aGlzLT5FbmRUYWIoKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWJzJywkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9uYW1lJywkdGhpcy0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX2FsaWFzJywkdGhpcy0+TGFuZygndGl0bGVfZm9ybV9hbGlhcycpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfY29uZmlnZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgkJJ2FkbWluX3VwZGF0ZV9jb25maWcnLCAkcmV0dXJuaWQpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kcGFyYW1zWydmYnJwX21lc3NhZ2UnXTonJyk7CgkKCSRmb3JtQXJyYXkgPSBhcnJheSgpOwoJJGN1cnJvdyA9ICJyb3cxIjsKCWZvcmVhY2ggKCRmb3JtcyBhcyAkdGhpc0Zvcm0pCgl7CgkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCSRvbmVzZXQtPnJvd2NsYXNzID0gJGN1cnJvdzsKCQlpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEZvcm1zJykpCgkJewoJCQkkY29uZiA9ICR0aGlzLT5HZXRDb25maWcoKTsKCQkJJG9uZXNldC0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkkdGhpc0Zvcm1bJ25hbWUnXSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSkpOwoJCQkkb25lc2V0LT54bWwgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2V4cG9ydHhtbCcsJycsIjxpbWcgc3JjPVwiIi4kY29uZlsncm9vdF91cmwnXS4iL2ltYWdlcy9jbXMveG1sX3Jzcy5naWZcIiBjbGFzcz1cInN5c3RlbWljb25cIiBhbHQ9XCJFeHBvcnQgRm9ybSBhcyBYTUxcIiAvPiIsYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSkpOwoJCQkkb25lc2V0LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywkdGhpcy0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkJCQkJYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSkpOwoJCQkkb25lc2V0LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLAoJCQkJJ2FkbWluX2RlbGV0ZV9mb3JtJywgJycsCgkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSksCgkJCQkkdGhpcy0+TGFuZygnYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJywkdGhpc0Zvcm1bJ25hbWUnXSkpOwoJCgkJfQoJCWVsc2UKCQl7CgkJCSRvbmVzZXQtPm5hbWU9JHRoaXNGb3JtWyduYW1lJ107CgkJCSRvbmVzZXQtPmVkaXRsaW5rID0gJyc7CgkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAnJzsKCQl9CgkJJG9uZXNldC0+dXNhZ2UgPSAkdGhpc0Zvcm1bJ2FsaWFzJ107CgkJYXJyYXlfcHVzaCgkZm9ybUFycmF5LCRvbmVzZXQpOwoJCSgkY3Vycm93ID09ICJyb3cxIj8kY3Vycm93PSJyb3cyIjokY3Vycm93PSJyb3cxIik7CgkJfQoJaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBGb3JtcycpKQoJewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkbGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLAoJCQknYWRtaW5fYWRkX2VkaXRfZm9ybScsICcnLAoJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkX25ld19mb3JtJyksJycsCgkJCQknJywnc3lzdGVtaWNvbicpLCBhcnJheSgpKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRmb3JtJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsCgkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2Zvcm0nKSwKCQkJYXJyYXkoKSkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWF5X2NvbmZpZycsMSk7Cgl9CgllbHNlCgl7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub19wZXJtaXNzaW9uJywKCQkJJHRoaXMtPkxhbmcoJ2xhY2twZXJtaXNzaW9uJykpOwoJfQoJCgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9tbGVfdmVyc2lvbicsJHRoaXMtPkxhbmcoJ3RpdGxlX21sZV92ZXJzaW9uJykpOwkJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X21sZV92ZXJzaW9uJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX21sZV92ZXJzaW9uJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21sZV92ZXJzaW9uJywnMCcpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnKSk7CgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9oaWRlX2Vycm9ycycsJHRoaXMtPkxhbmcoJ3RpdGxlX2hpZGVfZXJyb3JzJykpOwkJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGVfZXJyb3JzJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2hpZGVfZXJyb3JzJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJywnMCcpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnKSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCcsJHRoaXMtPkxhbmcoJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnKSk7CQkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9yZWxheGVkX2VtYWlsX3JlZ2V4JywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJykpLiAkdGhpcy0+TGFuZygndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJywkdGhpcy0+TGFuZygndGl0bGVfZW5hYmxlX2Zhc3RhZGQnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV9mYXN0YWRkJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2VuYWJsZV9mYXN0YWRkJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnKSk7CQkKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnLCR0aGlzLT5MYW5nKCd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnKSk7CQkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfcmVxdWlyZV9maWVsZG5hbWVzJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX3JlcXVpcmVfZmllbGRuYW1lcycsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX2ZpZWxkbmFtZXMnLCcxJykpLiAkdGhpcy0+TGFuZygndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnKSk7CQkKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV91bmlxdWVfZmllbGRuYW1lcycsJHRoaXMtPkxhbmcoJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF91bmlxdWVfZmllbGRuYW1lcycsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF91bmlxdWVfZmllbGRuYW1lcycsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1bmlxdWVfZmllbGRuYW1lcycsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJykpOwkJCgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZW5hYmxlX2FudGlzcGFtJywkdGhpcy0+TGFuZygndGl0bGVfZW5hYmxlX2FudGlzcGFtJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9lbmFibGVfYW50aXNwYW0nLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfZW5hYmxlX2FudGlzcGFtJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZycpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zaG93X2ZpZWxkaWRzJywkdGhpcy0+TGFuZygndGl0bGVfc2hvd19maWVsZGlkcycpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfc2hvd19maWVsZGlkcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCdmYnJwX3Nob3dfZmllbGRpZHMnLDEsCgkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRpZHMnLCcwJykpLiAkdGhpcy0+TGFuZygndGl0bGVfc2hvd19maWVsZGlkc19sb25nJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJywkdGhpcy0+TGFuZygndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3Nob3dfZmllbGRhbGlhc2VzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRjaGVja2JveCgkaWQsJ2ZicnBfc2hvd19maWVsZGFsaWFzZXMnLDEsCgkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRhbGlhc2VzJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnKSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfc2hvd192ZXJzaW9uJywkdGhpcy0+TGFuZygndGl0bGVfc2hvd192ZXJzaW9uJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zaG93X3ZlcnNpb24nLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfc2hvd192ZXJzaW9uJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZycpKTsKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2JsYW5rX2ludmFsaWQnLCR0aGlzLT5MYW5nKCd0aXRsZV9ibGFua19pbnZhbGlkJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ibGFua19pbnZhbGlkJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCiAgICAgICdmYnJwX2JsYW5rX2ludmFsaWQnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYmxhbmtfaW52YWxpZCcsJzAnKSkuCiAgICAgICR0aGlzLT5MYW5nKCd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnKSk7CiAgIAkJCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkdGhpcy0+TGFuZygnc2F2ZScpKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9jb25maWdmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF94bWxmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2ltcG9ydHhtbCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXR4bWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkdGhpcy0+TGFuZygndXBsb2FkJykpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3htbGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF90b191cGxvYWQnLCR0aGlzLT5DcmVhdGVJbnB1dEZpbGUoJGlkLCAnZmJycF94bWxmaWxlJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV94bWxfdG9fdXBsb2FkJywkdGhpcy0+TGFuZygndGl0bGVfeG1sX3RvX3VwbG9hZCcpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZScsJHRoaXMtPkxhbmcoJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF91cGxvYWRfZm9ybW5hbWUnLAoJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJywnJywyNSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcycsJHRoaXMtPkxhbmcoJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF94bWxfdXBsb2FkX2Zvcm1hbGlhcycsCgkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnZmJycF9pbXBvcnRfZm9ybWFsaWFzJywnJywyNSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbmZvX2xlYXZlZW1wdHknLCR0aGlzLT5MYW5nKCdoZWxwX2xlYXZlZW1wdHknKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xlZ2VuZF94bWxfaW1wb3J0JywkdGhpcy0+TGFuZygndGl0bGVfaW1wb3J0X2xlZ2VuZCcpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignZm9ybXMnLCAkZm9ybUFycmF5KTsJCQkKCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnQWRtaW5NYWluLnRwbCcpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.exportxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISBpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2Zvcm0nXSkpCiAgewogICAgLy8gZ2V0IHRoZSBmb3JtIGJ5IG5hbWUsIG5vdCBJRAogICAgJHBhcmFtc1snZm9ybV9pZCddID0gJHRoaXMtPkdldEZvcm1JREZyb21BbGlhcygkcGFyYW1zWydmb3JtJ10pOwogIH0KCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSk7Cgokc3BlYyA9ICRhZWZvcm0tPkdldE5hbWUoKS4iLnhtbCI7CiRzcGVjID0gcHJlZ19yZXBsYWNlKCcvW15cd1xkXC5cLVxfXS8nLCdfJywkc3BlYyk7CiR4bWxzdHIgPSAkYWVmb3JtLT5FeHBvcnRYTUwoaXNzZXQoJHBhcmFtc1snZmJycF9leHBvcnRfdmFsdWVzJ10pP3RydWU6ZmFsc2UpOwoKICAgIEBvYl9jbGVhbigpOwogICAgQG9iX2NsZWFuKCk7CiAgICBoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CiAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKICAgIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2ZvcmNlLWRvd25sb2FkOyBjaGFyc2V0PXV0Zi04Jyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gc3RybGVuKCR4bWxzdHIpKTsKICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JyAuICRzcGVjKTsKICAgIGVjaG8gJHhtbHN0cjsKICAgIGV4aXQ7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.feuserform.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGZldSA9ICYkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYgKCRmZXUgPT0gZmFsc2UgfHwgJGZldS0+TG9nZ2VkSW4oKSA9PSBmYWxzZSkKCXsKCXJldHVybjsKCX0KJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0JywkaWQsJHBhcmFtcywgJHJldHVybmlkKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.importxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSA9ICRfRklMRVNbJGlkLidmYnJwX3htbGZpbGUnXVsndG1wX25hbWUnXTsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJHJlcyA9ICRhZWZvcm0tPkltcG9ydFhNTCgkcGFyYW1zKTsKCmlmICgkcmVzKQoJewoJJHBhcmFtc1snZmJycF9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZm9ybV9pbXBvcnRlZCcpOwoJfQplbHNlCgl7CgkkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtX2ltcG9ydF9mYWlsZWQnKTsKCX0KJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.validate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgppZiAoIWlzc2V0KCRwYXJhbXNbJ2ZicnBfZiddKSB8fCAhaXNzZXQoJHBhcmFtc1snZmJycF9yJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmYnJwX2MnXSkpCgl7CgllY2hvICR0aGlzLT5MYW5nKCd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJyk7CglyZXR1cm4gZmFsc2U7Cgl9CgokcGFyYW1zWydyZXNwb25zZV9pZCddPSRwYXJhbXNbJ2ZicnBfciddOwokcGFyYW1zWydmb3JtX2lkJ109JHBhcmFtc1snZmJycF9mJ107CiRwYXJhbXNbJ2ZicnBfdXNlcl9mb3JtX3ZhbGlkYXRlJ109dHJ1ZTsKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoKaWYgKCEkYWVmb3JtLT5DaGVja1Jlc3BvbnNlKCRwYXJhbXNbJ2ZicnBfZiddLCAkcGFyYW1zWydmYnJwX3InXSwgJHBhcmFtc1snZmJycF9jJ10pKQp7CgllY2hvICR0aGlzLT5MYW5nKCd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJyk7CglyZXR1cm4gZmFsc2U7Cn0KCgovKiBTdGlra2kgcmVtb3ZlZDogT2xkIHN0dWZmLCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIEZvcm0uY2xhc3MucGhwIGFzd2VsbAplbHNlCnsKCS8vWyMyNzkyXSBEZWxldGVSZXNwb25zZSBpcyBuZXZlciBjYWxsZWQgb24gdmFsaWRhdGlvbjsKCS8vJGFlZm9ybS0+RGVsZXRlUmVzcG9uc2UoJHBhcmFtc1snZmJycF9yJ10pOwp9CiovCgokZmllbGRzID0gJGFlZm9ybS0+R2V0RmllbGRzKCk7CiRjb25maXJtYXRpb25GaWVsZCA9IC0xOwpmb3IoJGk9MDskaTxjb3VudCgkZmllbGRzKTskaSsrKQoJewoJaWYgKCRmaWVsZHNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbicpCgkJewoJCSRjb25maXJtYXRpb25GaWVsZCA9ICRpOwoJCWJyZWFrOwoJCX0KCX0KCQppZiAoJGNvbmZpcm1hdGlvbkZpZWxkICE9IC0xKQoJewoJJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5BcHByb3ZlVG9HbygkcGFyYW1zWydmYnJwX3InXSk7CgkkcmVzdWx0cyA9ICRhZWZvcm0tPkRpc3Bvc2UoJHJldHVybmlkKTsKCWlmICgkcmVzdWx0c1swXSA9PSB0cnVlKQoJCXsKCQkkcmV0ID0gJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5HZXRPcHRpb24oJ3JlZGlyZWN0X3BhZ2UnLCctMScpOwoJCWlmICgkcmV0ICE9IC0xKQoJCQl7CgkJCSR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldCk7CgkJCX0KCQl9CgllbHNlCgkJewoJCWVjaG8gIkVycm9yITogIjsKCQlmb3JlYWNoICgkcmVzdWx0c1sxXSBhcyAkdGhpc1JlcykKCQkJewoJCQllY2hvICR0aGlzUmVzIC4gJzxiciAvPic7CgkJCX0KCQl9Cgl9CmVsc2UKCXsKCQllY2hvICR0aGlzLT5MYW5nKCd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJyk7Cgl9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgoJPGxpPlZlcnNpb24gMC43LgoJCTx1bD4KCQkJPGxpPkZpeGVkIGEgYnVnIHdoaWNoIGNhdXNlZCB0aGUgRGF0ZSBTdWJtaXR0ZWQgc29ydGluZyBpbiBGb3JtIEJyb3dzZXIgdG8gYmUgaW5jb25zaXN0ZW50IGFjcm9zcyBwYWdlcyBhdCBmaXJzdC48L2xpPgoJCQk8bGk+Rml4ZWQgYSBidWcgd2hpY2ggY2F1c2VkIGEgQ2hlY2tib3ggRmllbGQgdG8gYmUgdW5hYmxlIHRvIGJlIHJlcXVpcmVkLiBDaGVja2JveCBGaWVsZHMgY2FuIG5vdyBiZSBtYWRlIHJlcXVpcmVkLjwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzU2MTA6IEZpbGUgVXBsb2FkIEZpZWxkIGFkdmFuY2VkIG9wdGlvbnMgbm93IHNhdmUgY29ycmVjdGx5LjwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzU3MDI6IFdoZW4gdXNpbmcgdGhlICJGcm9udGVuZCBVc2VyIGJpbmRpbmciIGFkdmFuY2VkIG9wdGlvbiBvbiB0aGUgRm9ybUJyb3dzZXIgRGlzcG9zaXRpb24sIGNoZWNrYm94ZXMgY2FuIG5vdyBiZSBzYXZlZCBpbiB0aGUgInVuY2hlY2tlZCIgc3RhdGUuIFRoYW5rcyBNaWtlIEh1Z2hlc2RvbiE8L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM1NDIyOiBNdWx0aXBsZSBmb3JtcyB1c2luZyB0aGUgIkZyb250ZW5kIFVzZXIgYmluZGluZyIgYWR2YW5jZWQgb3B0aW9uIG9uIHRoZSBGb3JtQnJvd3NlciBEaXNwb3NpdGlvbiBub3cgY29ycmVjdGx5IGxvYWQgcHJldmlvdXNseSBzdWJtaXR0ZWQgZGF0YS4gVGhhbmtzIE1pa2UgSHVnaGVzZG9uITwvbGk+CgkJCTxsaT5BZGRlZDogTmV3IERpc3Bvc2l0aW9uIC0gRGlzcG9zaXRpb25VbmlxdWVGaWxlLiBXcml0ZSBmb3JtIHJlc3VsdHMgdG8gYSB1bmlxdWUgZmlsZSBmb3IgZWFjaCBmb3JtIHN1Ym1pc3Npb24uPC9saT4KCQkJPGxpPkFkZGVkOiBUaW55TUNFIGludGVncmF0ZWQuPC9saT4KCQkJPGxpPkFkZGVkOiBOZXcgRGlzcG9zaXRpb24gLSBEaXNwb3NpdGlvbkVtYWlsQmFzZWRGcm9udGVuZEZpZWxkcy4gU2VuZCBmb3JtIHJlc3VsdHMgdmlhIGVtYWlsIHdpdGggZnJvbnRlbmQtdXNlci1zcGVjaWZpZWQgU3ViamVjdCwgIkZyb20gTmFtZSIsICJGcm9tIEFkZHJlc3MiLCBhbmQgRGVzdGluYXRpb24gQWRkcmVzcy48L2xpPgoJCQk8bGk+QWRkZWQ6IFJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIHRvIFVuaXF1ZUludGVnZXJGaWVsZC48L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM1NTU1LyM1NDUzOiBEb21pbmljYSAoRE0pIGlzIG5vdyBwcm9wZXJseSBzZWxlY3RhYmxlIGluIHRoZSBDb3VudHJ5IFBpY2tlciBGaWVsZC48L2xpPgoJCQk8bGk+Rml4ZWQgQnVnICM0MzA3OiBGaWxlcyB1cGxvYWRlZCBvbiBlYXJsaWVyIHBhZ2VzIG9mIGEgbXVsdGktcGFnZSBmb3JtIGFyZSBub3cgYXR0YWNoZWQgdG8gRW1haWwgRGlzcG9zaXRpb25zIG9uIGxhdGVyIHBhZ2VzLjwvbGk+CgkJCTxsaT5GaXhlZCBCdWcgIzM2MDU6IERhdGVzIGFyZSBub3cgdHJhbnNsYXRlZCBpbiBFbWFpbCBEaXNwb3NpdGlvbnMuPC9saT4KCQkJPGxpPkZpeGVkIEJ1ZyAjNTM1ODogRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQgbm93IGNyZWF0ZXMgYSBjb3JyZWN0IGxhYmVsIGZvciBpdHMgaW5wdXQgZmllbGQuPC9saT4KCQkJPGxpPkZpeGVkIEJ1ZyAjMTgyMjogSGlkZGVuIEZpZWxkcyBjYW4gbm93IGJlIGVkaXRlZCBpbiBhbiBBZG1pbiBGb3JtIEJyb3dzZXIuPC9saT4KCQkJPGxpPkFkZGVkIEZlYXR1cmUgUmVxdWVzdCAjNTI3NzogQWxsb3cgRGlzcG9zaXRpb25Gb3JtQnJvd3NlciB0byBiZSBoaWRkZW4uPC9saT4KCQkJPGxpPlNldmVyYWwgb3RoZXIgY2xlYW51cHMgYW5kIG1pbm9yIGZpeGVzLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjYuNC4KCQk8dWw+CgkJCTxsaT5CdWdzIGZpeGVzIGZvciBGaWVsZCBTb3J0aW5nLiBUaGFua3MgdG8gZXZlcnlvbmUgd2hvIHJlcG9ydGVkIGFuZCBTdGlra2kgZm9yIGZpeGluZyBpdCE8L2xpPgoJCQk8bGk+SW1wcm92ZW1lbnRzIEZpbGVVcGxvYWQgZmllbGQ6IG92ZXJ3cml0ZSBmbGFnLCBmaWxlIHJlbmFtaW5nLCBhbmQgaGlkaW5nIGZpbGVuYW1lIGluIG91dHB1dC48L2xpPgoJCQk8bGk+QWRkaXRpb25hbCBwYXRjaGVzIGZyb20gUnlhbiBGb3N0ZXIgZm9yIERhdGVQaWNrZXIuPC9saT4KCQk8L3VsPgoJPC9saT4KPGxpPlZlcnNpb24gMC42LjMuCgk8dWw+CgkJPGxpPlNlY3VyaXR5IHBhdGNoIGZvciBVcGxvYWQgZmllbGQgdHlwZS48L2xpPgoJCTxsaT5OdW1lcm91cyBidWdzIGZpeGVzLiBUaGFua3MgdG8gZXZlcnlvbmUgd2hvIHJlcG9ydGVkLjwvbGk+CgkJPGxpPk51bWVyb3VzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMgZm9yIHVzZSB3aXRoIEZvcm1Ccm93c2VyIHYwLjMueC48L2xpPgoJCTxsaT5JbXByb3ZlbWVudHMgdG8gdGhlIENvbXB1dGVkRmllbGQgdHlwZSB0byBhbGxvdyBtdWNoIG1vcmUgY29tcHV0YXRpb24uPC9saT4KCQk8bGk+Vmlsa2lzJyBmaXhlcyBmb3IgbG9jYWxpemluZyBDb3VudHJ5UGlja2VyPC9saT4KCQk8bGk+UnlhbiBGb3N0ZXIncyBwYXRjaCBmb3IgcmUtb3JkZXJpbmcgZGF0ZSBpbnB1dHMgb24gRGF0ZVBpY2tlcjwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjYuMi4KCTx1bD4KCQk8bGk+QSBsb3Qgb2Ygc21hbGwgYW5kIGJpZyBidWdzIGZpeGVzLiBUaGFua3MgdG8gZXZlcnlvbmUgd2hvIHJlcG9ydGVkLjwvbGk+CgkJPGxpPkludHJvZHVjaW5nIGR5bmFtaWMgZmllbGQgbWFuYWdlbWVudC48L2xpPgoJCTxsaT5OZXcgIlllYXJQdWxsRG93biIgZmllbGQgdHlwZSBhZGRlZDwvbGk+CgkJPGxpPkNvbXBhdGlibGUgd2l0aCBDTVNNUyAxLjcuMSBhbmQgZnVydGhlci48L2xpPgoJCTxsaT5BZGRlZCBqUXVlcnkuIFByb3RvdHlwZSByZW1vdmVkIGNvbXBsZXRlbHkuPC9saT4KCQk8bGk+QWRkZWQgc29tZSBzdHlsaW5nLjwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjYuMS4KCTx1bD4KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzLiBJZiB5b3VyIGJ1ZyBpc24ndCBmaXhlZCwgcG9zdCBpdCBpbiB0aGUgdHJhY2tlciE8L2xpPgoJCTxsaT5OZXcgVmFsaWRhdGlvbiBVRFQgY29kZSBwcm92aWRlZCBieSBKZWZmIEJvc2NoPC9saT4KCQk8bGk+QWJpbGl0eSB0byByZWplY3QgYmxhbmsvb25seSBzcGFjZXMgZm9yIHJlcXVpcmVkIGZpZWxkczwvbGk+CgkJPGxpPk5ldyAiQ29tcGFueURpcmVjdG9yeSIiIEZpZWxkIHR5cGUgcHJvdmlkZWQgYnkgSmVyZW15IEJhc3M8L2xpPgoJCTxsaT5JbXByb3ZlbWVudHMgdG8gZGVmYXVsdCB2YWx1ZSBjb2RlIHByb3ZpZGVkIGJ5IEplcmVteSBCYXNzPC9saT4KCQk8bGk+TmV3ICJNb2R1bGUgSW50ZXJmYWNlIiBmaWVsZCB0eXBlIHByb3ZpZGVkIGJ5IEplcmVteSBCYXNzPC9saT4KCQk8bGk+TmV3ICJVc2VyIERlZmluZWQgVGFnIENhbGwiIGZpZWxkIHR5cGU8L2xpPgoJCTxsaT5GaXggdG8gc3VwcG9ydCBzeW50YXggaGlnaGxpZ2h0ZXJzIGZvciB0ZW1wbGF0ZXMgYW5kIEphdmFzY3JpcHQgb24gYWRtaW4gc2lkZTwvbGk+CgkJPGxpPjwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjYuIDMwIERlYyAwOS4gQnVnIGZpeGVzLiBGaW5hbGx5IHJlbGVhc2luZyB0aGlzIHRoaW5nITwvbGk+CjxsaT5WZXJzaW9uIDAuNmIyLgogICA8dWw+CiAgICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMuIFRoYW5rcyBmb3IgYWxsIHdobyByZXBvcnRlZCBvbiBidWdzITwvbGk+CiAgICAgIDxsaT5BZGRlZCBGb3JtIERpc3Bvc2l0aW9uIHRvIGRvIGFuIEhUVFAgR0VUIG9yIFBPU1QgdG8gYW55IGFyYml0cmFyeSBVUkwgZm9yIGZvcm0gaGFuZGxpbmc8L2xpPgogICAgICA8bGk+QWRkZWQgY2FwYWJpbGl0eSAoYW5kIGV4YW1wbGUgb2YpIGFkdmFuY2VkIG11bHRpcGFnZSBjb250YWN0IGZvcm0gd2hlcmUgYSBwcmV2aW91cyByZXNwb25zZSBnZXRzIGRpc3BsYXllZCBvbiBhIHN1YnNlcXVlbnQgcGFnZSBhcyBwZXIgdXB0b2VsZXZlbidzIEZSPC9saT4KICAgICAgPGxpPkZpeCBmb3IgdGVtcGxhdGUgJGZsZF9YIHJlbWFwcGluZyBvbiBYTUwgaW1wb3J0PC9saT4KICAgICAgPGxpPkV4dGVuZGVkIHRvIHByb3ZpZGUgRE9NL0NTUyBpZCBhdHRyaWJ1dGVzIHRvIGZpZWxkczwvbGk+CiAgICAgIDxsaT5DbGVhbmVkIHVwIGJhZCB1c2Ugb2YgcmVmZXJlbmNlcyBmb3IgUEhQIDUueDwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNmIxLgoJPHVsPgoJCTxsaT5VcGRhdGVkIGRhdGFiYXNlIGNvZGUgdG8gYmUgQ01TTVMgMS43LWNvbXBhdGlibGU8L2xpPgoJCTxsaT5BZGRlZCBCdXR0b24gZmllbGQgdHlwZS48L2xpPgoJCTxsaT5JbXBsZW1lbnRlZCBGb3JtQnJvd3NlciB2MC4zIERpc3Bvc2l0aW9uLjwvbGk+CgkJPGxpPk51bWVyb3VzIGNvZGUgZml4ZXMuPC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xMi4gMyBTZXB0IDA5LiBOdW1lcm91cyB1c2VyLXN1Ym1pdHRlZCBmaXhlcy4gVGhhbmtzIHRvIENhbGd1eSBhbmQgU2ltb24gU2NoYXVmaS48L2xpPgo8bGk+VmVyc2lvbiAwLjUuMTEuIDE5IEphbiAwOS4gKGNhbGd1eTEwMDApCiAgPHVsPgogICAgPGxpPkFkZHMgdGhlIGNhcGFiaWxpdHkgdG8gY2FsbCBhIFVEVCBiZWZvcmUgdGhlIGZvcm0gaXMgZGlzcGxheWVkLjwvbGk+CiAgICA8bGk+TW92ZSBjaGFuZ2Vsb2cgdG8gYW4gZXh0ZXJuYWwgZmlsZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xMC4gMTIgSmFuIDA5LiBCdWcgZml4ZXMgdG8gcmVzdG9yZSBmdW5jdGlvbmFsaXR5IG9mIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS45LiBKYW4gMDkgKGNhbGd1eTEwMDApIC0gTWlub3IgY2hhbmdlIHRvIHRoZSBEaXNwb3NpdGlvbkZpbGUgY2xhc3MuPC9saT4KPGxpPlZlcnNpb24gMC41LjguIEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgY2xhc3MuPC9saT4KPGxpPlZlcnNpb24gMC41LjcuIEphbiAwOSAoY2FsZ3V5MTAwMCkgLSBNaW5vciBjaGFuZ2UgdG8gdGhlIERpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgY2xhc3MuPC9saT4KPGxpPlZlcnNpb24gMC41LjYuIDIzIERlYyAwOC4gQnVnIGZpeGVzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS41LiAxIE9jdCAwOC4gQnVnIGZpeGVzLiBBZGRlZCBuZXcgRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQgdG8gcmVwbGFjZSBkZWZpY2llbmNpZXMgd2l0aCBFbWFpbCBBZGRyZXNzICdGcm9tJyBGaWVsZCB0eXBlLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS40LiAyOSBBdWcgMDguIFNjcmFwcGluZyBwbGFucyBmb3IgMC42LiBCdWcgZml4ZXMuIFRlZCdzIG5ldyBcIkVtYWlsIFwiRnJvbSBBZGRyZXNzXCIgQWdhaW4gRmllbGRcIi4gQWRkZWQgZGF0YWJhc2UgaW5kaWNlcy48L2xpPgo8bGk+VmVyc2lvbiAwLjUuMy4gMjYgTWF5IDA4LiBCdWdmaXhlcyB0byBwcmV2aW91cyBzZXQgb2YgYnVnZml4ZXMuIE5vdyByZWFkeSBmb3IgbWFqb3IgdXBncmFkZXMgZm9yIDAuNi48L2xpPgo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPgo8bGk+VmVyc2lvbiAwLjUuMS4gMzAgQXByaWwgMDguIEJ1Z2ZpeGVzLCByZXdyb3RlIHNvbWUgb2YgdGhlIEZpbGUgVXBsb2FkIGNvZGUgdG8gcHJldmVudCB3aGl0ZSBzY3JlZW4gb2YgYW5ub3lhbmNlLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4gMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb24uPC9saT4KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMy4gMTggU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHB1bGxkb3ducyB1c2luZyBudW1iZXJzLCBvcHRpb24gdG8gaW5saW5lIGZvcm0sIGZpeGVzIGZvciB0YWJsZS1sYXlvdXRzIHByb3ZpZGVkIGJ5IEFwIE11dGh1LCBmaXggZm9yIHJlcXVpcmFiaWxpdHkgb2YgRGlzcG9zaXRpb25zLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPgo8bGk+VmVyc2lvbiAwLjQKCTx1bD4KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPgoJCTxsaT5OdW1lcm91cyBCdWcgZml4ZXM7IHRvbyBtYW55IHRvIGVudW1lcmF0ZSBoZXJlPC9saT4KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+CgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiBcIlRleHRGaWVsZCAoTXVsdGlwbGUpXCIgYW5kIFwiQ29tcHV0ZWQgRmllbGRcIjwvbGk+CgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogXCJTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93blwiIGFuZCBcIlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnNcIihDYWxndXkpPC9saT4KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPgoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPVwidmFsdWVcIiBzeW50YXggKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPgoJPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC4zCiAgIDx1bD4KICAgICAgPGxpPkFkZGVkIENhcHRjaGEgbW9kdWxlIHN1cHBvcnQuPC9saT4KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUncyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPgogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+CiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4KICAgICAgPGxpPkFkZGVkIERyYWcnbidEcm9wIHJlb3JkZXJpbmcgb2YgZm9ybSBmaWVsZHMuPC9saT4KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+CiAgICAgIDxsaT48L2xpPgogICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3CiAgIDxwPkJpZyByZWxlYXNlOjx1bD4KICAgPGxpPkFkZGVkIFwiRW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3NcIiBkaXNwb3NpdGlvbi48L2xpPgogICA8bGk+QWRkZWQgXCJUaW1lUGlja2VyXCIgZmllbGQgdHlwZS4gU3BsaXQgXCJMaW5rXCIgZmllbGQgaW50byBhIFwiVXNlci1zdXBwbGllZCBMaW5rXCIgZmllbGQgYW5kIGEgXCJTdGF0aWMgTGlua1wiIGZpZWxkLjwvbGk+CiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPgogICA8L3VsPgogICA8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4zCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuMgogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToKICAgPHVsPgogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+CiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZAogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLgogICAgICA8L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbAogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+CiAgICAgIDwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdydzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/classes/ButtonField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOSBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDkgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkJ1dHRvbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJCdXR0b25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdCdXR0b25GaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkkY3NzaWQgPSAkdGhpcy0+R2V0Q1NTSWRUYWcoKTsKCiAgICAkcmV0ID0gJzxpbnB1dCB0eXBlPSJidXR0b24iIG5hbWU9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nIiB2YWx1ZT0iJyAuCgkgICAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJykuJyIgJy4kanMuJGNzc2lkLicvPic7CgkKCXJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfYnV0dG9uX3RleHQnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF90ZXh0JywKCQkJCQkgICAgICAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJyksIDQwKSkpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CatalogerItemsField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgovKiBBIGNsYXNzIHRvIHByb3ZpZGUgYSBkeW5hbWljIG11bHRpc2VsZWN0IGxpc3QgdG8gYWxsb3cgc2VsZWN0aW5nIG9uZQogKiBvciBtb3JlIGl0ZW1zIGZyb20gdGhlIGNhdGFsb2dlciAKICogdGhlIGl0ZW0gbGlzdCBpcyBmaWx0ZXJlZCBieSBhbiBhcnJheQogKiBvZiBvcHRpb25zIGFzIHNwZWNpZmllZCBpbiB0aGUgYWRtaW4uCiAqLwpjbGFzcyBmYkNhdGFsb2dlckl0ZW1zRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgogIGZ1bmN0aW9uIGZiQ2F0YWxvZ2VySXRlbXNGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdDYXRhbG9nZXJJdGVtc0ZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IGZhbHNlOwogICAgJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGNhdGFsb2dlciA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDYXRhbG9nZXInKTsKICAgIGlmKCAhJGNhdGFsb2dlciApCiAgICAgIHsKCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnKTsKICAgICAgfQogICAgCiAgICAkY2F0YWxvZ2VyLT5nZXRVc2VyQXR0cmlidXRlcygpOwogICAgJHRtcF9hdHRycyA9ICRnQ21zLT52YXJpYWJsZXNbJ2NhdGFsb2dfYXR0cnMnXTsKICAgICRsaW5lcyA9IChpbnQpJHRoaXMtPkdldE9wdGlvbignbGluZXMnLCc1Jyk7CiAgICAkbmFtZXJlZ2V4ID0gdHJpbSgkdGhpcy0+R2V0T3B0aW9uKCduYW1lcmVnZXgnLCcnKSk7CiAgICAKICAgICRhdHRycyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdG1wX2F0dHJzIGFzICRvbmUgKQogICAgICB7Cgkkc2FmZWF0dHIgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJycsJG9uZS0+YXR0cikpOwoJJHZhbCA9IHRyaW0oJHRoaXMtPkdldE9wdGlvbignYXR0cl8nLiRzYWZlYXR0ciwnJykpOwoJaWYoIGVtcHR5KCR2YWwpICkgY29udGludWU7Cgkkb25lLT5pbnB1dCA9ICR2YWw7CgkkYXR0cnNbXSA9ICRvbmU7CiAgICAgIH0KCiAgICAvLyBwdXQgdGhlIGhpZGRlbiBmaWVsZHMgaW50byBzbWFydHkuCiAgICBpZiggIWlzc2V0KCRnQ21zLT52YXJpYWJsZXNbJ2ZiX3NtYXJ0eV92YXJzX3NldCddKSApCiAgICAgIHsKCSRzbWFydHkgPSAkZ0Ntcy0+R2V0U21hcnR5KCk7CgkkdGhlRmllbGRzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQoJZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkdGhlRmllbGRzKTsgJGkrKyApCgkgIHsKCSAgICBpZiggJHRoZUZpZWxkc1skaV0tPkdldEZpZWxkVHlwZSgpICE9ICdIaWRkZW5GaWVsZCcgKSBjb250aW51ZTsKCSAgICAkc21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiR0aGVGaWVsZHNbJGldLT5HZXRJZCgpLCR0aGVGaWVsZHNbJGldLT5WYWx1ZSk7CgkgICAgaWYoICR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpICE9ICcnICkKCSAgICAgIHsKCQkkc21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldEFsaWFzKCksJHRoZUZpZWxkc1skaV0tPlZhbHVlKTsKCSAgICAgIH0KCSAgfQoKCSRnQ21zLT52YXJpYWJsZXNbJ2ZiX3NtYXJ0eV92YXJzX3NldCddID0gMTsKICAgICAgfQoKICAgIC8vIGZvciBlYWNoIGhpZXJhcmNoeSBpdGVtIChmcm9tIHRoZSByb290IGRvd24pCiAgICAkaG0gPSAkZ0Ntcy0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwogICAgJGFsbGNvbnRlbnQgPSAkaG0tPmdldEZsYXRMaXN0KCk7CiAgICAkcmVzdWx0cyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkYWxsY29udGVudCBhcyAkb25lcGFnZSApCiAgICAgIHsKCSRjb250ZW50ID0gJG9uZXBhZ2UtPkdldENvbnRlbnQoKTsKCgkvLyBpZiBpdCdzIG5vdCBhIGNhdGFsb2dlciBpdGVtIGNvbnRpbnVlCglpZiggJGNvbnRlbnQtPlR5cGUoKSAhPSAnY2F0YWxvZ2l0ZW0nICkgY29udGludWU7CgoJLy8gaWYgaXQncyBub3QgYWN0aXZlIG9yIHNob3duIGluIG1lbnUgY29udGludWUKCWlmKCAhJGNvbnRlbnQtPkFjdGl2ZSgpIHx8ICEkY29udGVudC0+U2hvd0luTWVudSgpICkgY29udGludWU7CgoJLy8gaWYgdGhlIG5hbWVyZWdleCBzdHJpbmcgaXMgbm90IGVtcHR5LCBhbmQgdGhlIG5hbWUgZG9lcyBub3QgbWF0Y2ggdGhlCgkvLyAgICByZWdleCwgY29udGludWUKCWlmKCAhZW1wdHkoJG5hbWVyZWdleCApICYmICFwcmVnX21hdGNoKCcvJy4kbmFtZXJlZ2V4LicvJywkY29udGVudC0+TmFtZSgpKSApCgkgIHsKCSAgICBjb250aW51ZTsKCSAgfQoKCS8vIGZvciBlYWNoIGF0dHJpYnV0ZQoJJHBhc3NlZCA9IHRydWU7Cglmb3JlYWNoKCAkYXR0cnMgYXMgJG9uZWF0dHIgKQoJICB7CgkgICAgLy8gcGFyc2UgdGhlIGZpZWxkIHZhbHVlIHRocm91Z2ggc21hcnR5PwoJICAgICRleHByID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG9uZWF0dHItPmlucHV0KTsKCSAgICBpZiggZW1wdHkoJGV4cHIpICkgY29udGludWU7IC8vIG5vIGV4cHJlc3Npb24gZm9yIHRoaXMgZmllbGQuIHBhc3MKCSAgICAKCSAgICAvLyBnZXQgdGhlIHZhbHVlIGZvciB0aGlzIGF0dHJpYnV0ZSBmb3IgdGhpcyBjb250ZW50CgkgICAgJGN1cnJlbnR2YWwgPSAkY29udGVudC0+R2V0UHJvcGVydHlWYWx1ZSgkb25lYXR0ci0+YXR0cik7CgkgICAgaWYoIGVtcHR5KCRjdXJyZW50dmFsKSApCgkgICAgICB7CgkJLy8gbm8gdmFsdWUgZm9yIHRoaXMgZmllbGQsIGJ1dCB3ZSBoYXZlIGFuIGV4cHJlc3Npb24KCQkvLyB0aGlzIGNhdGFsb2cgaXRlbSBmYWlscy4KCQkkcGFzc2VkID0gZmFsc2U7CgkJYnJlYWs7CgkgICAgICB9CgoJICAgIGxpc3QoJHR5cGUsJGV4cHIpID0gZXhwbG9kZSgnOicsJGV4cHIsMik7CgkgICAgJHR5cGUgPSB0cmltKCR0eXBlKTsKCSAgICAkZXhwciA9IHRyaW0oJGV4cHIpOwoKCSAgICAkcmVzID0gZmFsc2U7CgkgICAgc3dpdGNoKCBzdHJ0b2xvd2VyKCR0eXBlKSApCgkgICAgICB7CgkgICAgICBjYXNlICdyYW5nZSc6CgkJLy8gZm9yIHJhbmdlczoKCQkvLyBncmFiIG1pbiBhbmQgbWF4IHZhbHVlcwoJCWxpc3QoJG1pbnZhbCwkbWF4dmFsKSA9IGV4cGxvZGUoJ3RvJywkZXhwcik7CgkJJG1pbnZhbCA9IHRyaW0oJG1pbnZhbCk7ICRtYXh2YWwgPSB0cmltKCRtYXh2YWwpOwoJCS8vIGNoZWNrIGZvciBudW1lcmljCgkJaWYoICFpc19udW1lcmljKCRtaW52YWwpIHx8ICFpc19udW1lcmljKCRtYXh2YWwpICkKCQkgIHsKCQkgICAgLy8gY2FuJ3QgdGVzdCByYW5nZXMgd2l0aCBub24gbnVtZXJpYyB2YWx1ZXMKCQkgICAgLy8gc28gZmFpbAoJCSAgICAkcGFzc2VkID0gZmFsc2U7CgkJICAgIGJyZWFrOwoJCSAgfQoJCWlmKCAkbWludmFsID4gJG1heHZhbCApCgkJICB7CgkJICAgICR0bXAgPSAkbWludmFsOwoJCSAgICAkbWludmFsID0gJG1heHZhbDsKCQkgICAgJG1heHZhbCA9ICR0bXA7CgkJICB9CgkJJHJlcyA9ICgkY3VycmVudHZhbCA+PSAkbWludmFsICYmICRjdXJyZW50dmFsIDw9ICRtYXh2YWwgKTsKCQlicmVhazsKCgkgICAgICBjYXNlICdtdWx0aSc6CgkJLy8gZm9yIG11bHRpCgkJJHRtcCA9IGV4cGxvZGUoJ3wnLCRleHByKTsKCQkkcmVzID0gaW5fYXJyYXkoJGN1cnJlbnR2YWwsJHRtcCk7CgkJYnJlYWs7CgkgICAgICB9CgoJICAgIGlmKCAhJHJlcyApCgkgICAgICB7CgkJJHBhc3NlZCA9IGZhbHNlOwoJCWJyZWFrOwoJICAgICAgfQoJICB9IC8vIGZvcmVhY2ggYXR0cgoKCWlmKCAkcGFzc2VkICkKCSAgewoJICAgICRyZXN1bHRzWyRjb250ZW50LT5OYW1lKCldID0gJGNvbnRlbnQtPk5hbWUoKTsKCSAgfQogICAgICB9IC8vIGZvcmVhY2ggY29udGVudAogICAKCiAgICAvLyBBbGwgZG9uZSwgZG8gd2UgaGF2ZSBzb21ldGhpbmcgdG8gZGlzcGxheT8KICAgIGlmKCBjb3VudCgkcmVzdWx0cykgKSAKICAgICAgewoJJHNpemUgPSBtaW4oJGxpbmVzLGNvdW50KCRyZXN1bHRzKSk7Cgkkc2l6ZSA9IG1pbig1MCwkc2l6ZSk7IC8vIG1heGltdW0gNTAgbGluZXMsIHRob3VnaCB0aGlzIGlzIHByb2JhYmx5IGJpZwoKCSR2YWwgPSBhcnJheSgpOwoJaWYoICR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgKQoJICB7CgkgICAgJHZhbCA9ICR0aGlzLT5WYWx1ZTsKCSAgICBpZiggIWlzX2FycmF5KCAkdGhpcy0+VmFsdWUgKSApCgkgICAgICB7CgkJJHZhbCA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkgICAgICB9CgkgIH0KICAgJGNzc2lkID0gJHRoaXMtPkdldENTU0lkVGFnKCk7CglyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJHJlc3VsdHMsICR2YWwsCgkJCQkJICAgJHNpemUsICRjc3NpZCk7CiAgICAgIH0KCiAgICByZXR1cm4gJyc7IC8vIGVycm9yCiAgfQoKCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgLy8gcmV0dXJuIGEgc3RyaW5nIGZvciBkaXNwbGF5aW5nIGluIHRoZSBvcHRpb25zIGZpZWxkCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGNhdGFsb2dlciA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDYXRhbG9nZXInKTsKICAgIGlmKCAhJGNhdGFsb2dlciApCiAgICAgIHsKCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnKTsKICAgICAgfQogICAgcmV0dXJuICcnOwogIH0KCQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkY2F0YWxvZ2VyID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NhdGFsb2dlcicpOwogICAgaWYoICEkY2F0YWxvZ2VyICkKICAgICAgewoJJHRtcCA9IGFycmF5KCRtb2QtPkxhbmcoJ3dhcm5pbmcnKSwkbW9kLT5MYW5nKCdlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnKSk7CgkkbWFpbltdID0gJHRtcDsKICAgICAgfQogICAgZWxzZQogICAgICB7CglnbG9iYWwgJGdDbXM7CgkkY2F0YWxvZ2VyLT5nZXRVc2VyQXR0cmlidXRlcygpOwoJJGF0dHJzID0gJGdDbXMtPnZhcmlhYmxlc1snY2F0YWxvZ19hdHRycyddOwoKCSR0bXAgPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oZWlnaHQnKSwKCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJICAgJ2ZicnBfb3B0X2xpbmVzJywKCQkJCQkgICAkdGhpcy0+R2V0T3B0aW9uKCdsaW5lcycsJzUnKSwzLDMpLgoJCSAgICAgJyZuYnNwOycuJG1vZC0+TGFuZygnaGVscF9maWVsZF9oZWlnaHQnKSk7CgkkbWFpbltdID0gJHRtcDsKCgkkdG1wID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbmFtZV9yZWdleCcpLAoJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAnZnJicF9vcHRfbmFtZXJlZ2V4JywKCQkJCQkgICAkdGhpcy0+R2V0T3B0aW9uKCduYW1lcmVnZXgnLCcnKSwKCQkJCQkgICAyNSwyNSkuCgkJICAgICAnJm5ic3A7Jy4kbW9kLT5MYW5nKCdoZWxwX25hbWVfcmVnZXgnKSk7CgkkbWFpbltdID0gJHRtcDsKCgkkdG1wID0gYXJyYXkoJycsJG1vZC0+TGFuZygnaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcycpKTsKCSRtYWluW10gPSAkdG1wOwoJCglmb3JlYWNoKCAkYXR0cnMgYXMgJG9uZSApCgkgIHsKCSAgICAkc2FmZWF0dHIgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJycsJG9uZS0+YXR0cikpOwoJICAgIGlmKCAkb25lLT5pc190ZXh0ICkgY29udGludWU7CgkgICAgJHRtcCA9IGFycmF5KCRvbmUtPmF0dHIsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCSAgICAgICAnZmJycF9vcHRfYXR0cl8nLiRzYWZlYXR0ciwKCQkJCQkgICAgICAgJHRoaXMtPkdldE9wdGlvbignYXR0cl8nLiRzYWZlYXR0ciwnJyksCgkJCQkJICAgICAgIDMwLDgwKSk7CgkgICAgJG1haW5bXSA9ICR0bXA7CgkgIH0KICAgICAgfQoKICAgICRhZHYgPSBhcnJheSgpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwogICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQogICAgICB7CgkkZmllbGRSZXQgPSBhcnJheSgpOwoJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWlmICgkYXNfc3RyaW5nKQoJICB7CgkgICAgcmV0dXJuIGpvaW4oJGZvcm0tPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpLCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWVsc2UKCSAgewoJICAgIHJldHVybiBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICB9CQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJaWYgKCRhc19zdHJpbmcpCgkgIHsKCSAgICByZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgcmV0dXJuIGFycmF5KCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJICB9CiAgICAgIH0KCQogIH0KCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJDaGVja2JveEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAgJ0NoZWNrYm94RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX211c3RfY2hlY2snKT0+J2NoZWNrZWQnCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGxhYmVsID0gJyc7CgkJaWYgKHN0cmxlbigkdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcsJycpKSA+IDApCgkJCXsKCQkJJGxhYmVsID0gJyZuYnNwOzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCkuJyI+Jy4kdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcpLic8L2xhYmVsPic7CgkJCX0KCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpPT0nMScpCgkJCXsKCQkJJHRoaXMtPlZhbHVlID0gJ3QnOwoJCQl9CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAndCcsJHRoaXMtPlZhbHVlLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSkuJGxhYmVsOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICR0aGlzLT5HZXRPcHRpb24oJ2NoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX2NoZWNrZWQnKSk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkcmV0ID0gICgkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpPT0nMSc/JG1vZC0+TGFuZygnY2hlY2tlZF9ieV9kZWZhdWx0Jyk6JG1vZC0+TGFuZygndW5jaGVja2VkX2J5X2RlZmF1bHQnKSk7CgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCgkJICB7CgkJICAJJHJldCAuPSAiLCAiLmFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJICB9CgkJcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGFiZWwnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2xhYmVsJywnJyksMjUsMjU1KSksCiAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrZWRfdmFsdWUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignY2hlY2tlZF92YWx1ZScsJG1vZC0+TGFuZygndmFsdWVfY2hlY2tlZCcpKSwyNSwyNTUpKSwKICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdW5jaGVja2VkX3ZhbHVlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3VuY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSksMjUsMjU1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfc2V0JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2lzX2NoZWNrZWQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9pc19jaGVja2VkJywgJzEnLCAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpKSkKCQkJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdjaGVja2VkJzoKCQkgIAkgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJICAJICAgICAgICAgICB7CgkJICAJICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJICAJICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3lvdV9tdXN0X2NoZWNrJywkdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcsJycpKTsKCQkgIAkgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICB9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94R3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGJveENvdW50OwoJdmFyICRib3hBZGQ7CgkKCS8vIENvbnN0cnVjdG9yCglmdW5jdGlvbiBmYkNoZWNrYm94R3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NoZWNrYm94R3JvdXBGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPmJveEFkZCA9IDA7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCS8vIENvdW50IGhvdyBtYW55IGJveGVzIHdlIGhhdmUKCWZ1bmN0aW9uIGNvdW50Qm94ZXMoKQoJewoJCSR0bXAgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCWlmIChpc19hcnJheSgkdG1wKSkgewoJCQoJICAgICAgICAkdGhpcy0+Ym94Q291bnQgPSBjb3VudCgkdG1wKTsKCQkKCQl9IGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpIHsKCSAgICAgICAgCgkJCSR0aGlzLT5ib3hDb3VudCA9IDE7CgkgICAgfSBlbHNlIHsKCQkJCgkJCSR0aGlzLT5ib3hDb3VudCA9IDA7CgkgICAgfQoJfQoKCS8vIFJldHVybiBzdGF0dXMKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewogICAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCQkkcmV0ID0gJG1vZC0+TGFuZygnYm94ZXMnLCR0aGlzLT5ib3hDb3VudCk7CgkJIHJldHVybiAkcmV0OwoJfQoKCS8vIEdldCBhZGQgYnV0dG9uCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2FkZF9jaGVja2JveGVzJyk7Cgl9CgoJLy8gR2V0IGRlbGV0ZSBidXR0b24KCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnZGVsZXRlX2NoZWNrYm94ZXMnKTsKCX0KCgkvLyBHZXQgaW5wdXQKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG5hbWVzID0gJHRoaXMtPkdldE9wdGlvblJlZignYm94X25hbWUnKTsKCQkkaXNfc2V0ID0gJHRoaXMtPkdldE9wdGlvblJlZignYm94X2lzX3NldCcpOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQlpZiAoISBpc19hcnJheSgkbmFtZXMpKQoJCQl7CgkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJCX0JCgkJaWYgKCEgaXNfYXJyYXkoJGlzX3NldCkpCgkJCXsKCQkJJGlzX3NldCA9IGFycmF5KCRpc19zZXQpOwoJCQl9CgkJJGZpZWxkRGlzcCA9IGFycmF5KCk7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKCQkJewoJCQkkbGFiZWwgPSAnJzsKCQkJJHRoaXNCb3ggPSBuZXcgc3RkQ2xhc3MoKTsKCQkJaWYgKHN0cmxlbigkbmFtZXNbJGldKSA+IDApCgkJCQl7CgkJCQkkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXycuJGkpLiciPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJCQkJJHRoaXNCb3gtPnRpdGxlID0gJG5hbWVzWyRpXTsKCQkJCX0KCQkJJGNoZWNrX3ZhbCA9IGZhbHNlOwoJCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJCXsKCQkJCSRjaGVja192YWwgPSAkdGhpcy0+RmluZEFycmF5VmFsdWUoJGkrMSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCWlmIChpc3NldCgkaXNfc2V0WyRpXSkgJiYgJGlzX3NldFskaV0gPT0gJ3knKQoJCQkJCXsKCQkJCQkkY2hlY2tfdmFsID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCSR0aGlzQm94LT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgKCRpKzEpLAoJCQkJJGNoZWNrX3ZhbCAhPT0gZmFsc2U/KCRpKzEpOictMScsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnXycuJGkpKTsKCgkJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCQl9CQkJCgkJcmV0dXJuICRmaWVsZERpc3A7Cgl9CgoJLy8gR2V0IEh1bWFuIHJlYWRhYmxlIHZhbHVlCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCQoJCS8vIEluaXQgbmFtZXMKCQkkbmFtZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCWlmICghIGlzX2FycmF5KCRuYW1lcykpIHsKCQkKCQkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJfQoJCQoJCS8vIEluaXQgY2hlY2tlZCBib3hlcwoJCSRjaGVja2VkID0gJHRoaXMtPkdldE9wdGlvblJlZignYm94X2NoZWNrZWQnKTsKCQlpZiAoISBpc19hcnJheSgkY2hlY2tlZCkpIHsKCQkKCQkJJGNoZWNrZWQgPSBhcnJheSgkY2hlY2tlZCk7CgkJfQoJCQoJCS8vIEluaXQgdW5jaGVja2VkIGJveGVzCgkJJHVuY2hlY2tlZCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF91bmNoZWNrZWQnKTsKCQlpZiAoISBpc19hcnJheSgkdW5jaGVja2VkKSkgewoJCQoJCQkkdW5jaGVja2VkID0gYXJyYXkoJHVuY2hlY2tlZCk7CgkJfQoJCQoJCS8vJGZpZWxkTGFiZWxzID0gYXJyYXkoKTsKCQkkZmllbGRSZXQgPSBhcnJheSgpOwoJCWZvciAoJGk9MTskaTw9Y291bnQoJG5hbWVzKTskaSsrKSB7CgkJCgkJCWlmICgkdGhpcy0+RmluZEFycmF5VmFsdWUoJGkpID09PSBmYWxzZSkgewoJCQkKCQkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdub19lbXB0eScsJzAnKSAhPSAnMScgJiYgaXNzZXQoJHVuY2hlY2tlZFskaS0xXSkgJiYgdHJpbSgkdW5jaGVja2VkWyRpLTFdKSAhPSAnJyApIHsKCQkJCQoJCQkJCSRmaWVsZFJldFskbmFtZXNbJGktMV1dID0gJHVuY2hlY2tlZFskaS0xXTsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCQoJCQkJaWYoIGlzc2V0KCRjaGVja2VkWyRpLTFdKSAmJiB0cmltKCRjaGVja2VkWyRpLTFdKSAhPSAnJyApICRmaWVsZFJldFskbmFtZXNbJGktMV1dID0gJGNoZWNrZWRbJGktMV07CgkJCX0KCQl9CgkJCgkJaWYgKCRhc19zdHJpbmcpIHsKCQkJCgkJCS8vIENoZWNrIGlmIHdlIHNob3VsZCBpbmNsdWRlIGxhYmVscwoJCQlpZigkdGhpcy0+R2V0T3B0aW9uKCdpbmNsdWRlX2xhYmVscycsJzAnKSA9PSB0cnVlKSB7CgkJCQoJCQkJJG91dHB1dCA9ICcnOwoJCQkJZm9yZWFjaCgkZmllbGRSZXQgYXMgJGtleT0+JHZhbHVlKSB7CgkJCQkKCQkJCQkkb3V0cHV0IC49ICRrZXkuJzogJy4kdmFsdWUuJGZvcm0tPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpOwoJCQkJCgkJCQl9CgkJCQoJCQkJJG91dHB1dCA9IHN1YnN0cigkb3V0cHV0LDAsc3RybGVuKCRvdXRwdXQpLTEpOwoJCQkJcmV0dXJuICRvdXRwdXQ7CgkJCX0KCQkJCgkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwoJCQkKCQl9IGVsc2UgewoJCQoJCQlyZXR1cm4gJGZpZWxkUmV0OwoJCX0KCX0KCgkvLyBBZGQgYWN0aW9uCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+Ym94QWRkID0gMTsKCX0KCgkvLyBEZWxldGUgYWN0aW9uCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfdW5jaGVja2VkJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9pc19zZXQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCS8vIFBvcHVsYXRlIHRhYnMKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR5ZXNObyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PiduJywkbW9kLT5MYW5nKCd5ZXMnKT0+J3knKTsKCgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCQlpZiAoJHRoaXMtPmJveEFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmJveENvdW50ICs9ICR0aGlzLT5ib3hBZGQ7CgkJCSR0aGlzLT5ib3hBZGQgPSAwOwoJCQl9CgkJCSRib3hlcyA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSBwYWdldGFibGUiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+PHRoZWFkPjx0cj48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV91bmNoZWNrZWRfdmFsdWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF9zZXQnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT4nOwoKCQkkcm93Y2xhc3MgPSAncm93MSc7CgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+Ym94Q291bnQ+MT8kdGhpcy0+Ym94Q291bnQ6MSk7JGkrKykKCQkJewoJCQkkYm94ZXMgLj0gJzx0ciBjbGFzcz0iJy4kcm93Y2xhc3MuJyI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfbmFtZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF9jaGVja2VkW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2JveF91bmNoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF91bmNoZWNrZWQnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLiAgICAgICAgICAgIAkJICAgIAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYm94X2lzX3NldFtdJywgJHllc05vLCAtMSwgJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF9pc19zZXQnLCRpKSkuCQogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCQkJCgkJCSgkcm93Y2xhc3MgPT0gJ3JvdzEnPyRyb3djbGFzcz0ncm93Mic6JHJvd2NsYXNzPSdyb3cxJyk7CgkJCX0KCQkkYm94ZXMgLj0gJzwvdGJvZHk+PC90YWJsZT4nOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCcpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfbm9fZW1wdHknLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbm9fZW1wdHknLCcxJywkdGhpcy0+R2V0T3B0aW9uKCdub19lbXB0eScsJzAnKSkuJG1vZC0+TGFuZygndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnKSwkYm94ZXMpCgkJKTsKCQkKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2luY2x1ZGVfbGFiZWxzJywnMCcpLgoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2luY2x1ZGVfbGFiZWxzJywnMScsJHRoaXMtPkdldE9wdGlvbignaW5jbHVkZV9sYWJlbHMnLCcwJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHNfaGVscCcpKQoJCSk7CgkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCgkvLyBCZWZvcmUgYWRtaW4gc3VibWl0IGRvIGNsZWFudXAKCWZ1bmN0aW9uIFBvc3RBZG1pblN1Ym1pdENsZWFudXAoKQoJewoJCSRuYW1lcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJJGNoZWNrZWQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfY2hlY2tlZCcpOwoJCSR1bmNoZWNrZWQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfdW5jaGVja2VkJyk7CgkJJGlzX3NldCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9pc19zZXQnKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCWlmICgkbmFtZXNbJGldID09ICcnICYmICRjaGVja2VkWyRpXSA9PSAnJyApCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X25hbWUnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X2NoZWNrZWQnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X3VuY2hlY2tlZCcsICRpKTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfaXNfc2V0JywgJGkpOwoJCQkJJGktLTsKCQkJCX0KCQkJfQoJCSR0aGlzLT5jb3VudEJveGVzKCk7Cgl9CgkKfSAvLyBFbmQgb2YgQ2xhc3MKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/CompanyDirectoryField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgovKiBBIGNsYXNzIHRvIHByb3ZpZGUgYSBkeW5hbWljIG11bHRpc2VsZWN0IGxpc3QgdG8gYWxsb3cgc2VsZWN0aW5nIG9uZQogKiBvciBtb3JlIGl0ZW1zIGZyb20gdGhlIENvbXBhbnlEaXJlY3RvcnkgCiAqIHRoZSBpdGVtIGxpc3QgaXMgZmlsdGVyZWQgYnkgYW4gYXJyYXkKICogb2Ygb3B0aW9ucyBhcyBzcGVjaWZpZWQgaW4gdGhlIGFkbWluLgogKiBUaGlzIEZpZWxkIHdyaXR0ZW4gYnkgSmVyZW15IEJhc3MgPGplcmVteUJhc3NAY2FibGVvbmUubmV0PgogKi8KY2xhc3MgZmJDb21wYW55RGlyZWN0b3J5RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgogIGZ1bmN0aW9uIGZiQ29tcGFueURpcmVjdG9yeUZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0NvbXBhbnlEaXJlY3RvcnlGaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CiAgICAkdGhpcy0+SGFzQWRkT3AgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IGZhbHNlOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKCiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJENvbXBhbnlEaXJlY3RvcnkgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ29tcGFueURpcmVjdG9yeScpOwogICAgaWYoICEkQ29tcGFueURpcmVjdG9yeSApCiAgICAgIHsKCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJyk7CiAgICAgIH0KCiAgICAkcmVzdWx0cyA9IGFycmF5KCk7CgoJCSRkYiA9ICRnQ21zLT5HZXREYigpOwogCQkkTGlrZT0kdGhpcy0+R2V0T3B0aW9uKCdDYXRlZ29yeScsJyUnKTsKCQlpZigkTGlrZT09Jyd8fCRMaWtlPT0nJSd8fCRMaWtlPT0nQWxsJyl7CgkJCSRwcm9jZXNzUGF0aD0iTElLRSAgJyUnIjsKCQl9ZWxzZXsKCQkJJHByb2Nlc3NQYXRoPSI9ICA/IjsKCQl9CiAJCSRxdWVyeSA9ICdTRUxFQ1QgY29tLmlkLCBjb20uY29tcGFueV9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyBBUyBjb21jYXQgJwoJCQkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgQVMgY2F0IE9OIGNhdC5pZCA9IGNvbWNhdC5jYXRlZ29yeV9pZCAnCgkJCQkuJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIEFTIGNvbSBPTiBjb20uaWQgPSBjb21jYXQuY29tcGFueV9pZCAnCgkJCQkuJ1dIRVJFIGNhdC5uYW1lICcuJHByb2Nlc3NQYXRoLicgQU5EIHN0YXR1cyA9IFwncHVibGlzaGVkXCcnOwoKCQkkcXVlcnkyID0gJ1NFTEVDVCB2YWx1ZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgQVMgY29tZnYgJwoJCQkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBBUyBmZGQgT04gZmRkLmlkID0gY29tZnYuZmllbGRkZWZfaWQgJwoJCQkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBBUyBjb20gT04gY29tZnYuY29tcGFueV9pZCA9IGNvbS5pZCAnCgkJCQkuJ1dIRVJFIGNvbS5jb21wYW55X25hbWUgPSA/IEFORCBmZGQubmFtZSA9ID8nOwoJCSR2YWw9YXJyYXkoKTsKCQkkY29tcGFuaWVzID0gYXJyYXkoKTsKCQkkZmllbGQ9JHRoaXMtPkdldE9wdGlvbignRmllbGREZWZzJywnJyk7CgkJaWYoJExpa2U9PScnfHwkTGlrZT09JyUnfHwkTGlrZT09J0FsbCcpewoJCQkkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgLCBhcnJheSgpKTsKCQkJCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKXsKCQkJCQkkY29tcGFueT0kcm93Wydjb21wYW55X25hbWUnXTsKCQkJCQkkRkR2YWw9Jyc7CgkJCQkJJGRicjIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeTIgLCBhcnJheSgkY29tcGFueSwkZmllbGQpKTsKCQkJCQkJd2hpbGUoICRkYnIyICYmICgkcm93ID0gJGRicjItPkZldGNoUm93KCkpICl7CgkJCQkJCQkkRkR2YWw9JHJvd1sndmFsdWUnXTsKCQkJCQkJfQoJCQkJCSRjb21wYW5pZXNbJGNvbXBhbnldID0gJEZEdmFsOwoJCQkJfQoKCQl9ZWxzZXsKCQkJaWYoaXNfYXJyYXkoJExpa2UpKXsKCQkJCWZvcmVhY2goJExpa2UgYXMgJGtleSA9PiAkdmFsdWUpewoJCQkJCSRkYnIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSAsIGFycmF5KCR2YWx1ZSkpOwoJCQkJCQl3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICl7CgkJCQkJCQkkY29tcGFueT0kcm93Wydjb21wYW55X25hbWUnXTsKCQkJCQkJCSRGRHZhbD0nJzsKCQkJCQkJCSRkYnIyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkyICwgYXJyYXkoJGNvbXBhbnksJGZpZWxkKSk7CgkJCQkJCQkJd2hpbGUoICRkYnIyICYmICgkcm93ID0gJGRicjItPkZldGNoUm93KCkpICl7CgkJCQkJCQkJCSRGRHZhbD0kcm93Wyd2YWx1ZSddOwoJCQkJCQkJCX0KCQkJCQkJCSRjb21wYW5pZXNbJGNvbXBhbnldID0gJEZEdmFsOwoJCQkJCQl9CgkJCQl9CgkJCX1lbHNlewoJCQkJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICwgYXJyYXkoJExpa2UpKTsKCQkJCQl3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICl7CgkJCQkJCQkkY29tcGFueT0kcm93Wydjb21wYW55X25hbWUnXTsKCQkJCQkJCSRGRHZhbD0nJzsKCQkJCQkJCSRkYnIyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkyICwgYXJyYXkoJGNvbXBhbnksJGZpZWxkKSk7CgkJCQkJCQkJd2hpbGUoICRkYnIyICYmICgkcm93ID0gJGRicjItPkZldGNoUm93KCkpICl7CgkJCQkJCQkJCSRGRHZhbD0kcm93Wyd2YWx1ZSddOwoJCQkJCQkJCX0KCQkJCQkJCSRjb21wYW5pZXNbJGNvbXBhbnldID0gJEZEdmFsOwoJCQkJCX0KCQkJfQoJCX0KCiAgICAgIGZvcmVhY2goJGNvbXBhbmllcyBhcyAka2V5PT4kdmFsKQogICAgICAgICB7CiAgICAgICAgIGlmIChlbXB0eSgkdmFsKSkKICAgICAgICAgICAgewogICAgICAgICAgICAkY29tcGFuaWVzWyRrZXldPSRrZXk7CiAgICAgICAgICAgIH0KICAgICAgICAgfQoJCS8vIEFsbCBkb25lLCBkbyB3ZSBoYXZlIHNvbWV0aGluZyB0byBkaXNwbGF5PwoJCWlmKCBjb3VudCgkY29tcGFuaWVzKSApewoJCQkkc2l6ZSA9IG1pbig1MCxjb3VudCgkY29tcGFuaWVzKSk7IC8vIG1heGltdW0gNTAgbGluZXMsIHRob3VnaCB0aGlzIGlzIHByb2JhYmx5IGJpZwoJCQkKCQkJJHZhbCA9IGFycmF5KCk7CgkJCWlmKCAkdGhpcy0+VmFsdWUgIT09IGZhbHNlICl7CgkJCQkkdmFsID0gJHRoaXMtPlZhbHVlOwoJCQkJaWYoICFpc19hcnJheSggJHRoaXMtPlZhbHVlICkgKXsKCQkJCQkkdmFsID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJfQoJCQkKCQkJJGNzc2lkID0gJHRoaXMtPkdldENTU0lkVGFnKCk7CgkJCSRVc2VySW5wdXQgPSAkdGhpcy0+R2V0T3B0aW9uKCdVc2VySW5wdXQnLCdEcm9wZG93bicpOwoJCQlpZigkVXNlcklucHV0PT0nU2VsZWN0IExpc3Qtc2luZ2xlJyl7CgkJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJGNvbXBhbmllcywgJHZhbCwgJHNpemUsICRjc3NpZCk7CgkJCX1lbHNlaWYoJFVzZXJJbnB1dD09J1NlbGVjdCBMaXN0LW11bHRpcGxlJyl7CgkJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJGNvbXBhbmllcywgJHZhbCwgJHNpemUsICRjc3NpZCwgdHJ1ZSk7CgkJCX1lbHNlaWYoJFVzZXJJbnB1dD09J0Ryb3Bkb3duJyl7CgkJCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfXycuJHRoaXMtPklkLicnLCAkY29tcGFuaWVzLCAnLTEnLCAkdmFsKTsKCQkJfWVsc2VpZigkVXNlcklucHV0PT0nUmFkaW8gR3JvdXAnKXsKCQkJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCdmYnJwX18nLiR0aGlzLT5JZC4nJywgJGNvbXBhbmllcywgJHZhbCwnJywnICcpOwoJCQl9CgkJfQoKICAgIHJldHVybiAnJzsgLy8gZXJyb3IKCX0KCgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIC8vIHJldHVybiBhIHN0cmluZyBmb3IgZGlzcGxheWluZyBpbiB0aGUgb3B0aW9ucyBmaWVsZAogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRDb21wYW55RGlyZWN0b3J5ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NvbXBhbnlEaXJlY3RvcnknKTsKICAgIGlmKCAhJENvbXBhbnlEaXJlY3RvcnkgKQogICAgICB7CglyZXR1cm4gJG1vZC0+TGFuZygnZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZScpOwogICAgICB9CiAgICByZXR1cm4gJyc7CiAgfQoJCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJZ2xvYmFsICRnQ21zOwogICAvLyRDb21wYW55RGlyZWN0b3J5ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCSAkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCwgbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzICc7CgkJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICwgYXJyYXkoKSk7CgkJJENhdGVnb3JpZXMgPSBhcnJheSgpOwoJCSRDYXRlZ29yaWVzWydBbGwnXSA9ICdBbGwnOwoJCXdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKQoJCXsKCQkJJENhdGVnb3JpZXNbJHJvd1snbmFtZSddXSA9ICRyb3dbJ25hbWUnXTsKCQl9CgkJJENhdGVnb3J5U2VsZWN0ZWQ9JHRoaXMtPkdldE9wdGlvbignQ2F0ZWdvcnknLCcnKTsKCgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKCQkkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgLCBhcnJheSgpKTsKCQkkRmllbGREZWZzID0gYXJyYXkoKTsKCQkkRmllbGREZWZzWydub25lJ10gPSAnbm9uZSc7CgkJd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpKSApCgkJewoJCQkkRmllbGREZWZzWyRyb3dbJ25hbWUnXV0gPSAkcm93WyduYW1lJ107CgkJfQoJCSRGaWVsZERlZnNTZWxlY3RlZD0kdGhpcy0+R2V0T3B0aW9uKCdGaWVsZERlZnMnLCcnKTsKCQkKCQkvL2NoZWNrIGFuZCBmb3JjZSB0aGUgcmlnaHQgdHlwZQoJCWlmKCFpc19hcnJheSgkQ2F0ZWdvcnlTZWxlY3RlZCkpeyRDYXRlZ29yeVNlbGVjdGVkPWV4cGxvZGUoJywnLCRDYXRlZ29yeVNlbGVjdGVkKTt9CgkJaWYoIWlzX2FycmF5KCRGaWVsZERlZnNTZWxlY3RlZCkpeyRGaWVsZERlZnNTZWxlY3RlZD1leHBsb2RlKCcsJywkRmllbGREZWZzU2VsZWN0ZWQpO30JCQoJCQoJCQoJCSRVc2VpbnB1dD1hcnJheSgkbW9kLT5MYW5nKCdvcHRpb25fZHJvcGRvd24nKT0+J0Ryb3Bkb3duJywKCQkJICAgJG1vZC0+TGFuZygnb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJyk9PidTZWxlY3QgTGlzdC1zaW5nbGUnLAoJCQkgICAkbW9kLT5MYW5nKCdvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZScpPT4nU2VsZWN0IExpc3QtbXVsdGlwbGUnLAoJCQkgICAkbW9kLT5MYW5nKCdvcHRpb25fcmFkaW9ncm91cCcpPT4nUmFkaW8gR3JvdXAnCgkJCSAgICk7CgkJCgkJJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZScpLCcnKSwgIAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcGlja19jYXRlZ29yaWVzJyksCgkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfQ2F0ZWdvcnlbXScsICRDYXRlZ29yaWVzLCAkQ2F0ZWdvcnlTZWxlY3RlZCwgNSwnJyx0cnVlKQoJCQkJKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3BpY2tfZmllbGRkZWYnKSwKCQkJCQkkbW9kLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9GaWVsZERlZnMnLCAkRmllbGREZWZzLCAkRmllbGREZWZzU2VsZWN0ZWQsIDUsJycsZmFsc2UpCgkJCQkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCcpLAoJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24gKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfVXNlcklucHV0JywgJFVzZWlucHV0LCAnLTEnLCAkdGhpcy0+R2V0T3B0aW9uKCdVc2VySW5wdXQnLCcnKSkgCgkJCQkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgIGlmICgkdGhpcy0+SGFzVmFsdWUoKSkKICAgICAgewoJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICAkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICB9CglpZiAoJGFzX3N0cmluZykKCSAgewoJICAgIHJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkdGhpcy0+VmFsdWUpOwoJICB9CgllbHNlCgkgIHsKCSAgICByZXR1cm4gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCSAgfQkJCQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCWlmICgkYXNfc3RyaW5nKQoJICB7CgkgICAgcmV0dXJuICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkgIH0KCWVsc2UKCSAgewoJICAgIHJldHVybiBhcnJheSgkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCSAgfQogICAgICB9CgkKICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/ComputedField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKICAgCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNyBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiQ29tcHV0ZWRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiQ29tcHV0ZWRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdDb21wdXRlZEZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOwogICAgJHRoaXMtPkhhc0xhYmVsID0gMTsKICAgICR0aGlzLT5OZWVkc0RpdiA9IDA7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5Jc0NvbXB1dGVkT25TdWJtaXNzaW9uID0gdHJ1ZTsKICB9CgogICAgZnVuY3Rpb24gQ29tcHV0ZU9yZGVyKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbignb3JkZXInLCcxJyk7ICAgIAogICAgfQoKICAgIGZ1bmN0aW9uIENvbXB1dGUoKQogICAgewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgogICAgICAgICRtYXBJZCA9IGFycmF5KCk7CgkJJGV2YWxfc3RyaW5nID0gZmFsc2U7CgogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgICAgICAgIHsKCSAgICAgICAgJG1hcElkWyRvdGhlcnNbJGldLT5HZXRJZCgpXSA9ICRpOwogICAgICAgICAgICB9CgogICAgICAgICRmbGRzID0gYXJyYXkoKTsKICAgICAgICAkcHJvY3N0ciA9ICR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyk7CiAgICAgICAgcHJlZ19tYXRjaF9hbGwoJy9cJGZsZF8oXGQrKS8nLCAkcHJvY3N0ciwgJGZsZHMpOwogICAgICAgIAogICAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdHJpbmdfb3JfbnVtYmVyX2V2YWwnLCdudW1lcmljJykgPT0gJ251bWVyaWMnKQogICAgICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbWFwSWRbJHRGXSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbWFwSWRbJHRGXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbnVtZXJpYygkb3RoZXJzWyRyZWZdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHByb2NzdHIgPSBzdHJfcmVwbGFjZSgnJGZsZF8nLiR0RiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvdGhlcnNbJHJlZl0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpLCRwcm9jc3RyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkcHJvY3N0ciA9IHN0cl9yZXBsYWNlKCckZmxkXycuJHRGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAnLCRwcm9jc3RyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgJGV2YWxfc3RyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3N0cmluZ19vcl9udW1iZXJfZXZhbCcsJ251bWVyaWMnKSA9PSAnY29tcHV0ZScpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAoJGZsZHNbMV0gYXMgJHRGKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRtYXBJZFskdEZdKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHJlZiA9ICRtYXBJZFskdEZdOwogICAgICAgICAgICAgICAgICAgICRwcm9jc3RyID0gc3RyX3JlcGxhY2UoJyRmbGRfJy4kdEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c2FuaXRpemVWYWx1ZSgkb3RoZXJzWyRyZWZdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSksJHByb2NzdHIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCQkJJGV2YWxfc3RyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgfQoJCWVsc2UKCQkJewoJCQkkdGhpc1ZhbHVlID0gJyc7CgkJCWZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKCQkJCXsKCQkJCWlmIChpc3NldCgkbWFwSWRbJHRGXSkpCgkJCQkJewoJCQkJCSRyZWYgPSAkbWFwSWRbJHRGXTsKCQkJCQkkdGhpcy0+VmFsdWUgLj0gJG90aGVyc1skcmVmXS0+R2V0VmFsdWUoKTsKCQkJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc3RyaW5nX29yX251bWJlcl9ldmFsJywnbnVtZXJpYycpICE9ICd1bnN0cmluZycpCgkJCQkJCXsKCQkJCQkJJHRoaXMtPlZhbHVlIC49ICcgJzsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCWlmICgkZXZhbF9zdHJpbmcpCgkJCXsKCQkJJHN0clRvRXZhbCA9ICJcJHRoaXMtPlZhbHVlPSRwcm9jc3RyOyI7CgkJCS8vIHNlZSBpZiB3ZSBjYW4gdHJhcCBhbiBlcnJvcgoJCQkvLyB0aGlzIGlzIGFsbCB2dWxuZXJhYmxlIHRvIGFuIGV2aWwgZm9ybSBkZXNpZ25lciwgYnV0CgkJCS8vIG5vdCBhbiBldmlsIGZvcm0gdXNlci4gCgkJCW9iX3N0YXJ0KCk7CgkJCWlmIChldmFsKCdmdW5jdGlvbiB0ZXN0Y2ZpZWxkJy5yYW5kKCkuJygpIHsnLiRzdHJUb0V2YWwuJ30nKSA9PT0gRkFMU0UpCgkJCQl7CgkJCQkkdGhpcy0+VmFsdWUgPSAkbW9kLT5MYW5nKCd0aXRsZV9iYWRfZnVuY3Rpb24nLCRwcm9jc3RyKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZXZhbCgkc3RyVG9FdmFsKTsKCQkJCX0gCgkJCW9iX2VuZF9jbGVhbigpOyAgICAgICAgICAgICAgICAKCQkJfQogICAgfQoKCS8vIHN0cmlwIGFueSBwb3NzaWJsZSBQSFAgZnVuY3Rpb24gZnJvbSBzdWJtaXR0ZWQgc3RyaW5nCglmdW5jdGlvbiBzYW5pdGl6ZVZhbHVlKCR2YWwpCgl7CgkJJGFyciA9IGdldF9kZWZpbmVkX2Z1bmN0aW9ucygpOyAvLyBpbnRlcm5hbCBhbmQgdXNlcgoJCSR2YWwgPSBzdHJfcmVwbGFjZSgkYXJyWydpbnRlcm5hbCddLCcnLCR2YWwpOwoJCSR2YWwgPSBzdHJfcmVwbGFjZSgkYXJyWyd1c2VyJ10sJycsJHZhbCk7CgkJcmV0dXJuICR2YWw7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHByb2Nlc3NUeXBlID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbnVtZXJpYycpPT4nbnVtZXJpYycsCgkJICAgICRtb2QtPkxhbmcoJ3RpdGxlX3N0cmluZycpPT4nc3RyaW5nJywgJG1vZC0+TGFuZygndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJyk9Pid1bnN0cmluZycsICRtb2QtPkxhbmcoJ3RpdGxlX2NvbXB1dGUnKT0+J2NvbXB1dGUnKTsKCQkKCQkkcmV0ID0gJHRoaXMtPmZvcm1fcHRyLT5maWVsZFZhbHVlVGVtcGxhdGUoKTsKCSAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnb3BlcmF0b3JzX2hlbHAnKSAuCgkgICAgICAgICc8L3RkPjwvdHI+PC90YWJsZT4nOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jb21wdXRlX3ZhbHVlJyksCiAgICAgICAgICAgIAkJYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3ZhbHVlJywkdGhpcy0+R2V0T3B0aW9uKCd2YWx1ZScsJycpLDM1LDEwMjQpLCRyZXQpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3N0cmluZ19vcl9udW1iZXJfZXZhbCcsCgkJCQkgICAgJHByb2Nlc3NUeXBlLAoJCQkJICAgICR0aGlzLT5HZXRPcHRpb24oJ3N0cmluZ19vcl9udW1iZXJfZXZhbCcsJ251bWVyaWMnKSkpLAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfb3JkZXInKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkgICAgJ2ZicnBfb3B0X29yZGVyJywkdGhpcy0+R2V0T3B0aW9uKCdvcmRlcicsJzEnKSw1LDEwKS4KCQkJCSAgICAkbW9kLT5MYW5nKCd0aXRsZV9vcmRlcl9oZWxwJykpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CountryPickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmNsYXNzIGZiQ291bnRyeVBpY2tlckZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCXZhciAkQ291bnRyaWVzOwoJCglmdW5jdGlvbiBmYkNvdW50cnlQaWNrZXJGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NvdW50cnlQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPkNvdW50cmllcyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vX2RlZmF1bHQnKT0+JycsCgkJICAgICAgICAkbW9kLT5MYW5nKCdBRicpID0+J0FGJywkbW9kLT5MYW5nKCdBWCcpID0+J0FYJywkbW9kLT5MYW5nKCdBTCcpID0+J0FMJywKCQkJCSRtb2QtPkxhbmcoJ0RaJykgPT4nRFonLCRtb2QtPkxhbmcoJ0FTJykgPT4nQVMnLCRtb2QtPkxhbmcoJ0FEJykgPT4nQUQnLAoJCQkJJG1vZC0+TGFuZygnQU8nKSA9PidBTycsJG1vZC0+TGFuZygnQUknKSA9PidBSScsJG1vZC0+TGFuZygnQVEnKSA9PidBUScsCgkJCQkkbW9kLT5MYW5nKCdBRycpID0+J0FHJywkbW9kLT5MYW5nKCdBUicpID0+J0FSJywkbW9kLT5MYW5nKCdBTScpID0+J0FNJywKCQkJCSRtb2QtPkxhbmcoJ0FXJykgPT4nQVcnLCRtb2QtPkxhbmcoJ0FVJykgPT4nQVUnLCRtb2QtPkxhbmcoJ0FUJykgPT4nQVQnLAoJCQkJJG1vZC0+TGFuZygnQVonKSA9PidBWicsJG1vZC0+TGFuZygnQlMnKSA9PidCUycsJG1vZC0+TGFuZygnQkgnKSA9PidCSCcsCgkJCQkkbW9kLT5MYW5nKCdCQicpID0+J0JCJywkbW9kLT5MYW5nKCdCRCcpID0+J0JEJywkbW9kLT5MYW5nKCdCWScpID0+J0JZJywKCQkJCSRtb2QtPkxhbmcoJ0JFJykgPT4nQkUnLCRtb2QtPkxhbmcoJ0JaJykgPT4nQlonLCRtb2QtPkxhbmcoJ0JKJykgPT4nQkonLAoJCQkJJG1vZC0+TGFuZygnQk0nKSA9PidCTScsJG1vZC0+TGFuZygnQlQnKSA9PidCVCcsJG1vZC0+TGFuZygnQlcnKSA9PidCVycsCgkJCQkkbW9kLT5MYW5nKCdCTycpID0+J0JPJywkbW9kLT5MYW5nKCdCQScpID0+J0JBJywkbW9kLT5MYW5nKCdCVicpID0+J0JWJywKCQkJCSRtb2QtPkxhbmcoJ0JSJykgPT4nQlInLCRtb2QtPkxhbmcoJ0lPJykgPT4nSU8nLCRtb2QtPkxhbmcoJ0JOJykgPT4nQk4nLAoJCQkJJG1vZC0+TGFuZygnQkcnKSA9PidCRycsJG1vZC0+TGFuZygnQkYnKSA9PidCRicsJG1vZC0+TGFuZygnQkknKSA9PidCSScsCgkJCQkkbW9kLT5MYW5nKCdLSCcpID0+J0tIJywkbW9kLT5MYW5nKCdDTScpID0+J0NNJywkbW9kLT5MYW5nKCdDQScpID0+J0NBJywKCQkJCSRtb2QtPkxhbmcoJ0NWJykgPT4nQ1YnLCRtb2QtPkxhbmcoJ0tZJykgPT4nS1knLCRtb2QtPkxhbmcoJ0NGJykgPT4nQ0YnLAoJCQkJJG1vZC0+TGFuZygnVEQnKSA9PidURCcsJG1vZC0+TGFuZygnQ0wnKSA9PidDTCcsJG1vZC0+TGFuZygnQ04nKSA9PidDTicsCgkJCQkkbW9kLT5MYW5nKCdDWCcpID0+J0NYJywkbW9kLT5MYW5nKCdDQycpID0+J0NDJywkbW9kLT5MYW5nKCdDTycpID0+J0NPJywKCQkJCSRtb2QtPkxhbmcoJ0tNJykgPT4nS00nLCRtb2QtPkxhbmcoJ0NHJykgPT4nQ0cnLCRtb2QtPkxhbmcoJ0NEJykgPT4nQ0QnLAoJCQkJJG1vZC0+TGFuZygnQ0snKSA9PidDSycsJG1vZC0+TGFuZygnQ1InKSA9PidDUicsJG1vZC0+TGFuZygnQ0knKSA9PidDSScsCgkJCQkkbW9kLT5MYW5nKCdIUicpID0+J0hSJywkbW9kLT5MYW5nKCdDVScpID0+J0NVJywkbW9kLT5MYW5nKCdDWScpID0+J0NZJywKCQkJCSRtb2QtPkxhbmcoJ0NaJykgPT4nQ1onLCRtb2QtPkxhbmcoJ0RLJykgPT4nREsnLCRtb2QtPkxhbmcoJ0RKJykgPT4nREonLAoJCQkJJG1vZC0+TGFuZygnRE0nKSA9PidETScsJG1vZC0+TGFuZygnRE8nKSA9PidETycsJG1vZC0+TGFuZygnVFAnKSA9PidUUCcsCgkJCQkkbW9kLT5MYW5nKCdFQycpID0+J0VDJywkbW9kLT5MYW5nKCdFRycpID0+J0VHJywkbW9kLT5MYW5nKCdTVicpID0+J1NWJywKCQkJCSRtb2QtPkxhbmcoJ0dRJykgPT4nR1EnLCRtb2QtPkxhbmcoJ0VSJykgPT4nRVInLCRtb2QtPkxhbmcoJ0VFJykgPT4nRUUnLAoJCQkJJG1vZC0+TGFuZygnRVQnKSA9PidFVCcsJG1vZC0+TGFuZygnRksnKSA9PidGSycsJG1vZC0+TGFuZygnRk8nKSA9PidGTycsCgkJCQkkbW9kLT5MYW5nKCdGSicpID0+J0ZKJywkbW9kLT5MYW5nKCdGSScpID0+J0ZJJywkbW9kLT5MYW5nKCdGUicpID0+J0ZSJywKCQkJCSRtb2QtPkxhbmcoJ0ZYJykgPT4nRlgnLCRtb2QtPkxhbmcoJ0dGJykgPT4nR0YnLCRtb2QtPkxhbmcoJ1BGJykgPT4nUEYnLAoJCQkJJG1vZC0+TGFuZygnVEYnKSA9PidURicsJG1vZC0+TGFuZygnTUsnKSA9PidNSycsJG1vZC0+TGFuZygnR0EnKSA9PidHQScsCgkJCQkkbW9kLT5MYW5nKCdHTScpID0+J0dNJywkbW9kLT5MYW5nKCdHRScpID0+J0dFJywkbW9kLT5MYW5nKCdERScpID0+J0RFJywKCQkJCSRtb2QtPkxhbmcoJ0dIJykgPT4nR0gnLCRtb2QtPkxhbmcoJ0dJJykgPT4nR0knLCRtb2QtPkxhbmcoJ0dCJykgPT4nR0InLAoJCQkJJG1vZC0+TGFuZygnR1InKSA9PidHUicsJG1vZC0+TGFuZygnR0wnKSA9PidHTCcsJG1vZC0+TGFuZygnR0QnKSA9PidHRCcsCgkJCQkkbW9kLT5MYW5nKCdHUCcpID0+J0dQJywkbW9kLT5MYW5nKCdHVScpID0+J0dVJywkbW9kLT5MYW5nKCdHVCcpID0+J0dUJywKCQkJCSRtb2QtPkxhbmcoJ0dGJykgPT4nR0YnLCRtb2QtPkxhbmcoJ0dOJykgPT4nR04nLCRtb2QtPkxhbmcoJ0dXJykgPT4nR1cnLAoJCQkJJG1vZC0+TGFuZygnR1knKSA9PidHWScsJG1vZC0+TGFuZygnSFQnKSA9PidIVCcsJG1vZC0+TGFuZygnSE0nKSA9PidITScsCgkJCQkkbW9kLT5MYW5nKCdITicpID0+J0hOJywkbW9kLT5MYW5nKCdISycpID0+J0hLJywkbW9kLT5MYW5nKCdIVScpID0+J0hVJywKCQkJCSRtb2QtPkxhbmcoJ0lTJykgPT4nSVMnLCRtb2QtPkxhbmcoJ0lOJykgPT4nSU4nLCRtb2QtPkxhbmcoJ0lEJykgPT4nSUQnLAoJCQkJJG1vZC0+TGFuZygnSVInKSA9PidJUicsJG1vZC0+TGFuZygnSVEnKSA9PidJUScsJG1vZC0+TGFuZygnSUUnKSA9PidJRScsCgkJCQkkbW9kLT5MYW5nKCdJTCcpID0+J0lMJywkbW9kLT5MYW5nKCdJTScpID0+J0lNJywkbW9kLT5MYW5nKCdJVCcpID0+J0lUJywKCQkJCSRtb2QtPkxhbmcoJ0pFJykgPT4nSkUnLCRtb2QtPkxhbmcoJ0pNJykgPT4nSk0nLCRtb2QtPkxhbmcoJ0pQJykgPT4nSlAnLAoJCQkJJG1vZC0+TGFuZygnSk8nKSA9PidKTycsJG1vZC0+TGFuZygnS1onKSA9PidLWicsJG1vZC0+TGFuZygnS0UnKSA9PidLRScsCgkJCQkkbW9kLT5MYW5nKCdLSScpID0+J0tJJywkbW9kLT5MYW5nKCdLUCcpID0+J0tQJywkbW9kLT5MYW5nKCdLUicpID0+J0tSJywKCQkJCSRtb2QtPkxhbmcoJ0tXJykgPT4nS1cnLCRtb2QtPkxhbmcoJ0tHJykgPT4nS0cnLCRtb2QtPkxhbmcoJ0xBJykgPT4nTEEnLAoJCQkJJG1vZC0+TGFuZygnTFYnKSA9PidMVicsJG1vZC0+TGFuZygnTEInKSA9PidMQicsJG1vZC0+TGFuZygnTEknKSA9PidMSScsCgkJCQkkbW9kLT5MYW5nKCdMUicpID0+J0xSJywkbW9kLT5MYW5nKCdMWScpID0+J0xZJywkbW9kLT5MYW5nKCdMUycpID0+J0xTJywKCQkJCSRtb2QtPkxhbmcoJ0xUJykgPT4nTFQnLCRtb2QtPkxhbmcoJ0xVJykgPT4nTFUnLCRtb2QtPkxhbmcoJ01PJykgPT4nTU8nLAoJCQkJJG1vZC0+TGFuZygnTUcnKSA9PidNRycsJG1vZC0+TGFuZygnTVcnKSA9PidNVycsJG1vZC0+TGFuZygnTVknKSA9PidNWScsCgkJCQkkbW9kLT5MYW5nKCdNVicpID0+J01WJywkbW9kLT5MYW5nKCdNTCcpID0+J01MJywkbW9kLT5MYW5nKCdNVCcpID0+J01UJywKCQkJCSRtb2QtPkxhbmcoJ01IJykgPT4nTUgnLCRtb2QtPkxhbmcoJ01RJykgPT4nTVEnLCRtb2QtPkxhbmcoJ01SJykgPT4nTVInLAoJCQkJJG1vZC0+TGFuZygnTVUnKSA9PidNVScsJG1vZC0+TGFuZygnWVQnKSA9PidZVCcsJG1vZC0+TGFuZygnTVgnKSA9PidNWCcsCgkJCQkkbW9kLT5MYW5nKCdGTScpID0+J0ZNJywkbW9kLT5MYW5nKCdNQycpID0+J01DJywkbW9kLT5MYW5nKCdNRCcpID0+J01EJywKCQkJCSRtb2QtPkxhbmcoJ01BJykgPT4nTUEnLCRtb2QtPkxhbmcoJ01OJykgPT4nTU4nLCRtb2QtPkxhbmcoJ01TJykgPT4nTVMnLAoJCQkJJG1vZC0+TGFuZygnTVonKSA9PidNWicsJG1vZC0+TGFuZygnTU0nKSA9PidNTScsJG1vZC0+TGFuZygnTkEnKSA9PidOQScsCgkJCQkkbW9kLT5MYW5nKCdOUicpID0+J05SJywkbW9kLT5MYW5nKCdOUCcpID0+J05QJywkbW9kLT5MYW5nKCdOTCcpID0+J05MJywKCQkJCSRtb2QtPkxhbmcoJ0FOJykgPT4nQU4nLCRtb2QtPkxhbmcoJ05UJykgPT4nTlQnLCRtb2QtPkxhbmcoJ05DJykgPT4nTkMnLAoJCQkJJG1vZC0+TGFuZygnTlonKSA9PidOWicsJG1vZC0+TGFuZygnTkknKSA9PidOSScsJG1vZC0+TGFuZygnTkUnKSA9PidORScsCgkJCQkkbW9kLT5MYW5nKCdORycpID0+J05HJywkbW9kLT5MYW5nKCdOVScpID0+J05VJywkbW9kLT5MYW5nKCdORicpID0+J05GJywKCQkJCSRtb2QtPkxhbmcoJ01QJykgPT4nTVAnLCRtb2QtPkxhbmcoJ05PJykgPT4nTk8nLCRtb2QtPkxhbmcoJ09NJykgPT4nT00nLAoJCQkJJG1vZC0+TGFuZygnUEsnKSA9PidQSycsJG1vZC0+TGFuZygnUFcnKSA9PidQVycsJG1vZC0+TGFuZygnUFMnKSA9PidQUycsCgkJCQkkbW9kLT5MYW5nKCdQQScpID0+J1BBJywkbW9kLT5MYW5nKCdQRycpID0+J1BHJywkbW9kLT5MYW5nKCdQWScpID0+J1BZJywKCQkJCSRtb2QtPkxhbmcoJ1BFJykgPT4nUEUnLCRtb2QtPkxhbmcoJ1BIJykgPT4nUEgnLCRtb2QtPkxhbmcoJ1BOJykgPT4nUE4nLAoJCQkJJG1vZC0+TGFuZygnUEwnKSA9PidQTCcsJG1vZC0+TGFuZygnUFQnKSA9PidQVCcsJG1vZC0+TGFuZygnUFInKSA9PidQUicsCgkJCQkkbW9kLT5MYW5nKCdRQScpID0+J1FBJywkbW9kLT5MYW5nKCdSRScpID0+J1JFJywkbW9kLT5MYW5nKCdSTycpID0+J1JPJywKCQkJCSRtb2QtPkxhbmcoJ1JVJykgPT4nUlUnLCRtb2QtPkxhbmcoJ1JXJykgPT4nUlcnLCRtb2QtPkxhbmcoJ0dTJykgPT4nR1MnLAoJCQkJJG1vZC0+TGFuZygnS04nKSA9PidLTicsJG1vZC0+TGFuZygnTEMnKSA9PidMQycsJG1vZC0+TGFuZygnVkMnKSA9PidWQycsCgkJCQkkbW9kLT5MYW5nKCdXUycpID0+J1dTJywkbW9kLT5MYW5nKCdTTScpID0+J1NNJywkbW9kLT5MYW5nKCdTVCcpID0+J1NUJywKCQkJCSRtb2QtPkxhbmcoJ1NBJykgPT4nU0EnLCRtb2QtPkxhbmcoJ1NOJykgPT4nU04nLCRtb2QtPkxhbmcoJ1NDJykgPT4nU0MnLAoJCQkJJG1vZC0+TGFuZygnU0wnKSA9PidTTCcsJG1vZC0+TGFuZygnU0cnKSA9PidTRycsJG1vZC0+TGFuZygnU0knKSA9PidTSScsCgkJCQkkbW9kLT5MYW5nKCdTSycpID0+J1NLJywkbW9kLT5MYW5nKCdTQicpID0+J1NCJywkbW9kLT5MYW5nKCdTTycpID0+J1NPJywKCQkJCSRtb2QtPkxhbmcoJ1pBJykgPT4nWkEnLCRtb2QtPkxhbmcoJ0VTJykgPT4nRVMnLCRtb2QtPkxhbmcoJ0xLJykgPT4nTEsnLAoJCQkJJG1vZC0+TGFuZygnU0gnKSA9PidTSCcsJG1vZC0+TGFuZygnUE0nKSA9PidQTScsJG1vZC0+TGFuZygnU0QnKSA9PidTRCcsCgkJCQkkbW9kLT5MYW5nKCdTUicpID0+J1NSJywkbW9kLT5MYW5nKCdTSicpID0+J1NKJywkbW9kLT5MYW5nKCdTWicpID0+J1NaJywKCQkJCSRtb2QtPkxhbmcoJ1NFJykgPT4nU0UnLCRtb2QtPkxhbmcoJ0NIJykgPT4nQ0gnLCRtb2QtPkxhbmcoJ1NZJykgPT4nU1knLAoJCQkJJG1vZC0+TGFuZygnVFcnKSA9PidUVycsJG1vZC0+TGFuZygnVEonKSA9PidUSicsJG1vZC0+TGFuZygnVFonKSA9PidUWicsCgkJCQkkbW9kLT5MYW5nKCdUSCcpID0+J1RIJywkbW9kLT5MYW5nKCdURycpID0+J1RHJywkbW9kLT5MYW5nKCdUSycpID0+J1RLJywKCQkJCSRtb2QtPkxhbmcoJ1RPJykgPT4nVE8nLCRtb2QtPkxhbmcoJ1RUJykgPT4nVFQnLCRtb2QtPkxhbmcoJ1ROJykgPT4nVE4nLAoJCQkJJG1vZC0+TGFuZygnVFInKSA9PidUUicsJG1vZC0+TGFuZygnVE0nKSA9PidUTScsJG1vZC0+TGFuZygnVEMnKSA9PidUQycsCgkJCQkkbW9kLT5MYW5nKCdUVicpID0+J1RWJywkbW9kLT5MYW5nKCdVRycpID0+J1VHJywkbW9kLT5MYW5nKCdVQScpID0+J1VBJywKCQkJCSRtb2QtPkxhbmcoJ0FFJykgPT4nQUUnLCRtb2QtPkxhbmcoJ1VLJykgPT4nVUsnLCRtb2QtPkxhbmcoJ1VTJykgPT4nVVMnLAoJCQkJJG1vZC0+TGFuZygnVU0nKSA9PidVTScsJG1vZC0+TGFuZygnVVknKSA9PidVWScsJG1vZC0+TGFuZygnVVonKSA9PidVWicsCgkJCQkkbW9kLT5MYW5nKCdWVScpID0+J1ZVJywkbW9kLT5MYW5nKCdWQScpID0+J1ZBJywkbW9kLT5MYW5nKCdWRScpID0+J1ZFJywKCQkJCSRtb2QtPkxhbmcoJ1ZOJykgPT4nVk4nLCRtb2QtPkxhbmcoJ1ZHJykgPT4nVkcnLCRtb2QtPkxhbmcoJ1ZJJykgPT4nVkknLAoJCQkJJG1vZC0+TGFuZygnV0YnKSA9PidXRicsJG1vZC0+TGFuZygnRUgnKSA9PidFSCcsJG1vZC0+TGFuZygnWUUnKSA9PidZRScsCgkJCQkkbW9kLT5MYW5nKCdZVScpID0+J1lVJywkbW9kLT5MYW5nKCdaTScpID0+J1pNJywkbW9kLT5MYW5nKCdaVycpID0+J1pXJwoJCQkJKTsKCQl9CgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJHJldCA9IGFycmF5X3NlYXJjaCgkdGhpcy0+VmFsdWUsJHRoaXMtPkNvdW50cmllcyk7CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJdW5zZXQoJHRoaXMtPkNvdW50cmllc1skbW9kLT5MYW5nKCdub19kZWZhdWx0JyldKTsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkdGhpcy0+Q291bnRyaWVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJyksJHRoaXMtPkNvdW50cmllcyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHRoaXMtPkNvdW50cmllcyA9IGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpLCR0aGlzLT5Db3VudHJpZXMpOwoJCQl9CgoJCWlmICghICR0aGlzLT5IYXNWYWx1ZSgpICYmICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfY291bnRyeScsJycpICE9ICcnKQoJCSAgewoJCSAgJHRoaXMtPlNldFZhbHVlKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfY291bnRyeScsJycpKTsKCQkgIH0KCgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICR0aGlzLT5Db3VudHJpZXMsIC0xLAogICAgICAgICAkdGhpcy0+VmFsdWUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJa3NvcnQoJHRoaXMtPkNvdW50cmllcyk7CgoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHRfY291bnRyeScsCiAgICAgICAgICAgIAkJJHRoaXMtPkNvdW50cmllcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfY291bnRyeScsJycpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWxlY3Rfb25lJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpKSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKCn0KCj8+]]></data>
	</file>
	<file>
	  <filename>/classes/DatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJE1vbnRoczsKCQoJZnVuY3Rpb24gZmJEYXRlUGlja2VyRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsJCgkKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKCQkkdGhpcy0+VHlwZSA9ICdEYXRlUGlja2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPk1vbnRocyA9IGFycmF5KAoJCQknJz0+JycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfamFudWFyeScpPT4xLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2ZlYnJ1YXJ5Jyk9PjIsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfbWFyY2gnKT0+MywKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9hcHJpbCcpPT40LAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX21heScpPT41LAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2p1bmUnKT0+NiwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9qdWx5Jyk9PjcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfYXVndXN0Jyk9PjgsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfc2VwdGVtYmVyJyk9PjksCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfb2N0b2JlcicpPT4xMCwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9ub3ZlbWJlcicpPT4xMSwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9kZWNlbWJlcicpPT4xMik7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzID0gZmFsc2U7Cgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewogICAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CgkJcmV0dXJuICRtb2QtPkxhbmcoImRhdGVfcmFuZ2UiLGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3N0YXJ0X3llYXInLCgkdG9kYXlbJ3llYXInXS0xMCkpICwKICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignZW5kX3llYXInLCgkdG9kYXlbJ3llYXInXSsxMCkpKSkuCiAgICAgICAgICgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpIT09Jy0xJz8nICgnLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJykuJyknOicnKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICR0b2RheSA9IGdldGRhdGUoKTsKICAgICAgICREYXlzID0gYXJyYXkoJyc9PicnKTsKICAgICAgIGZvciAoJGk9MTskaTwzMjskaSsrKQogICAgICAgICB7CiAgICAgICAgIAkkRGF5c1skaV09JGk7CiAgICAgICAgIH0KICAgICAgICRZZWFyID0gYXJyYXkoJyc9PicnKTsKCSAgICRzdHkgPSAkdGhpcy0+R2V0T3B0aW9uKCdzdGFydF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10tMTApKTsKCSAgIGlmICgkc3R5ID09IC0xKQoJCQl7CgkJCSRzdHkgPSAkdG9kYXlbJ3llYXInXTsKCQkJfQogICAgICAgZm9yICgkaT0kc3R5OyRpPCR0aGlzLT5HZXRPcHRpb24oJ2VuZF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10rMTApKSsxOyRpKyspCiAgICAgICAgIHsKICAgICAgICAgCSRZZWFyWyRpXT0kaTsKICAgICAgICAgfQoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkdXNlcl9vcmRlciA9ICR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfb3JkZXInLCdkLW0teScpOwoJCQkkYXJyVXNlck9yZGVyID0gZXhwbG9kZSgiLSIsICR1c2VyX29yZGVyKTsKCQkJCgkJCSR0b2RheVsnbWRheSddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoYXJyYXlfc2VhcmNoKCJkIiwgJGFyclVzZXJPcmRlcikpOwoJCQkkdG9kYXlbJ21vbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoYXJyYXlfc2VhcmNoKCJtIiwgJGFyclVzZXJPcmRlcikpOwoJCQkkdG9kYXlbJ3llYXInXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKGFycmF5X3NlYXJjaCgieSIsICRhcnJVc2VyT3JkZXIpKTsKCQkJfQoJCWVsc2UgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfYmxhbmsnLCcwJykgPT0gJzEnKQoJCQl7CgkJCSR0b2RheVsnbWRheSddPScnOwoJCQkkdG9kYXlbJ21vbiddPScnOwoJCQkkdG9kYXlbJ3llYXInXT0nJzsKCQkJfQoJCWVsc2UgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJykgIT0gJy0xJykKCQkgICB7CiAgICAgICAgICR0b2RheVsneWVhciddID0gJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF95ZWFyJywnLTEnKTsKICAgICAgICAgfQoKICAgICAgJHJldCA9IGFycmF5KCk7CiAgICAgICRkYXkgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKICAgICAgJGRheS0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICREYXlzLCAtMSwKICAgICAgICAgICR0b2RheVsnbWRheSddLCAkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfZGF5JykpOwogCQkkZGF5LT50aXRsZSA9ICRtb2QtPkxhbmcoJ2RheScpOwogCQkkZGF5LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfZGF5JykuJyI+Jy4kbW9kLT5MYW5nKCdkYXknKS4nPC9sYWJlbD4nOwogCiAgICAgICRtb24gPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgJG1vbi0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICR0aGlzLT5Nb250aHMsIC0xLAogICAgICAgICAgJHRvZGF5Wydtb24nXSwgJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX21vbnRoJykpOwogCQkkbW9uLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21vbicpOwogCQkkbW9uLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfbW9udGgnKS4nIj4nLiRtb2QtPkxhbmcoJ21vbicpLic8L2xhYmVsPic7CiAKICAgICAgJHlyID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICR5ci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICRZZWFyLCAtMSwKICAgICAgICAgJHRvZGF5Wyd5ZWFyJ10sJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX3llYXInKSk7CiAgICAgICR5ci0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnX3llYXInKS4nIj4nLiRtb2QtPkxhbmcoJ3llYXInKS4nPC9sYWJlbD4nOwogICAgICAkeXItPnRpdGxlID0gJG1vZC0+TGFuZygneWVhcicpOwoKCQkkb3JkZXIgPSBhcnJheSgiZCIgPT4gJGRheSwgIm0iID0+ICRtb24sICJ5IiA9PiAkeXIpOwoJCSR1c2VyX29yZGVyID0gJHRoaXMtPkdldE9wdGlvbignZGF0ZV9vcmRlcicsJ2QtbS15Jyk7CgkJJGFyclVzZXJPcmRlciA9IGV4cGxvZGUoIi0iLCAkdXNlcl9vcmRlcik7CgkJZm9yZWFjaCAoJGFyclVzZXJPcmRlciBhcyAka2V5KQoJCQl7CgkJCWFycmF5X3B1c2goJHJldCwgJG9yZGVyWyRrZXldKTsKCQkJfQoKICAgICAgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkvLyBPcmlnaW5hbDogIERheSwgTW9udGgsIFllYXIKCQkJLy8kdGhlRGF0ZSA9IG1rdGltZSAoIDEsIDEsIDEsICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLCAgJHRoaXMtPkdldEFycmF5VmFsdWUoMCksICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCS8vIE1vbnRoLCBEYXksIFllYXIKCQkJLy8kdGhlRGF0ZSA9IG1rdGltZSAoIDEsIDEsIDEsICR0aGlzLT5HZXRBcnJheVZhbHVlKDApLCAgJHRoaXMtPkdldEFycmF5VmFsdWUoMSksICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCSR1c2VyX29yZGVyID0gJHRoaXMtPkdldE9wdGlvbignZGF0ZV9vcmRlcicsJ2QtbS15Jyk7CgkJCSRhcnJVc2VyT3JkZXIgPSBleHBsb2RlKCItIiwgJHVzZXJfb3JkZXIpOwoJCQkkdGhlRGF0ZSA9IG1rdGltZSAoIDEsIDEsIDEsCgkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZShhcnJheV9zZWFyY2goIm0iLCAkYXJyVXNlck9yZGVyKSksCgkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZShhcnJheV9zZWFyY2goImQiLCAkYXJyVXNlck9yZGVyKSksCgkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZShhcnJheV9zZWFyY2goInkiLCAkYXJyVXNlck9yZGVyKSkgKTsKCQkJJHJldCA9IGRhdGUoJHRoaXMtPkdldE9wdGlvbignZGF0ZV9mb3JtYXQnLCdqIEYgWScpLCAkdGhlRGF0ZSk7CgkJCQoJCQkkcmV0ID0gc3RyX3JlcGxhY2UoYXJyYXkoIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIiksCgkJCQlhcnJheSgKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX2phbnVhcnknKSwKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX2ZlYnJ1YXJ5JyksCgkJCQkJJG1vZC0+TGFuZygnZGF0ZV9tYXJjaCcpLAoJCQkJCSRtb2QtPkxhbmcoJ2RhdGVfYXByaWwnKSwKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX21heScpLAoJCQkJCSRtb2QtPkxhbmcoJ2RhdGVfanVuZScpLAoJCQkJCSRtb2QtPkxhbmcoJ2RhdGVfanVseScpLAoJCQkJCSRtb2QtPkxhbmcoJ2RhdGVfYXVndXN0JyksCgkJCQkJJG1vZC0+TGFuZygnZGF0ZV9zZXB0ZW1iZXInKSwKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX29jdG9iZXInKSwKCQkJCQkkbW9kLT5MYW5nKCdkYXRlX25vdmVtYmVyJyksCgkJCQkJJG1vZC0+TGFuZygnZGF0ZV9kZWNlbWJlcicpCgkJCQkJKSwKCQkJCSRyZXQpOwoJCQkJCgkJCQkkcmV0ID0gaHRtbF9lbnRpdHlfZGVjb2RlKCRyZXQsIEVOVF9RVU9URVMsICdVVEYtOCcpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGF0ZV9mb3JtYXQnKSwKICAgICAgICAgICAgCQlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGF0ZV9mb3JtYXQnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfZm9ybWF0JywnaiBGIFknKSwyNSwyNSksJG1vZC0+TGFuZygnaGVscF9kYXRlX2Zvcm1hdCcpKQoJCSAgICApLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kYXRlX29yZGVyJyksCgkJCQkJYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RhdGVfb3JkZXInLAoJCQkJCSR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfb3JkZXInLCdkLW0teScpLDUsNSksJG1vZC0+TGFuZygnaGVscF9kYXRlX29yZGVyJykpCgkJCSksCgkJICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF9ibGFuaycpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfZGVmYXVsdF9ibGFuaycsJzAnKS4KCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHRfYmxhbmsnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2JsYW5rJywnMCcpKS4kbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnKSksCgkJICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc3RhcnRfeWVhcicpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zdGFydF95ZWFyJywKICAgICAgICAgICAgCQkgICAgJHRoaXMtPkdldE9wdGlvbignc3RhcnRfeWVhcicsKCR0b2RheVsneWVhciddLTEwKSksMTAsMTApKSwKCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbmRfeWVhcicpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbmRfeWVhcicsCiAgICAgICAgICAgIAkJICAgICR0aGlzLT5HZXRPcHRpb24oJ2VuZF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10rMTApKSwxMCwxMCkpLAoJCSAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfeWVhcicpLAogICAgICAgICAgICAJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0X3llYXInLAogICAgICAgICAgICAJCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpLDEwLDEwKSwkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCcpKQogICAgICAgICApCiAgICAgICk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9CgogIGZ1bmN0aW9uIEhhc1ZhbHVlKCRkZW55X2JsYW5rX3Jlc3BvbnNlcz1mYWxzZSkKICB7CiAgICBpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQl7CgkJcmV0dXJuIGZhbHNlOwoJCX0KCWlmICghaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQl7CgkJcmV0dXJuIGZhbHNlOwoJCX0KCWlmICgkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKSA9PSAnJyB8fAoJICAJJHRoaXMtPkdldEFycmF5VmFsdWUoMCkgPT0gJycgfHwKCSAgICAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKSA9PSAnJykKCQl7CgkJcmV0dXJuIGZhbHNlOwoJCX0KCXJldHVybiB0cnVlOwogIH0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDatabase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRGF0YWJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25EYXRhYmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25EYXRhYmFzZSc7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5IaWRlTGFiZWwgPSAxOwoJCSR0aGlzLT5OZWVkc0RpdiA9IDA7CgkJJHRoaXMtPmFwcHJvdmVkQnkgPSAnJzsKCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCQl7CgkJCXJldHVybiAnJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwJCgkJCSR0aGlzLT5FbmNvZGVSZXFJZCgkdGhpcy0+VmFsdWUpKTsKCX0KCglmdW5jdGlvbiBTZXRBcHByb3ZhbE5hbWUoJG5hbWUpCgl7CgkJJHRoaXMtPmFwcHJvdmVkQnkgPSAkbmFtZTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkgcmV0dXJuICcnOwoJfQoJCglmdW5jdGlvbiBEZWNvZGVSZXFJZCgkdGhlVmFsKQoJewoJCSR0bXAgPSBiYXNlNjRfZGVjb2RlKCR0aGVWYWwpOwoJCSR0bXAyID0gc3RyX3JlcGxhY2Uoc2Vzc2lvbl9pZCgpLCcnLCR0bXApOwoJCWlmIChzdWJzdHIoJHRtcDIsMCwxKSA9PSAnXycpCgkJCXsKCQkJcmV0dXJuIHN1YnN0cigkdG1wMiwxKTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gLTE7CgkJCX0KCX0KCQoJZnVuY3Rpb24gRW5jb2RlUmVxSWQoJHJlcV9pZCkKCXsKCQlyZXR1cm4gYmFzZTY0X2VuY29kZShzZXNzaW9uX2lkKCkuJ18nLiRyZXFfaWQpOwoJfQoJCgkKCWZ1bmN0aW9uIFNldFZhbHVlKCR2YWwpCgl7CgoJCSRkZWN2YWwgPSBiYXNlNjRfZGVjb2RlKCR2YWwpOwogICAKCQlpZiAoJHZhbCA9PT0gZmFsc2UpCgkJCXsKCQkJLy8gbm8gdmFsdWUgc2V0LCBzbyB3ZSdsbCBsZWF2ZSB2YWx1ZSBhcyBmYWxzZQoJCQl9CgkJZWxzZWlmIChzdHJwb3MoJGRlY3ZhbCwnXycpID09PSBmYWxzZSkKCQkJewoJCQkvLyB1bmVuY3J5cHRlZCB2YWx1ZSwgY29taW5nIGluIGZyb20gcHJldmlvdXMgcmVzcG9uc2UKCQkJJHRoaXMtPlZhbHVlID0gJHZhbDsKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyBlbmNyeXB0ZWQgdmFsdWUgY29taW5nIGluIGZyb20gYSBmb3JtLCBzbyB3ZSdsbCB1cGRhdGUuCgkJCSR0aGlzLT5WYWx1ZSA9ICR0aGlzLT5EZWNvZGVSZXFJZCgkdmFsKTsKCQkJfQoJfQoJCglmdW5jdGlvbiBnZXRTb3J0RmllbGRWYWwoJHNvcnRGaWVsZE51bWJlcikKCXsKICAgICAgcmV0dXJuIC0xOwogICB9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAgICRhZHYgPSBhcnJheSgpOwogICAgICBhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInKSwKICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmV1X2JuZCcsJzAnKS4KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY3J5cHQnLCcwJykuCiAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hhc2hfc29ydCcsJzAnKS4KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc29ydGZpZWxkMScsJycpLgogICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zb3J0ZmllbGQyJywnJykuCiAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NvcnRmaWVsZDMnLCcnKS4KICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc29ydGZpZWxkNCcsJycpLgogICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zb3J0ZmllbGQ1JywnJykpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgogICAgLy8gV3JpdGUgVG8gdGhlIERhdGFiYXNlCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCgl7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJbGlzdCgkcmVzLCRtc2cpID0gJGZvcm0tPlN0b3JlUmVzcG9uc2UoKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6LTEpLCR0aGlzLT5hcHByb3ZlZEJ5LCR0aGlzKTsKCQlyZXR1cm4gYXJyYXkoJHJlcywgJG1zZyk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDeliverToEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnOwogICAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICdlbWFpbCc7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IGZhbHNlOwoJICAgJHRoaXMtPlJlcXVpcmVkID0gMTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgpCgl7CiAgICAgIGlmICgkdGhpcy0+SGFzVmFsdWUoKSAhPSBmYWxzZSkKICAgICAgICAgewoJCSAgIHJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPlZhbHVlLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7CgkJICAgfQoJCWVsc2UKCQkgICB7CiAgICAgICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsKICAgICAgICAgfQoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCiAgCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgIHsKICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICB9CgoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRpcmVjdG9yIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRGlyZWN0b3InOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKICAgICAgIAkkdGhpcy0+YWRkcmVzc0FkZCA9IDA7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9kZXN0aW5hdGlvbicpOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5hZGRyZXNzQWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIGNvdW50QWRkcmVzc2VzKCkKCXsKCQkJJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHNvcnRlZFsnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpXT0nJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWycgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyldPScnOwoJCQl9CgkJJHN1YmplY3RzID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fc3ViamVjdCcpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9hZGRyZXNzJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnZGVzdGluYXRpb25fY291bnQnLCRudW0pOwogICAgICAgICRyZXQuPSAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsKICAgICAgICByZXR1cm4gJHJldDsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9zdWJqZWN0W10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zdWJqZWN0X292ZXJyaWRlJywnMCcpLgoJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3N1YmplY3Rfb3ZlcnJpZGUnLAogICAgICAgICAgICAgICAgJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3N1YmplY3Rfb3ZlcnJpZGUnLCcwJykpLgoJCQkJJG1vZC0+TGFuZygndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJykpKTsJCQoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlyZWN0b3JfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJlbWFpbCBzdWJqZWN0IiBmaWVsZAogICAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkbWFpbkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpOwoKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRyZXQgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdWJqZWN0X292ZXJyaWRlJywnMCcpID09ICcxJyAmJiAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JywnJykgIT0gJycpCgkJCXsKCQkJJHN1YmplY3QgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0Jyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHN1YmplY3QgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCgkdGhpcy0+VmFsdWUgLSAxKSksCgkJCSRzdWJqZWN0KTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgICB7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycpOwogIAkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkSGF2ZU5hbWUoKTsKCQlpZiAoJHJldCkKCQkJewoJCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQkJfQkJCgoJCWlmIChjb3VudCgkb3B0KSA9PSAwKQoJCQl7CgkJCSRyZXQgPSBmYWxzZTsKCQkJJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpLic8L2JyPic7CgkJCX0KCQlsaXN0KCRydiwkbWVzcykgPSAkdGhpcy0+dmFsaWRhdGVFbWFpbEFkZHIoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpOwoJCWlmICghJHJ2KQoJCQl7CiAgICAJICAgICRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgJG1lc3NhZ2UgLj0gJG1lc3M7CgkJCX0KICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkb3B0KTskaSsrKQogICAgCSAgIHsKCQkgICBsaXN0KCRydiwkbWVzcykgPSAkdGhpcy0+dmFsaWRhdGVFbWFpbEFkZHIoJG9wdFskaV0pOwoJCSAgIGlmICghJHJ2KQoJCQkJewoJCQkJJHJldCA9IGZhbHNlOwoJCQkJJG1lc3NhZ2UgLj0gJG1lc3M7CiAgICAJICAgICAgICB9CgkJCX0KCiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOwogICAgfQogICAgCiAgICBmdW5jdGlvbiBWYWxpZGF0ZSgpCiAgICB7CiAgICAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgICRyZXN1bHQgPSB0cnVlOwogICAgICAgICAkbWVzc2FnZSA9ICcnOwoKICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICRtZXNzYWdlIC49CiRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwogICAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXN1bHQsJG1lc3NhZ2UpOwogICAgfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmail.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9EaXNwb3NpdGlvbkVtYWlsQmFzZS5jbGFzcy5waHAnKTsKCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCXZhciAkYWRkcmVzc0NvdW50OwoJdmFyICRhZGRyZXNzQWRkOwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSBmYWxzZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwogICAgfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2FkZHJlc3MnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9hZGRyZXNzJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmFkZHJlc3NBZGQgPSAxOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQoJewoJCSRkZWxjb3VudCA9IDA7CgkJZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCgkJCXsKCQkJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycsJycpOwoJCSRyZXQ9ICRtb2QtPkxhbmcoJ3RvJykuIjogIjsKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICBpZiAoY291bnQoJG9wdCk+MSkKCQkgICAgICB7CgkJICAgICAgJHJldC49IGNvdW50KCRvcHQpOwoJCSAgICAgICRyZXQuPSAiICIuJG1vZC0+TGFuZygncmVjaXBpZW50cycpOwoJCSAgICAgIH0KCQkgIGVsc2UKCQkgICAgICB7CgkJICAgICAgJHJldC49ICRvcHRbMF07CgkJICAgICAgfQoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkcmV0IC49ICRvcHQ7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkcmV0Lj0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKICAgICAgICAgIH0KICAgICAgICAkcmV0Lj0gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gY291bnRBZGRyZXNzZXMoKQoJewoJCQkkdG1wID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoKICAgIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQoJewoJCSR0bXAgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CgkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdG1wLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSAgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSI+PHRyPjx0aD4nLiRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKCgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+YWRkcmVzc0NvdW50PjE/JHRoaXMtPmFkZHJlc3NDb3VudDoxKTskaSsrKQoJCQl7CgkJCSRkZXN0cyAuPSAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9hZGRyZXNzW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQl9CgkJJGRlc3RzIC49ICc8L3RhYmxlPic7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwoJfQoKCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICAgIHsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CiAgCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGRIYXZlTmFtZSgpOwoJCWlmICgkcmV0KQoJCQl7CgkJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZE5hbWVFeGlzdCgpOwoJCQl9CQkKCQlpZiAoJG9wdCA9PT0gZmFsc2UgfHwgY291bnQoJG9wdCkgPT0gMCkKCQkJewoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwoJCQl9CgkJbGlzdCgkcnYsJG1lc3MpID0gJHRoaXMtPnZhbGlkYXRlRW1haWxBZGRyKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKCQlpZiAoISRydikKCQkJewogICAgCSAgICAkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICRtZXNzYWdlIC49ICRtZXNzOwoJCQl9CiAgICAgICAgZm9yKCRpPTA7JGk8Y291bnQoJG9wdCk7JGkrKykKICAgIAkgICB7CgkJICAgbGlzdCgkcnYsJG1lc3MpID0gJHRoaXMtPnZhbGlkYXRlRW1haWxBZGRyKCRvcHRbJGldKTsKCQkgICBpZiAoISRydikKCQkJCXsKCQkJCSRyZXQgPSBmYWxzZTsKCQkJCSRtZXNzYWdlIC49ICRtZXNzOwogICAgCSAgICAgICAgfQoJCQl9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOyAgICAgICAKICAgIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZQp7CgogIGZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJJHRoaXMtPklzRW1haWxEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCiAgfQoKICAvLyBvdmVycmlkZSBtZSEKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgfQoKICBmdW5jdGlvbiBUZW1wbGF0ZVN0YXR1cygpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpID09ICcnKQogICAgICB7CiAgcmV0dXJuICRtb2QtPkxhbmcoJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnKTsKICAgICAgfQogIH0KCiAgLy8gb3ZlcnJpZGUgbWUhCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQogIHsKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldEZyb21BZGRyZXNzKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldEZyb21OYW1lKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldFJlcGx5VG9OYW1lKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldFJlcGx5VG9BZGRyZXNzKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwogIGZ1bmN0aW9uIFNlbmRGb3JtKCRkZXN0aW5hdGlvbl9hcnJheSwgJHN1YmplY3QpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoKICAgaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScsMSkpCiAgICAgewogICAgJGRiID0kbW9kLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ3NlbGVjdCBjb3VudChzcmNfaXApIGFzIHNlbnQgZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9pcF9sb2cgd2hlcmUgc3JjX2lwPT8gQU5EIHNlbnRfdGltZSA+ID8nOwoKICAgICRkYnJlc3VsdCA9ICRkYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10sCiAgICAgICAgICAgICAgIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkgLSAzNjAwKSwiJyIpKSk7CgogICAgaWYgKCRkYnJlc3VsdCAmJiAkZGJyZXN1bHRbJ3NlbnQnXSA+IDkpCiAgICAgIHsKICAgICAgLy8gdG9vIG1hbnkgZnJvbSB0aGlzIElQIGFkZHJlc3MuIEtpbGwgaXQuCiAgICAgICAgJG1zZyA9ICc8aHIgLz4nLiRtb2QtPkxhbmcoJ3N1c3BlY3RlZF9zcGFtJykuICc8aHIgLz4nOwogICAgICBhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCRtb2QtPkxhbmcoJ2xvZ19zdXNwZWN0ZWRfc3BhbScsJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pKTsKICAgICAgcmV0dXJuIGFycmF5KGZhbHNlLCRtc2cpOwogICAgICB9CiAgICB9CgogICAgJG1haWwgPSAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ01TTWFpbGVyJyk7CiAgICBpZiAoJG1haWwgPT0gRkFMU0UpCiAgICAgIHsKICAkbXNnID0gJyc7CiAgaWYgKCEgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaGlkZV9lcnJvcnMnLDApKQogICAgewogICAgICAkbXNnID0gJzxociAvPicuJG1vZC0+TGFuZygnbWlzc2luZ19jbXNfbWFpbGVyJykuICc8aHIgLz4nOwogICAgfQogIGF1ZGl0KC0xLCAkbW9kLT5HZXROYW1lKCksJG1vZC0+TGFuZygnbWlzc2luZ19jbXNfbWFpbGVyJykpOwogIHJldHVybiBhcnJheShmYWxzZSwkbXNnKTsKICAgICAgfQogICAgJG1haWwtPnJlc2V0KCk7CiAgICAKICAgICRydCA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3JlcGx5X3RvX2FkZHJlc3MnLCcnKTsKICAgICRybiA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3JlcGx5X3RvX25hbWUnLCcnKTsKICAgIGlmIChlbXB0eSgkcm4pKQogICAgICB7CiAgICAgICRybiA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScsJycpOwogICAgICB9CiAgICBpZiAoJHRoaXMtPlNldFJlcGx5VG9BZGRyZXNzKCkgJiYgIWVtcHR5KCRydCkpCiAgICAgIHsKICAgICAgJG1haWwtPkFkZFJlcGx5VG8oJHJ0LCR0aGlzLT5TZXRGcm9tTmFtZSgpPyRybjonJyk7CiAgICAgIH0KICAgIAogICAgaWYgKCR0aGlzLT5TZXRGcm9tQWRkcmVzcygpKQogICAgICB7CiAgCSAgICRtYWlsLT5TZXRGcm9tKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5TZXRGcm9tTmFtZSgpKQogICAgICB7CiAgICAgICRtYWlsLT5TZXRGcm9tTmFtZSgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnKSk7CiAgICAgIH0KICAgICRtYWlsLT5TZXRDaGFyU2V0KCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2VuY29kaW5nJywndXRmLTgnKSk7CgogICAgJG1lc3NhZ2UgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpOwogICAgJGh0bWxlbWFpbCA9ICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpID09ICcxJyk7CglpZiAoJHRoaXMtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJykKCQl7CgkJJGZvcm0tPkFkZFRlbXBsYXRlVmFyaWFibGUoJ2NvbmZpcm1fdXJsJywkbW9kLT5MYW5nKCd0aXRsZV9jb25maXJtYXRpb25fdXJsJykpOwoJCX0KICAgIGlmICgkaHRtbGVtYWlsKQogICAgIHsKICAgICRtYWlsLT5Jc0hUTUwodHJ1ZSk7CiAgICB9CiAgIGlmIChzdHJsZW4oJG1lc3NhZ2UpIDwgMSkKICAgICAgewogICAgJG1lc3NhZ2UgPSAkZm9ybS0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoZmFsc2UpOwogICAgICBpZiAoJGh0bWxlbWFpbCkKICAgICAgIHsKICAgICAgJG1lc3NhZ2UyID0gJGZvcm0tPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKHRydWUpOwogICAgICB9CiAgICAgIH0KICAgIGVsc2VpZiAoJGh0bWxlbWFpbCkKICAgICAgewogICAgJG1lc3NhZ2UyID0gJG1lc3NhZ2U7CiAgICB9CiAgICAkZm9ybS0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCRodG1sZW1haWwpOwoKICAgICR0aGVGaWVsZHMgPSAkZm9ybS0+R2V0RmllbGRzKCk7CgogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoZUZpZWxkcyk7JGkrKykKCQl7CiAJCWlmIChzdHJ0b2xvd2VyKGdldF9jbGFzcygkdGhlRmllbGRzWyRpXSkpID09ICdmYmZpbGV1cGxvYWRmaWVsZCcgKQogICAgCQl7CiAgICAJCWlmKCEgJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignc2VuZHRvX3VwbG9hZHMnKSApCiAgICAgIAkJCXsKICAgICAgICAJCS8vIHdlIGhhdmUgYSBmaWxlIHdlIHdpc2ggdG8gYXR0YWNoCgkJCQkkdGhpc0F0dCA9ICR0aGVGaWVsZHNbJGldLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoZmFsc2UpOwoJCQkKCQkJCWlmIChpc19hcnJheSgkdGhpc0F0dCkpCgkJCQkJewoJCQkJCWlmIChmdW5jdGlvbl9leGlzdHMoJ2ZpbmZvX29wZW4nKSkKCQkJCQkJewoJCQkJCQkkZmluZm8gPSBmaW5mb19vcGVuKEZJTEVJTkZPX01JTUUpOyAvLyByZXR1cm4gbWltZSB0eXBlIGFsYSBtaW1ldHlwZSBleHRlbnNpb24KCQkJCQkJJHRoaXNUeXBlID0gZmluZm9fZmlsZSgkZmluZm8sICR0aGlzQXR0WzBdKTsKCQkJCQkJZmluZm9fY2xvc2UoJGZpbmZvKTsKCQkJCQkJfQoJCQkJCWVsc2UgaWYgKGZ1bmN0aW9uX2V4aXN0cygnbWltZV9jb250ZW50X3R5cGUnKSkKCQkJCQkJewoJCQkJCQkkdGhpc1R5cGUgPSBtaW1lX2NvbnRlbnRfdHlwZSgkdGhpc0F0dFswXSk7CgkJCQkJCX0KCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJJHRoaXNUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7CgkJCQkJCX0KCQkJCQkkdGhpc05hbWVzID0gc3BsaXQoJ1svOlxcXScsJHRoaXNBdHRbMF0pOwoJCQkJCSR0aGlzTmFtZSA9IGFycmF5X3BvcCgkdGhpc05hbWVzKTsKICAgIAkJCQlpZiAoISAkbWFpbC0+QWRkQXR0YWNobWVudCgkdGhpc0F0dFswXSwgJHRoaXNOYW1lLCAiYmFzZTY0IiwgJHRoaXNUeXBlKSkKICAgICAgICAgIAkJCQl7CiAgICAgIAkJCQkJLy8gZmFpbGVkIHVwbG9hZCBraWxscyB0aGUgc2VuZC4KICAgICAgCQkJCQlhdWRpdCgtMSwgKGlzc2V0KCRuYW1lKT8kbmFtZToiIiksICRtb2QtPkxhbmcoJ3N1Ym1pdF9lcnJvcicsJG1haWwtPkdldEVycm9ySW5mbygpKSk7CiAgICAgIAkJCQkJcmV0dXJuIGFycmF5KCRyZXMsICRtb2QtPkxhbmcoJ3VwbG9hZF9hdHRhY2hfZXJyb3InLAogICAgICAgICAgICAgICAgICAJCQkJYXJyYXkoJHRoaXNBdHRbMF0sJHRoaXNBdHRbMF0gLCR0aGlzVHlwZSkpKTsKICAgICAgICAgIAkJCQl9CgkJCQkJfQoJCQkJZWxzZSBpZiAoc3RybGVuKCR0aGlzQXR0KSA+IDApCgkJCQkJeyAvLyBGaXggZm9yIEJ1ZyA0MzA3CgkJCQkJCS8vIElmIHRoaXMgZG9lc24ndCBicmVhayBhbnl0aGluZywgd2UgY2FuIG1lcmdlIGl0IHdpdGggdGhlIGNvZGUgYWJvdmUuCgkJCQkJJGZpbGVwYXRoID0gZ2V0Y3dkKCk7CgkJCQkJJGZpbGVwYXRoIC49ICR0aGlzQXR0OwoJCQkJCQoJCQkJCWlmIChmdW5jdGlvbl9leGlzdHMoJ2ZpbmZvX29wZW4nKSkKCQkJCQkJewoJCQkJCQkkZmluZm8gPSBmaW5mb19vcGVuKEZJTEVJTkZPX01JTUUpOyAvLyByZXR1cm4gbWltZSB0eXBlIGFsYSBtaW1ldHlwZSBleHRlbnNpb24KCQkJCQkJJHRoaXNUeXBlID0gZmluZm9fZmlsZSgkZmluZm8sICRmaWxlcGF0aCk7CgkJCQkJCWZpbmZvX2Nsb3NlKCRmaW5mbyk7CgkJCQkJCX0KCQkJCQllbHNlIGlmIChmdW5jdGlvbl9leGlzdHMoJ21pbWVfY29udGVudF90eXBlJykpCgkJCQkJCXsKCQkJCQkJJHRoaXNUeXBlID0gbWltZV9jb250ZW50X3R5cGUoJGZpbGVwYXRoKTsKCQkJCQkJfQoJCQkJCWVsc2UKCQkJCQkJewoJCQkJCQkkdGhpc1R5cGUgPSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJzsKCQkJCQkJfQoJCQkJCQoJCQkJCSR0aGlzTmFtZXMgPSBzcGxpdCgnWy86XFxdJywkZmlsZXBhdGgpOwoJCQkJCSR0aGlzTmFtZSA9IGFycmF5X3BvcCgkdGhpc05hbWVzKTsKCQkJCQkKCQkJCQlpZiAoISAkbWFpbC0+QWRkQXR0YWNobWVudCgkZmlsZXBhdGgsICR0aGlzTmFtZSwgImJhc2U2NCIsICR0aGlzVHlwZSkpCgkJCQkJCXsKCQkJCQkJLy8gZmFpbGVkIHVwbG9hZCBraWxscyB0aGUgc2VuZC4KCQkJCQkJYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCRtYWlsLT5HZXRFcnJvckluZm8oKSkpOwoJCQkJCQlyZXR1cm4gYXJyYXkoJHJlcywgJG1vZC0+TGFuZygndXBsb2FkX2F0dGFjaF9lcnJvcicsCgkJCQkJCQlhcnJheSgkZmlsZXBhdGgsJGZpbGVwYXRoICwkdGhpc1R5cGUpKSk7CgkJCQkJCX0KCQkJCQl9CiAgICAgIAkJCX0KICAgICAJCX0KICAgIAl9CgoJCiAgICAkbWVzc2FnZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbWVzc2FnZSApOwogICAgJHN1YmplY3QgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJHN1YmplY3QgKTsKICAgICRtYWlsLT5TZXRTdWJqZWN0KCRzdWJqZWN0KTsKICAgICBpZiAoJGh0bWxlbWFpbCkKICAgICB7CiAgICAkbWVzc2FnZTIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbWVzc2FnZTIpOwogICAgJG1haWwtPlNldEFsdEJvZHkoc3RyaXBfdGFncyhodG1sX2VudGl0eV9kZWNvZGUoJG1lc3NhZ2UpKSk7CiAgICAkbWFpbC0+U2V0Qm9keSgkbWVzc2FnZTIpOwogICAgfQogICBlbHNlCiAgICAgewogICAgICRtYWlsLT5TZXRCb2R5KGh0bWxfZW50aXR5X2RlY29kZSgkbWVzc2FnZSkpOwogICAgfQogICAgLy8gc2VuZCB0aGUgbWVzc2FnZS4uLgogICAgaWYgKCEgaXNfYXJyYXkoJGRlc3RpbmF0aW9uX2FycmF5KSkKICAgICAgewogICRkZXN0aW5hdGlvbl9hcnJheSA9IGFycmF5KCRkZXN0aW5hdGlvbl9hcnJheSk7CiAgICAgIH0KICAgIGZvcmVhY2ggKCRkZXN0aW5hdGlvbl9hcnJheSBhcyAkdGhpc0Rlc3QpCiAgICAgIHsKCQlpZiAoc3RycG9zKCR0aGlzRGVzdCwnLCcpICE9PSBmYWxzZSkKCQkJewoJCQkkc3ViX2FkcyA9IGV4cGxvZGUoJywnLCR0aGlzRGVzdCk7CgkJCWZvcmVhY2ggKCRzdWJfYWRzIGFzICR0aGlzX2FkKQoJCQkJewoJCQkJJG1haWwtPkFkZEFkZHJlc3ModHJpbSgkdGhpc19hZCkpOwkKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewogIAkJCSRtYWlsLT5BZGRBZGRyZXNzKCR0aGlzRGVzdCk7CgkJCX0KICAgICAgfQoKICAgICRyZXMgPSAkbWFpbC0+U2VuZCgpOwogICAgaWYgKCRyZXMgPT09IGZhbHNlKQogICAgICB7CiAgYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCRtYWlsLT5HZXRFcnJvckluZm8oKSkpOwogICAgICB9CiAgICBlbHNlIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfYW50aXNwYW0nLDEpKQogICAgIHsKICAgICRkYiA9ICRtb2QtPkdldERiKCk7CgogICAgJHJlY19pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2lwX2xvZyAoc2VudF9pZCwgc3JjX2lwLCBzZW50X3RpbWUpIFZBTFVFUyAoPywgPywgPyknOwoKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRyZWNfaWQsICRfU0VSVkVSWydSRU1PVEVfQUREUiddLAogICAgICAgICAgICAgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwiJyIpKSk7CiAgICB9CiAgICByZXR1cm4gYXJyYXkoJHJlcywgJG1haWwtPkdldEVycm9ySW5mbygpKTsKICB9CgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtZXNzYWdlID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfdGVtcGxhdGUnLCcnKTsKCgkkcGFybSA9IGFycmF5KCk7CgkkcGFybVsnb3B0X2VtYWlsX3RlbXBsYXRlJ11bJ2h0bWxfYnV0dG9uJ10gPSB0cnVlOwoJJHBhcm1bJ29wdF9lbWFpbF90ZW1wbGF0ZSddWyd0ZXh0X2J1dHRvbiddID0gdHJ1ZTsKCSRwYXJtWydvcHRfZW1haWxfdGVtcGxhdGUnXVsnaXNfZW1haWwnXSA9IHRydWU7CglpZiAoJHRoaXMtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJykKCQl7CgkJJHRoaXMtPmZvcm1fcHRyLT5BZGRUZW1wbGF0ZVZhcmlhYmxlKCdjb25maXJtX3VybCcsJG1vZC0+TGFuZygndGl0bGVfY29uZmlybWF0aW9uX3VybCcpKTsKCQl9CgogICAgcmV0dXJuIGFycmF5KAogICAgIGFycmF5KAogICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX3N1YmplY3QnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfc3ViamVjdCcsJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcsJycpLDUwKS4nPGJyLz4nLiRtb2QtPkxhbmcoJ2NhbnVzZV9zbWFydHknKSksCiAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZnJvbV9uYW1lJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2Zyb21fbmFtZScsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJywkbW9kLT5MYW5nKCdmcmllbmRseW5hbWUnKSksMjUsMTI4KSksCiAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJywnJyksMjUsMTI4KS4nPGJyIC8+Jy4KCQkkbW9kLT5MYW5nKCdlbWFpbF9mcm9tX2FkZHJfaGVscCcsYXJyYXkoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pKSksCiAgICAgICAgICAgKSwKICAgICBhcnJheSgKICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2h0bWxfZW1haWwnKSwKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9odG1sX2VtYWlsJywnMCcpLiRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaHRtbF9lbWFpbCcsCiAgICAgICAgICAgICAgICAnMScsJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKSkpLAogICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJyksCiAgICAgICAgICAgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKICAgICAgICAgICAgICAvKigkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpPT0nMSc/JG1lc3NhZ2U6aHRtbHNwZWNpYWxjaGFycygkbWVzc2FnZSkpKi8KCQkJICRtZXNzYWdlLCdmYnJwX29wdF9lbWFpbF90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV93aWRlJywgJycsJycsJycsJzgwJywgJzE1JywnJywnaHRtbCcpLAogICAgICAgICAgICAgICR0aGlzLT5mb3JtX3B0ci0+QWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRwYXJtKSkpLAogICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2VuY29kaW5nJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2VuY29kaW5nJywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9lbmNvZGluZycsJ3V0Zi04JyksMjUsMTI4KSkKICAgICAgICAgICApCiAgICAgKTsKICB9CgogIGZ1bmN0aW9uIHZhbGlkYXRlRW1haWxBZGRyKCRlbWFpbCkKCXsKCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkkcmV0ID0gdHJ1ZTsKCSRtZXNzYWdlID0gJyc7CglpZiAoc3RycG9zKCRlbWFpbCwnLCcpICE9PSBmYWxzZSkKCQl7CgkJJHRhID0gZXhwbG9kZSgnLCcsJGVtYWlsKTsJCgkJfQoJZWxzZQoJCXsKCQkkdGEgPSBhcnJheSgkZW1haWwpOwkKCQl9Cglmb3JlYWNoKCR0YSBhcyAkdG8pCgkJewoJCWlmICghIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0bykpCgkgICAgICAgewoJICAgICAgIAkkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJHRvKS4nPGJyLz4nOwoJICAgICAgIH0KCQl9CglyZXR1cm4gYXJyYXkoJHJldCwgJG1lc3NhZ2UpOwoJfQoKfQoKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailBasedFrontendFields.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9EaXNwb3NpdGlvbkVtYWlsQmFzZS5jbGFzcy5waHAnKTsKCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMgZXh0ZW5kcyBmYkRpc3Bvc2l0aW9uRW1haWxCYXNlIHsKCgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsQmFzZWRGcm9udGVuZEZpZWxkcygmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkhpZGVMYWJlbCA9IDE7CQkKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgIH0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCQoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJywnJyk7CgkJaWYoIWlzX2FycmF5KCRvcHQpKSB7CgkJCgkJCSRvcHQgPSBhcnJheSgkb3B0KTsKCQl9CgkJCgkJJHJldD0gJG1vZC0+TGFuZygndG8nKS4iOiAiLmNvdW50KCRvcHQpLiIgIi4kbW9kLT5MYW5nKCdmaWVsZHMnKTsgCiAgICAgICAgJHJldC49ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwogICAgICAgIAoJCXJldHVybiAkcmV0OwoJfQoKCiAgICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCkKCXsKCQoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJCgkJJHRtcCA9ICRmb3JtLT5HZXRGaWVsZEJ5SUQoJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcpKTsKCQkkdGhpcy0+U2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JywkdG1wLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSk7CgkJCgkJJHRtcCA9ICRmb3JtLT5HZXRGaWVsZEJ5SUQoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJykpOwoJCSR0aGlzLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScsJHRtcC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkpOwoKCQkkdG1wID0gJGZvcm0tPkdldEZpZWxkQnlJRCgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSk7CgkJJHRoaXMtPlNldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJywkdG1wLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSk7CQkKCgkJJGFkZGFyciA9IGFycmF5KCk7CgkJJGFkZHJlc3MgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CgkJCgkJaWYoIWlzX2FycmF5KCRhZGRyZXNzKSkgewoJCQoJCQkkYWRkcmVzcyA9IGFycmF5KCRhZGRyZXNzKTsKCQl9CgkJCgkJZm9yZWFjaCgkYWRkcmVzcyBhcyAkaXRlbSkgewoJCQoJCQkkdG1wID0gJGZvcm0tPkdldEZpZWxkQnlJRCgkaXRlbSk7CQkJCQoJCQkkdmFsdWUgPSAkdG1wLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKCQkJCgkJCWlmIChzdHJwb3MoJHZhbHVlLCcsJykgIT09IGZhbHNlKSB7CgkJCQoJCQkJJGFyciA9IGV4cGxvZGUoJywnLCR2YWx1ZSk7CQoJCQl9IGVsc2UgewoJCQkKCQkJCSRhcnIgPSBhcnJheSgkdmFsdWUpOwkKCQkJfQkJCQoJCQkKCQkJZm9yZWFjaCgkYXJyIGFzICRlbWFpbCkgewoJCQkKCQkJCSR2YWxpZGF0ZSA9ICR0aGlzLT52YWxpZGF0ZUVtYWlsQWRkcigkZW1haWwpOwoJCQkJCgkJCQlpZigkdmFsaWRhdGVbMF0pIHsKCQkJCQoJCQkJCSRhZGRhcnJbXSA9ICRlbWFpbDsKCQkJCQkKCQkJCX0KCQkJfQoJCX0KCQoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJGFkZGFyciwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkkcGFybSA9IGFycmF5KCk7CgkJJHBhcm1bJ29wdF9lbWFpbF90ZW1wbGF0ZSddWydodG1sX2J1dHRvbiddID0gdHJ1ZTsKCQkkcGFybVsnb3B0X2VtYWlsX3RlbXBsYXRlJ11bJ3RleHRfYnV0dG9uJ10gPSB0cnVlOwoJCSRwYXJtWydvcHRfZW1haWxfdGVtcGxhdGUnXVsnaXNfZW1haWwnXSA9IHRydWU7CgkJCgkJJGRlc3RhZGRfYWxsID0gJHRoaXMtPkdldEZpZWxkTGlzdCgpOwoJCSRkZXN0YWRkX3RtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkKCQlpZighaXNfYXJyYXkoJGRlc3RhZGRfdG1wKSkgewoJCQoJCQkkZGVzdGFkZF90bXAgPSBhcnJheSgkZGVzdGFkZF90bXApOwoJCX0KCQkKCQkkZGVzdGFkZF9zZWwgPSBhcnJheSgpOwoJCWZvcmVhY2goJGRlc3RhZGRfYWxsIGFzICRrPT4kdikgewoJCQoJCQlpZihpbl9hcnJheSgkdiwkZGVzdGFkZF90bXApKSB7CgkJCQoJCQkJJGRlc3RhZGRfc2VsWyRrXSA9ICR2OwoJCQkKCQkJfQkKCQl9CgkKCQkkbWFpbiA9IGFycmF5KAoJCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JyksJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbWFpbF9zdWJqZWN0JywkdGhpcy0+R2V0RmllbGRMaXN0KHRydWUpLC0xLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnLCcnKSkpLAoJCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX25hbWUnKSwkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2Zyb21fbmFtZScsJHRoaXMtPkdldEZpZWxkTGlzdCh0cnVlKSwtMSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnLCRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpKSkpLAoJCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnKSxhcnJheSgkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPkdldEZpZWxkTGlzdCh0cnVlKSwtMSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnLCcnKSksCgkJCQkJCQkJCQkJCQkkbW9kLT5MYW5nKCdlbWFpbF9mcm9tX2FkZHJfaGVscCcsYXJyYXkoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pKSkpLAoJCQkJCQkJCQkJCQkJCgkJCSAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnKSwkbW9kLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkZGVzdGFkZF9hbGwsJGRlc3RhZGRfc2VsLDUpKQkJCQkJCQkJCQkJCQkKCQkJCSk7CgkJCSAgIAoJCSRhZHYgPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2h0bWxfZW1haWwnKSwgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9odG1sX2VtYWlsJywnMCcpLgoJCQkJCQkJCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9odG1sX2VtYWlsJywnMScsJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKSkpLAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfdGVtcGxhdGUnKSwgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZW1haWxfdGVtcGxhdGUnLCcnKSwnZmJycF9vcHRfZW1haWxfdGVtcGxhdGUnLCAnbW9kdWxlX2ZiX2FyZWFfd2lkZScsICcnLCcnLCcnLCc4MCcsICcxNScsJycsJ2h0bWwnKSwKCQkJCQkJCQkJCQkJCSR0aGlzLT5mb3JtX3B0ci0+QWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRwYXJtKSkpLAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZW5jb2RpbmcnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfZW5jb2RpbmcnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2VuY29kaW5nJywndXRmLTgnKSwyNSwxMjgpKQoJCQkJKTsKCgkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKCX0KCgkvLyBWYWxpZGF0ZSBhZG1pbiBzaWRlCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICAgIHsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRzdWJqZWN0ID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcsJycpOwoJCSRuYW1lID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJywnJyk7CgkJJGZyb20gPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnLCcnKTsKICAgIAkkZGVzdCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkKICAJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZEhhdmVOYW1lKCk7CgkJCgkJaWYgKCRyZXQpIHsKCQkKCQkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkTmFtZUV4aXN0KCk7CgkJfQkJCgkJCQoJCWlmICgkc3ViamVjdCA9PSBmYWxzZSB8fCBjb3VudCgkc3ViamVjdCkgPT0gMCkgewoJCQoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vX2ZpZWxkX2Fzc2lnbmVkJywkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpLic8YnIgLz4nOwoJCX0KCgkJaWYgKCRuYW1lID09IGZhbHNlIHx8IGNvdW50KCRuYW1lKSA9PSAwKSB7CgkJCgkJCSRyZXQgPSBmYWxzZTsKCQkJJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbm9fZmllbGRfYXNzaWduZWQnLCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZScpKS4nPGJyIC8+JzsKCQl9CgoJCWlmICgkZnJvbSA9PSBmYWxzZSB8fCBjb3VudCgkZnJvbSkgPT0gMCkgewoJCQoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vX2ZpZWxkX2Fzc2lnbmVkJywkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnKSkuJzxiciAvPic7CgkJfQoKCQlpZiAoJGRlc3QgPT0gZmFsc2UgfHwgY291bnQoJGRlc3QpID09IDApIHsKCQkKCQkJJHJldCA9IGZhbHNlOwoJCQkkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub19maWVsZF9hc3NpZ25lZCcsJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpKS4nPGJyIC8+JzsKCQl9CQkKCQkKCQkKICAgICAgICByZXR1cm4gYXJyYXkoJHJldCwkbWVzc2FnZSk7ICAgICAgIAogICAgfQoKCS8vIEdldCBhbGwgZmllbGRzCglwcml2YXRlIGZ1bmN0aW9uIEdldEZpZWxkTGlzdCgkc2VsZWN0b25lID0gZmFsc2UpIAoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJJGZpZWxkcyA9ICRmb3JtLT5HZXRGaWVsZHMoKTsKCQkkcmV0ID0gYXJyYXkoKTsKCQkKCQlpZigkc2VsZWN0b25lKSB7CgkJCgkJCSRyZXRbJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXSA9ICcnOwoJCX0KCQoJCWZvcmVhY2goJGZpZWxkcyBhcyAkdGhpc0ZpZWxkKSB7CgkJCgkJCWlmKCR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0pIHsKCQkKCQkJCSRyZXRbJHRoaXNGaWVsZC0+R2V0TmFtZSgpXSA9ICR0aGlzRmllbGQtPkdldElkKCk7CgkJCX0KCQl9CgkJCgkJcmV0dXJuICRyZXQ7CgkKCX0JCgkKCQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailConfirmation.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJLy92YXIgJHZhbGlkYXRlZDsKCglmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24oJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICAgIAkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAnZW1haWwnOwogICAgICAgCSR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKICAgICAgIAkkdGhpcy0+Zm9ybV9wdHItPkFkZFRlbXBsYXRlVmFyaWFibGUoJ2NvbmZpcm1fdXJsJywKICAgICAgIAkJJG1vZC0+TGFuZygndGl0bGVfY29uZmlybWF0aW9uX3VybCcpKTsKICAgICAgIAkkdGhpcy0+YXBwcm92ZWRUb0dvID0gZmFsc2U7CiAgICB9CgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICAgcmV0dXJuICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwoJfQoKCWZ1bmN0aW9uIEFwcHJvdmVUb0dvKCRyZXNwb25zZV9pZCkKCXsKCQkkdGhpcy0+YXBwcm92ZWRUb0dvID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5mb3JtX3B0ci0+R2V0Rm9ybVN0YXRlKCkgPT0gJ3VwZGF0ZScpCgkJCXsKCQkJJHRoaXMtPmFwcHJvdmVkVG9HbyA9IHRydWU7CgkJCXJldHVybjsKCQkJfQoJCS8vIElmIHdlIGhhdmVuJ3QgYmVlbiBhcHByb3ZlZCwgaW5oaWJpdCBhbGwgb3RoZXIgZGlzcG9zaXRpb25zIQoJCSRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQl7CgkJCWlmICgoJHRoaXMtPmFwcHJvdmVkVG9HbyAmJiAkb3RoZXJzWyRpXS0+R2V0RmllbGRUeXBlKCkgPT0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnKSB8fAoJCQkJKCR0aGlzLT5hcHByb3ZlZFRvR28gJiYgJG90aGVyc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykpCgkJCQl7CgkJCQkkb3RoZXJzWyRpXS0+U2V0QXBwcm92YWxOYW1lKCR0aGlzLT5HZXRWYWx1ZSgpKTsKCQkJCX0KCQkJZWxzZWlmICghICR0aGlzLT5hcHByb3ZlZFRvR28gJiYgJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCQkJCXsKCQkJCSRvdGhlcnNbJGldLT5TZXREaXNwb3NpdGlvblBlcm1pc3Npb24oZmFsc2UpOwoJCQkJfQoJCQl9CgkJJHRoaXMtPlNldERpc3Bvc2l0aW9uUGVybWlzc2lvbih0cnVlKTsJCQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPmZiQ3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksMjUsODAsJHRoaXMtPkdldENTU0lkVGFnKCksJ2VtYWlsJyk7Cgl9CgoKICAgIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCEgJHRoaXMtPmFwcHJvdmVkVG9HbykKCQkJewoJCQkvLyBjcmVhdGUgcmVzcG9uc2UgVVJMCgkJCSRmYnJmID0gbnVsbDsKCQkJbGlzdCgkcmlkLCRjb2RlKSA9ICR0aGlzLT5mb3JtX3B0ci0+U3RvcmVSZXNwb25zZSgtMSwnJywkZmJyZik7CgkJCQoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignY29uZmlybV91cmwnLCRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygnJywgJHJldHVybmlkLAoJCQkJJ3ZhbGlkYXRlJywgJycsIGFycmF5KCdmYnJwX2YnPT4kdGhpcy0+Zm9ybV9wdHItPkdldElkKCksJ2ZicnBfcic9PiRyaWQsJ2ZicnBfYyc9PiRjb2RlKSwgJycsCgkJCQl0cnVlLGZhbHNlLCcnLHRydWUpKTsKCQkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+R2V0VmFsdWUoKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgCgkgIGdsb2JhbCAkZ0NtczsKCSAgJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCgkgIGxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnKSwKCQkJCSBAJGNvbnRlbnRvcHMtPkNyZWF0ZUhpZXJhcmNoeURyb3Bkb3duKCcnLCR0aGlzLT5HZXRPcHRpb24oJ3JlZGlyZWN0X3BhZ2UnLCcwJyksICRmb3JtRGVzY3JpcHRvci4nZmJycF9vcHRfcmVkaXJlY3RfcGFnZScpKSk7CgkgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CiAgCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdlbWFpbCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICB9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailSiteAdmin.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkhhc0FkZE9wID0gZmFsc2U7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwoJfQoKCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCSAgICBnbG9iYWwgJGdDbXM7CgkgICAgJHVzZXJvcHMgPSAkZ0Ntcy0+R2V0VXNlck9wZXJhdGlvbnMoKTsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKCQkJfQoJCQkKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVzdHJpY3RfdG9fZ3JvdXAnLCcwJyk9PScxJykKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzSW5Hcm91cCgkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzKCk7CgkJCX0KCQlmb3IoJGk9MDskaTxjb3VudCgkdXNlcmxpc3QpOyRpKyspCgkJCXsKCQkJJG5hbWUgPSBhcnJheSgpOwoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VyZmlyc3RuYW1lJywnMCcpPT0nMScpCgkJCQl7CgkJCQlhcnJheV9wdXNoKCRuYW1lLCR1c2VybGlzdFskaV0tPmZpcnN0bmFtZSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJsYXN0bmFtZScsJzAnKT09JzEnKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkbmFtZSwkdXNlcmxpc3RbJGldLT5sYXN0bmFtZSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJuYW1lJywnMCcpPT0nMScpCgkJCQl7CgkJCQlhcnJheV9wdXNoKCRuYW1lLCcgKCcuJHVzZXJsaXN0WyRpXS0+dXNlcm5hbWUuJyknKTsKCQkJCX0KCQkJJHNuYW1lID0gaW1wbG9kZSgnICcsJG5hbWUpOwoJCQkkc29ydGVkWyRzbmFtZV09KCRpKzEpOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCSAgICBnbG9iYWwgJGdDbXM7CgkgICAgJGdyb3Vwb3BzID0gJGdDbXMtPkdldEdyb3VwT3BlcmF0aW9ucygpOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgJHJldCA9ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdyZXN0cmljdF90b19ncm91cCcsJzAnKT09JzEnKQoJCQl7CgkJCSRncm91cCA9ICRncm91cG9wcy0+TG9hZEdyb3VwQnlJRCgkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcpKTsKCQkJaWYgKCRncm91cCAmJiBpc3NldCgkZ3JvdXAtPm5hbWUpKQoJCQkJewoJCQkJJHJldCAuPSAnLCAnLiRtb2QtPkxhbmcoJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnLCRncm91cC0+bmFtZSk7CgkJCQl9CgkJCX0KICAgICAgICByZXR1cm4gJHJldDsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJICAgIGdsb2JhbCAkZ0NtczsKCSAgICAkZ3JvdXBvcHMgPSAkZ0Ntcy0+R2V0R3JvdXBPcGVyYXRpb25zKCk7CgkgICAgJGdyb3VwcyA9ICRncm91cG9wcy0+TG9hZEdyb3VwcygpOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZScpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zaG93X3VzZXJmaXJzdG5hbWUnLCcwJykuCgkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3Nob3dfdXNlcmZpcnN0bmFtZScsICcxJywKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcmZpcnN0bmFtZScsJzEnKSkpKTsKCQkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZScpLAoJCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd191c2VybGFzdG5hbWUnLCcwJykuCgkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zaG93X3VzZXJsYXN0bmFtZScsICcxJywKCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJsYXN0bmFtZScsJzEnKSkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfdXNlcm5hbWUnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc2hvd191c2VybmFtZScsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2hvd191c2VybmFtZScsICcxJywKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcm5hbWUnLCcwJykpKSk7CgkJCQkKCgkJJGl0ZW1zID0gYXJyYXkoKTsKCQlmb3JlYWNoICgkZ3JvdXBzIGFzICR0aGlzR3JvdXApCgkJCXsKCQkJJGl0ZW1zWyR0aGlzR3JvdXAtPm5hbWVdPSR0aGlzR3JvdXAtPmlkOwoJCQl9CgkJCgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yZXN0cmljdF90b19ncm91cCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9yZXN0cmljdF90b19ncm91cCcsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcmVzdHJpY3RfdG9fZ3JvdXAnLCAnMScsCgkJCQkkdGhpcy0+R2V0T3B0aW9uKCdyZXN0cmljdF90b19ncm91cCcsJzAnKSkuCgkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2dyb3VwJywgJGl0ZW1zLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZ3JvdXAnLCcnKSkKCQkJCSkpOwoJCQkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkgICAgZ2xvYmFsICRnQ21zOwoJICAgICR1c2Vyb3BzID0gJGdDbXMtPkdldFVzZXJPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpPT0nMScpCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2Vyc0luR3JvdXAoJHRoaXMtPkdldE9wdGlvbignZ3JvdXAnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2VycygpOwoJCQl9CgkJaWYgKGlzc2V0KCR1c2VybGlzdFskdGhpcy0+VmFsdWUgLSAxXSkpCgkJCXsKCQkJJHJldCA9ICR1c2VybGlzdFskdGhpcy0+VmFsdWUgLSAxXS0+Zmlyc3RuYW1lIC4gJyAnLiAkdXNlcmxpc3RbJHRoaXMtPlZhbHVlIC0gMV0tPmxhc3RuYW1lOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9CgkJCgl9CgkKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCSAgICBnbG9iYWwgJGdDbXM7CgkgICAgJHVzZXJvcHMgPSAkZ0Ntcy0+R2V0VXNlck9wZXJhdGlvbnMoKTsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVzdHJpY3RfdG9fZ3JvdXAnLCcwJyk9PScxJykKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzSW5Hcm91cCgkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzKCk7CgkJCX0KCQkkZGVzdCA9IGFycmF5KCR1c2VybGlzdFskdGhpcy0+VmFsdWUgLSAxXS0+ZW1haWwpOwoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJGRlc3QsJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcpKTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgICB7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlsaXN0KCRyZXQsJG1lc3NhZ2UpID0gJHRoaXMtPnZhbGlkYXRlRW1haWxBZGRyKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKICAgICAgICByZXR1cm4gYXJyYXkoJHJldCwkbWVzc2FnZSk7CiAgICB9CiAgICAKICAgIGZ1bmN0aW9uIFZhbGlkYXRlKCkKICAgIHsKICAgICAgICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAgJHJlc3VsdCA9IHRydWU7CiAgICAgICAgICRtZXNzYWdlID0gJyc7CgogICAgICAgICBpZiAoJHRoaXMtPlZhbHVlID09IGZhbHNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgJG1lc3NhZ2UgLj0KJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpLic8L2JyPic7CiAgICAgICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXkoJHJlc3VsdCwkbWVzc2FnZSk7CiAgICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFile.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZSBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiRGlzcG9zaXRpb25GaWxlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRmlsZSc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewoJZ2xvYmFsICRnQ21zOwoJJG9wdGlvbnMgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtPSR0aGlzLT5mb3JtX3B0cjsKICAgICRjb3VudCA9IDA7CiAgICB3aGlsZSAoISAkbW9kLT5HZXRGaWxlTG9jaygpICYmICRjb3VudDwyMDApCiAgICAgIHsKCSRjb3VudCsrOwoJdXNsZWVwKDUwMCk7CiAgICAgIH0KICAgIGlmICgkY291bnQgPT0gMjAwKQogICAgICB7CglyZXR1cm4gYXJyYXkoZmFsc2UsICRtb2QtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJykpOwogICAgICB9CgogICAgJGZpbGVzcGVjID0gJHRoaXMtPkdldE9wdGlvbignZmlsZXJvb3QnLCRvcHRpb25zWyd1cGxvYWRzX3BhdGgnXSkuJy8nLgogICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywnZm9ybV9zdWJtaXNzaW9ucy50eHQnKSk7CgogICAgJGZvcm0tPnNldEZpbmlzaGVkRm9ybVNtYXJ0eSgpOwoKICAgICRsaW5lID0gJyc7CgkKCS8vIENoZWNrIGlmIGZpcnN0IHRpbWUsIHdyaXRlIGhlYWRlcgogICAgaWYgKCEgZmlsZV9leGlzdHMoJGZpbGVzcGVjKSkKICAgICAgewoJCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoKCQlpZigkaGVhZGVyICE9ICcnKSB7CgkJCSRoZWFkZXIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkaGVhZGVyKTsKCQl9CiAgICAgIH0KCSAgCgkgIAoJLy8gTWFrZSBuZXdsaW5lICAKICAgICR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKTsKICAgIGlmICgkdGVtcGxhdGUgPT0gJycpCiAgICAgIHsKCSR0ZW1wbGF0ZSA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSgpOwogICAgICB9CiAgICAkbGluZSA9ICR0ZW1wbGF0ZTsKCiAgICAkbmV3bGluZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbGluZSApOwoJJHJlcGxjaGFyID0gJHRoaXMtPkdldE9wdGlvbignbmV3bGluZWNoYXInLCcnKTsKCWlmICgkcmVwbGNoYXIgIT0gJycpCgkJewoJCSRuZXdsaW5lID0gcnRyaW0oJG5ld2xpbmUsIlxyXG4iKTsKICAgIAkkbmV3bGluZSA9IHByZWdfcmVwbGFjZSgnL1tcblxyXS8nLCRyZXBsY2hhciwkbmV3bGluZSk7CgkJfQogICAgaWYgKHN1YnN0cigkbmV3bGluZSwtMSwxKSAhPSAiXG4iKQogICAgICB7CgkgICRuZXdsaW5lIC49ICJcbiI7CiAgICAgIH0KCQoJLy8gR2V0IGZvb3RlcgoJJGZvb3RlciA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZm9vdGVyJywnJyk7CgoJaWYoJGZvb3RlciAhPSAnJykgewoJCSRmb290ZXIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkZm9vdGVyKTsKCX0KCgkvLyBXcml0ZSBmaWxlCglpZihmaWxlX2V4aXN0cygkZmlsZXNwZWMpKSB7CgkKCQkkcm93cyA9IGZpbGUoJGZpbGVzcGVjKTsKCQkkZnAgPSBmb3BlbigkZmlsZXNwZWMsICd3Jyk7CgkJCgkJZm9yZWFjaCgkcm93cyBhcyAkb25lbGluZSkgewoJCQoJCQlpZihzdWJzdHIoJGZvb3RlciwgMCwgc3RybGVuKCRvbmVsaW5lKSkgPT0gJG9uZWxpbmUpIHsKCQkJCgkJCQlicmVhazsKCQkJfQoJCQkKCQkJZndyaXRlKCRmcCwkb25lbGluZSk7CgkJfQoJCgl9IGVsc2UgewoJCQoJCSRmcCA9IGZvcGVuKCRmaWxlc3BlYywgJ3cnKTsKCX0KCQoJZndyaXRlKCRmcCwkaGVhZGVyLiRuZXdsaW5lLiRmb290ZXIpOwoJZmNsb3NlKCRmcCk7CgkKCS8qICBTdGlra2kgcmVtb3ZlZDogZHVlIG5ldyByZXdyaXRlIG1ldGhvZAogICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CiAgICBmd3JpdGUoJGYyLCRoZWFkZXIuJG5ld2xpbmUpOwogICAgZmNsb3NlKCRmMik7Ki8gCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogIAoJZ2xvYmFsICRnQ21zOwogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgoJCiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgICRwYXJtTWFpbiA9IGFycmF5KCk7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX3RlbXBsYXRlJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2hlYWRlciddWydpc19oZWFkZXInXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9mb290ZXInXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2Zvb3RlciddWydpc19mb290ZXInXT10cnVlOwkKCQogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3Jvb3QnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpbGVyb290JywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVyb290JywkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSksNDUsMjU1KS4nPGJyIC8+Jy4KCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJykpKTsKCQkJCQogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX25hbWUnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpbGVzcGVjJywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywnZm9ybV9zdWJtaXNzaW9ucy50eHQnKSwyNSwxMjgpKSk7CgogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50JyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9uZXdsaW5lY2hhcicsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCduZXdsaW5lY2hhcicsJycpLDUsMTUpLic8YnIgLz4nLgoJCQkJCQkkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnKSkpOwoJCQkJCQkgCiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKSwnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHRoaXMtPmZvcm1fcHRyLT5BZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJHBhcm1NYWluKSkpKTsKCQkJCQkJICAgLy9odG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKSksJ2ZicnBfb3B0X2ZpbGVfdGVtcGxhdGUnLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApLCR0aGlzLT5mb3JtX3B0ci0+QWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRwYXJtTWFpbikpKSk7IFN0aWtraSBjaGFuZ2VkOiBicmVpa2luZyB0ZW1wbGF0ZQoJCQkJCQkJCQkJCQkKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX2hlYWRlcicpLAoJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfaGVhZGVyJywnJyksJ2ZicnBfb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOwoJCQkJCSAgICAgICAvL2h0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSksJ2ZicnBfb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOyBTdGlra2kgY2hhbmdlZDogYnJlaWtpbmcgdGVtcGxhdGUKCQkJCQkJICAgCiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9mb290ZXInKSwKCQkJICAkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2Zvb3RlcicsJycpLCAnZmJycF9vcHRfZmlsZV9mb290ZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CSAgIAoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKICB9CiAgCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJzsKICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwogICAgJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogICAgJHRoaXMtPmZpbGVBZGQgPSAwOwoKICAgIGdsb2JhbCAkZ0NtczsKICAgICRjb25maWcgPSAkZ0Ntcy0+Z2V0Q29uZmlnKCk7CiAgICAkdGhpcy0+ZGZsdF9maWxlcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddOwogIH0KCgogIGZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5maWxlQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJICB7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkZGVsY291bnQrKzsKCSAgfQogICAgICB9CiAgfQoKICBmdW5jdGlvbiBjb3VudEZpbGVzKCkKICB7CiAgICAkdG1wID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fZmlsZW5hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IGNvdW50KCR0bXApOwogICAgICB9CiAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQogICAgLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCiAgICAvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KICAgICRzb3J0ZWQgPWFycmF5KCk7CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQogICAgICB7Cgkkc29ydGVkWycgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyldPScnOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRzb3J0ZWRbJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV09Jyc7CiAgICAgIH0KICAgICRkaXNwbGF5bmFtZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScpOwogICAgCiAgICBpZiAoY291bnQoJGRpc3BsYXluYW1lcykgPiAxKQogICAgICB7Cglmb3IoJGk9MDskaTxjb3VudCgkZGlzcGxheW5hbWVzKTskaSsrKQoJICB7CgkgICAgJHNvcnRlZFskZGlzcGxheW5hbWVzWyRpXV09KCRpKzEpOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNvcnRlZFskZGlzcGxheW5hbWVzXSA9ICcxJzsKICAgICAgfQogICAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkcmV0PSAkbW9kLT5MYW5nKCdmaWxlX2NvdW50JywkdGhpcy0+ZmlsZUNvdW50KTsKICAgIHJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKCWdsb2JhbCAkZ0NtczsKCSRvcHRpb25zID0gJGdDbXMtPkdldENvbmZpZygpOwogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZm9ybT0kdGhpcy0+Zm9ybV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKCiAgICAkZGlyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCkuJy8nOwogICAgJGZpbGVzcGVjID0gJGRpci4KICAgICAgcHJlZ19yZXBsYWNlKCIvW15cd1xkXC5dfFwuXC4vIiwgIl8iLCAKCQkgICAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLAoJCQkJCSAgICgkdGhpcy0+VmFsdWUgLSAxKSkpOwoKICAgICRsaW5lID0gJyc7CiAgICBpZiAoISBmaWxlX2V4aXN0cygkZmlsZXNwZWMpKQogICAgICB7CgkkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKCWlmICgkaGVhZGVyID09ICcnKQoJICB7CgkgICAgJGhlYWRlciA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZShmYWxzZSxmYWxzZSxmYWxzZSx0cnVlKTsKCSAgfSAKCSRoZWFkZXIgLj0gIlxuIjsKICAgICAgfQogICAgJHRlbXBsYXRlID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpOwogICAgaWYgKCR0ZW1wbGF0ZSA9PSAnJykKICAgICAgewoJJHRlbXBsYXRlID0gJGZvcm0tPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CiAgICAgIH0KICAgICRsaW5lID0gJHRlbXBsYXRlOwoKCSRmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgICRuZXdsaW5lID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRsaW5lICk7CgkkcmVwbGNoYXIgPSAkdGhpcy0+R2V0T3B0aW9uKCduZXdsaW5lY2hhcicsJycpOwoJaWYgKCRyZXBsY2hhciAhPSAnJykKCQl7CgkJJG5ld2xpbmUgPSBydHJpbSgkbmV3bGluZSwiXHJcbiIpOwogICAgCSRuZXdsaW5lID0gcHJlZ19yZXBsYWNlKCcvW1xuXHJdLycsJHJlcGxjaGFyLCRuZXdsaW5lKTsKCQl9CiAgICBpZiAoc3Vic3RyKCRuZXdsaW5lLC0xLDEpICE9ICJcbiIpCiAgICAgIHsKCSAgJG5ld2xpbmUgLj0gIlxuIjsKICAgICAgfQogICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CiAgICBmY2xvc2UoJGYyKTsgCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVIZWFkZXIoKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJG90aGVyc1skaV0tPkdldE5hbWUoKSk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlVGVtcGxhdGUoKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJ3skJyAuICRvdGhlcnNbJGldLT5HZXRWYXJpYWJsZU5hbWUoKSAuICd9Jyk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgogICAgJHRoaXMtPmNvdW50RmlsZXMoKTsKICAgIGlmKCAkdGhpcy0+ZmlsZUFkZCA+IDAgKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ICs9ICR0aGlzLT5maWxlQWRkOwoJJHRoaXMtPmZpbGVBZGQgPSAwOwogICAgICB9CgogICAgJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5maWxlQ291bnQ+MT8kdGhpcy0+ZmlsZUNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fZmlsZW5hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgoJICAnPC90ZD48L3RyPic7CiAgICAgIH0KICAgICRkZXN0cyAuPSAnPC90YWJsZT4nOwoKICAgICRtYWluID0gYXJyYXkoKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgJHBhcm1NYWluID0gYXJyYXkoKTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfdGVtcGxhdGUnXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2hlYWRlciddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX2hlYWRlciddPXRydWU7CiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJICdmYnJwX29wdF9zZWxlY3Rfb25lJywKCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlyZWN0b3JfZGV0YWlscycpLCRkZXN0cykpOwoKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3BhdGgnKSwKCQkJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQknZmJycF9vcHRfZmlsZV9wYXRoJywKCQkJCQkJJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCksNDAsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnKSwKCQkJICBhcnJheSgkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpKSwnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHRoaXMtPmZvcm1fcHRyLT5BZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJHBhcm1NYWluKSkpKTsKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX2hlYWRlcicpLAoJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJICAgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSksJ2ZicnBfb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50JyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9uZXdsaW5lY2hhcicsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCduZXdsaW5lY2hhcicsJycpLDUsMTUpLic8YnIgLz4nLgoJCQkJCQkkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnKSkpOwoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionForm.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRm9ybSBleHRlbmRzICBmYkZpZWxkQmFzZQp7CgoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRm9ybSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkZvcm0nOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbignbWV0aG9kJykuJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3VybCcpOwogIH0KCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKICAgICRtb2Q9JHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGZwdHI9JHRoaXMtPmZvcm1fcHRyOwogICAgJG1zZyA9ICcnOwogICAgJHN1Ym1pc3Npb24gPSAkdGhpcy0+R2V0T3B0aW9uKCd1cmwnKTsKICAgICRwYXlsb2FkID0gYXJyYXkoKTsKCSAkdGhlRmllbGRzID0gJGZwdHItPkdldEZpZWxkcygpOwoJICR1bnNwZWMgPSAkZnB0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoKCSBmb3IoJGk9MDskaTxjb3VudCgkdGhlRmllbGRzKTskaSsrKQogICAgICB7CiAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdWJfJy4kdGhlRmllbGRzWyRpXS0+R2V0SWQoKSwnMCcpID09ICcxJykKICAgICAgICAgewogICAgICAgICAkcGwgPSB1cmxlbmNvZGUoJHRoaXMtPkdldE9wdGlvbignZmxkXycuJHRoZUZpZWxkc1skaV0tPkdldElkKCkpKS4nPScuCiAgICAgICAgICAgIHVybGVuY29kZSgkdGhlRmllbGRzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkpOwogICAgICAgICBhcnJheV9wdXNoKCRwYXlsb2FkLCRwbCk7CiAgICAgICAgIH0KCQl9CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignYWRkaXRpb25hbCcsJycpICE9ICcnKQogICAgICB7CiAgICAgICBhcnJheV9wdXNoKCRwYXlsb2FkLCR0aGlzLT5HZXRPcHRpb24oJ2FkZGl0aW9uYWwnKSk7CiAgICAgIH0KICAgICRzZW5kX3BheWxvYWQgPSBpbXBsb2RlKCcmJywkcGF5bG9hZCk7CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignbWV0aG9kJywnUE9TVCcpID09ICdQT1NUJykKICAgICAgICAgewogICAgICAgICAkY2ggPSBjdXJsX2luaXQoJHRoaXMtPkdldE9wdGlvbigndXJsJykpOwogICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwxKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsJHNlbmRfcGF5bG9hZCk7CiAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwxKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDApOwogICAgICAgICAkcmVzID0gY3VybF9leGVjKCRjaCk7CiAgICAgICAgIGlmICghJHJlcykKICAgICAgICAgICAgewogICAgICAgICAgICAkbXNnID0gY3VybF9lcnJvcigkY2gpOwogICAgICAgICAgICB9CiAgICAgICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgJHVybCA9ICR0aGlzLT5HZXRPcHRpb24oJ3VybCcpOwogICAgICAgICBpZiAoc3RycG9zKCR1cmwsJz8nKSkKICAgICAgICAgICAgewogICAgICAgICAgICAkdXJsIC49ICcmJy4kc2VuZF9wYXlsb2FkOwogICAgICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAkdXJsIC49ICc/Jy4kc2VuZF9wYXlsb2FkOwogICAgICAgICAgICB9CiAgICAgICAgICRjaCA9IGN1cmxfaW5pdCgkdXJsKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hUVFBHRVQsMSk7CiAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwxKTsKICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDApOwogICAgICAgICAkcmVzID0gY3VybF9leGVjKCRjaCk7CiAgICAgICAgIGlmICghJHJlcykKICAgICAgICAgICAgewogICAgICAgICAgICAkbXNnID0gY3VybF9lcnJvcigkY2gpOwogICAgICAgICAgICB9CiAgICAgICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICAgfQogICAgcmV0dXJuIGFycmF5KCRyZXMsJG1zZyk7CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKCWdsb2JhbCAkZ0NtczsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZnB0ID0gJHRoaXMtPmZvcm1fcHRyOwoKICAgICRtYWluID0gYXJyYXkoKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgJG1ldGhvZHMgPSBhcnJheSgnUE9TVCc9PidQT1NUJywnR0VUJz0+J0dFVCcpOwogICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2N1cmxfaW5pdCcpKQogICAgICB7CiAgICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJycsJG1vZC0+TGFuZygndGl0bGVfaW5zdGFsbF9jdXJsJykpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21ldGhvZCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9tZXRob2QnLCAkbWV0aG9kcywgLTEsCiAgICAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ21ldGhvZCcpKSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91cmwnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3VybCcsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCd1cmwnLCcnKSw0MCwyNTUpLic8YnIgLz4nLgogICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfdXJsX2hlbHAnKSkpOwogICAgICRmaWVsZHMgPSAkZnB0LT5HZXRGaWVsZHMoKTsKICAgICAgZm9yZWFjaCgkZmllbGRzIGFzICR0ZikKICAgICAgICAgewogICAgICAgICAkYWwgPSAkdGYtPkdldEFsaWFzKCk7CiAgICAgICAgIGlmIChlbXB0eSgkYWwpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICRhbCA9ICR0Zi0+R2V0VmFyaWFibGVOYW1lKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21hcHNfdG8nLCR0Zi0+R2V0TmFtZSgpKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZsZF8nLiR0Zi0+R2V0SWQoKSwKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ2ZsZF8nLiR0Zi0+R2V0SWQoKSwkYWwpLDQwLDI1NSkuCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc3ViXycuJHRmLT5HZXRJZCgpLCcwJykuCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zdWJfJy4kdGYtPkdldElkKCksJzEnLAogICAgICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdzdWJfJy4kdGYtPkdldElkKCksKCR0Zi0+RGlzcGxheUluU3VibWlzc2lvbigpPycxJzonMCcpKSkuCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbicpKSk7CiAgICAgICAgIH0KICAgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FkZGl0aW9uYWwnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2FkZGl0aW9uYWwnLAoJCQkJCQkgJHRoaXMtPkdldE9wdGlvbignYWRkaXRpb25hbCcpLDQwLDI1NSkuJzxiciAvPicuCiAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnKSkpOwoKICAgICAgfQogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgICR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwogIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFormBrowser.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRm9ybUJyb3dzZXIgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25Gb3JtQnJvd3NlcigmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25Gb3JtQnJvd3Nlcic7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKCQkkdGhpcy0+SGlkZUxhYmVsID0gMTsKCQkkdGhpcy0+TmVlZHNEaXYgPSAwOwoJCSR0aGlzLT5hcHByb3ZlZEJ5ID0gJyc7CgkJJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQlyZXR1cm4gJyc7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCQoJCQkkdGhpcy0+RW5jb2RlUmVxSWQoJHRoaXMtPlZhbHVlKSk7Cgl9CgoJZnVuY3Rpb24gU2V0QXBwcm92YWxOYW1lKCRuYW1lKQoJewoJCSR0aGlzLT5hcHByb3ZlZEJ5ID0gJG5hbWU7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkZW5jID0gKCR0aGlzLT5HZXRPcHRpb24oJ2NyeXB0JywnMCcpID09ICcxJz8kbW9kLT5MYW5nKCd5ZXMnKTokbW9kLT5MYW5nKCdubycpKTsKCQkkZmV1ID0gKCR0aGlzLT5HZXRPcHRpb24oJ2ZldV9iaW5kJywnMCcpID09ICcxJz8kbW9kLT5MYW5nKCd5ZXMnKTokbW9kLT5MYW5nKCdubycpKTsKCQlyZXR1cm4gJG1vZC0+TGFuZygndGl0bGVfZW5jcnlwdGlvbicpLic6Jy4kZW5jLicsICcuJG1vZC0+TGFuZygndGl0bGVfZmV1X2JpbmRpbmcnKS4nOicuJGZldTsKCX0KCQoJZnVuY3Rpb24gRGVjb2RlUmVxSWQoJHRoZVZhbCkKCXsKCQkkdG1wID0gYmFzZTY0X2RlY29kZSgkdGhlVmFsKTsKCQkkdG1wMiA9IHN0cl9yZXBsYWNlKHNlc3Npb25faWQoKSwnJywkdG1wKTsKCQlpZiAoc3Vic3RyKCR0bXAyLDAsMSkgPT0gJ18nKQoJCQl7CgkJCXJldHVybiBzdWJzdHIoJHRtcDIsMSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIC0xOwoJCQl9Cgl9CgkKCWZ1bmN0aW9uIEVuY29kZVJlcUlkKCRyZXFfaWQpCgl7CgkJcmV0dXJuIGJhc2U2NF9lbmNvZGUoc2Vzc2lvbl9pZCgpLidfJy4kcmVxX2lkKTsKCX0KCQoJCglmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsKQoJewoJCSRkZWN2YWwgPSBiYXNlNjRfZGVjb2RlKCR2YWwpOwogICAKCQlpZiAoJHZhbCA9PT0gZmFsc2UpCgkJCXsKCQkJLy8gbm8gdmFsdWUgc2V0LCBzbyB3ZSdsbCBsZWF2ZSB2YWx1ZSBhcyBmYWxzZQoJCQl9CgkJZWxzZWlmIChzdHJwb3MoJGRlY3ZhbCwnXycpID09PSBmYWxzZSkKCQkJewoJCQkvLyB1bmVuY3J5cHRlZCB2YWx1ZSwgY29taW5nIGluIGZyb20gcHJldmlvdXMgcmVzcG9uc2UKCQkJJHRoaXMtPlZhbHVlID0gJHZhbDsKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyBlbmNyeXB0ZWQgdmFsdWUgY29taW5nIGluIGZyb20gYSBmb3JtLCBzbyB3ZSdsbCB1cGRhdGUuCgkJCSR0aGlzLT5WYWx1ZSA9ICR0aGlzLT5EZWNvZGVSZXFJZCgkdmFsKTsKCQkJfQoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKCQkkZmllbGRzID0gJGZvcm0tPkdldEZpZWxkcygpOwoJCSRmaWVsZGxpc3QgPSBhcnJheSgkbW9kLT5MYW5nKCdub25lJyk9PictMScpOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJGZpZWxkcyk7JGkrKykKCQkJewoJCQlpZiAoJGZpZWxkc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCQkJCXsKCQkJCSRmaWVsZGxpc3RbJGZpZWxkc1skaV0tPkdldE5hbWUoKV0gPSAkZmllbGRzWyRpXS0+R2V0SWQoKTsKCQkJCX0KCQkJfQoJCSRjdXJyZW50X2luZGV4ZXMgPSBhcnJheSgpOwoJCWZvciAoJGk9MTskaTw2OyRpKyspCgkJCXsKCQkJJGZuYW1lID0gYXJyYXlfc2VhcmNoKCR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJGkpLCRmaWVsZGxpc3QpOwoJCQlhcnJheV9wdXNoKCRtYWluLAoJCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJyxhcnJheSgkaSkpLAoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NvcnRmaWVsZCcuJGksICRmaWVsZGxpc3QsIC0xLAoJCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJGksLTEpKQoJCQkJCSkpOwoJCQlhcnJheV9wdXNoKCRjdXJyZW50X2luZGV4ZXMsJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kaSwtMSkpOwoJCQl9CgkgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbm90ZScpLCRtb2QtPkxhbmcoJ3RpdGxlX2NoYW5naW5nX3RyaWdnZXJzX3JlaW5kZXgnKS4KCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfcHJldmlvdXNfaW5kaWNlcycsaW1wbG9kZSgnOicsJGN1cnJlbnRfaW5kZXhlcykpCgkJKSk7CgoJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlYXJjaGFibGUnKSwKCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWFyY2hhYmxlJywnMCcpLgoJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VhcmNoYWJsZScsCgkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3NlYXJjaGFibGUnLCcwJykpLgoJCSRtb2QtPkxhbmcoJ3RpdGxlX3NlYXJjaGFibGVfaGVscCcpKSk7CgoJICAkZmV1ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKCSAgaWYgKCRmZXUgPT0gRkFMU0UpCgkJewoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9mZXVfYmluZGluZycpLAoJCQkkbW9kLT5MYW5nKCd0aXRsZV9pbnN0YWxsX2ZldScpKSk7CQoJCX0KCWVsc2UKCQl7CgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZldV9iaW5kaW5nJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZldV9iaW5kJywnMCcpLgoJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZldV9iaW5kJywKCQkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2ZldV9iaW5kJywnMCcpKS4KCQkJJG1vZC0+TGFuZygndGl0bGVfZmV1X2JpbmRfaGVscCcpKSk7CgkJfQoJCQoJICAkb3BlbnNzbCA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdPcGVuU1NMJyk7CgkgIGlmICgkb3BlbnNzbCA9PSBGQUxTRSAmJiAhZnVuY3Rpb25fZXhpc3RzKCdtY3J5cHRfZW5jcnlwdCcpKQoJCXsKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnKSwKICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfaW5zdGFsbF9jcnlwdG8nKSkpOwogICAgICAgIAoJCX0KCWVsc2UKCQl7CgkJaWYgKCRvcGVuc3NsICE9PSBGQUxTRSkKICAgICAgICAgewoJCSAgICAka2V5cyA9ICRvcGVuc3NsLT5nZXRLZXlMaXN0KCk7CgkJICAgICRjZXJ0cyA9ICRvcGVuc3NsLT5nZXRDZXJ0TGlzdCgpOwoJCSAgICB9CgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YScpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jcnlwdCcsJzAnKS4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NyeXB0JywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignY3J5cHQnLCcwJykpLgoJCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZycpKSk7CgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcycpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oYXNoX3NvcnQnLCcwJykuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oYXNoX3NvcnQnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdoYXNoX3NvcnQnLCcwJykpLgogICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCcpKSk7CgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZScpLAogICAgICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfa2V5ZmlsZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbigna2V5ZmlsZScsJycpLDQwLDI1NSkpKTsKCiAgICAgICRjcnlwdGxpYnMgPSBhcnJheSgpOwogICAgICBpZiAoJG9wZW5zc2wgIT09IEZBTFNFKQogICAgICAgICB7CiAgICAgICAgICRjcnlwdGxpYnNbJG1vZC0+TGFuZygnb3BlbnNzbCcpXT0nb3BlbnNzbCc7CiAgICAgICAgIH0KICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnbWNyeXB0X2VuY3J5cHQnKSkKICAgICAgICAgewogICAgICAgICAkY3J5cHRsaWJzWyRtb2QtPkxhbmcoJ21jcnlwdCcpXT0nbWNyeXB0JzsKICAgICAgICAgfQoKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY3J5cHRfbGliJyksCiAgICAgICAgICAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9jcnlwdF9saWInLAogICAgICAgICAgICAkY3J5cHRsaWJzLC0xLCR0aGlzLT5HZXRPcHRpb24oJ2NyeXB0X2xpYicpKSkpOwoKCgogICAgICBpZiAoJG9wZW5zc2wgIT09IEZBTFNFKQogICAgICAgICB7CiAgICAgICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCdjaG9vc2VfY3J5cHQnKSwkbW9kLT5MYW5nKCdjaG9vc2VfY3J5cHRfbG9uZycpKSk7CgoJCSAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jcnlwdF9jZXJ0JyksCgkJCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jcnlwdF9jZXJ0JywgJGNlcnRzLAoJCQkJCQktMSwkdGhpcy0+R2V0T3B0aW9uKCdjcnlwdF9jZXJ0JykpKSk7CgkJICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9wcml2YXRlX2tleScpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9wcml2YXRlX2tleScsICRrZXlzLAoJCQkJCS0xLCR0aGlzLT5HZXRPcHRpb24oJ3ByaXZhdGVfa2V5JykpLiRtb2QtPkxhbmcoJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCcpKSk7CiAgICAgICAgIH0KCQl9CgoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKCX0KCgoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCSRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCWxpc3QoJHJlcywkbXNnKSA9ICRmb3JtLT5TdG9yZVJlc3BvbnNlKCgkdGhpcy0+VmFsdWU/JHRoaXMtPlZhbHVlOi0xKSwkdGhpcy0+YXBwcm92ZWRCeSwkdGhpcyk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlYXJjaGFibGUnLCcwJykgPT0gJzEnKQoJCQl7CgkJCSRmb3JtLT5BZGRUb1NlYXJjaEluZGV4KCR0aGlzLT5WYWx1ZSk7CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHJlcywgJG1zZyk7Cgl9CgoKICBmdW5jdGlvbiBQb3N0RmllbGRTYXZlUHJvY2VzcygmJHBhcmFtcykKICB7CgkkcmVpbmRleCA9IGZhbHNlOwoJJHByZXZfaW5kaWNlcyA9IGV4cGxvZGUoJzonLCRwYXJhbXNbJ2ZicnBfcHJldmlvdXNfaW5kaWNlcyddKTsKCWZvciAoJGk9MTskaTw2OyRpKyspCgkJewoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpKSAhPSAkcHJldl9pbmRpY2VzWyRpLTFdKQoJCQl7CgkJCSRyZWluZGV4ID0gdHJ1ZTsKCQkJfQoJCX0KCWlmICghICRyZWluZGV4KQoJCXsKCQlyZXR1cm47CgkJfQoJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkkZm9ybS0+UmVpbmRleFJlc3BvbnNlcygpOwogIH0KICAKCglmdW5jdGlvbiBnZXRIYXNoZWRTb3J0RmllbGRWYWwoJHNvcnRGaWVsZE51bWJlcikKICAgewogICAgICAkdiA9ICR0aGlzLT5nZXRTb3J0RmllbGRWYWwoJHNvcnRGaWVsZE51bWJlcik7CiAgICAgIGlmIChzdHJsZW4oJHYpID4gNCkKICAgICAgICAgewogICAgICAgICAkdiA9IHN1YnN0cigkdiwwLDQpLiBtZDUoc3Vic3RyKCR2LDQpKTsKICAgICAgICAgfQogICAgICByZXR1cm4gJHY7CiAgIH0KCQoJZnVuY3Rpb24gZ2V0U29ydEZpZWxkTGlzdCgpCgl7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJJHJldCA9IGFycmF5KCk7CgkJZm9yICgkaT0xOyRpPDY7JGkrKykKCQkJewoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kaSwnLTEnKSAhPSAnLTEnKQoJCQkJewoJCQkJJGFmaWVsZCA9ICRmb3JtLT5HZXRGaWVsZEJ5SWQoJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kaSkpOwoJCQkJaWYgKCRhZmllbGQgIT09IGZhbHNlKQogICAgICAgICAgICAgICB7CgkJCQkgICAkcmV0WyRpXSA9ICRhZmllbGQtPkdldE5hbWUoKTsKICAgICAgICAgICAgICAgfQoJCQkJfQoJCQl9CgkJcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gZ2V0U29ydEZpZWxkVmFsKCRzb3J0RmllbGROdW1iZXIpCgl7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJJHZhbCA9ICIiOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRzb3J0RmllbGROdW1iZXIsJy0xJykgIT0gJy0xJykKCQkJewoJCQkkYWZpZWxkID0gJGZvcm0tPkdldEZpZWxkQnlJZCgkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRzb3J0RmllbGROdW1iZXIpKTsKICAgICAgICAgaWYgKCRhZmllbGQgIT09IGZhbHNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR2YWwgPSAkYWZpZWxkLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKICAgICAgICAgICAgfQoJCQl9CgkJaWYgKHN0cmxlbigkdmFsKSA+IDgwKQoJCQl7CgkJCSR2YWwgPSBzdWJzdHIoJHZhbCwwLDgwKTsKCQkJfQoJCXJldHVybiAkdmFsOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnOwogICAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKCQkJJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICk7CgkkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7CgkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSRyZXRzdHIgPSAnPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nW10iICcuCgkJCSR0aGlzLT5HZXRDU1NJZFRhZygnXzEnKS4nIHZhbHVlPSInLmh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlWzBdLCBFTlRfUVVPVEVTKS4KCQkJJyIgc2l6ZT0iMjUiIG1heGxlbmd0aD0iMTI4IiAnLiRqcy4nLz4nOwogCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2NvcHknLCduJykgPT0gJ2MnKQoJCQl7CgkJCSRyZXRzdHIgLj0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAxLAoJCQkJCTAsJHRoaXMtPkdldENTU0lkVGFnKCdfMicpLCdlbWFpbCcpOwoJCQkkcmV0c3RyIC49ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXzInKS4nIiBjbGFzcz0ibGFiZWwiPicuJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2xhYmVsJywKCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX3NlbmRfbWVfYV9jb3B5JykpLic8L2xhYmVsPic7CgkJCX0KCQlyZXR1cm4gJHJldHN0cjsKCX0KCglmdW5jdGlvbiBHZXRDU1NJZCgkc3VmZml4PScnKQoJewoJCSRhbGlhcyA9ICR0aGlzLT5HZXRBbGlhcygpOwoJCWlmIChlbXB0eSgkYWxpYXMpKQoJCQl7CgkJCSRjc3NpZCA9ICdmYnJwX18nLiR0aGlzLT5JZDsKCQkJfQoJCWVsc2UKCQkJewoJCQkkY3NzaWQgPSAkYWxpYXM7CgkJCX0KCgkJaWYgKGVtcHR5KCRzdWZmaXgpKQoJCQl7CgkJCSRjc3NpZCAuPSAnXzEnOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRjc3NpZCAuPSAkc3VmZml4OwoJCQl9CgkJcmV0dXJuICRjc3NpZDsKCX0KCiAgIGZ1bmN0aW9uIEhhc1ZhbHVlKCRkZW55X2JsYW5rX3Jlc3BvbnNlcz1mYWxzZSkKICAgewogICByZXR1cm4gKCR0aGlzLT5WYWx1ZVswXSAhPT0gZmFsc2UgJiYgIWVtcHR5KCR0aGlzLT5WYWx1ZVswXSkpOwogICB9CgogIAlmdW5jdGlvbiBHZXRWYWx1ZSgpCiAgCXsKICAgIAlyZXR1cm4gJHRoaXMtPlZhbHVlWzBdOwogIAl9CgogICBmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsU3RyKQogICB7CiAgICAgIGlmICghIGlzX2FycmF5KCR2YWxTdHIpKQogICAgICAgICB7CiAgICAgICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR2YWxTdHIpOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwogICAgICAgICB9CiAgIH0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCWlmIChpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+VmFsdWVbMF07CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5WYWx1ZTsKCQkJfQoJfQoKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCkKCXsKICAgICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpICE9IGZhbHNlICYmIAoJCQkoCgkJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZW5kX3VzZXJfY29weScsJ24nKSA9PSAnYScKCQkJCXx8CgkJCQkoJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2NvcHknLCduJykgPT0gJ2MnICYmIGlzc2V0KCR0aGlzLT5WYWx1ZVsxXSkgJiYgJHRoaXMtPlZhbHVlWzFdID09IDEpCgkJCSkKCQkgKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPlZhbHVlWzBdLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7CgkJCX0KCSAgZWxzZQoJCXsKICAgICAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgICAgICAgfQoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQkkb3B0cyA9IGFycmF5KCRtb2QtPkxhbmcoJ29wdGlvbl9uZXZlcicpPT4nbicsJG1vZC0+TGFuZygnb3B0aW9uX3VzZXJfY2hvaWNlJyk9PidjJywkbW9kLT5MYW5nKCdvcHRpb25fYWx3YXlzJyk9PidhJyk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZW5kX3VzZXJjb3B5JyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VuZF91c2VyX2NvcHknLCAkb3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ3NlbmRfdXNlcl9jb3B5JywnbicpKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCcpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VuZF91c2VyX2xhYmVsJywgJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2xhYmVsJywKCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX3NlbmRfbWVfYV9jb3B5JykpLDI1LDEyNSkpKTsKCQkkaG9wdHMgPSBhcnJheSgkbW9kLT5MYW5nKCdvcHRpb25fZnJvbScpPT4nZicsJG1vZC0+TGFuZygnb3B0aW9uX3JlcGx5Jyk9PidyJywkbW9kLT5MYW5nKCdvcHRpb25fYm90aCcpPT4nYicpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaGVhZGVyc190b19tb2RpZnknKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oZWFkZXJzX3RvX21vZGlmeScsICRob3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2hlYWRlcnNfdG9fbW9kaWZ5JywnZicpKSkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkbWFpbkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnKSk7Cgl9CgoKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCSRodG0gPSAkdGhpcy0+R2V0T3B0aW9uKCdoZWFkZXJzX3RvX21vZGlmeScsJ2YnKTsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAnJzsKCQkJCWlmICgkb3RoZXJzWyRpXS0+SXNEaXNwb3NpdGlvbigpICYmCiAgICAgICAgICAgICAgIGlzX3N1YmNsYXNzX29mKCRvdGhlcnNbJGldLCdmYkRpc3Bvc2l0aW9uRW1haWxCYXNlJykpCgkJCQkJewoJCQkJCWlmICgkaHRtID09ICdmJyB8fCAkaHRtID09ICdiJykKICAgICAgICAgICAgICAgICAgewoJCQkJCSAgICAkb3RoZXJzWyRpXS0+U2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnLCR0aGlzLT5WYWx1ZVswXSk7CgkJCQkJICAgfQogICAgICAgICAgICAgICBpZiAoJGh0bSA9PSAncicgfHwgJGh0bSA9PSAnYicpCiAgICAgICAgICAgICAgICAgIHsKCQkJCQkgICAgJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfcmVwbHlfdG9fYWRkcmVzcycsJHRoaXMtPlZhbHVlWzBdKTsKICAgICAgICAgICAgICAgICAgfQoJCQkJCX0KCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCiAgCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+VmFsaWRhdGlvblR5cGUgIT0gJ25vbmUnKQoJCQl7CgkJICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKCQkgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZVswXSkpCgkJICAgICAgICAgewoJCSAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwoJCSAgICAgICAgIH0KCQkJfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionMultiselectFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgZXh0ZW5kcyAgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3Rvcic7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5maWxlQWRkID0gMDsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0gJGdDbXMtPmdldENvbmZpZygpOwogICAgJHRoaXMtPmRmbHRfZmlsZXBhdGggPSAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXTsKICB9CgoKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmlsZUFkZCA9IDE7CiAgfQoKICBmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKICB7CiAgICAkZGVsY291bnQgPSAwOwogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCiAgICAgIHsKCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCSAgewoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZGlzcGxheW5hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJGRlbGNvdW50Kys7CgkgIH0KICAgICAgfQogIH0KCiAgZnVuY3Rpb24gY291bnRGaWxlcygpCiAgewogICAgJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CiAgICBpZiAoaXNfYXJyYXkoJHRtcCkpCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgPSBjb3VudCgkdG1wKTsKICAgICAgfQogICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDA7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkKICAgIC8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQogICAgLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCiAgICAkZGlzcGxheW5hbWVzID0gJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fZGlzcGxheW5hbWUnKTsKICAgICRkaXNwbGF5ZmlsZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9maWxlbmFtZScpOwogICAgJGRpc3BsYXl2YWx1ZXMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl92YWx1ZScpOwoKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRpc3BsYXluYW1lcyk7ICRpKysgKQogICAgICB7CgkkbGFiZWwgPSAnJzsKCSRjdHJsID0gbmV3IHN0ZENsYXNzKCk7CgkkY3RybC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXycuJGkpLiciPicuJGRpc3BsYXluYW1lc1skaV0uJzwvbGFiZWw+JzsKCSRjdHJsLT50aXRsZSA9ICRkaXNwbGF5bmFtZXNbJGldOwoJJGN0cmwtPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCgkJCQkJCSAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgCgkJCQkJCSAkZGlzcGxheXZhbHVlc1skaV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAoaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSAmJiBpbl9hcnJheSgkZGlzcGxheXZhbHVlc1skaV0sJHRoaXMtPlZhbHVlKSk/JGRpc3BsYXl2YWx1ZXNbJGldOictMScsCgkJCQkJCSAkdGhpcy0+R2V0Q1NTSWRUYWcoJ18nLiRpKS4kanMpOwoJJGZpZWxkc1tdID0gJGN0cmw7CiAgICAgIH0KICAgIHJldHVybiAkZmllbGRzOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAkZm9ybSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICR0bXAgPSBhcnJheSgpOwogICAgaWYoIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkgKQogICAgICB7Cglmb3JlYWNoKCAkdGhpcy0+VmFsdWUgYXMgJG9uZXZhbHVlICkKCSAgewoJICAgIGlmKCBlbXB0eSgkb25ldmFsdWUpICkgY29udGludWU7CgkgICAgCgkgICAgJHRtcFtdID0gJG9uZXZhbHVlOwoJICB9IC8vIGZvcmVhY2gKICAgICAgfSAvLyBpZgoKICAgIGlmICgkYXNfc3RyaW5nKQogICAgICB7CgkkdG1wID0gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJHRtcCk7CiAgICAgIH0KICAgIHJldHVybiAkdG1wOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJHRoaXMtPmNvdW50RmlsZXMoKTsKICAgICRtb2Q9JHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHJldD0gJG1vZC0+TGFuZygnZmlsZV9jb3VudCcsJHRoaXMtPmZpbGVDb3VudCk7CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CgogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKCiAgICAkZGlyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCkuJy8nOwoKCSR0aGlzLT5mb3JtX3B0ci0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCk7CiAgICAkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKICAgIGlmICgkaGVhZGVyID09ICcnKQogICAgICB7CgkkaGVhZGVyID0gJHRoaXMtPmZvcm1fcHRyLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZShmYWxzZSxmYWxzZSxmYWxzZSx0cnVlKTsKICAgICAgfSAKICAgICRoZWFkZXIgLj0gIlxuIjsKCiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CiAgICBpZiAoJHRlbXBsYXRlID09ICcnKQogICAgICB7CgkkdGVtcGxhdGUgPSAkdGhpcy0+Zm9ybV9wdHItPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CiAgICAgIH0KCiAgICAvLyBCZWdpbiBvdXRwdXQgdG8gZmlsZXMKICAgIGlmKCBpc19hcnJheSgkdGhpcy0+VmFsdWUpICkKICAgICAgewoJJGRpc3BsYXlmaWxlcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CgkkZGlzcGxheXZhbHVlcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX3ZhbHVlJyk7CgoJZm9yZWFjaCggJHRoaXMtPlZhbHVlIGFzICRvbmV2YWx1ZSApCgkgIHsKCSAgICAvLyBJIGR1bm5vIHdoeSBpdCdzIGVtcHR5IHNvbWV0aW1lcywgYnV0Li4uCgkgICAgaWYoIGVtcHR5KCRvbmV2YWx1ZSkgKSBjb250aW51ZTsKCSAgICAKCSAgICAkaWR4ID0gYXJyYXlfc2VhcmNoKCRvbmV2YWx1ZSwkZGlzcGxheXZhbHVlcyk7CgkgICAgCgkgICAgJHRtcCA9ICRkaXNwbGF5ZmlsZXNbJGlkeF07CgkgICAgLy8gZ2V0IHRoZSBmaWxlbmFtZQoJICAgICRmaWxlc3BlYyA9ICRkaXIuCgkgICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsICR0bXApOwoJICAgIAoJICAgICRsaW5lID0gJHRlbXBsYXRlOwoJICAgIGlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCgkgICAgICB7CgkJJGxpbmUgPSAkaGVhZGVyLiR0ZW1wbGF0ZTsKCSAgICAgIH0KCSAgICAKCSAgICAkbmV3bGluZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbGluZSApOwoJICAgIGlmIChzdWJzdHIoJG5ld2xpbmUsLTEsMSkgIT0gIlxuIikKCSAgICAgIHsKCQkkbmV3bGluZSAuPSAiXG4iOwoJICAgICAgfQkKCSAgICAKCSAgICAkZjIgPSBmb3BlbigkZmlsZXNwZWMsImEiKTsKCSAgICBmd3JpdGUoJGYyLCRuZXdsaW5lKTsKCSAgICBmY2xvc2UoJGYyKTsgCgkgICAgCgkgIH0gLy8gZm9yZWFjaAogICAgICB9IC8vIGlmCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgaWYoICR0aGlzLT5maWxlQWRkID4gMCApCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgKz0gJHRoaXMtPmZpbGVBZGQ7CgkkdGhpcy0+ZmlsZUFkZCA9IDA7CiAgICAgIH0KCiAgICAkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5maWxlQ291bnQ+MT8kdGhpcy0+ZmlsZUNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3ZhbHVlJywkaSksMjUsMTI4KS4nPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2ZpbGVuYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KCSAgJzwvdGQ+PC90cj4nOwogICAgICB9CiAgICAkZGVzdHMgLj0gJzwvdGFibGU+JzsKCgogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICAkcGFybU1haW4gPSBhcnJheSgpOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV90ZW1wbGF0ZSddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfaGVhZGVyJ109dHJ1ZTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJICAgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJyksJGRlc3RzKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcGF0aCcpLAoJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSdmYnJwX29wdF9maWxlX3BhdGgnLAoJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKSw0MCwxMjgpKSk7CiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybU1haW4pKSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionPageRedirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3IgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAJCSk7CiAgICAgICAJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2Rlc3RpbmF0aW9uJyk7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEFkZHJlc3NlcygpCgl7CgkJCSR0bXAgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9wYWdlJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKCQkJfQoJCSRzdWJqZWN0cyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnKTsKCgkJaWYgKGNvdW50KCRzdWJqZWN0cykgPiAxKQoJCQl7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRzdWJqZWN0cyk7JGkrKykKCQkJCXsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkc29ydGVkLCAtMSwgJHRoaXMtPlZhbHVlLCAkanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fcGFnZScsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ2Rlc3RpbmF0aW9uX2NvdW50JywkbnVtKTsKICAgICAgLy8gICRyZXQuPSAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsKICAgICAgICByZXR1cm4gJHJldDsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewogICAJCWdsb2JhbCAkZ0NtczsKCQlnbG9iYWwgJGlkOwogICAgCQkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fcGFnZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nOwogICAgICAgICAgICAJCSRkZXN0cyAuPSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fc3ViamVjdFtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsJGkpLDI1LDEyOCk7CiAgICAgICAgICAgIAkJJGRlc3RzIC49ICc8L3RkPjx0ZD4nOwoJCQkkZGVzdHMgLj0gICAgIAkJCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsJGkpLCAkaWQuJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX3BhZ2VbXScpOwoJCQkkZGVzdHMgLj0gJzwvdGQ+PHRkPic7CiAgICAgICAgICAgIAkJJGRlc3RzIC49ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpOwogICAgICAgICAgICAgCQkkZGVzdHMgLj0gJzwvdGQ+PC90cj4nOwogICAgICAgICAgICAJCS8vJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9kZXN0aW5hdGlvbl9wYWdlW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9wYWdlJywkaSksMjUsMTI4KS4KCgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQkvLyBsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOwoJCSRhZHYgPSBhcnJheSgpOwoJCSRtYWluID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwoKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewogICAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZykKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3BhZ2UnLCgkdGhpcy0+VmFsdWUgLSAxKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCgl9CgkKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQkvLyBJZiBuZWVkZWQsIG1ha2Ugc3VyZSBvdGhlciBkaXNwb3NpdGlvbnMgZ2V0IHJ1biAxc3QuU2VlICBEaXNwb3NlKCRyZXR1cm5pZCkgaW4gRm9ybSBjbGFzcy4KCQkvLyBOb3QgcmVhbGx5IG5lZWRlZCwgdGhlICdGcm9tRW1haWxBZGRyZXNzRmllbGQnIGFscmVhZHkgY2FsbHMgbW9kaWZ5IG90aGVyIGZpZWxkcywgSnVzdCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgdGhlIGVtYWlsIHJlc3VsdHMgdGhpbmdzIGFyZSBsaXN0ZWQgYmVmb3JlIHRoaXMgb25lIGFuZCBldmVyeXRoaW5nIHNob3VsZCBiZSBmaW5lLgoJCS8vIHByaW50X3IoJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3BhZ2UnLCgkdGhpcy0+VmFsdWUgLSAxKSkpOwogICAgCQlnbG9iYWwgJGdDbXM7CiAgICAJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAJCSRtb2QtPlJlZGlyZWN0Q29udGVudCgkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsKCR0aGlzLT5WYWx1ZSAtIDEpKSk7CgkJLy9yZXR1cm4gJHRoaXMtPlNlbmRGb3JtKCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9wYWdlJywoJHRoaXMtPlZhbHVlIC0gMSkpLAoJCS8vCSR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywoJHRoaXMtPlZhbHVlIC0gMSkpKTsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwgJ2V2ZXJ5dGhpbmcgd29ya2VkJyk7Cgl9CgoKCWZ1bmN0aW9uIEFkbWluVmFsaWRhdGUoKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9wYWdlJyk7CiAgCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGRIYXZlTmFtZSgpOwoJCWlmICgkcmV0KQoJCQl7CgkJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZE5hbWVFeGlzdCgpOwoJCQl9CQkKCQlpZiAoY291bnQoJG9wdCkgPT0gMCkKCQkJewoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwoJCQl9CgkgICAgICAgIHJldHVybiBhcnJheSgkcmV0LCRtZXNzYWdlKTsKICAgIH0KCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionUniqueFile.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAxMCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uVW5pcXVlRmlsZSBleHRlbmRzIGZiRmllbGRCYXNlCnsKCiAgZnVuY3Rpb24gZmJEaXNwb3NpdGlvblVuaXF1ZUZpbGUoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25VbmlxdWVGaWxlJzsKICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKICAgICR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSBmYWxzZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoKICAgICR0aGlzLT5Jc0NvbXB1dGVkT25TdWJtaXNzaW9uID0gdHJ1ZTsKICB9CgoJZnVuY3Rpb24gQ29tcHV0ZU9yZGVyKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbignb3JkZXInLCcxJyk7Cgl9CgoJZnVuY3Rpb24gQ29tcHV0ZSgpCgl7CgkJZ2xvYmFsICRnQ21zOwoJCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgkJJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm09JHRoaXMtPmZvcm1fcHRyOwoJCSRmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKCgkJJGZpbGVzcGVjID0gJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCcnKTsKCQlpZiAoJGZpbGVzcGVjID09ICcnKQoJCXsKCQkJJGZpbGVzcGVjID0gJ2Zvcm1fc3VibWlzc2lvbl8nLmRhdGUoIlktbS1kX0hpcyIpLicudHh0JzsKCQl9CgkJJGV2YWxkX2ZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCIvW15cd1xkXC5dfFwuXC4vIiwgIl8iLCAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkZmlsZXNwZWMpKTsKCQkkZmlsZXNwZWMgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlcm9vdCcsJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pLicvJy4kZXZhbGRfZmlsZW5hbWU7CgkJaWYgKHN0cnBvcygkZmlsZXNwZWMsJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10pICE9PSBGQUxTRSkKCQl7CgkJCSRyZWx1cmwgPSBzdHJfcmVwbGFjZSgkZ0Ntcy0+Y29uZmlnWydyb290X3BhdGgnXSwnJywkZmlsZXNwZWMpOwoJCX0KCQkkdXJsID0gJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4kcmVsdXJsOwoJCSR1cmwgPSBzdHJfcmVwbGFjZSgiXFwiLCAiLyIsICR1cmwpOwoJCSR0aGlzLT5TZXRWYWx1ZShhcnJheSgkZmlsZXNwZWMsICR1cmwsICRyZWx1cmwsICRldmFsZF9maWxlbmFtZSkpOwoJfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewoJZ2xvYmFsICRnQ21zOwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKICAgICRtb2Q9JHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGZvcm09JHRoaXMtPmZvcm1fcHRyOwogICAgJGNvdW50ID0gMDsKICAgIHdoaWxlICghICRtb2QtPkdldEZpbGVMb2NrKCkgJiYgJGNvdW50PDIwMCkKICAgICAgewoJJGNvdW50Kys7Cgl1c2xlZXAoNTAwKTsKICAgICAgfQogICAgaWYgKCRjb3VudCA9PSAyMDApCiAgICAgIHsKCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygnc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snKSk7CiAgICAgIH0KCiAgICAkZm9ybS0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCk7CgogICAgJGZpbGVzcGVjID0gJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCcnKTsKCQlpZiAoJGZpbGVzcGVjID09ICcnKQoJCXsKCQkJJGZpbGVzcGVjID0gJ2Zvcm1fc3VibWlzc2lvbl8nLmRhdGUoIlktbS1kX0hpcyIpLicudHh0JzsKCQl9CgkJJGV2YWxkX2ZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCIvW15cd1xkXC5dfFwuXC4vIiwgIl8iLCAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkZmlsZXNwZWMpKTsKCiAgICAkZmlsZXNwZWMgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlcm9vdCcsJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pLicvJy4kZXZhbGRfZmlsZW5hbWU7CgogICAgJGxpbmUgPSAnJzsKCglpZiAoJHRoaXMtPkdldE9wdGlvbignZmlsZV90eXBlJywnZmFsc2UnKSA9PSAwKQoJeyAvLyBJZiBGaWxlIFR5cGUgaXMgIlRYVCIKCS8vIENoZWNrIGlmIGZpcnN0IHRpbWUsIHdyaXRlIGhlYWRlcgogICAgaWYgKCEgZmlsZV9leGlzdHMoJGZpbGVzcGVjKSkKICAgICAgewoJCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoKCQlpZigkaGVhZGVyICE9ICcnKSB7CgkJCSRoZWFkZXIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkaGVhZGVyKTsKCQl9CiAgICAgIH0KCgkvLyBNYWtlIG5ld2xpbmUgIAogICAgJHRlbXBsYXRlID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpOwogICAgaWYgKCR0ZW1wbGF0ZSA9PSAnJykKICAgICAgewoJJHRlbXBsYXRlID0gJGZvcm0tPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CiAgICAgIH0KICAgICRsaW5lID0gJHRlbXBsYXRlOwoKICAgICRuZXdsaW5lID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGxpbmUpOwoJJHJlcGxjaGFyID0gJHRoaXMtPkdldE9wdGlvbignbmV3bGluZWNoYXInLCcnKTsKCWlmICgkcmVwbGNoYXIgIT0gJycpCgkJewoJCSRuZXdsaW5lID0gcnRyaW0oJG5ld2xpbmUsIlxyXG4iKTsKICAgIAkkbmV3bGluZSA9IHByZWdfcmVwbGFjZSgnL1tcblxyXS8nLCRyZXBsY2hhciwkbmV3bGluZSk7CgkJfQogICAgaWYgKHN1YnN0cigkbmV3bGluZSwtMSwxKSAhPSAiXG4iKQogICAgICB7CgkgICRuZXdsaW5lIC49ICJcbiI7CiAgICAgIH0KCgkvLyBHZXQgZm9vdGVyCgkkZm9vdGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9mb290ZXInLCcnKTsKCglpZigkZm9vdGVyICE9ICcnKSB7CgkJJGZvb3RlciA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRmb290ZXIpOwoJfQoKCS8vIFdyaXRlIGZpbGUKCWlmKGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpIHsKCQkkcm93cyA9IGZpbGUoJGZpbGVzcGVjKTsKCQkkZnAgPSBmb3BlbigkZmlsZXNwZWMsICd3Jyk7CgoJCWZvcmVhY2goJHJvd3MgYXMgJG9uZWxpbmUpIHsKCQkJaWYoc3Vic3RyKCRmb290ZXIsIDAsIHN0cmxlbigkb25lbGluZSkpID09ICRvbmVsaW5lKSB7CgkJCQlicmVhazsKCQkJfQoJCQkKCQkJZndyaXRlKCRmcCwkb25lbGluZSk7CgkJfQoJfSBlbHNlIHsKCQkkZnAgPSBmb3BlbigkZmlsZXNwZWMsICd3Jyk7Cgl9CgoJZndyaXRlKCRmcCwkaGVhZGVyLiRuZXdsaW5lLiRmb290ZXIpOwoJZmNsb3NlKCRmcCk7Cgl9CgllbHNlIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3R5cGUnLCdmYWxzZScpID09IDEpCgl7IC8vIElmIEZpbGUgVHlwZSBpcyAiUlRGIgoJCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoJCWlmICgkaGVhZGVyICE9ICcnKSB7CgkJCSRoZWFkZXIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkaGVhZGVyKTsKCQl9CgkJJGhlYWRlciA9IHByZWdfcmVwbGFjZSgnLyhcclxuKS8nLCAnXHBhciQxJywgJGhlYWRlcik7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3J0Zl90ZW1wbGF0ZV90eXBlJykgPT0gMCkKCQl7IC8vIElmIHRoZSBSVEYgVGVtcGxhdGUgVHlwZSBpcyBCYXNpYwoJCQkkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CgkJCWlmICgkdGVtcGxhdGUgPT0gJycpIHsKCQkJCSR0ZW1wbGF0ZSA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSgpOwoJCQl9CgkJCSR0ZW1wbGF0ZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0ZW1wbGF0ZSk7CgkJCSR0ZW1wbGF0ZSA9IHByZWdfcmVwbGFjZSgnLyhcclxuKS8nLCAnXHBhciQxJywgJHRlbXBsYXRlKTsKCQl9CgkJZWxzZSBpZiAoJHRoaXMtPkdldE9wdGlvbigncnRmX3RlbXBsYXRlX3R5cGUnKSA9PSAxKQoJCXsgLy8gSWYgdGhlIFJURiBUZW1wbGF0ZSBUeXBlIGlzIEFkdmFuY2VkCgkJCSR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvLi4vdGVtcGxhdGVzLycuJHRoaXMtPkdldE9wdGlvbigncnRmX2ZpbGVfdGVtcGxhdGUnLCdSVEZfVGVtcGxhdGVBZHZhbmNlZC5ydGYnKSk7CgoJCQkvLyBUbyBhdm9pZCB0aGUgU21hcnR5IFBhcnNlciBlYXRpbmcgdGhlIFJURiBUYWdzICh3aGljaCBhbHNvIHVzZSBjdXJseSBicmFjZXMpLCB3ZSBuZWVkIHRvIHN3YXAgdGhlIGN1cmx5IGJyYWNlcyB0ZW1wb3JhcmlseQoJCQkvLyB0byBwYXJzZSAiU21hcnR5IiB0YWdzIGluIHRoZSBSVEYgVGVtcGxhdGUuIFRvIHVzZSBTbWFydHkgdGFncyBpbiB0aGUgdGVtcGxhdGUsIHdlJ2xsIGhhdmUgdG8gdXNlIGEgdW5pcXVlIGVuY2xvc3VyZSBvZiAKCQkJLy8gcGVyY2VudCBzaWduIGFuZCBzcXVhcmUgYnJhY2tldCAoJVtUQUddJSkgaW5zdGVhZCBvZiBjdXJseSBicmFjZXMuCgkJCSRzZWFyY2ggPSBhcnJheSgieyIsICJ9IiwgIiVbIiwgIl0lIik7CgkJCSRyZXBsYWNlID0gYXJyYXkoIjxSVEZfVEFHPiIsICI8L1JURl9UQUc+IiwgInsiLCAifSIpOwoJCQkkdGVtcGxhdGUgPSBzdHJfcmVwbGFjZSgkc2VhcmNoLCAkcmVwbGFjZSwgJHRlbXBsYXRlKTsKCQkJJHRlbXBsYXRlID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRlbXBsYXRlKTsKCQkJJHNlYXJjaCA9IGFycmF5KCI8UlRGX1RBRz4iLCAiPC9SVEZfVEFHPiIpOwoJCQkkcmVwbGFjZSA9IGFycmF5KCJ7IiwgIn0iKTsKCQkJJHRlbXBsYXRlID0gc3RyX3JlcGxhY2UoJHNlYXJjaCwgJHJlcGxhY2UsICR0ZW1wbGF0ZSk7CgkJfQoJCSRmb290ZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2Zvb3RlcicsJycpOwoJCWlmICgkZm9vdGVyICE9ICcnKSB7CgkJCSRmb290ZXIgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkZm9vdGVyKTsKCQl9CgkJJGZvb3RlciA9IHByZWdfcmVwbGFjZSgnLyhcclxuKS8nLCAnXHBhciQxJywgJGZvb3Rlcik7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdydGZfdGVtcGxhdGVfdHlwZScpID09IDApCgkJeyAvLyBCYXNpYwoJCQkkcnRmX3RlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy8uLi90ZW1wbGF0ZXMvJy4kdGhpcy0+R2V0T3B0aW9uKCdydGZfZmlsZV90ZW1wbGF0ZScsJ1JURl9UZW1wbGF0ZUJhc2ljLnJ0ZicpKTsKCQkJJHNlYXJjaCA9IGFycmF5KCIlJUhFQURFUiUlIiwgIiUlRklFTERTJSUiLCAiJSVGT09URVIlJSIpOwoJCQkkcmVwbGFjZSA9IGFycmF5KCRoZWFkZXIsICR0ZW1wbGF0ZSwgJGZvb3Rlcik7CgkJCSRydGZfY29udGVudCA9IHN0cl9yZXBsYWNlKCRzZWFyY2gsICRyZXBsYWNlLCAkcnRmX3RlbXBsYXRlKTsKCQl9CgkJZWxzZSBpZiAoJHRoaXMtPkdldE9wdGlvbigncnRmX3RlbXBsYXRlX3R5cGUnKSA9PSAxKQoJCXsgLy8gQWR2YW5jZWQKCQkJJHNlYXJjaCA9IGFycmF5KCIlJUhFQURFUiUlIiwgIiUlRk9PVEVSJSUiKTsKCQkJJHJlcGxhY2UgPSBhcnJheSgkaGVhZGVyLCAkZm9vdGVyKTsKCQkJJHJ0Zl9jb250ZW50ID0gc3RyX3JlcGxhY2UoJHNlYXJjaCwgJHJlcGxhY2UsICR0ZW1wbGF0ZSk7CgkJfQoKCQkkcHV0ID0gZmlsZV9wdXRfY29udGVudHMoJGZpbGVzcGVjLCAkcnRmX2NvbnRlbnQpOwoJfQoKCWlmIChzdHJwb3MoJGZpbGVzcGVjLCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddKSAhPT0gRkFMU0UpCgl7CgkJJHJlbHVybCA9IHN0cl9yZXBsYWNlKCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddLCcnLCRmaWxlc3BlYyk7Cgl9CgkkdXJsID0gJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4kcmVsdXJsOwoJJHVybCA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJHVybCk7CgoJJHRoaXMtPlNldFZhbHVlKGFycmF5KCRmaWxlc3BlYywgJHVybCwgJHJlbHVybCwgJGV2YWxkX2ZpbGVuYW1lKSk7CgogICAgJG1vZC0+UmV0dXJuRmlsZUxvY2soKTsKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsKICB9CgoJZnVuY3Rpb24gU2V0VmFsdWUoJHZhbFN0cikKCXsKCQkvL2Vycm9yX2xvZygkdGhpcy0+R2V0TmFtZSgpLic6Jy5wcmludF9yKCR2YWxTdHIsdHJ1ZSkpOwoJCSRmbSA9ICR0aGlzLT5mb3JtX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQl7CgkJCWlmIChpc19hcnJheSgkdmFsU3RyKSkKCQkJewoJCQkJJHRoaXMtPlZhbHVlID0gJHZhbFN0cjsKCQkJCWZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+VmFsdWUpOyRpKyspCgkJCQl7CgkJCQkJd2hpbGUgKCR0aGlzLT5WYWx1ZVskaV0gIT0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdGhpcy0+VmFsdWVbJGldKSkKCQkJCQl7CgkJCQkJCSR0aGlzLT5WYWx1ZVskaV0gPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCXdoaWxlICgkdGhpcy0+VmFsdWUgIT09ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0cikpCgkJCQl7CgkJCQkJJHRoaXMtPlZhbHVlID0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKTsKCQkJCX0KCQkJfQoJCX0KCQllbHNlCgkJewoJCQlpZiAoaXNfYXJyYXkoJHZhbFN0cikpCgkJCXsKCQkJCWZvciAoJGk9MDskaTxjb3VudCgkdmFsU3RyKTskaSsrKQoJCQkJewoJCQkJCXdoaWxlICgkdmFsU3RyWyRpXSAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHJbJGldKSkKCQkJCQl7CgkJCQkJCSR2YWxTdHJbJGldID0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyWyRpXSk7CgkJCQkJfQoJCQkJfQoJCQkJJHRoaXMtPlZhbHVlID0gJHZhbFN0cjsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCXdoaWxlICgkdmFsU3RyICE9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0cikpCgkJCQl7CgkJCQkJJHZhbFN0ciA9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0cik7CgkJCQl9CgkJCQlpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQkJewoJCQkJCSR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCQl9CgkJCQlhcnJheV9wdXNoKCR0aGlzLT5WYWx1ZSwkdmFsU3RyKTsKCQkJfQoJCX0KCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCRhc19zdHJpbmcgJiYgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSAmJiBpc3NldCgkdGhpcy0+VmFsdWVbMV0pKQoJCXsKCQkJcmV0dXJuICR0aGlzLT5WYWx1ZVsxXTsKCQl9CgkJZWxzZQoJCXsKCQkJcmV0dXJuICR0aGlzLT5WYWx1ZTsKCQl9Cgl9CgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CglnbG9iYWwgJGdDbXM7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCSRmaWxlX3R5cGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3R5cGUnLCdmYWxzZScpOwoJJHJ0Zl90ZW1wbGF0ZV90eXBlID0gJHRoaXMtPkdldE9wdGlvbigncnRmX3RlbXBsYXRlX3R5cGUnLCdmYWxzZScpOwoKCiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgICRwYXJtTWFpbiA9IGFycmF5KCk7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX3RlbXBsYXRlJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2hlYWRlciddWydpc19oZWFkZXInXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9mb290ZXInXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2Zvb3RlciddWydpc19mb290ZXInXT10cnVlOwoKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9yb290JyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9maWxlcm9vdCcsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlcm9vdCcsJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pLDgwLDI1NSkuJzxiciAvPicuCgkJCQkkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3Jvb3RfaGVscCcpKSk7CgogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX25hbWUnKSwKCQkJICAgYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpbGVzcGVjJywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywnZm9ybV9zdWJtaXNzaW9ucy50eHQnKSw4MCwyNTUpLCR0aGlzLT5mb3JtX3B0ci0+QWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRwYXJtTWFpbikpKSk7CgogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50JyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9uZXdsaW5lY2hhcicsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCduZXdsaW5lY2hhcicsJycpLDUsMTUpLic8YnIgLz4nLgoJCQkJCQkkbW9kLT5MYW5nKCd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnKSkpOwoKCgkJLy8gYXJyYXkoIlRleHQgZGlzcGxheWVkIGluIG9wdGlvbiB0YWciID0+ICJWYWx1ZSBvZiBvcHRpb24gdGFnIik7CgkJJGZpbGVfdHlwZV9saXN0ID0gYXJyYXkoIlRYVCI9PjAsCgkJCSJSVEYiPT4xKTsKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3R5cGUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQknZmJycF9vcHRfZmlsZV90eXBlJywkZmlsZV90eXBlX2xpc3QsCgkJCQkkZmlsZV90eXBlKSkpOwoKCQlhcnJheV9wdXNoKCRhZHYsIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3J0Zl9maWxlX3RlbXBsYXRlJyksCgkJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9ydGZfZmlsZV90ZW1wbGF0ZScsICR0aGlzLT5HZXRPcHRpb24oJ3J0Zl9maWxlX3RlbXBsYXRlJywnUlRGX1RlbXBsYXRlQmFzaWMucnRmJyksIDUwLCAyNTUpLAoJCQkkbW9kLT5MYW5nKCdoZWxwX3J0Zl9maWxlX3RlbXBsYXRlJykpKSk7CgoJCSRydGZfdGVtcGxhdGVfdHlwZV9saXN0ID0gYXJyYXkoIkJhc2ljIj0+MCwKCQkJIkFkdmFuY2VkIj0+MSk7CgkJYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9ydGZfdGVtcGxhdGVfdHlwZScpLAoJCQlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCSdmYnJwX29wdF9ydGZfdGVtcGxhdGVfdHlwZScsJHJ0Zl90ZW1wbGF0ZV90eXBlX2xpc3QsCgkJCQkkcnRmX3RlbXBsYXRlX3R5cGUpLAoJCQkJJG1vZC0+TGFuZygnaGVscF9ydGZfdGVtcGxhdGVfdHlwZScpCgkJCQkpKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VuaXF1ZV9maWxlX3RlbXBsYXRlJyksCgkJCSAgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpLCAnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV93aWRlJywgJycsJycsJycsMTEsMjYpLAoJCQkJCSRtb2QtPkxhbmcoJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnKS4iXG4iLgoJCQkJCSR0aGlzLT5mb3JtX3B0ci0+QWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRwYXJtTWFpbikpKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnKSwKCQkJCQkkbW9kLT5MYW5nKCdoZWxwX2ZpbGVfaGVhZGVyX3RlbXBsYXRlJykpKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfZm9vdGVyJyksCgkJCSAgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZmlsZV9mb290ZXInLCcnKSwgJ2ZicnBfb3B0X2ZpbGVfZm9vdGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JyksCgkJCQkJJG1vZC0+TGFuZygnaGVscF9maWxlX2Zvb3Rlcl90ZW1wbGF0ZScpKSkpOwoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKICB9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionUserTag.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uVXNlclRhZyBleHRlbmRzICBmYkZpZWxkQmFzZSAKewoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uVXNlclRhZygmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvblVzZXJUYWcnOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbigndWR0bmFtZScsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewogICAgJG1vZD0kdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICR1bnNwZWMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgICRwYXJhbXMgPSBhcnJheSgpOwogICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2V4cG9ydF9mb3JtJywnMCcpID09ICcxJykKICAgICAgewogICAgICAkcGFyYW1zWydGT1JNJ10gPSAkdGhpcy0+Zm9ybV9wdHI7CiAgICAgIH0KICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCSRyZXBsVmFsID0gJyc7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgICRyZXBsVmFsID0gJG90aGVyc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJICAgIGlmICgkcmVwbFZhbCA9PSAnJykKCSAgICAgIHsKCQkgICAgJHJlcGxWYWwgPSAkdW5zcGVjOwoJICAgICAgfQoJICB9CiAgICRuYW1lID0gJG90aGVyc1skaV0tPkdldFZhcmlhYmxlTmFtZSgpOwoJJHBhcmFtc1skbmFtZV0gPSAkcmVwbFZhbDsKCSRpZCA9ICRvdGhlcnNbJGldLT5HZXRJZCgpOwoJJHBhcmFtc1snZmxkXycuJGlkXSA9ICRyZXBsVmFsOwoJJGFsaWFzID0gJG90aGVyc1skaV0tPkdldEFsaWFzKCk7CglpZiAoIWVtcHR5KCRhbGlhcykpCiAgICAgIHsKCSAgICRwYXJhbXNbJGFsaWFzXSA9ICRyZXBsVmFsOwoJICAgfQogICB9CgoJJHRoaXMtPmZvcm1fcHRyLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgIGdsb2JhbCAkZ0NtczsKICAgICR1c2VydGFnb3BzID0gJGdDbXMtPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgICAkcmVzID0gJHVzZXJ0YWdvcHMtPkNhbGxVc2VyVGFnKCAkdGhpcy0+R2V0T3B0aW9uKCd1ZHRuYW1lJyksICRwYXJhbXMpOwoKICAgIGlmKCAkcmVzID09PSBGQUxTRSApCiAgICAgIHsKCXJldHVybiBhcnJheShmYWxzZSwkbW9kLT5MYW5nKCdlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJykpOwogICAgICB9CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CgogICAgZ2xvYmFsICRnQ21zOwogICAgJHVzZXJ0YWdvcHMgPSAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgICR1c2VydGFncyA9ICR1c2VydGFnb3BzLT5MaXN0VXNlclRhZ3MoKTsKICAgICR1c2VydGFnbGlzdCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdXNlcnRhZ3MgYXMgJGtleSA9PiAkdmFsdWUgKQogICAgICB7CgkkdXNlcnRhZ2xpc3RbJHZhbHVlXSA9ICRrZXk7CiAgICAgIH0KICAgICRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91ZHRfbmFtZScpLAoJCSAgICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAnZmJycF9vcHRfdWR0bmFtZScsJHVzZXJ0YWdsaXN0LC0xLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnKSkpOwogICAgICAkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0JyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2V4cG9ydF9mb3JtJywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZXhwb3J0X2Zvcm0nLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdleHBvcnRfZm9ybScsJzAnKSkpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgICR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwogIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkSWQ9LTE7CiAgdmFyICRGb3JtSWQ7CiAgdmFyICROYW1lOwogIHZhciAkVHlwZTsKICB2YXIgJFJlcXVpcmVkPS0xOwogIHZhciAkT3JkZXJCeTsKICB2YXIgJEhpZGVMYWJlbD0tMTsKICB2YXIgJEhhc0xhYmVsPTE7CiAgdmFyICROZWVkc0Rpdj0xOwogIHZhciAkU21hcnR5RXZhbDsKCiAgdmFyICRWYWxpZGF0aW9uVHlwZXM7CiAgdmFyICRWYWxpZGF0aW9uVHlwZTsKICB2YXIgJHZhbGlkYXRlZCA9IHRydWU7CiAgdmFyICR2YWxpZGF0aW9uRXJyb3JUZXh0OwoKICB2YXIgJERpc3BsYXlJbkZvcm07CiAgdmFyICREaXNwbGF5SW5TdWJtaXNzaW9uOwogIHZhciAkRGlzcG9zaXRpb25QZXJtaXR0ZWQ7CiAgdmFyICRJc0NvbXB1dGVkT25TdWJtaXNzaW9uOwogIHZhciAkTm9uUmVxdWlyYWJsZUZpZWxkOwogIHZhciAkSGFzQWRkT3A7CiAgdmFyICRIYXNEZWxldGVPcDsKICB2YXIgJEhhc1VzZXJBZGRPcDsKICB2YXIgJEhhc1VzZXJEZWxldGVPcDsKICB2YXIgJG1vZGlmaWVzT3RoZXJGaWVsZHM7CiAgdmFyICRoYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzOwogIHZhciAkbGFiZWxTdWJDb21wb25lbnRzOwoKICB2YXIgJFZhbHVlPWZhbHNlOwogIHZhciAkZm9ybV9wdHI7CiAgdmFyICRPcHRpb25zOwogIHZhciAkbG9hZGVkOwogIHZhciAkc29ydGFibGU7CgogIGZ1bmN0aW9uIGZiRmllbGRCYXNlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKCiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAkZm9ybV9wdHI7CiAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPk9wdGlvbnMgPSBhcnJheSgpOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSBmYWxzZTsKICAgICR0aGlzLT5Jc0VtYWlsRGlzcG9zaXRpb24gPSBmYWxzZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnKTsKICAgICR0aGlzLT5sb2FkZWQgPSBmYWxzZTsKICAgICR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IGZhbHNlOwogICAgJHRoaXMtPkhhc0RlbGV0ZU9wID0gZmFsc2U7CiAgICAkdGhpcy0+SGFzVXNlckFkZE9wID0gZmFsc2U7CiAgICAkdGhpcy0+SGFzVXNlckRlbGV0ZU9wID0gZmFsc2U7CiAgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IGZhbHNlOwogICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSBmYWxzZTsKICAgICR0aGlzLT5EaXNwb3NpdGlvblBlcm1pdHRlZCA9IHRydWU7CiAgICAkdGhpcy0+U21hcnR5RXZhbCA9IGZhbHNlOwogICAgJHRoaXMtPmxhYmVsU3ViQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+c29ydGFibGUgPSB0cnVlOwogICAgJHRoaXMtPklzQ29tcHV0ZWRPblN1Ym1pc3Npb24gPSBmYWxzZTsKCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSkKICAgICAgewoJJHRoaXMtPkZvcm1JZCA9ICRwYXJhbXNbJ2Zvcm1faWQnXTsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pKQogICAgICB7CgkkdGhpcy0+SWQgPSAkcGFyYW1zWydmaWVsZF9pZCddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9maWVsZF9uYW1lJ10pKQogICAgICB7CgkkdGhpcy0+TmFtZSA9ICRwYXJhbXNbJ2ZicnBfZmllbGRfbmFtZSddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ10pKQogICAgICB7CgkkdGhpcy0+VHlwZSA9ICRwYXJhbXNbJ2ZicnBfZmllbGRfdHlwZSddOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSR0aGlzLT5UeXBlID0gJyc7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX29yZGVyX2J5J10pKQogICAgICB7CgkkdGhpcy0+T3JkZXJCeSA9ICRwYXJhbXNbJ2ZicnBfb3JkZXJfYnknXTsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfaGlkZV9sYWJlbCddKSkKICAgICAgewoJJHRoaXMtPkhpZGVMYWJlbCA9ICRwYXJhbXNbJ2ZicnBfaGlkZV9sYWJlbCddOwogICAgICB9CiAgICBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NldF9mcm9tX2Zvcm0nXSkpCiAgICAgIHsKCSR0aGlzLT5IaWRlTGFiZWwgPSAwOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9yZXF1aXJlZCddKSkKICAgICAgewoJJHRoaXMtPlJlcXVpcmVkID0gJHBhcmFtc1snZmJycF9yZXF1aXJlZCddOwogICAgICB9CiAgICBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NldF9mcm9tX2Zvcm0nXSkpCiAgICAgIHsKCSR0aGlzLT5SZXF1aXJlZCA9IDA7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3ZhbGlkYXRpb25fdHlwZSddKSkKICAgICAgewoJJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHBhcmFtc1snZmJycF92YWxpZGF0aW9uX3R5cGUnXTsKICAgICAgfQoKICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNQYXJhbUtleT0+JHRoaXNQYXJhbVZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc1BhcmFtS2V5LDAsOSkgPT0gJ2ZicnBfb3B0XycpCgkgIHsKCSAgICAkdGhpc1BhcmFtS2V5ID0gc3Vic3RyKCR0aGlzUGFyYW1LZXksOSk7CgkgICAgJHRoaXMtPk9wdGlvbnNbJHRoaXNQYXJhbUtleV0gPSAkdGhpc1BhcmFtVmFsOwoJICB9CiAgICAgIH0KCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9fJy4kdGhpcy0+SWRdKSAmJgoJKGlzX2FycmF5KCRwYXJhbXNbJ2ZicnBfXycuJHRoaXMtPklkXSkgfHwKCSBzdHJsZW4oJHBhcmFtc1snZmJycF9fJy4kdGhpcy0+SWRdKSA+IDApKQogICAgICB7CgkgICAkdGhpcy0+U2V0VmFsdWUoJHBhcmFtc1snZmJycF9fJy4kdGhpcy0+SWRdKTsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gSGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpCiAgewogICAgcmV0dXJuICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzOwogIH0KCiAgZnVuY3Rpb24gTGFiZWxTdWJDb21wb25lbnRzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmxhYmVsU3ViQ29tcG9uZW50czsKICB9CgogIGZ1bmN0aW9uIENvbXB1dGVPblN1Ym1pc3Npb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+SXNDb21wdXRlZE9uU3VibWlzc2lvbjsKICB9CgoKICAvLyBvdmVycmlkZSBtZSAKICBmdW5jdGlvbiBDb21wdXRlT3JkZXIoKQogIHsKICAJcmV0dXJuIDA7CiAgfQoKICBmdW5jdGlvbiBIYXNNdWx0aXBsZVZhbHVlcygpCiAgewogIAlpZiAoJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgfHwgJHRoaXMtPkhhc1VzZXJBZGRPcCkKICAJCXsKICAJCXJldHVybiB0cnVlOwogIAkJfQogIAllbHNlCiAgCQl7CiAgCQlyZXR1cm4gZmFsc2U7CiAgCQl9CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0SWQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIHJldHVybiAkaWQuJ2ZicnBfXycuJHRoaXMtPklkOwogIH0KCiAgZnVuY3Rpb24gTW9kaWZpZXNPdGhlckZpZWxkcygpCiAgewogICAgcmV0dXJuICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzOwogIH0KCiAgLy8gbWVjaGFuaXNtIGZvciBmaWVsZHMvZGlzcG9zaXRpb25zIHRvIGluaGliaXQgb3RoZXIgZGlzcG9zaXRpb25zCiAgZnVuY3Rpb24gRGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5EaXNwb3NpdGlvblBlcm1pdHRlZDsKICB9CgogIC8vIG1lY2hhbmlzbSBmb3IgZmllbGRzL2Rpc3Bvc2l0aW9ucyB0byBpbmhpYml0IG90aGVyIGRpc3Bvc2l0aW9ucwogIGZ1bmN0aW9uIFNldERpc3Bvc2l0aW9uUGVybWlzc2lvbigkcGVybWl0dGVkPXRydWUpCiAgewogICAgJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkID0gJHBlcm1pdHRlZDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBpZiB5b3UgbmVlZCB0byBkbyBzb21ldGhpbmcgYWZ0ZXIgdGhlIGZvcm0gaGFzIGJlZW4gZGlzcG9zZWQKICBmdW5jdGlvbiBQb3N0RGlzcG9zaXRpb25BY3Rpb24oKQogIHsKCXJldHVybjsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGlmIHlvdSdyZSBqdXN0IHR3ZWFraW5nIG90aGVyIGZpZWxkcyBiZWZvcmUgZGlzcG9zaXRpb24KICBmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCiAgewogIH0KCiAgLy8gb3ZlcnJpZGUgbWUgd2l0aCBhIGZvcm0gaW5wdXQgc3RyaW5nIG9yIHNvbWV0aGluZwogIC8vIHRoaXMgc2hvdWxkIGp1c3QgYmUgdGhlIGlucHV0IHBvcnRpb24uIFRoZSB0aXRsZQogIC8vIGFuZCBhbnkgd3JhcHBpbmcgZGl2cyB3aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSBmb3JtCiAgLy8gcmVuZGVyZXIuCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICcnOwogIH0KCiAgLy8gU2VuZHMgbG9naWMgYWxvbmcgd2l0aCBmaWVsZCwgYWxzbyBhbGxvd3Mgc21hcnR5IGxvZ2ljCiAgLy8gRG9zZW4ndCBuZWVkIG92ZXJyaWRlIGluIG1vc3QgY2FzZXMKICBmdW5jdGlvbiBHZXRGaWVsZExvZ2ljKCkgCiAgewoJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSRjb2RlID0gJHRoaXMtPkdldE9wdGlvbignZmllbGRfbG9naWMnLCcnKTsKCQoJaWYoIWVtcHR5KCRjb2RlKSkgewoJCgkJcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRjb2RlKTsKCX0KICB9CiAgCiAgLy8gb3ZlcnJpZGUgbWUgd2l0aCBzb21ldGhpbmcgdG8gc2hvdyB1c2VycwogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIERlYnVnRGlzcGxheSgpCiAgewogICAgJHRtcCA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICR0aGlzLT5mb3JtX3B0ciA9ICdbZnJtcHRyOiAnLiR0bXAtPkdldElkKCkuJ10nOwogICAgZGVidWdfZGlzcGxheSgkdGhpcyk7CiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAkdG1wOwogIH0KCiAgZnVuY3Rpb24gR2V0SWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+SWQ7CiAgfQoKICBmdW5jdGlvbiBIYXNBZGRPcCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNBZGRPcDsKICB9CgogIC8vIG92ZXJyaWRlIG1lLCB3aGVuIG5lY2Vzc2FyeSBvciB1c2VmdWwKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgfQoKICAvLyBvdmVycmlkZSBtZQogIGZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwogIH0KCQogIGZ1bmN0aW9uIEhhc0RlbGV0ZU9wKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkhhc0RlbGV0ZU9wOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIHdoZW4gbmVjZXNzYXJ5IG9yIHVzZWZ1bAogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICB9CgogIC8vIG92ZXJyaWRlIG1lCiAgZnVuY3Rpb24gR2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7CiAgfQoKICBmdW5jdGlvbiBTZXROYW1lKCRuYW1lKQogIHsKICAJJHRoaXMtPk5hbWUgPSAkbmFtZTsKICB9CiAgCiAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5OYW1lOwogIH0KCiAgZnVuY3Rpb24gR2V0QWxpYXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycsJycpOwogIH0KCiAgZnVuY3Rpb24gR2V0VmFyaWFibGVOYW1lKCkKICB7CiAgICAkbWF4dmFybGVuID0gMjQ7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHRoaXMtPk5hbWUpKTsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJ18nLCRzdHJpbmcpKTsKICAgIGlmIChzdHJsZW4oJHN0cmluZykgPiAkbWF4dmFybGVuKQogICAgICB7CiAgICAgICRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRtYXh2YXJsZW4pOwogICAgICAkcG9zID0gc3RycnBvcygkc3RyaW5nLCdfJyk7CiAgICAgIGlmICgkcG9zICE9PSBmYWxzZSkKICAgICAgICAgewogICAgICAgICAkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKICAgICAgICAgfQogICAgICB9CiAgIHJldHVybiAkc3RyaW5nOwogIH0KCiAgZnVuY3Rpb24gR2V0Q1NTSWRUYWcoJHN1ZmZpeD0nJykKICB7CiAgICAgIHJldHVybiAnIGlkPSInLiR0aGlzLT5HZXRDU1NJZCgkc3VmZml4KS4nIic7CiAgfQoKICBmdW5jdGlvbiBHZXRDU1NJZCgkc3VmZml4PScnKQogIHsKCSRhbGlhcyA9ICR0aGlzLT5HZXRBbGlhcygpOwoJaWYgKGVtcHR5KCRhbGlhcykpCiAgICAgIHsKICAgICAgJGNzc2lkID0gJ2ZicnBfXycuJHRoaXMtPklkOwogICAgICBpZiAoJHRoaXMtPkhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMoKSkKICAgICAgICAgewogICAgICAgICAkY3NzaWQgLj0gJ18xJzsKICAgICAgICAgfQogICAgICB9CiAgIGVsc2UKICAgICAgewogICAgICAkY3NzaWQgPSAkYWxpYXM7CiAgICAgIH0KICAgJGNzc2lkIC49ICRzdWZmaXg7CiAgIHJldHVybiAkY3NzaWQ7CiAgfQoKICBmdW5jdGlvbiBTZXRBbGlhcygkYWxpYXMpCiAgewogICAgJHRoaXMtPlNldE9wdGlvbignZmllbGRfYWxpYXMnLCRhbGlhcyk7CiAgfQoKCiAgZnVuY3Rpb24gU2V0U21hcnR5RXZhbCgkYm9vbCkKICB7CiAgCSR0aGlzLT5TbWFydHlFdmFsID0gJGJvb2w7CiAgfQogIAogIGZ1bmN0aW9uIEdldFNtYXJ0eUV2YWwoKQogIHsKICAgIHJldHVybiAkdGhpcy0+U21hcnR5RXZhbDsKICB9CgogIGZ1bmN0aW9uIEdldE9yZGVyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk9yZGVyQnk7CiAgfQoKICBmdW5jdGlvbiBTZXRPcmRlcigkb3JkZXIpCiAgewogICAgJHRoaXMtPk9yZGVyQnkgPSAkb3JkZXI7CiAgfQoJCiAgZnVuY3Rpb24gR2V0RmllbGRUeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlR5cGU7CiAgfQoKICBmdW5jdGlvbiBTZXRGaWVsZFR5cGUoJHR5cGUpCiAgewogICAgcmV0dXJuICR0aGlzLT5UeXBlID0gJHR5cGU7CiAgfQoKCQogIGZ1bmN0aW9uIElzRGlzcG9zaXRpb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+SXNEaXNwb3NpdGlvbjsKICB9CgogIGZ1bmN0aW9uIElzRW1haWxEaXNwb3NpdGlvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5Jc0VtYWlsRGlzcG9zaXRpb247CiAgfQoKICBmdW5jdGlvbiBIYXNMYWJlbCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNMYWJlbDsKICB9CgogIGZ1bmN0aW9uIE5lZWRzRGl2KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5lZWRzRGl2OwogIH0KCgogIGZ1bmN0aW9uIFNldEhpZGVMYWJlbCgkaGlkZSkKICB7CiAgCSR0aGlzLT5IaWRlTGFiZWwgPSAkaGlkZT8xOjA7CiAgfQogIAkKICBmdW5jdGlvbiBIaWRlTGFiZWwoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPkhpZGVMYWJlbD09MT90cnVlOmZhbHNlKTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJbkZvcm0oKQogIHsKICAgIHJldHVybiAkdGhpcy0+RGlzcGxheUluRm9ybTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJblN1Ym1pc3Npb24oKQogIHsKICAgIC8vcmV0dXJuICgkdGhpcy0+RGlzcGxheUluRm9ybSAmJiAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbik7CiAgICByZXR1cm4gJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb247CiAgfQoKCQogIGZ1bmN0aW9uIElzTm9uUmVxdWlyYWJsZUZpZWxkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZDsKICB9CgogIGZ1bmN0aW9uIElzUmVxdWlyZWQoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPlJlcXVpcmVkID09IDE/dHJ1ZTpmYWxzZSk7CiAgfQoKICBmdW5jdGlvbiBTZXRSZXF1aXJlZCgkcmVxdWlyZWQpCiAgewogICAgJHRoaXMtPlJlcXVpcmVkID0gKCRyZXF1aXJlZD8xOjApOwogIH0KCiAgZnVuY3Rpb24gVG9nZ2xlUmVxdWlyZWQoKQogIHsKICAgICR0aGlzLT5SZXF1aXJlZCA9ICgkdGhpcy0+UmVxdWlyZWQ/MDoxKTsKICB9CgoKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uVHlwZXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VmFsaWRhdGlvblR5cGVzOwogIH0KCQogIGZ1bmN0aW9uIEdldFZhbGlkYXRpb25UeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbGlkYXRpb25UeXBlOwogIH0KCiAgZnVuY3Rpb24gU2V0VmFsaWRhdGlvblR5cGUoJHRoZVR5cGUpCiAgewogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHRoZVR5cGU7CiAgfQoKICBmdW5jdGlvbiBJc1ZhbGlkKCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGVkOwogIH0KICAKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uRXJyb3JUZXh0KCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSB3aXRoIGEgZGlzcGxheWFibGUgdHlwZQogIGZ1bmN0aW9uIEdldERpc3BsYXlUeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5MYW5nKCdmaWVsZF90eXBlXycuJHRoaXMtPlR5cGUpOwogIH0KCgogIC8vIEJhc2UgYmFja2VuZGVkIGZpZWxkcyBjb25maWd1cmF0aW9uCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVCYXNlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvciwkZGlzcG9zZU9ubHk9MCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCgkvLyBEbyB0aGUgZmllbGQgdHlwZSBjaGVjawogICAgaWYgKCR0aGlzLT5UeXBlID09ICcnKSB7CgkJaWYgKCRkaXNwb3NlT25seSA9PSAxKSB7CgkJCgkJCSR0eXBlSW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPmRpc3BfZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkJfSBlbHNlIHsKCQkKCQkJJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkJfQogICAgfSBlbHNlIHsKCQoJCSR0eXBlSW5wdXQgPSAkdGhpcy0+R2V0RGlzcGxheVR5cGUoKS4kbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX2ZpZWxkX3R5cGUnLCAkdGhpcy0+VHlwZSk7CiAgICB9CgkJCgkvLyBJbml0IG1haW4gdGFiCQogICAgJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX25hbWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF9uYW1lJywgJHRoaXMtPkdldE5hbWUoKSwgNTApKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSwkdHlwZUlucHV0KQoJCQkpOwoKCS8vIEluaXQgYWR2YW5jZWQgdGFiCiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICAvLyBpZiB3ZSBrbm93IG91ciB0eXBlLCB3ZSBjYW4gbG9hZCB1cCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucwogICAgaWYgKCR0aGlzLT5UeXBlICE9ICcnKSB7CgkJCQoJCS8vIHZhbGlkYXRpb24gdHlwZXM/CgkJaWYgKGNvdW50KCR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZXMoKSkgPiAxKSB7CgkJCgkJCSR2YWxpZElucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX3ZhbGlkYXRpb25fdHlwZScsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZXMoKSwgLTEsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZSgpKTsKCQl9IGVsc2UgewoJCQoJCQkkdmFsaWRJbnB1dCA9ICRtb2QtPkxhbmcoJ2F1dG9tYXRpYycpOwoJCX0KCQkJCQoJCWlmICghJHRoaXMtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpIHsKCQkJYXJyYXlfcHVzaCgkbWFpbiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSwkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfcmVxdWlyZWQnLCAxLCAkdGhpcy0+SXNSZXF1aXJlZCgpKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJykpKTsKCQl9CgkJCQkKCQlhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF92YWxpZGF0aW9uJyksJHZhbGlkSW5wdXQpKTsKCgkJaWYoICR0aGlzLT5IYXNMYWJlbCA9PSAxICkgewoJCQkKCQkJYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2hpZGVfbGFiZWwnLCAxLCAkdGhpcy0+SGlkZUxhYmVsKCkpLiRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZycpKSk7CgkJfQoKCQkkYWxpYXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycsJycpOwoJCWlmICgkYWxpYXMgPT0gJycpIHsKCQkJJGFsaWFzID0gJ2ZsZCcuJHRoaXMtPkdldElkKCk7CgkJfQoJCQoJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfYWxpYXMnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmllbGRfYWxpYXMnLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycpLCA1MCkpKTsJCQkKCgkJaWYgKCR0aGlzLT5EaXNwbGF5SW5Gb3JtKCkpIHsKCQkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jc3NfY2xhc3MnLCAkdGhpcy0+R2V0T3B0aW9uKCdjc3NfY2xhc3MnKSwgNTApKSk7CgkJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oZWxwdGV4dCcpLCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5HZXRPcHRpb24oJ2hlbHB0ZXh0JywnJyksICdmYnJwX29wdF9oZWxwdGV4dCcsJ21vZHVsZV9mYl9hcmVhX3Nob3J0JykpKTsKCQkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnKSwkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyksIAoJCQkJCQkJCSdmYnJwX29wdF9qYXZhc2NyaXB0JywnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCcnLCcnLCAnJywgJzgwJywgJzE1JywnJywnanMnKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnKSkpOwoJCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfbG9naWMnKSwkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9sb2dpYycsJycpLCAKCQkJCQkJCQknZmJycF9vcHRfZmllbGRfbG9naWMnLCdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsJycsJycsICcnLCAnODAnLCAnMTUnKS4nPGJyIC8+Jy4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9sb2dpY19sb25nJykpKTsKCQl9CgkKICAgIH0gZWxzZSB7CgkKCQkvLyBubyBhZHZhbmNlZCBvcHRpb25zIHVudGlsIHdlIGtub3cgb3VyIHR5cGUKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyksJG1vZC0+TGFuZygnbm90aWNlX3NlbGVjdF90eXBlJykpKTsKICAgIH0KCQkJCQogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sICdhZHYnPT4kYWR2KTsKICB9CgkKCQogIC8vIG92ZXJyaWRlIG1lLgogIC8vIEkgcmV0dXJuIGFuIHVnbHkgZGF0YSBzdHJ1Y3R1cmU6CiAgLy8gSXQncyBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHR3byBpdGVtcywgJ21haW4nIGFuZCAnYWR2JyAoZm9yIHRoZQogIC8vIG1haW4gYW5kIGFkdmFuY2VkIHNldHRpbmcgdGFicykuCiAgLy8gRWFjaCBvZiB0aGVzZSBpcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSBvZiBUaXRsZSAvIElucHV0IHZhbHVlcy4KICAvLyBUaGUgVGl0bGUgd2lsbCBiZSBkaXNwbGF5ZWQgaWYgaXQgaGFzIGEgbGVuZ3RoOwogIC8vIHRoZSAiSW5wdXQiIHNob3VsZCBiZSBhIEZvcm0gaW5wdXQgZm9yIHRoYXQgZmllbGQgYXR0cmlidXRlL29wdGlvbgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICByZXR1cm4gYXJyYXkoKTsKICB9CgogIC8vIG92ZXJyaWRlIG1lLgogIC8vIFRoaXMgZ2l2ZXMgeW91IGEgY2hhbmNlIHRvIGFsdGVyIHRoZSBhcnJheSBjb250ZW50cyBiZWZvcmUKICAvLyB0aGV5IGdldCByZW5kZXJlZC4gCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBQb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCkKICB7CiAgfQoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBQb3N0RmllbGRTYXZlUHJvY2VzcygmJHBhcmFtcykKICB7CiAgfQoKCiAgLy8gbmV3IG1ldGhvZCBhcyBvZiBPY3QgMDkgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGhlcmUgYWxsIGFsb25nLi4uCiAgZnVuY3Rpb24gUmVtb3ZlQWRtaW5GaWVsZCgmJGFycmF5LCAkZmllbGRuYW1lKQogIHsKCQkkcmVxSW5kZXggPSAtMTsKICAgIAlmb3IgKCRpPTA7JGk8Y291bnQoJGFycmF5KTskaSsrKQogICAgICAJCXsKCQkJICAgaWYgKCRhcnJheVskaV0tPnRpdGxlID09ICRmaWVsZG5hbWUpCgkgIAkJCSAgIHsKCSAgICAJCSAgICRyZXFJbmRleCA9ICRpOwoJICAJCQkgICB9CiAgICAgIAkJfQogICAgCWlmICgkcmVxSW5kZXggIT0gLTEpCiAgICAgIAkJewoJCQkgICBhcnJheV9zcGxpY2UoJGFycmF5LCAkcmVxSW5kZXgsMSk7CiAgICAgIAkJfQogIH0KCiAgZnVuY3Rpb24gQ2hlY2tGb3JBZHZhbmNlZFRhYigmJGFkdkFycmF5KQogICB7CiAgICBpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQogICAgICB7CgkgICAkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkgICAkYWR2QXJyYXlbMF0tPmlucHV0ID0gJG1vZC0+TGFuZygndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucycpOwogICAgICB9CiAgIH0KCiAgLy8gY2xlYXIgZmllbGRzIHVudXNlZCBieSBpbnZpc2libGUgZGlzcG9zaXRpb25zCiAgZnVuY3Rpb24gSGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJiRtYWluQXJyYXksICYkYWR2QXJyYXksICRoaWRlUmVxPXRydWUpCiAgewoJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQKICAgIGlmICgkaGlkZVJlcSkgewogICAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkbWFpbkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKTsKICAgIH0KCQogICAgLy8gcmVtb3ZlIHRoZSAiaGlkZSBuYW1lIiBmaWVsZAogICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJGFkdkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsJykpOwoJCiAgICAvLyByZW1vdmUgdGhlICJjc3MiIGZpZWxkCiAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkYWR2QXJyYXksICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcycpKTsKCQogICAgLy8gaGlkZSAiamF2YXNjcmlwdCIKICAgICR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKTsKCQogICAgLy8gaGlkZSAibG9naWMiCiAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkYWR2QXJyYXksICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2xvZ2ljJykpOwkKCQogICAgLy8gaGlkZSAiaGVscCB0ZXh0IgogICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJGFkdkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oZWxwdGV4dCcpKTsKCiAgICAkdGhpcy0+Q2hlY2tGb3JBZHZhbmNlZFRhYigkYWR2QXJyYXkpOwogIH0KCQoKICAvLyBvdmVycmlkZSBtZS4gUmV0dXJucyBhbiBhcnJheTogZmlyc3QgdmFsdWUgaXMgYSB0cnVlIG9yIGZhbHNlICh3aGV0aGVyIG9yIG5vdAogIC8vIHRoZSB2YWx1ZSBpcyB2YWxpZCksIHRoZSBzZWNvbmQgaXMgYSBtZXNzYWdlCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKICAJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CiAgCSR0aGlzLT52YWxpZGF0ZWRFcnJvclRleHQgPSAnJzsKICAgIHJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGVkRXJyb3JUZXh0KTsKICB9CgoKICAvLyBvdmVycmlkZSBtZSEKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJCSRyZXQgPSAkdGhpcy0+VmFsdWU7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJICAkcmV0ID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkgIH0KCWlmICgkYXNfc3RyaW5nKQoJCXsKCQlyZXR1cm4gJHJldDsKCQl9CgllbHNlCgkJewoJCXJldHVybiBhcnJheSgkcmV0KTsKCQl9CiAgfQogIAogIC8vIG92ZXJyaWRlIG1lIQogIGZ1bmN0aW9uIEdldEFsbEh1bWFuUmVhZGFibGVWYWx1ZXMoKQogIHsKCQkKCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CQoJaWYoaW5fYXJyYXkoJ29wdGlvbl92YWx1ZScsJHRoaXMtPkdldE9wdGlvbk5hbWVzKCkpKSB7CgkJCgkJaWYoY291bnQoJHRoaXMtPkdldE9wdGlvbignb3B0aW9uX3ZhbHVlJykpID4gMCkgewoJCQoJCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbignb3B0aW9uX3ZhbHVlJyk7CgkJfQoJfQoJCglyZXR1cm4gZmFsc2U7CiAgfQkKCgogIC8vIG92ZXJyaWRlIHRoaXMgaWYgeW91IGhhdmUgc29tZSB1bnVzdWFsIGZvcm1hdCBmb3IgdmFsdWVzLAogIC8vIGVzcGVjaWFsbHkgaWYgImZhbHNlIiBpcyBhIHZhbGlkIHZhbHVlIQogIGZ1bmN0aW9uIEhhc1ZhbHVlKCRkZW55X2JsYW5rX3Jlc3BvbnNlcz1mYWxzZSkKICB7CiAgICAgaWYgKCR0aGlzLT5HZXRGaWVsZFR5cGUoKT09J1RleHRGaWVsZCcgfHwgJHRoaXMtPkdldEZpZWxkVHlwZSgpPT0nVGV4dEFyZWFGaWVsZCcpCiAgICAgICAgIHsKICAgICAgICAgLy8gZmllbGRzIHdpdGggZGVmYXVsdHMKICAgICAgICAgJGRlZiA9ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKTsKICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgKCRkZWYgPT0gJycgfHwgJHRoaXMtPlZhbHVlICE9ICRkZWYpKQogICAgICAgICAgICB7CiAgICAgICAgICAgIGlmICgkZGVueV9ibGFua19yZXNwb25zZXMgJiYgIWlzX2FycmF5KCR0aGlzLT5WYWx1ZSkKICAgICAgICAgICAgICAgJiYgcHJlZ19tYXRjaCgnL15ccyskLycsJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICBlbHNlIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIGlmICgkZGVueV9ibGFua19yZXNwb25zZXMgJiYgIWlzX2FycmF5KCR0aGlzLT5WYWx1ZSkKICAgICAgICAgICAgJiYgcHJlZ19tYXRjaCgnL15ccyskLycsJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgcmV0dXJuIGZhbHNlOwogIH0KCQogIC8vIHByb2JhYmx5IGRvbid0IG5lZWQgdG8gb3ZlcnJpZGUgdGhpcwogIGZ1bmN0aW9uIEdldFZhbHVlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbHVlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWU/IFJldHVybnMgdGhlIChwb3NzaWJseSBjb252ZXJ0ZWQpIHZhbHVlIG9mIHRoZSBmaWVsZC4KICBmdW5jdGlvbiBHZXRBcnJheVZhbHVlKCRpbmRleCkKICB7CiAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICBpZiAoaXNzZXQoJHRoaXMtPlZhbHVlWyRpbmRleF0pKQoJICAgICAgewoJCXJldHVybiAkdGhpcy0+VmFsdWVbJGluZGV4XTsKCSAgICAgIH0KCSAgfQoJZWxzZWlmICgkaW5kZXggPT0gMCkKCSAgewoJICAgIHJldHVybiAkdGhpcy0+VmFsdWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWU/IFJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgY29udGFpbmVkIGluIHRoZSBWYWx1ZSBhcnJheQogIGZ1bmN0aW9uIEZpbmRBcnJheVZhbHVlKCR2YWx1ZSkKICB7CiAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICByZXR1cm4gYXJyYXlfc2VhcmNoKCR2YWx1ZSwkdGhpcy0+VmFsdWUpOwoJICB9CgllbHNlaWYgKCR0aGlzLT5WYWx1ZSA9PSAkdmFsdWUpCgkgIHsKCSAgICByZXR1cm4gdHJ1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBSZXNldFZhbHVlKCkKICB7CiAgICAkdGhpcy0+VmFsdWUgPSBmYWxzZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lLCBpZiBuZWNlc3NhcnkgdG8gY29udmVydCB0eXBlIG9yIHNvbWV0aGluZy4KICBmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsU3RyKQogIHsKCiAgLy9lcnJvcl9sb2coJHRoaXMtPkdldE5hbWUoKS4nOicucHJpbnRfcigkdmFsU3RyLHRydWUpKTsKICAgICRmbSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQogICAgICB7CiAgICAgIGlmIChpc19hcnJheSgkdmFsU3RyKSkKICAgICAgICAgewogICAgICAgICAkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwogICAgICAgICBmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPlZhbHVlKTskaSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgIHdoaWxlICggJHRoaXMtPlZhbHVlWyRpXSAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICR0aGlzLT5WYWx1ZVskaV0gPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgd2hpbGUgKCR0aGlzLT5WYWx1ZSAhPT0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKSkKICAgICAgICAgICAgewoJICAgICAgICAgJHRoaXMtPlZhbHVlID0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKTsKCSAgICAgICAgIH0KCSAgICAgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgIHdoaWxlICgkdmFsU3RyICE9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0cikpCiAgICAgICAgIHsKICAgICAgICAgJHZhbFN0ciA9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0cik7CiAgICAgICAgIH0KCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICAkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICB9CglhcnJheV9wdXNoKCR0aGlzLT5WYWx1ZSwkdmFsU3RyKTsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gUmVxdWlyZXNWYWxpZGF0aW9uKCkKICB7CiAgICBpZiAoJHRoaXMtPlZhbGlkYXRpb25UeXBlID09ICdub25lJykKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiB0cnVlOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBEb2VzRmllbGROYW1lRXhpc3QoKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJCiAgICAvLyBmaWVsZCBuYW1lIGluIHVzZT8/CiAgICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgndW5pcXVlX2ZpZWxkbmFtZXMnLCcxJykgPT0gJzEnICYmCiAgICAJJHRoaXMtPmZvcm1fcHRyLT5IYXNGaWVsZE5hbWVkKCR0aGlzLT5HZXROYW1lKCkpICE9ICR0aGlzLT5JZCkKICAgICAgewoJCXJldHVybiBhcnJheShmYWxzZSwkbW9kLT5MYW5nKCdmaWVsZF9uYW1lX2luX3VzZScsJHRoaXMtPkdldE5hbWUoKSkuCgkJJzxiciAvPicpOwogICAgICB9CQkKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsKICB9CgoKICAgZnVuY3Rpb24gRG9lc0ZpZWxkSGF2ZU5hbWUoKQogICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogIAlpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZV9maWVsZG5hbWVzJywnMScpID09ICcxJyAmJgogIAkJc3RybGVuKCR0aGlzLT5HZXROYW1lKCkpIDwgMSkKICAJCXsKICAJCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygnZmllbGRfbm9fbmFtZScpLic8YnIgLz4nKTsKICAJCX0KCXJldHVybiBhcnJheSh0cnVlLCcnKTsgICAKICAgfQoKICAvLyBvdmVycmlkZSBtZSwgaWYgbmVlZGVkLiBSZXR1cm5zIGFuIGFycmF5OiBmaXJzdCB2YWx1ZSBpcyBhIHRydWUgb3IKICAvLyBmYWxzZSAod2hldGhlciBvciBub3QgdGhlIHZhbHVlIGlzIHZhbGlkKSwgdGhlIHNlY29uZCBpcyBhIG1lc3NhZ2UKICBmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICB7CiAgCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZEhhdmVOYW1lKCk7CglpZiAoJHJldCkKCQl7CgkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkTmFtZUV4aXN0KCk7CgkJfQoJCQoJcmV0dXJuIGFycmF5KCRyZXQsICRtZXNzYWdlKTsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBpZiB5b3UncmUgYSBGb3JtIERpc3Bvc2l0aW9uIHBzZXVkby1maWVsZC4KICAvLyBUaGlzIG1ldGhvZCBjYW4gZG8ganVzdAogIC8vIGFib3V0IGFueXRoaW5nIHlvdSB3YW50IGl0IHRvLCBpbiBvcmRlciB0byBoYW5kbGUgZm9ybSBjb250ZW50cy4KICAvLyBpdCByZXR1cm5zIGFuIGFycmF5LCB3aGVyZSB0aGUgZmlyc3QgZWxlbWVudCBpcyB0cnVlIG9uIHN1Y2Nlc3MsCiAgLy8gb3IgZmFsc2Ugb24gZmFpbHVyZSwgYW5kIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBleHBsYW5hdG9yeQogIC8vIHRleHQgZm9yIHRoZSBmYWlsdXJlCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQogIHsKICAgIHJldHVybiBhcnJheSh0cnVlLCAnJyk7CiAgfQkKCiAgZnVuY3Rpb24gRXhwb3J0WE1MKCRleHBvcnRWYWx1ZXMgPSBmYWxzZSkKICB7CgkkeG1sc3RyID0gIlx0PGZpZWxkIGlkPVwiIi4kdGhpcy0+SWQuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRcdHR5cGU9XCIiLiR0aGlzLT5UeXBlLiJcIlxuIjsKCS8vJHhtbHN0ciAuPSAiXHRcdG5hbWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPk5hbWUpLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHR2YWxpZGF0aW9uX3R5cGU9XCIiLiR0aGlzLT5WYWxpZGF0aW9uVHlwZS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0b3JkZXJfYnk9XCIiLiR0aGlzLT5PcmRlckJ5LiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRyZXF1aXJlZD1cIiIuJHRoaXMtPlJlcXVpcmVkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRoaWRlX2xhYmVsPVwiIi4kdGhpcy0+SGlkZUxhYmVsLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRkaXNwbGF5X2luX3N1Ym1pc3Npb249XCIiLiR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uLiJcIiI7CgkkeG1sc3RyIC49ICI+XG4iOwoJJHhtbHN0ciAuPSAiXHRcdFx0PGZpZWxkX25hbWU+PCFbQ0RBVEFbIi4kdGhpcy0+TmFtZS4iXV0+PC9maWVsZF9uYW1lPlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRcdDxvcHRpb25zPlxuIi4kdGhpcy0+T3B0aW9uc0FzWE1MKCkuIlx0XHRcdDwvb3B0aW9ucz5cbiI7CglpZiAoJGV4cG9ydFZhbHVlcykKCQl7CgkJCSR4bWxzdHIgLj0gIlx0XHRcdDxodW1hbl9yZWFkYWJsZV92YWx1ZT48IVtDREFUQVsiLgogICAgICAgICAgICAkdGhpcy0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkuCiAgICAgICAgICAgICJdXT48L2h1bWFuX3JlYWRhYmxlX3ZhbHVlPlxuIjsKCQl9CgoJJHhtbHN0ciAuPSAiPC9maWVsZD5cbiI7CglyZXR1cm4gJHhtbHN0cjsKICB9CgoKCS8vIG92ZXJyaWRlIGFzIG5lY2Vzc2FyeQogICBmdW5jdGlvbiBPcHRpb25Gcm9tWE1MKCR0aGVBcnJheSkKCXsKCQlpZiAoJHRoZUFycmF5WyduYW1lJ10gIT0gJ29wdGlvbicpCgkJCXsKCQkJcmV0dXJuOwoJCQl9CgkJaWYgKCEgaXNzZXQoJHRoaXMtPk9wdGlvbnMpKQoJCQl7CgkJCSR0aGlzLT5PcHRpb25zID0gYXJyYXkoKTsJCgkJCX0KCQlpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJHRoZUFycmF5WydhdHRyaWJ1dGVzJ11bJ25hbWUnXV0pKQoJCQl7CgkJCWlmICghIGlzX2FycmF5KCR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dKSkKCQkJCXsKCQkJCSR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dID0gYXJyYXkoJHRoaXMtPk9wdGlvbnNbJHRoZUFycmF5WydhdHRyaWJ1dGVzJ11bJ25hbWUnXV0pOwoJCQkJfQoJCQlhcnJheV9wdXNoKCR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dLCAkdGhlQXJyYXlbJ2NvbnRlbnQnXSk7CgkJCX0KCQllbHNlCgkJCXsKCS8vCSR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnbmFtZSddXSA9ICR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ107CgkJCSR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dID0gJHRoZUFycmF5Wydjb250ZW50J107CgkJCX0KCX0KCiAgIC8vIG92ZXJyaWRlIGFzIG5lY2Vzc2FyeQogICBmdW5jdGlvbiBPcHRpb25zQXNYTUwoKQoJewoJCSR4bWxzdHIgPSAiIjsKCQlmb3JlYWNoKCR0aGlzLT5PcHRpb25zIGFzICRuYW1lPT4kdmFsdWUpCgkJCXsKCQkJaWYgKCEgaXNfYXJyYXkoJHZhbHVlKSkKCQkJCXsKCQkJCSR2YWx1ZSA9IGFycmF5KCR2YWx1ZSk7CgkJCQl9CgkJCWZvcmVhY2ggKCR2YWx1ZSBhcyAkdGhpc1ZhbCkKCQkJCXsKCQkJCSR4bWxzdHIgLj0gIlx0XHRcdDxvcHRpb24gbmFtZT1cIiRuYW1lXCI+PCFbQ0RBVEFbIi4kdGhpc1ZhbC4KICAgICAgICAgICAgICAgIl1dPjwvb3B0aW9uPlxuIjsKCQkJCX0KCQkJfQoJCWlmIChpc3NldCgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCQl7CgkJCQkkdGhpc1ZhbCA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CQoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkdGhpc1ZhbCA9ICR0aGlzLT5WYWx1ZTsKCQkJCX0KCQkJZm9yZWFjaCAoJHRoaXNWYWwgYXMgJHRoaXNWYWxPdXQpCgkJCQl7CgkJCQkkeG1sc3RyIC49ICJcdFx0XHQ8dmFsdWU+PCFbQ0RBVEFbIi4kdGhpc1ZhbE91dC4KICAgICAgICAgICAgICAgIl1dPjwvdmFsdWU+XG4iOwoJCQkJfQoJCQl9CgkJcmV0dXJuICAkeG1sc3RyOwoJfQoKCiAgZnVuY3Rpb24gRXhwb3J0T2JqZWN0KCkKICB7Cgkkb2JqID0gbmV3IHN0ZENsYXNzKCk7Cgkkb2JqLT5uYW1lID0gJHRoaXMtPk5hbWU7Cgkkb2JqLT50eXBlID0gJHRoaXMtPlR5cGU7Cgkkb2JqLT5pZCA9ICR0aGlzLT5JZDsKCSRvYmotPnZhbHVlID0gJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSh0cnVlKTsKCSRvYmotPnZhbHVlQXJyYXkgPSAkdGhpcy0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKGZhbHNlKTsKCXJldHVybiAkb2JqOwogIH0KCgogIGZ1bmN0aW9uIEdldE9wdGlvbk5hbWVzKCkKICB7CiAgICByZXR1cm4gYXJyYXlfa2V5cygkdGhpcy0+T3B0aW9ucyk7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb24oJG9wdGlvbk5hbWUsICRkZWZhdWx0PScnKQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogICAgICB7CglyZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwogICAgICB9CiAgICByZXR1cm4gJGRlZmF1bHQ7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb25SZWYoJG9wdGlvbk5hbWUpCiAgICB7CiAgICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQoJewoJICByZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwoJfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgoJCiAgZnVuY3Rpb24gUmVtb3ZlT3B0aW9uRWxlbWVudCgkb3B0aW9uTmFtZSwgJGluZGV4KQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCSAgewoJICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV1bJGluZGV4XSkpCgkgICAgICB7CgkJYXJyYXlfc3BsaWNlKCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkaW5kZXgsMSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KCQogIGZ1bmN0aW9uIEdldE9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICRpbmRleCwgJGRlZmF1bHQ9IiIpCiAgewogICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCiAgICAgIHsKCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQoJICB7CgkgICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXVskaW5kZXhdKSkKCSAgICAgIHsKCQlyZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdWyRpbmRleF07CgkgICAgICB9CgkgIH0KCWVsc2VpZiAoJGluZGV4ID09IDApCgkgIHsKCSAgICByZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gJGRlZmF1bHQ7CQkKICB9CgogIGZ1bmN0aW9uIFNldE9wdGlvbigkb3B0aW9uTmFtZSwgJG9wdGlvblZhbHVlKQogIHsKICAgICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9ICRvcHRpb25WYWx1ZTsKICB9CiAgCiAgZnVuY3Rpb24gUHVzaE9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICR2YWwpCiAgewogIAlpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAJCXsKICAJCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogIAkJCXsKICAJCQlhcnJheV9wdXNoKCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkdmFsKTsKICAJCQl9CiAgCQllbHNlCiAgCQkJewogIAkJCSR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9IGFycmF5KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSwkdmFsKTsKICAJCQl9CiAgCQl9CiAgCWVsc2UKICAJCXsKICAJCSR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSA9ICR2YWw7CiAgCQl9CiAgfQoKICBmdW5jdGlvbiBMb2FkRmllbGQoJiRwYXJhbXMpCiAgewogICAgaWYgKCR0aGlzLT5JZCA+IDApCiAgICAgIHsKCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgJHBhcmFtcywgdHJ1ZSk7CiAgICAgIH0KICAgIHJldHVybjsKICB9CgogIC8vIGN1c3RvbWl6ZWQgdmVyc2lvbiBvZiBBUEkgZnVuY3Rpb24gQ3JlYXRlVGV4dElucHV0LiBUaGlzIGRvZXNuJ3QgdGhyb3cgaW4gYW4gSUQgdGhhdCdzIHRoZSBzYW1lIGFzIHRoZSBmaWVsZCBuYW1lLgogIGZ1bmN0aW9uIFRleHRGaWVsZCgkaWQsICRuYW1lLCAkdmFsdWU9JycsICRzaXplPScxMCcsICRtYXhsZW5ndGg9JzI1NScsICRhZGR0dGV4dD0nJykKewogICR2YWx1ZSA9IGNtc19odG1sZW50aXRpZXMoaHRtbF9lbnRpdHlfZGVjb2RlKCR2YWx1ZSkpOwogICRpZCA9IGNtc19odG1sZW50aXRpZXMoaHRtbF9lbnRpdHlfZGVjb2RlKCRpZCkpOwogICRuYW1lID0gY21zX2h0bWxlbnRpdGllcyhodG1sX2VudGl0eV9kZWNvZGUoJG5hbWUpKTsKICAkc2l6ZSA9ICgkc2l6ZSE9Jyc/Y21zX2h0bWxlbnRpdGllcygkc2l6ZSk6MTApOwogICRtYXhsZW5ndGggPSAoJG1heGxlbmd0aCE9Jyc/Y21zX2h0bWxlbnRpdGllcygkbWF4bGVuZ3RoKToyNTUpOwoKICAkdmFsdWUgPSBzdHJfcmVwbGFjZSgnIicsICcmcXVvdDsnLCAkdmFsdWUpOwogIAogICR0ZXh0ID0gJzxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgc2l6ZT0iJy4kc2l6ZS4nIiBtYXhsZW5ndGg9IicuJG1heGxlbmd0aC4nIic7CiAgaWYgKCRhZGR0dGV4dCAhPSAnJykKICAgIHsKICAgICAgJHRleHQgLj0gJyAnIC4gJGFkZHR0ZXh0OwogICAgfQogICR0ZXh0IC49ICIgLz5cbiI7CiAgcmV0dXJuICR0ZXh0Owp9CgoKICAvLyBsb2FkRGVlcCBhbHNvIGxvYWRzIGFsbCBvcHRpb25zIGZvciBhIGZpZWxkLgogIGZ1bmN0aW9uIExvYWQoJGlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQogIHsKICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9maWVsZCBXSEVSRSBmaWVsZF9pZD0/JzsKICAgIGlmKCRyZXN1bHQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5HZXRSb3coJHNxbCwgYXJyYXkoJHRoaXMtPklkKSkpCiAgICAgIHsKCWlmIChzdHJsZW4oJHRoaXMtPk5hbWUpIDwgMSkKCSAgewoJICAgICR0aGlzLT5OYW1lID0gJHJlc3VsdFsnbmFtZSddOwoJICB9CglpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkgPCAxKQoJICB7CgkgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHJlc3VsdFsndmFsaWRhdGlvbl90eXBlJ107CgkgIH0KCSR0aGlzLT5UeXBlID0gJHJlc3VsdFsndHlwZSddOwoJJHRoaXMtPk9yZGVyQnkgPSAkcmVzdWx0WydvcmRlcl9ieSddOwoJaWYgKCR0aGlzLT5SZXF1aXJlZCA9PSAtMSkKCSAgewoJICAgICR0aGlzLT5SZXF1aXJlZCA9ICRyZXN1bHRbJ3JlcXVpcmVkJ107CgkgIH0KCWlmICgkdGhpcy0+SGlkZUxhYmVsID09IC0xKQoJICB7CgkgICAgJHRoaXMtPkhpZGVMYWJlbCA9ICRyZXN1bHRbJ2hpZGVfbGFiZWwnXTsKCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgJHRoaXMtPmxvYWRlZCA9IHRydWU7CiAgICBpZiAoJGxvYWREZWVwKQogICAgICB7Cgkkc3FsID0gJ1NFTEVDVCBuYW1lLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLgoJICAnbW9kdWxlX2ZiX2ZpZWxkX29wdCBXSEVSRSBmaWVsZF9pZD0/IE9SREVSIEJZIG9wdGlvbl9pZCc7CgkkcnMgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkJCQkgICAgIGFycmF5KCR0aGlzLT5JZCkpOwoJJHRtcE9wdHMgPSBhcnJheSgpOwoJd2hpbGUgKCRycyAmJiAkcmVzdWx0cyA9ICRycy0+RmV0Y2hSb3coKSkKCSAgewoJICAgIGlmIChpc3NldCgkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSkpCgkgICAgICB7CgkJaWYgKCEgaXNfYXJyYXkoJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0pKQoJCSAgewoJCSAgICAkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSA9IGFycmF5KCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dKTsKCQkgIH0KCQlhcnJheV9wdXNoKCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dLCRyZXN1bHRzWyd2YWx1ZSddKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV09JHJlc3VsdHNbJ3ZhbHVlJ107CgkgICAgICB9CgkgIH0KCSR0aGlzLT5PcHRpb25zID0gYXJyYXlfbWVyZ2UoJHRtcE9wdHMsJHRoaXMtPk9wdGlvbnMpOwoKCWlmIChpc3NldCgkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSkgJiYKCSAgICAoaXNfYXJyYXkoJHBhcmFtc1sndmFsdWVfJy4kdGhpcy0+TmFtZV0pIHx8CgkgICAgIHN0cmxlbigkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSkgPiAwKSkKCSAgewoJICAgICR0aGlzLT5TZXRWYWx1ZSgkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSk7CgkgIH0KCQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXMtPklkXSkgJiYKCSAgICAoaXNfYXJyYXkoJHBhcmFtc1sndmFsdWVfZmxkJy4kdGhpcy0+SWRdKSB8fAoJICAgICBzdHJsZW4oJHBhcmFtc1sndmFsdWVfZmxkJy4kdGhpcy0+SWRdKSA+IDApKQoJICB7CgkgICAgJHRoaXMtPlNldFZhbHVlKCRwYXJhbXNbJ3ZhbHVlX2ZsZCcuJHRoaXMtPklkXSk7CgkgIH0KICAgICAgfQoKICAgIHJldHVybiB0cnVlOwogIH0KCgogIGZ1bmN0aW9uIFN0b3JlKCRzdG9yZURlZXA9ZmFsc2UpCiAgewogICAgJG1vZCA9ICAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CgkkdGhpcy0+SWQgPSAkbW9kLT5kYkhhbmRsZS0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7Cgkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLmNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9maWVsZCAoZmllbGRfaWQsIGZvcm1faWQsIG5hbWUsIHR5cGUsICcgLgoJICAncmVxdWlyZWQsIHZhbGlkYXRpb25fdHlwZSwgaGlkZV9sYWJlbCwgb3JkZXJfYnkpICcuCgkgICcgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KSc7CgkkcmVzID0gJG1vZC0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCSAgICAgICBhcnJheSgkdGhpcy0+SWQsICR0aGlzLT5Gb3JtSWQsICR0aGlzLT5OYW1lLAoJCQkJCSAgICAgJHRoaXMtPlR5cGUsICgkdGhpcy0+UmVxdWlyZWQ/MTowKSwgCgkJCQkJICAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGUsICR0aGlzLT5IaWRlTGFiZWwsICR0aGlzLT5PcmRlckJ5KSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNxbCA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuCgkgICdtb2R1bGVfZmJfZmllbGQgc2V0IG5hbWU9PywgdHlwZT0/LCcuCgkgICdyZXF1aXJlZD0/LCB2YWxpZGF0aW9uX3R5cGU9Pywgb3JkZXJfYnk9PywgJy4KCSAgJ2hpZGVfbGFiZWw9PyB3aGVyZSBmaWVsZF9pZD0/JzsKCSRyZXMgPSAkbW9kLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJICAgICAgIGFycmF5KCR0aGlzLT5OYW1lLCAkdGhpcy0+VHlwZSwgKCR0aGlzLT5SZXF1aXJlZD8xOjApLAoJCQkJCSAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlLAoJCQkJCSAgICAgJHRoaXMtPk9yZGVyQnksICR0aGlzLT5IaWRlTGFiZWwsICR0aGlzLT5JZCkpOwogICAgICB9CiAgICAgICAgICAgIAogICAgaWYgKCRzdG9yZURlZXApCiAgICAgIHsKCS8vIGRyb3Agb2xkIG9wdGlvbnMKCSRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuCgkgICdtb2R1bGVfZmJfZmllbGRfb3B0IHdoZXJlIGZpZWxkX2lkPT8nOwoJJHJlcyA9ICRtb2QtPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkgICAgICAgYXJyYXkoJHRoaXMtPklkKSk7CgoJZm9yZWFjaCAoJHRoaXMtPk9wdGlvbnMgYXMgJHRoaXNPcHRLZXk9PiR0aGlzT3B0VmFsdWVMaXN0KQoJICB7CgkgICAgaWYgKCEgaXNfYXJyYXkoJHRoaXNPcHRWYWx1ZUxpc3QpKQoJICAgICAgewoJCSR0aGlzT3B0VmFsdWVMaXN0ID0gYXJyYXkoJHRoaXNPcHRWYWx1ZUxpc3QpOwoJICAgICAgfQoJICAgIGZvcmVhY2ggKCR0aGlzT3B0VmFsdWVMaXN0IGFzICR0aGlzT3B0VmFsdWUpCgkgICAgICB7CgkJJG9wdElkID0gJG1vZC0+ZGJIYW5kbGUtPkdlbklEKAoJCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CgkJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJCSAgJ21vZHVsZV9mYl9maWVsZF9vcHQgKG9wdGlvbl9pZCwgZmllbGRfaWQsIGZvcm1faWQsICcuCgkJICAnbmFtZSwgdmFsdWUpIFZBTFVFUyAoPywgPywgPywgPywgPyknOwoJCSRyZXMgPSAkbW9kLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCSAgICAgICBhcnJheSgkb3B0SWQsICR0aGlzLT5JZCwgJHRoaXMtPkZvcm1JZCwgJHRoaXNPcHRLZXksCgkJCQkJCSAgICAgJHRoaXNPcHRWYWx1ZSkpOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwogIH0KCiAgZnVuY3Rpb24gRGVsZXRlKCkKICB7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGQgd2hlcmUgZmllbGRfaWQ9Pyc7CiAgICAkcmVzID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCQkJICBhcnJheSgkdGhpcy0+SWQpKTsKICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGRfb3B0IHdoZXJlIGZpZWxkX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJCSAgYXJyYXkoJHRoaXMtPklkKSk7CiAgICByZXR1cm4gdHJ1ZTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetEnd.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0RW5kIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpZWxkc2V0RW5kKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0ZpZWxkc2V0RW5kJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOyAgICAKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICByZXR1cm4gJzwvZmllbGRzZXQ+JzsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgLy8gdGhlcmUncyBub3RoaW5nIGh1bWFuIHJlYWRhYmxlIGFib3V0IGEgZmllbGRzZXQuCiAgICAkcmV0ID0gJ1tFbmQgRmllbGRzZXQ6ICcuJHRoaXMtPlZhbHVlLiddJzsKCWlmICgkYXNfc3RyaW5nKQoJCXsKCQlyZXR1cm4gJHJldDsKCQl9CgllbHNlCgkJewoJCXJldHVybiBhcnJheSgkcmV0KTsKCQl9CiAgfQoJCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKTsKICAgICR0aGlzLT5DaGVja0ZvckFkdmFuY2VkVGFiKCRhZHZBcnJheSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetStart.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0U3RhcnQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIGZ1bmN0aW9uIGZiRmllbGRzZXRTdGFydCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdGaWVsZHNldFN0YXJ0JzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOyAgICAKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CiAgICAkc3RyID0gJzxmaWVsZHNldCc7CiAgICAkY2xhc3MgPSAkdGhpcy0+R2V0T3B0aW9uKCdjc3NfY2xhc3MnKTsKICAgICRsZWdlbmQgPSAkdGhpcy0+R2V0T3B0aW9uKCdsZWdlbmQnKTsKCSRzdHIgLj0gJHRoaXMtPkdldENTU0lkVGFnKCk7CiAgICBpZiggJGNsYXNzICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAiIGNsYXNzPVwiJGNsYXNzXCIiOwogICAgICB9CiAgICBpZiAoJGpzICE9ICcnKQoJCXsKCQkkc3RyIC49ICcgJy4kanM7CgkJfQogICAgJHN0ciAuPSAnPic7CiAgICBpZiggJGxlZ2VuZCAhPSAnJyApCiAgICAgIHsKCSRzdHIgLj0gJzxsZWdlbmQ+Jy4kbGVnZW5kLic8L2xlZ2VuZD4nOwogICAgICB9CiAgICByZXR1cm4gJHN0cjsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgLy8gdGhlcmUncyBub3RoaW5nIGh1bWFuIHJlYWRhYmxlIGFib3V0IGEgZmllbGRzZXQuCiAgICAkcmV0ID0gJ1tCZWdpbiBGaWVsZHNldDogJy4kdGhpcy0+VmFsdWUuJ10nOwoJaWYgKCRhc19zdHJpbmcpCgkJewoJCXJldHVybiAkcmV0OwoJCX0KCWVsc2UKCQl7CgkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCX0KICB9CgkKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9sZWdlbmQnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9sZWdlbmQnLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlZ2VuZCcsJycpLCA1MCkpKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FileUploadField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiRmlsZVVwbG9hZEZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpbGVVcGxvYWRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdGaWxlVXBsb2FkRmllbGQnOwogICAgLy8gICAgJHRoaXMtPkRpc3BsYXlUeXBlID0gJG1vZC0+TGFuZygnZmllbGRfdHlwZV9maWxlX3VwbG9hZCcpOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAoJCQkJICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CgkgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwogICAgJHR4dCA9ICRtb2QtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2ZicnBfXycuJHRoaXMtPklkLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CglpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd19kZXRhaWxzJywnMCcpID09ICcxJykKCQl7CgkJICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CgkJIGlmICgkbXMgIT0gJycpCgkJCXsKCQkJJHR4dCAuPSAnICcuJG1vZC0+TGFuZygnbWF4aW11bV9zaXplJykuJzogJy4kbXMuJ2tiJzsJCgkJCX0KCQkgJGV4dHMgPSAkdGhpcy0+R2V0T3B0aW9uKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpOwoJCSBpZiAoJGV4dHMgIT0gJycpCgkJCXsKCSAgICAJJHR4dCAuPSAnICcuJG1vZC0+TGFuZygncGVybWl0dGVkX2V4dGVuc2lvbnMnKSAuICc6ICcuJGV4dHM7CgkJCX0KCQl9CiAgICByZXR1cm4gJHR4dDsKICB9CgogIGZ1bmN0aW9uIExvYWQoJGlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBwYXJlbnQ6OkxvYWQoJGlkLCRwYXJhbXMsJGxvYWREZWVwKTsKICAgIGlmKCBpc3NldCggJF9GSUxFUyApICYmIGlzc2V0KCAkX0ZJTEVTWyRtb2QtPm1vZHVsZV9pZC4nZmJycF9fJy4kdGhpcy0+SWRdICkgJiYKICAgICAgJF9GSUxFU1skbW9kLT5tb2R1bGVfaWQuJ2ZicnBfXycuJHRoaXMtPklkXVsnc2l6ZSddID4gMCApCiAgICAgIHsKCQkvLyBPa2F5LCBhIGZpbGUgd2FzIHVwbG9hZGVkCgkJJHRoaXMtPlNldFZhbHVlKCRtb2QtPm1vZHVsZV9pZC4nZmJycF9fJy4kdGhpcy0+SWQpOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdXBwcmVzc19maWxlbmFtZScsJzAnKSAhPSAnMCcpCgkJCXsKCQkJcmV0dXJuICcnOwoJCQl9CgkgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCRhc19zdHJpbmcgJiYgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSAmJiBpc3NldCgkdGhpcy0+VmFsdWVbMV0pKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+VmFsdWVbMV07CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5WYWx1ZTsKCQkJfQoJfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG1zID0gJHRoaXMtPkdldE9wdGlvbignbWF4X3NpemUnLCcnKTsKICAgICRleHRzID0gJHRoaXMtPkdldE9wdGlvbigncGVybWl0dGVkX2V4dGVuc2lvbnMnLCcnKTsKICAgICRyZXQgPSAnJzsKCWlmICgkbXMgIT0gJycpCiAgICAJewoJCSRyZXQgLj0gJG1vZC0+TGFuZygnbWF4aW11bV9zaXplJykuJzogJy4kbXMuJ2tiLCAnOwoJCX0KCWlmICgkZXh0cyAhPSAnJykKCQl7CiAJCSRyZXQgLj0gJG1vZC0+TGFuZygncGVybWl0dGVkX2V4dGVuc2lvbnMnKSAuICc6ICcuJGV4dHMuJywgJzsKCQl9CglpZiAoJHRoaXMtPkdldE9wdGlvbignZmlsZV9kZXN0aW5hdGlvbicsJycpICE9ICcnKQoJCXsKCQkkcmV0IC49ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZGVzdGluYXRpb24nLCcnKTsKCQl9CglpZiAoJHRoaXMtPkdldE9wdGlvbignYWxsb3dfb3ZlcndyaXRlJywnMCcpICE9ICcwJykKCQl7CgkJJHJldCAuPSAnICcuJG1vZC0+TGFuZygnb3ZlcndyaXRlJyk7CgkJfQoJZWxzZQoJCXsKCQkkcmV0IC49ICcgJy4kbW9kLT5MYW5nKCdub292ZXJ3cml0ZScpOwoJCX0KICAgIHJldHVybiAkcmV0OwogIH0KICAKICAKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewoJZ2xvYmFsICRnQ21zOwogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAkc2hvdyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfZGV0YWlscycsJzAnKTsKICAgICRzZW5kdG9fdXBsb2FkcyA9ICR0aGlzLT5HZXRPcHRpb24oJ3NlbmR0b191cGxvYWRzJywnZmFsc2UnKTsKICAgICR1cGxvYWRzX2NhdGVnb3J5ID0gJHRoaXMtPkdldE9wdGlvbigndXBsb2Fkc19jYXRlZ29yeScpOwogICAgJHVwbG9hZHNfZGVzdHBhZ2UgPSAkdGhpcy0+R2V0T3B0aW9uKCd1cGxvYWRzX2Rlc3RwYWdlJyk7CgogICAgJG1haW4gPSBhcnJheSgKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fc2l6ZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkgICAgICAnZmJycF9vcHRfbWF4X3NpemUnLCAkbXMsIDUsIDUpLgoJCQknICcuJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnKSksCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucycpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkgICAgICAnZmJycF9vcHRfcGVybWl0dGVkX2V4dGVuc2lvbnMnLAoJCQkJCSAgICAgICRleHRzLDI1LDgwKS4nPGJyLz4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJykpLAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2hvd19saW1pdGF0aW9ucycpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3Nob3dfZGV0YWlscycsJzAnKS4KCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgICdmYnJwX29wdF9zaG93X2RldGFpbHMnLCAnMScsICRzaG93KS4KCQkJJyAnLiRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZycpKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FsbG93X292ZXJ3cml0ZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2FsbG93X292ZXJ3cml0ZScsJzAnKS4KCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgICdmYnJwX29wdF9hbGxvd19vdmVyd3JpdGUnLCAnMScsICR0aGlzLT5HZXRPcHRpb24oJ2FsbG93X292ZXJ3cml0ZScsJzAnKSkuCgkJCScgJy4kbW9kLT5MYW5nKCd0aXRsZV9hbGxvd19vdmVyd3JpdGVfbG9uZycpKQoJCSApOwoKICAgICR1cGxvYWRzID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ1VwbG9hZHMnKTsKICAgICRzZW5kdG9fdXBsb2Fkc19saXN0ID0gYXJyYXkoJG1vZC0+TGFuZygnbm8nKT0+MCwKCQkJCSAkbW9kLT5MYW5nKCd5ZXMnKT0+MSk7CgkJJGFkdiA9IGFycmF5KCk7CgkJCgkJJGZpbGVfcmVuYW1lX2hlbHAgPSAkbW9kLT5MYW5nKCdmaWxlX3JlbmFtZV9oZWxwJykuICR0aGlzLT5mb3JtX3B0ci0+ZmllbGRWYWx1ZVRlbXBsYXRlKCkuCgkJJzx0cj48dGQ+JGV4dDwvdGQ+PHRkPicuJG1vZC0+TGFuZygnb3JpZ2luYWxfZmlsZV9leHRlbnNpb24nKS4nPC90ZD48L3RyPjwvdGFibGU+JzsKCQkKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9yZW5hbWUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfZmlsZV9yZW5hbWUnLAoJCQkJJHRoaXMtPkdldE9wdGlvbignZmlsZV9yZW5hbWUnLCcnKSw2MCwyNTUpLgoJCQkkZmlsZV9yZW5hbWVfaGVscCkpOwoJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc3VwcHJlc3NfZmlsZW5hbWUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zdXBwcmVzc19maWxlbmFtZScsJzAnKS4KCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCSAgJ2ZicnBfb3B0X3N1cHByZXNzX2ZpbGVuYW1lJywgJzEnLCAKCQkJCQkgICR0aGlzLT5HZXRPcHRpb24oJ3N1cHByZXNzX2ZpbGVuYW1lJywnMCcpKSkpOwoJCQkJCQoJCWFycmF5X3B1c2goJG1haW4sIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJyksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfcmVtb3ZlX2ZpbGUnLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJCQkgICdmYnJwX29wdF9yZW1vdmVfZmlsZScsICcxJywgCgkJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdyZW1vdmVfZmlsZScsJzAnKSkuCgkJCQkJCQkJJG1vZC0+TGFuZygnaGVscF9pZ25vcmVkX2lmX3VwbG9hZCcpKSk7CgkJYXJyYXlfcHVzaCgkbWFpbiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9kZXN0aW5hdGlvbicpLAoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9maWxlX2Rlc3RpbmF0aW9uJywKCQkJCQkJCSR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfZGVzdGluYXRpb24nLCRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddKSw2MCwyNTUpLgoJCQkJCQkkbW9kLT5MYW5nKCdoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJykpKTsKCiAgICBpZiggJHVwbG9hZHMgKQogICAgICB7CgkJJGNhdGVnb3J5bGlzdCA9ICR1cGxvYWRzLT5nZXRDYXRlZ29yeUxpc3QoKTsKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VuZHRvX3VwbG9hZHMnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgJ2ZicnBfb3B0X3NlbmR0b191cGxvYWRzJywkc2VuZHRvX3VwbG9hZHNfbGlzdCwKCQkJCQkJICAgICAkc2VuZHRvX3VwbG9hZHMpKSk7CgoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91cGxvYWRzX2NhdGVnb3J5JyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgICdmYnJwX29wdF91cGxvYWRzX2NhdGVnb3J5JywkY2F0ZWdvcnlsaXN0LCcnLAoJCQkJCQkgICAgICR1cGxvYWRzX2NhdGVnb3J5KSkpOwoJCWFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZVBhZ2VEcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnb3B0X3VwbG9hZHNfZGVzdHBhZ2UnLCR1cGxvYWRzX2Rlc3RwYWdlKSkpOwogICAgICB9CgoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgoKICBmdW5jdGlvbiBQb3N0RGlzcG9zaXRpb25BY3Rpb24oKQogIHsKCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdyZW1vdmVfZmlsZScsJzAnKSA9PSAnMScpCgkJewoJCWlmIChpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSRkZXN0ID0gJHRoaXMtPlZhbHVlWzBdOwkKCQkJaWYgKGZpbGVfZXhpc3RzKCRkZXN0KSkKCQkJCXsKCQkJCXVubGluaygkZGVzdCk7CgkJCQl9CgkJCX0KCQl9CiAgfQoKICBmdW5jdGlvbiBWYWxpZGF0ZSgpCiAgewogIAkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJywnJyk7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgLy8kZnVsbEFsaWFzID0gJHRoaXMtPkdldFZhbHVlKCk7IC0tIFN0aWtraSBtb2RpZnlzOiBOb3cgZ2V0cyBjb3JyZWN0IGFsaWFzCiAgICAkZnVsbEFsaWFzID0gJG1vZC0+bW9kdWxlX2lkLidmYnJwX18nLiR0aGlzLT5JZDsKICAgIGlmICgkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPCAxICYmICEgJHRoaXMtPlJlcXVpcmVkKQogICAgICB7CglyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgICAgIH0KICAgIGlmICgkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPCAxICYmICR0aGlzLT5SZXF1aXJlZCApCiAgICAgIHsKIAkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdyZXF1aXJlZF9maWVsZF9taXNzaW5nJyk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRtcyAhPSAnJyAmJiAkX0ZJTEVTWyRmdWxsQWxpYXNdWydzaXplJ10gPiAoJG1zICogMTAyNCkpCiAgICAgIHsKCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygnZmlsZV90b29fbGFyZ2UnKS4gJyAnLigkbXMgKiAxMDI0KS4na2InOwoJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICB9CiAgICBlbHNlIGlmICgkZXh0cyAhPSAnJykKICAgICAgewoJJG1hdGNoID0gZmFsc2U7CgkkbGVnYWxFeHRzID0gZXhwbG9kZSgnLCcsJGV4dHMpOwoJZm9yZWFjaCAoJGxlZ2FsRXh0cyBhcyAkdGhpc0V4dCkKCSAgewoJICAgIGlmIChwcmVnX21hdGNoKCcvXC4nLnRyaW0oJHRoaXNFeHQpLickL2knLCRfRklMRVNbJGZ1bGxBbGlhc11bJ25hbWUnXSkpCgkgICAgICB7CgkJJG1hdGNoID0gdHJ1ZTsKCSAgICAgIH0KCSAgICBlbHNlIGlmIChwcmVnX21hdGNoKCcvJy50cmltKCR0aGlzRXh0KS4nL2knLCRfRklMRVNbJGZ1bGxBbGlhc11bJ3R5cGUnXSkpCgkgICAgICB7CgkJJG1hdGNoID0gdHJ1ZTsKCSAgICAgIH0KCSAgfQoJaWYgKCEgJG1hdGNoKQoJICB7CgkgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdpbGxlZ2FsX2ZpbGVfdHlwZScpOwoJICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwogIH0KICAKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/Form.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZvcm0gewoKICB2YXIgJG1vZHVsZV9wdHIgPSAtMTsKICB2YXIgJG1vZHVsZV9wYXJhbXMgPSAtMTsKICB2YXIgJElkID0gLTE7CiAgdmFyICROYW1lID0gJyc7CiAgdmFyICRBbGlhcyA9ICcnOwogIHZhciAkbG9hZGVkID0gJ25vdCc7CiAgdmFyICRmb3JtVG90YWxQYWdlcyA9IDA7CiAgdmFyICRQYWdlOwogIHZhciAkQXR0cnM7CiAgdmFyICRGaWVsZHM7CiAgdmFyICRmb3JtU3RhdGU7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICR0ZW1wbGF0ZVZhcmlhYmxlczsKCiAgZnVuY3Rpb24gZmJGb3JtKCYkbW9kdWxlX3B0ciwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSwgJGxvYWRSZXNwPWZhbHNlKQogIHsKICAgICR0aGlzLT5tb2R1bGVfcHRyID0gJG1vZHVsZV9wdHI7CiAgICAkdGhpcy0+bW9kdWxlX3BhcmFtcyA9ICRwYXJhbXM7CiAgICAkdGhpcy0+RmllbGRzID0gYXJyYXkoKTsKICAgICR0aGlzLT5BdHRycyA9IGFycmF5KCk7CiAgICAkdGhpcy0+Zm9ybVN0YXRlID0gJ25ldyc7CgkKCS8vIFN0aWtraSBhZGRpbmc6ICRpZCBvdmVyd3JpdGUgcG9zc2libGUgd2l0aCAkcGFyYW0KICAgIGlmICgoIWlzc2V0KCR0aGlzLT5tb2R1bGVfcHRyLT5tb2R1bGVfaWQpIHx8IGVtcHR5KCR0aGlzLT5tb2R1bGVfcHRyLT5tb2R1bGVfaWQpKSAmJiBpc3NldCgkcGFyYW1zWydtb2R1bGVfaWQnXSkpIHsKCQoJCSR0aGlzLT5tb2R1bGVfcHRyLT5tb2R1bGVfaWQgPSAkcGFyYW1zWydtb2R1bGVfaWQnXTsKICAgIH0JIAoJICAKICAgIGlmIChpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pKSB7CgkJCgkJJHRoaXMtPklkID0gJHBhcmFtc1snZm9ybV9pZCddOwogICAgfQoJICAKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2Zvcm1fYWxpYXMnXSkpIHsKCSAgCgkJJHRoaXMtPkFsaWFzID0gJHBhcmFtc1snZmJycF9mb3JtX2FsaWFzJ107CiAgICB9CgkgIAogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ10pKSB7CgkKCQkkdGhpcy0+TmFtZSA9ICRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ107CiAgICB9CgogICAkZmllbGRFeHBhbmRPcCA9IGZhbHNlOwoKICAgZm9yZWFjaCgkcGFyYW1zIGFzICRwS2V5PT4kcFZhbCkKICAgICAgewogICAgICBpZiAoc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVYXycgfHwgc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVEXycpCiAgICAgICAgIHsKICAgICAgICAgLy8gZXhwYW5kaW5nIG9yIHNocmlua2luZyBhIGZpZWxkCiAgICAgICAgICRmaWVsZEV4cGFuZE9wID0gdHJ1ZTsKICAgICAgICAgfQogICAgICB9CgogICAgaWYgKCRmaWVsZEV4cGFuZE9wKQogICAgICB7CiAgICAgICRwYXJhbXNbJ2ZicnBfZG9uZSddID0gMDsKICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfY29udGludWUnXSkpCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gJHBhcmFtc1snZmJycF9jb250aW51ZSddIC0gMTsKICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gMTsKICAgICAgICAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfY29udGludWUnXSkpCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gJHBhcmFtc1snZmJycF9jb250aW51ZSddOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewoJICAgICAgJHRoaXMtPlBhZ2UgPSAxOwogICAgICAgICB9CiAgICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3ByZXYnXSkgJiYgaXNzZXQoJHBhcmFtc1snZmJycF9wcmV2aW91cyddKSkKICAgICAgICAgewoJICAgICAgJHRoaXMtPlBhZ2UgPSAkcGFyYW1zWydmYnJwX3ByZXZpb3VzJ107CgkgICAgICAkcGFyYW1zWydmYnJwX2RvbmUnXSA9IDA7CiAgICAgICAgIH0KICAgICAgfQogICAgJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzID0gMTsKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2RvbmUnXSkmJiAkcGFyYW1zWydmYnJwX2RvbmUnXT09MSkKICAgICAgewoJJHRoaXMtPmZvcm1TdGF0ZSA9ICdzdWJtaXQnOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF91c2VyX2Zvcm1fdmFsaWRhdGUnXSkgJiYgJHBhcmFtc1snZmJycF91c2VyX2Zvcm1fdmFsaWRhdGUnXT09dHJ1ZSkKICAgICAgewoJJHRoaXMtPmZvcm1TdGF0ZSA9ICdjb25maXJtJzsKICAgICAgfQogICAgaWYgKCR0aGlzLT5JZCAhPSAtMSkKICAgICAgewoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pICYmICR0aGlzLT5mb3JtU3RhdGUgPT0gJ3N1Ym1pdCcpCgkgIHsKCSAgICAkdGhpcy0+Zm9ybVN0YXRlID0gJ3VwZGF0ZSc7CgkgIH0KCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgJHBhcmFtcywgJGxvYWREZWVwLCAkbG9hZFJlc3ApOwogICAgICB9CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzUGFyYW1LZXk9PiR0aGlzUGFyYW1WYWwpCiAgICAgIHsKCWlmIChzdWJzdHIoJHRoaXNQYXJhbUtleSwwLDExKSA9PSAnZmJycF9mb3JtYV8nKQoJICB7CgkgICAgJHRoaXNQYXJhbUtleSA9IHN1YnN0cigkdGhpc1BhcmFtS2V5LDExKTsKCSAgICAkdGhpcy0+QXR0cnNbJHRoaXNQYXJhbUtleV0gPSAkdGhpc1BhcmFtVmFsOwoJICB9CgllbHNlIGlmICgkdGhpc1BhcmFtS2V5ID09ICdmYnJwX2Zvcm1fdGVtcGxhdGUnICYmICR0aGlzLT5JZCAhPSAtMSkKCSAgewoJICAgICR0aGlzLT5tb2R1bGVfcHRyLT5TZXRUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQsJHRoaXNQYXJhbVZhbCk7CgkgIH0KICAgICAgfQoKICAgICR0aGlzLT50ZW1wbGF0ZVZhcmlhYmxlcyA9IEFycmF5KAoJCSd7JHN1Yl9mb3JtX25hbWV9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpLAoJCSd7JHN1Yl9kYXRlfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3N1Ym1pc3Npb25fZGF0ZScpLAoJCSd7JHN1Yl9ob3N0fSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3NlcnZlcl9uYW1lJyksCgkJJ3skc3ViX3NvdXJjZV9pcH0nPT4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygnaGVscF9zdWJfc291cmNlX2lwJyksCgkJJ3skc3ViX3VybH0nPT4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygnaGVscF9zdWJfdXJsJyksCgkJJ3skZmJfdmVyc2lvbn0nPT4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygnaGVscF9mYl92ZXJzaW9uJyksCgkJJ3skVEFCfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3RhYicpLAoJKTsKICB9CgogIGZ1bmN0aW9uIFNldEF0dHJpYnV0ZXMoJGF0dHJBcnJheSkKICB7CiAgICAkdGhpcy0+QXR0cnMgPSBhcnJheV9tZXJnZSgkdGhpcy0+QXR0cnMsJGF0dHJBcnJheSk7CiAgfQoKICBmdW5jdGlvbiBTZXRUZW1wbGF0ZSgkdGVtcGxhdGUpCiAgewogICAgJHRoaXMtPkF0dHJzWydmb3JtX3RlbXBsYXRlJ10gPSAkdGVtcGxhdGU7CiAgICAkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0ZW1wbGF0ZSk7CiAgfQoKICBmdW5jdGlvbiBHZXRJZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5JZDsKICB9CgogIGZ1bmN0aW9uIFNldElkKCRpZCkKICB7CiAgICAkdGhpcy0+SWQgPSAkaWQ7CiAgfQoKICBmdW5jdGlvbiBHZXROYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5hbWU7CiAgfQoJCiAgZnVuY3Rpb24gR2V0Rm9ybVN0YXRlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1TdGF0ZTsKICB9CgkKICBmdW5jdGlvbiBHZXRQYWdlQ291bnQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Zm9ybVRvdGFsUGFnZXM7CiAgfQoJCiAgZnVuY3Rpb24gR2V0UGFnZU51bWJlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5QYWdlOwogIH0KCiAgZnVuY3Rpb24gUGFnZUJhY2soKQogIHsKICAgICR0aGlzLT5QYWdlLS07CiAgfQoKICBmdW5jdGlvbiBTZXROYW1lKCRuYW1lKQogIHsKICAgICR0aGlzLT5OYW1lID0gJG5hbWU7CiAgfQoJCiAgZnVuY3Rpb24gR2V0QWxpYXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+QWxpYXM7CiAgfQoKICBmdW5jdGlvbiBTZXRBbGlhcygkYWxpYXMpCiAgewogICAgJHRoaXMtPkFsaWFzID0gJGFsaWFzOwogIH0KCi8vIGR1bXAgcGFyYW1zCiAgZnVuY3Rpb24gRGVidWdEaXNwbGF5KCRwYXJhbXM9YXJyYXkoKSkKICB7CiAgICAkdG1wID0gJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+bW9kdWxlX3B0ciA9ICdbbWRwdHJdJzsKCiAgIGlmIChpc3NldCgkcGFyYW1zWydGT1JNJ10pKQoJCXsKCQkkZnB0ID0gJHBhcmFtc1snRk9STSddOwoJCSRwYXJhbXNbJ0ZPUk0nXSA9ICdbZm9ybV9wb2ludGVyXSc7CgkJfQoKICAgICR0ZW1wbGF0ZV90bXAgPSAkdGhpcy0+R2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJycpOwogICAgJHRoaXMtPlNldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLHN0cmxlbigkdGVtcGxhdGVfdG1wKS4nIGNoYXJhY3RlcnMnKTsKICAgICRmaWVsZF90bXAgPSAkdGhpcy0+RmllbGRzOwogICAgJHRoaXMtPkZpZWxkcyA9ICdGaWVsZCBBcnJheTogJy5jb3VudCgkZmllbGRfdG1wKTsKICAgIGRlYnVnX2Rpc3BsYXkoJHRoaXMpOwogICAgJHRoaXMtPlNldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCR0ZW1wbGF0ZV90bXApOwogICAgJHRoaXMtPkZpZWxkcyA9ICRmaWVsZF90bXA7CiAgICBmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJGZsZCkKICAgICAgewoJCSRmbGQtPkRlYnVnRGlzcGxheSgpOwogICAgICB9CiAgICAkdGhpcy0+bW9kdWxlX3B0ciA9ICR0bXA7CiAgfQoKCQogIGZ1bmN0aW9uIFNldEF0dHIoJGF0dHJuYW1lLCAkdmFsKQogIHsKICAgICR0aGlzLT5BdHRyc1skYXR0cm5hbWVdID0gJHZhbDsKICB9CgkKICBmdW5jdGlvbiBHZXRBdHRyKCRhdHRybmFtZSwgJGRlZmF1bHQ9IiIpCiAgewogICAgaWYgKGlzc2V0KCR0aGlzLT5BdHRyc1skYXR0cm5hbWVdKSkKICAgICAgewoJcmV0dXJuICR0aGlzLT5BdHRyc1skYXR0cm5hbWVdOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiAkZGVmYXVsdDsKICAgICAgfQogIH0KCQogIGZ1bmN0aW9uIEdldEZpZWxkQ291bnQoKQogIHsKICAgIHJldHVybiBjb3VudCgkdGhpcy0+RmllbGRzKTsKICB9CgogIGZ1bmN0aW9uIEhhc0ZpZWxkTmFtZWQoJG5hbWUpCiAgewogICAgJHJldCA9IC0xOwogICAgZm9yZWFjaCgkdGhpcy0+RmllbGRzIGFzICRmbGQpCgkJewoJCWlmICgkZmxkLT5HZXROYW1lKCkgPT0gJG5hbWUpCgkJCXsKCQkJJHJldCA9ICRmbGQtPkdldElkKCk7CgkJCX0KCQl9CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIEFkZFRlbXBsYXRlVmFyaWFibGUoJG5hbWUsJGRlZikKICB7CiAgICAkdGhlS2V5ID0gJ3skJy4kbmFtZS4nfSc7CiAgICAkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXNbJHRoZUtleV0gPSAkZGVmOwogIH0KCgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlSmF2YXNjcmlwdCgkZmllbGROYW1lPSdvcHRfZW1haWxfdGVtcGxhdGUnLCAkYnV0dG9uX3RleHQ9JycsICRzdWZmaXg9JycpCiAgewoJJGZsZEFsaWFzID0gcHJlZ19yZXBsYWNlKCcvW15cd1xkXS8nLCdfJywkZmllbGROYW1lKS4kc3VmZml4OwogICAgJGpzQ29kZSA9ICI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbgovKiA8IVtDREFUQVsgKi8KZnVuY3Rpb24gcG9wdWxhdGUiLiRmbGRBbGlhcy4iKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEZmJycF8iLiRmaWVsZE5hbWUuIic7CiAgICBmb3JtbmFtZVtmbmFtZV0udmFsdWU9fFRFTVBMQVRFfDsKICAgIH0KLyogXV0+ICovCjwvc2NyaXB0PiI7CgkkanNDb2RlIC49ICI8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4KJGJ1dHRvbl90ZXh0LiJcIiBvbmNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZSIuJGZsZEFsaWFzLiIodGhpcy5mb3JtKVwiIC8+IjsKICByZXR1cm4gJGpzQ29kZTsKICB9CgoKCWZ1bmN0aW9uIGZpZWxkVmFsdWVUZW1wbGF0ZSgpCgl7CgkJJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwoJCSRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+PHRoIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJykuJzwvdGg+PC90cj4nOwoJCSRyZXQgLj0gJzx0cj48dGg+Jy4kbW9kLT5MYW5nKCdoZWxwX3BocF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwoJCSRvZGQgPSBmYWxzZTsKCQkkb3RoZXJzID0gJHRoaXMtPkdldEZpZWxkcygpOwoJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCXsKCQkJaWYgKCEgJG90aGVyc1skaV0tPkhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMoKSkKCQkJCXsKCQkJCSRyZXQgLj0gJzx0cj48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAgIAknIj4kZmxkXycuJG90aGVyc1skaV0tPkdldElkKCkuCgkgICAgICAgICc8L3RkPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJICAgICAgICAnIj4nIC4kb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzwvdGQ+PC90cj4nOwoJCQkJfQoJCQkkb2RkID0gISAkb2RkOwoJCQl9CgkJcmV0dXJuICRyZXQ7Cgl9CgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlKCRodG1saXNoPWZhbHNlLCRlbWFpbD10cnVlLCAkb25lbGluZT1mYWxzZSwkaGVhZGVyPWZhbHNlLCRmb290ZXI9ZmFsc2UpCiAgewogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHJldCA9ICIiOwoKCWlmICgkZW1haWwpCgkJewogICAgCWlmICgkaHRtbGlzaCkKICAgIAkJewoJCQkkcmV0IC49ICI8aDE+Ii4kbW9kLT5MYW5nKCdlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJykuIjwvaDE+XG4iOwoJCQl9CgkgCWVsc2UKCSAJCXsKCQkJJHJldCAuPSAkbW9kLT5MYW5nKCdlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJykuIlxuIjsKCQkJfQogICAgCWZvcmVhY2goJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgCQl7CgkJCWlmICgkaHRtbGlzaCkKCQkJCXsKCQkJCSRyZXQgLj0gJzxzdHJvbmc+Jy4kdGhpc1ZhbC4nPC9zdHJvbmc+OiAnLiR0aGlzS2V5LiI8YnIgLz4iOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkcmV0IC49ICR0aGlzVmFsLic6ICcuJHRoaXNLZXk7CgkJCQl9CgkJCSRyZXQgLj0gIlxuIjsKICAgICAgCQl9CiAgICAgCWlmICgkaHRtbGlzaCkKICAgICAJICAJewoJCSAgCSRyZXQgLj0gIlxuPGhyIC8+XG4iOwoJICAJICAJfQoJICAJZWxzZQoJICAJICAJewogICAgCSAgCSRyZXQgLj0gIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKICAgIAkgIAl9CiAgICAJfQoJCQoJZWxzZWlmICghJG9uZWxpbmUpCgkJewoJCWlmICgkaHRtbGlzaCkKCQkJewoJCQkkcmV0IC49ICc8aDI+JzsKCQkJfQoJCSRyZXQgLj0gJG1vZC0+TGFuZygndGhhbmtzJyk7CgkJaWYgKCRodG1saXNoKQoJCQl7CgkJCSRyZXQgLj0gJzwvaDI+JzsKCQkJfQoJCX0KCQkKCWVsc2VpZiAoJGZvb3RlcikKCQkgewoJCSAkcmV0IC49ICctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkVPRlxuJzsKCQkgcmV0dXJuICRyZXQ7CgkJIH0JCQkKCQkKICAgICRvdGhlcnMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICBpZiAoJG90aGVyc1skaV0tPkdldEFsaWFzKCkgIT0gJycpCgkJewoJCSRmbGRyZWYgPSAkb3RoZXJzWyRpXS0+R2V0QWxpYXMoKTsKCQl9CgkgIGVsc2UKCQl7CgkJJGZsZHJlZiA9ICdmbGRfJy4gJG90aGVyc1skaV0tPkdldElkKCk7CgkJfQoJCQoJICAkcmV0IC49ICd7aWYgJCcuJGZsZHJlZi4nICE9ICIiICYmICQnLiRmbGRyZWYuJyAhPSAiJy4kdGhpcy0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpLiciIH0nOwoJICAkZmxkcmVmID0gJ3skJy4kZmxkcmVmLid9JzsKCSAgCgkgIGlmICgkaHRtbGlzaCkKICAgICAJICB7CiAgCQkgICRyZXQgLj0gJzxzdHJvbmc+Jy4kb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzwvc3Ryb25nPjogJyAuICRmbGRyZWYuICI8YnIgLz4iOwogIAkJICB9CiAgCSAgZWxzZWlmICgkb25lbGluZSAmJiAhJGhlYWRlcikKCQkgIHsKCQkgICRyZXQgLj0gJGZsZHJlZi4gJ3skVEFCfSc7CgkJICB9CgkgIGVsc2VpZiAoJG9uZWxpbmUgJiYgJGhlYWRlcikKCQkgewoJCSAkcmV0IC49ICRvdGhlcnNbJGldLT5HZXROYW1lKCkuJ3skVEFCfSc7CgkJIH0JIAoJICBlbHNlCiAgCSAgCSAgewoJICAgICAgJHJldCAuPSAkb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzogJyAuJGZsZHJlZjsKCSAgICAgIH0KCSAgCSRyZXQgLj0gInsvaWZ9XG4iOwoJCX0KICAgICAgfQkgIAoJICAKCSAvKiBTdGlra2kgc2F5czogRG9uJ3Qgc2VlIGFueSB1c2UgZm9yIHRoaXMsIGNvcnJlY3QgbWUgaWYgaSdtIHdyb25nLgogICAgaWYgKCRvbmVsaW5lKQoJCXsKCQkkcmV0ID0gc3Vic3RyKCRyZXQsMCxzdHJsZW4oJHJldCkgLSA2KS4gIlxuIjsKCQl9CgkqLwogICAgcmV0dXJuICRyZXQ7CiAgfQoKCi8vICBmdW5jdGlvbiBBZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJGZpZWxkcz0nb3B0X2VtYWlsX3RlbXBsYXRlJywKLy8gIAkkaW5jbHVkZUhUTUw9dHJ1ZSwgJGluY2x1ZGVUZXh0PXRydWUsICRvbmVsaW5lID0gZmFsc2UsICRoZWFkZXJOYW1lPScnKQogIGZ1bmN0aW9uIEFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkZmllbGRTdHJ1Y3QpCiAgewogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHJldCA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl9sZWdlbmQiPjx0cj48dGggY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnKS4nPC90aD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRoPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwogICAgJG9kZCA9IGZhbHNlOwogICAgZm9yZWFjaCgkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICB7CgkJJHJldCAuPSAnPHRyPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJCSciPicuJHRoaXNLZXkuJzwvdGQ+PHRkIGNsYXNzPSInLigkb2RkPydvZGQnOidldmVuJykuCgkJJyI+Jy4kdGhpc1ZhbC4nPC90ZD48L3RyPic7CiAgICAgICRvZGQgPSAhICRvZGQ7CiAgICAgIH0KCiAgICAkb3RoZXJzID0gJHRoaXMtPkdldEZpZWxkcygpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsgICAgICAgICAgICAgICAgCgkgICAgJHJldCAuPSAnPHRyPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJICAgICciPnskJy4kb3RoZXJzWyRpXS0+R2V0VmFyaWFibGVOYW1lKCkuCgkgICAgJ30gLyB7JGZsZF8nLgoJICAgICRvdGhlcnNbJGldLT5HZXRJZCgpLid9JzsKCQlpZiAoJG90aGVyc1skaV0tPkdldEFsaWFzKCkgIT0gJycpCgkJCXsKCQkJJHJldCAuPSAnIC8geyQnLiRvdGhlcnNbJGldLT5HZXRBbGlhcygpLid9JzsJCgkJCX0KCSAgICAkcmV0IC49ICc8L3RkPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJICAgICciPicgLiRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnPC90ZD48L3RyPic7CgkgIAkkb2RkID0gISAkb2RkOwoJICB9CiAgICAgIH0KICAgICAgIAkKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX2FycmF5X2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX290aGVyX2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKCiAgICAkc2FtcGxlVGVtcGxhdGVDb2RlID0gJyc7CiAgICBmb3JlYWNoICgkZmllbGRTdHJ1Y3QgYXMgJGtleT0+JHZhbCkKCQl7CgkJJGh0bWxfYnV0dG9uID0gKGlzc2V0KCR2YWxbJ2h0bWxfYnV0dG9uJ10pICYmICR2YWxbJ2h0bWxfYnV0dG9uJ10pOwoJCSR0ZXh0X2J1dHRvbiA9IChpc3NldCgkdmFsWyd0ZXh0X2J1dHRvbiddKSAmJiAkdmFsWyd0ZXh0X2J1dHRvbiddKTsKCQkkaXNfb25lbGluZSA9IChpc3NldCgkdmFsWydpc19vbmVsaW5lJ10pICYmICR2YWxbJ2lzX29uZWxpbmUnXSk7CgkJJGlzX2VtYWlsID0gKGlzc2V0KCR2YWxbJ2lzX2VtYWlsJ10pICYmICR2YWxbJ2lzX2VtYWlsJ10pOwoJCSRpc19oZWFkZXIgPSAoaXNzZXQoJHZhbFsnaXNfaGVhZGVyJ10pICYmICR2YWxbJ2lzX2hlYWRlciddKTsKCQkkaXNfZm9vdGVyID0gKGlzc2V0KCR2YWxbJ2lzX2Zvb3RlciddKSAmJiAkdmFsWydpc19mb290ZXInXSk7CgkJCgkJaWYgKCRodG1sX2J1dHRvbikKCQkJewoJCQkkYnV0dG9uX3RleHQgPSAkbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnKTsKCQkJfQoJCWVsc2VpZiAoJGlzX2hlYWRlcikKCQkJewoJCQkkYnV0dG9uX3RleHQgPSAkbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZScpOwoJCQl9CgkJZWxzZWlmICgkaXNfZm9vdGVyKQoJCQl7CgkJCSRidXR0b25fdGV4dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJyk7CgkJCX0JCQkJCQkKCQllbHNlCgkJCXsKCQkJJGJ1dHRvbl90ZXh0ID0gJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZScpOwoJCQl9CgoJCWlmICgkaHRtbF9idXR0b24gJiYgJHRleHRfYnV0dG9uKQoJCQl7CgkJCSRzYW1wbGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoZmFsc2UsICRpc19lbWFpbCwgJGlzX29uZWxpbmUsICRpc19oZWFkZXIsICRpc19mb290ZXIpOwoJCQkkc2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkc2FtcGxlKTsKCQkJJHNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJHNhbXBsZSk7CgkJCSRzYW1wbGVUZW1wbGF0ZUNvZGUgLj0gcHJlZ19yZXBsYWNlKCcvXHxURU1QTEFURVx8LycsIiciLiRzYW1wbGUuIiciLAoJCQkkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGVKYXZhc2NyaXB0KCRrZXksICRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnKSwndGV4dCcpKTsKCQkJfQoJCQoJCSRzYW1wbGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoJGh0bWxfYnV0dG9uLCRpc19lbWFpbCwgJGlzX29uZWxpbmUsJGlzX2hlYWRlciwgJGlzX2Zvb3Rlcik7CgkJJHNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1wnLycsIlxcJyIsJHNhbXBsZSk7CgkJJHNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJHNhbXBsZSk7CgkJJHNhbXBsZVRlbXBsYXRlQ29kZSAuPSBwcmVnX3JlcGxhY2UoJy9cfFRFTVBMQVRFXHwvJywiJyIuJHNhbXBsZS4iJyIsCgkgICAgJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlSmF2YXNjcmlwdCgka2V5LCAkYnV0dG9uX3RleHQpKTsKCQl9CgogICAgJHNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL0lELycsJGZvcm1EZXNjcmlwdG9yLCAkc2FtcGxlVGVtcGxhdGVDb2RlKTsKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kc2FtcGxlVGVtcGxhdGVDb2RlLic8L3RkPjwvdHI+JzsKICAgICRyZXQgLj0gJzwvdGFibGU+JzsKCQogICAgcmV0dXJuICRyZXQ7CiAgfQoKCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKCWdsb2JhbCAkZ0NtczsKICAgICR2YWxpZGF0ZWQgPSB0cnVlOwogICAgJG1lc3NhZ2UgPSBhcnJheSgpOwogICAgJGZvcm1QYWdlQ291bnQ9MTsKICAgICR2YWxQYWdlID0gJHRoaXMtPlBhZ2UgLSAxOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJGZvcm1QYWdlQ291bnQrKzsKCSAgfQoJaWYgKCR2YWxQYWdlICE9ICRmb3JtUGFnZUNvdW50KQoJICB7CgkgICAgY29udGludWU7CgkgIH0KCSAgCiAgICAkZGVueV9zcGFjZV92YWxpZGF0aW9uID0gKCR0aGlzLT5tb2R1bGVfcHRyLT5HZXRQcmVmZXJlbmNlKCdibGFua19pbnZhbGlkJywnMCcpID09ICcxJyk7Ci8qCSAgZGVidWdfZGlzcGxheSgkdGhpcy0+RmllbGRzWyRpXS0+R2V0TmFtZSgpLicgJy4KICAgICAgKCR0aGlzLT5GaWVsZHNbJGldLT5IYXNWYWx1ZSgpID09PSBmYWxzZT8nRmFsc2UnOid0cnVlJykpOwogICAgICBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkhhc1ZhbHVlKCkpCiAgICAgICAgIGRlYnVnX2Rpc3BsYXkoJHRoaXMtPkZpZWxkc1skaV0tPkdldFZhbHVlKCkpOwoqLwoJaWYgKC8qISAkdGhpcy0+RmllbGRzWyRpXS0+SXNOb25SZXF1aXJhYmxlRmllbGQoKSAmJiAqLwoJICAgICR0aGlzLT5GaWVsZHNbJGldLT5Jc1JlcXVpcmVkKCkgJiYKCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+SGFzVmFsdWUoJGRlbnlfc3BhY2VfdmFsaWRhdGlvbikgPT09IGZhbHNlKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkbWVzc2FnZSwKCSAgICAJJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJywkdGhpcy0+RmllbGRzWyRpXS0+R2V0TmFtZSgpKSk7CgkgICAgJHZhbGlkYXRlZCA9IGZhbHNlOwoJICAgICR0aGlzLT5GaWVsZHNbJGldLT5TZXRPcHRpb24oJ2lzX3ZhbGlkJyxmYWxzZSk7CgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPnZhbGlkYXRpb25FcnJvclRleHQgPSAkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygncGxlYXNlX2VudGVyX2FfdmFsdWUnLCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkpOwoJICAgICR0aGlzLT5GaWVsZHNbJGldLT52YWxpZGF0ZWQgPSBmYWxzZTsKCSAgfQoJZWxzZSBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldFZhbHVlKCkgIT0gJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3Vuc3BlY2lmaWVkJykpCgkgIHsgCgkgICAgJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5WYWxpZGF0ZSgpOwoJICAgIGlmICgkcmVzWzBdICE9IHRydWUpCgkgICAgICB7CgkJYXJyYXlfcHVzaCgkbWVzc2FnZSwkcmVzWzFdKTsKCQkkdmFsaWRhdGVkID0gZmFsc2U7CgkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLGZhbHNlKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLHRydWUpOwoJICAgICAgfQoJICB9CgkkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwoJJHVkdCA9ICR0aGlzLT5HZXRBdHRyKCd2YWxpZGF0ZV91ZHQnLCcnKTsKCSR1bnNwZWMgPSAkdGhpcy0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCQoJaWYoICR2YWxpZGF0ZWQgPT0gdHJ1ZSAmJiAhZW1wdHkoJHVkdCkgJiYgIi0xIiAhPSAkdWR0ICkKCQl7CgkJJHBhcm1zID0gJHBhcmFtczsgCgkJJG90aGVycyA9ICR0aGlzLT5HZXRGaWVsZHMoKTsKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQl7CgkJCSRyZXBsVmFsID0gJyc7CgkJCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAkb3RoZXJzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkJCQlpZiAoJHJlcGxWYWwgPT0gJycpCgkJCQkJewoJCQkJCSRyZXBsVmFsID0gJHVuc3BlYzsKCQkJCQl9CgkJCQl9CgkJCSRuYW1lID0gJG90aGVyc1skaV0tPkdldFZhcmlhYmxlTmFtZSgpOwoJCQkkcGFybXNbJG5hbWVdID0gJHJlcGxWYWw7CgkJCSRpZCA9ICRvdGhlcnNbJGldLT5HZXRJZCgpOwoJCQkkcGFybXNbJ2ZsZF8nLiRpZF0gPSAkcmVwbFZhbDsKCQkJJGFsaWFzID0gJG90aGVyc1skaV0tPkdldEFsaWFzKCk7CgkJCWlmICghZW1wdHkoJGFsaWFzKSkKCQkJCXsKCQkJCSRwYXJtc1skYWxpYXNdID0gJHJlcGxWYWw7CgkJCQl9CgkJCX0KCQkkcmVzID0gJHVzZXJ0YWdvcHMtPkNhbGxVc2VyVGFnKCR1ZHQsJHBhcm1zKTsKCQlpZiAoJHJlc1swXSAhPSB0cnVlKQoJCQl7CQoJCQlhcnJheV9wdXNoKCRtZXNzYWdlLCRyZXNbMV0pOwoJCQkkdmFsaWRhdGVkID0gZmFsc2U7CQoJCQl9CgkJfQkKICAgICAgfQogICAgcmV0dXJuIGFycmF5KCR2YWxpZGF0ZWQsICRtZXNzYWdlKTsKICB9CgoKICBmdW5jdGlvbiBIYXNEaXNwb3NpdGlvbigpCiAgewogICAgJGhhc0Rpc3AgPSBmYWxzZTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+SXNEaXNwb3NpdGlvbigpKQoJICB7CgkgICAgJGhhc0Rpc3AgPSB0cnVlOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkaGFzRGlzcDsKICB9CgogIC8vIHJldHVybiBhbiBhcnJheTogZWxlbWVudCAwIGlzIHRydWUgZm9yIHN1Y2Nlc3MsIGZhbHNlIGZvciBmYWlsdXJlCiAgLy8gZWxlbWVudCAxIGlzIGFuIGFycmF5IG9mIHJlYXNvbnMsIGluIHRoZSBldmVudCBvZiBmYWlsdXJlLgogIGZ1bmN0aW9uIERpc3Bvc2UoJHJldHVybmlkLCRzdXBwcmVzc19lbWFpbD1mYWxzZSkKICB7CiAgICAvLyBmaXJzdCwgd2UgcnVuIGFsbCBmaWVsZCBtZXRob2RzIHRoYXQgd2lsbCBtb2RpZnkgb3RoZXIgZmllbGRzCiAgICAkY29tcHV0ZXMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZpZXNPdGhlckZpZWxkcygpKQoJICAJewoJICAgIAkkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZ5T3RoZXJGaWVsZHMoKTsKCSAgCX0KCSAgaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5Db21wdXRlT25TdWJtaXNzaW9uKCkpCgkgIAl7CgkgIAkJJGNvbXB1dGVzWyRpXSA9ICR0aGlzLT5GaWVsZHNbJGldLT5Db21wdXRlT3JkZXIoKTsKCSAgCX0KICAgICAgfQogICAgICAKICAgIGFzb3J0KCRjb21wdXRlcyk7CiAgICBmb3JlYWNoKCRjb21wdXRlcyBhcyAkY0tleT0+JGNWYWwpCiAgICAJewogICAgCSR0aGlzLT5GaWVsZHNbJGNLZXldLT5Db21wdXRlKCk7CiAgICAJfQoKICAgICRyZXNBcnJheSA9IGFycmF5KCk7CiAgICAkcmV0Q29kZSA9IHRydWU7CiAgICAvLyBmb3IgZWFjaCBmb3JtIGRpc3Bvc2l0aW9uIHBzZXVkby1maWVsZCwgZGlzcG9zZSB0aGUgZm9ybSByZXN1bHRzCiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiAkdGhpcy0+RmllbGRzWyRpXS0+RGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpKQoJICB7CgkJaWYgKCEgKCRzdXBwcmVzc19lbWFpbCAmJiAkdGhpcy0+RmllbGRzWyRpXS0+SXNFbWFpbERpc3Bvc2l0aW9uKCkpKQoJCQl7CgkJICAgICRyZXMgPSAkdGhpcy0+RmllbGRzWyRpXS0+RGlzcG9zZUZvcm0oJHJldHVybmlkKTsKCQkgICAgaWYgKCRyZXNbMF0gPT0gZmFsc2UpCgkJICAgICAgewoJCQkkcmV0Q29kZSA9IGZhbHNlOwoJCQlhcnJheV9wdXNoKCRyZXNBcnJheSwkcmVzWzFdKTsKCQkgICAgICB9CgkJCX0KCSAgfQogICAgICB9CgoJLy8gaGFuZGxlIGFueSBsYXN0IGNsZWFudXAgZnVuY3Rpb25zCiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CgkJJHRoaXMtPkZpZWxkc1skaV0tPlBvc3REaXNwb3NpdGlvbkFjdGlvbigpOwoJICB9CiAgICByZXR1cm4gYXJyYXkoJHJldENvZGUsJHJlc0FycmF5KTsKICB9CgogIGZ1bmN0aW9uIFJlbmRlckZvcm1IZWFkZXIoKQogIHsKICAgIGlmICgkdGhpcy0+bW9kdWxlX3B0ci0+R2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJywwKSA9PSAxKQogICAgICB7CglyZXR1cm4gIlxuPCEtLSBTdGFydCBGb3JtQnVpbGRlciBNb2R1bGUgKCIuJHRoaXMtPm1vZHVsZV9wdHItPkdldFZlcnNpb24oKS4iKSAtLT5cbiI7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIFJlbmRlckZvcm1Gb290ZXIoKQogIHsKICAgIGlmICgkdGhpcy0+bW9kdWxlX3B0ci0+R2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJywwKSA9PSAxKQogICAgICB7CglyZXR1cm4gIlxuPCEtLSBFbmQgRm9ybUJ1aWxkZXIgTW9kdWxlIC0tPlxuIjsKICAgICAgfQogIH0KCgogIC8vIHJldHVybnMgYSBzdHJpbmcuCiAgZnVuY3Rpb24gUmVuZGVyRm9ybSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewoJaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKSAuICcvLi4vLi4vLi4vbGliL3JlcGxhY2VtZW50LnBocCcpOyAgCgoJLy8gQ2hlY2sgaWYgZm9ybSBpZCBnaXZlbgogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5JZCA9PSAtMSkKICAgICAgewoJCXJldHVybiAiPCEtLSBubyBmb3JtIC0tPlxuIjsKICAgICAgfQoJICAKCS8vIENoZWNrIGlmIHNob3cgZnVsbCBmb3JtCiAgICBpZiAoJHRoaXMtPmxvYWRlZCAhPSAnZnVsbCcpCiAgICAgIHsKCQkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsJHBhcmFtcyx0cnVlKTsKICAgICAgfQoKCS8vIFVzdWFsIGNyYXAKICAgICRyZXFTeW1ib2wgPSAkdGhpcy0+R2V0QXR0cigncmVxdWlyZWRfZmllbGRfc3ltYm9sJywnKicpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9wYWdlX3hfb2ZfeScsJG1vZC0+TGFuZygndGl0bGVfcGFnZV94X29mX3knLGFycmF5KCR0aGlzLT5QYWdlLCR0aGlzLT5mb3JtVG90YWxQYWdlcykpKTsKCQkKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjc3NfY2xhc3MnLCR0aGlzLT5HZXRBdHRyKCdjc3NfY2xhc3MnLCcnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndG90YWxfcGFnZXMnLCR0aGlzLT5mb3JtVG90YWxQYWdlcyk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGhpc19wYWdlJywkdGhpcy0+UGFnZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9uYW1lJywkdGhpcy0+TmFtZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9pZCcsJHRoaXMtPklkKTsKCgkvLyBCdWlsZCBoaWRkZW4KICAgICRoaWRkZW4gPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmb3JtX2lkJywgJHRoaXMtPklkKTsKCWlmIChpc3NldCgkcGFyYW1zWydsYW5nJ10pKQoJCXsKCQkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2xhbmcnLCAkcGFyYW1zWydsYW5nJ10pOwoJCX0KICAgICRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9jb250aW51ZScsICgkdGhpcy0+UGFnZSArIDEpKTsKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2Jyb3dzZXJfaWQnXSkpCiAgICAgIHsKCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmYnJwX2Jyb3dzZXJfaWQnLCRwYXJhbXNbJ2ZicnBfYnJvd3Nlcl9pZCddKTsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pKQogICAgICB7CgkgICRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdyZXNwb25zZV9pZCcsJHBhcmFtc1sncmVzcG9uc2VfaWQnXSk7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+UGFnZSA+IDEpCiAgICAgIHsKCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9wcmV2aW91cycsICgkdGhpcy0+UGFnZSAtIDEpKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5QYWdlID09ICR0aGlzLT5mb3JtVG90YWxQYWdlcykKICAgICAgewoJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX2RvbmUnLCAxKTsKICAgICAgfQoJICAKCSAgCgkgIAoJLy8gU3RhcnQgYnVpbGRpbmcgZmllbGRzCiAgICAkZmllbGRzID0gYXJyYXkoKTsKICAgICRwcmV2ID0gYXJyYXkoKTsKICAgICRmb3JtUGFnZUNvdW50ID0gMTsKCQogICAgZm9yICgkaT0wOyAkaSA8IGNvdW50KCR0aGlzLT5GaWVsZHMpOyAkaSsrKSB7CgkKCQoJJHRoaXNGaWVsZCA9ICYkdGhpcy0+RmllbGRzWyRpXTsKCQoJaWYgKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdQYWdlQnJlYWtGaWVsZCcpCgkgIHsKCSAgICAkZm9ybVBhZ2VDb3VudCsrOwoJICB9CglpZiAoJGZvcm1QYWdlQ291bnQgIT0gJHRoaXMtPlBhZ2UpCgkgIHsKCSAgICAkdGVzdEluZGV4ID0gJ2ZicnBfXycuJHRoaXMtPkZpZWxkc1skaV0tPkdldElkKCk7CgkJCQoJCQkvLyBSeWFuJ3MgdWdseSBmaXggZm9yIEJ1ZyA0MzA3CgkJCS8vIFdlIHNob3VsZCBmaWd1cmUgb3V0IHdoeSB0aGlzIGZpZWxkIHdhc24ndCBwb3B1bGF0aW5nIGl0cyBTbWFydHkgdmFyaWFibGUKCQkJaWYgKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdGaWxlVXBsb2FkRmllbGQnKQoJCQkJewoJCQkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiR0aGlzRmllbGQtPkdldElkKCksJHRoaXNGaWVsZC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkpOwoJCQkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsCgkJCQkJJHRlc3RJbmRleCwKCQkJCQkkdGhpcy0+dW5teV9odG1sZW50aXRpZXMoJHRoaXNGaWVsZC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkpKTsKCQkJCSR0aGlzQXR0ID0gJHRoaXNGaWVsZC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKGZhbHNlKTsKCQkJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0ZXN0XycuJHRoaXNGaWVsZC0+R2V0SWQoKSwgJHRoaXNBdHQpOwoJCQkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3ZhbHVlX2ZsZCcuJHRoaXNGaWVsZC0+R2V0SWQoKSwgJHRoaXNBdHRbMF0pOwoJCQkJfQoJCQkKCSAgICBpZiAoIWlzc2V0KCRwYXJhbXNbJHRlc3RJbmRleF0pKQoJICAgICAgewoJCQkvLyBkbyB3ZSBuZWVkIHRvIHdyaXRlIHNvbWV0aGluZz8KCSAgICAgIH0KCSAgICBlbHNlaWYgKGlzX2FycmF5KCRwYXJhbXNbJHRlc3RJbmRleF0pKQoJICAgICAgewoJCWZvcmVhY2ggKCRwYXJhbXNbJHRlc3RJbmRleF0gYXMgJHZhbCkKCQkgIHsKCQkgICAgJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsCgkJCQkJCSAgICAgICAkdGVzdEluZGV4LidbXScsCgkJCQkJCSAgICAgICAkdGhpcy0+dW5teV9odG1sZW50aXRpZXMoJHZhbCkpOwoJCSAgfQoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwKCQkJCQkJICAgJHRlc3RJbmRleCwKCQkJCQkJICAgJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCRwYXJhbXNbJHRlc3RJbmRleF0pKTsKCSAgICAgIH0KCSAgICAgIAogICAgICBpZiAoJGZvcm1QYWdlQ291bnQgPCAkdGhpcy0+UGFnZSAmJiAkdGhpcy0+RmllbGRzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQogICAgICAgICB7CiAgICAgICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgJG9uZXNldC0+dmFsdWUgPSAkdGhpcy0+RmllbGRzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpcy0+RmllbGRzWyRpXS0+R2V0TmFtZSgpLCRvbmVzZXQpOwoKCSAgICAgIGlmICgkdGhpcy0+RmllbGRzWyRpXS0+R2V0QWxpYXMoKSAhPSAnJykKICAgICAgICAgICAgewoJCSAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRBbGlhcygpLCRvbmVzZXQpOwoJCSAgICAgIH0KCgkgICAgICBhcnJheV9wdXNoKCRwcmV2LCRvbmVzZXQpOwogICAgICAgICB9CgkgICAgY29udGludWU7CgkgIH0KCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSRvbmVzZXQtPmRpc3BsYXkgPSAkdGhpc0ZpZWxkLT5EaXNwbGF5SW5Gb3JtKCk/MTowOwoJJG9uZXNldC0+cmVxdWlyZWQgPSAkdGhpc0ZpZWxkLT5Jc1JlcXVpcmVkKCk/MTowOwoJJG9uZXNldC0+cmVxdWlyZWRfc3ltYm9sID0gJHRoaXNGaWVsZC0+SXNSZXF1aXJlZCgpPyRyZXFTeW1ib2w6Jyc7Cgkkb25lc2V0LT5jc3NfY2xhc3MgPSAkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2Nzc19jbGFzcycpOwoJJG9uZXNldC0+aGVscHRleHQgPSAkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2hlbHB0ZXh0Jyk7Cgkkb25lc2V0LT5maWVsZF9oZWxwdGV4dF9pZCA9ICdmYnJwX2h0XycuJHRoaXNGaWVsZC0+R2V0SUQoKTsKLy8JJG9uZXNldC0+dmFsaWQgPSAkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2lzX3ZhbGlkJyx0cnVlKT8xOjA7Cgkkb25lc2V0LT52YWxpZCA9ICR0aGlzRmllbGQtPnZhbGlkYXRlZD8xOjA7Cgkkb25lc2V0LT5lcnJvciA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignaXNfdmFsaWQnLHRydWUpPycnOiR0aGlzRmllbGQtPnZhbGlkYXRpb25FcnJvclRleHQ7Cgkkb25lc2V0LT5oaWRlX25hbWUgPSAwOwoJaWYoICgoISR0aGlzRmllbGQtPkhhc0xhYmVsKCkpIHx8ICR0aGlzRmllbGQtPkhpZGVMYWJlbCgpKSAmJiAoJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCdmYnJfZWRpdCcsJzAnKSA9PSAnMCcgfHwgJHBhcmFtc1snaW5fYWRtaW4nXSAhPSAxKSApCgkgIHsKCSAgICAkb25lc2V0LT5oaWRlX25hbWUgPSAxOwoJICB9Cgkkb25lc2V0LT5oYXNfbGFiZWwgPSAkdGhpc0ZpZWxkLT5IYXNMYWJlbCgpOwoJJG9uZXNldC0+bmVlZHNfZGl2ID0gJHRoaXNGaWVsZC0+TmVlZHNEaXYoKTsKCSRvbmVzZXQtPm5hbWUgPSAkdGhpc0ZpZWxkLT5HZXROYW1lKCk7Cgkkb25lc2V0LT5pbnB1dCA9ICR0aGlzRmllbGQtPkdldEZpZWxkSW5wdXQoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwoJJG9uZXNldC0+bG9naWMgPSAkdGhpc0ZpZWxkLT5HZXRGaWVsZExvZ2ljKCk7Cgkkb25lc2V0LT52YWx1ZXMgPSAkdGhpc0ZpZWxkLT5HZXRBbGxIdW1hblJlYWRhYmxlVmFsdWVzKCk7Cgkkb25lc2V0LT5zbWFydHlfZXZhbCA9ICR0aGlzRmllbGQtPkdldFNtYXJ0eUV2YWwoKT8xOjA7CgkKCSRvbmVzZXQtPm11bHRpcGxlX3BhcnRzID0gJHRoaXNGaWVsZC0+SGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpPzE6MDsKCSRvbmVzZXQtPmxhYmVsX3BhcnRzID0gJHRoaXNGaWVsZC0+TGFiZWxTdWJDb21wb25lbnRzKCk/MTowOwoJJG9uZXNldC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldERpc3BsYXlUeXBlKCk7Cgkkb25lc2V0LT5pbnB1dF9pZCA9ICR0aGlzRmllbGQtPkdldENTU0lkKCk7CgoJLy8gQWRkZWQgYnkgU3Rpa2tpIFNUQVJUUwoJJG5hbWVfYWxpYXMgPSAkdGhpc0ZpZWxkLT5HZXROYW1lKCk7CgkkbmFtZV9hbGlhcyA9IHN0cl9yZXBsYWNlKCR0b3JlcGxhY2UsICRyZXBsYWNlbWVudCwgJG5hbWVfYWxpYXMpOwoJJG5hbWVfYWxpYXMgPSBzdHJ0b2xvd2VyKCRuYW1lX2FsaWFzKTsKCSRuYW1lX2FsaWFzID0gcHJlZ19yZXBsYWNlKCcvW15hLXowLTldKy9pJywnXycsJG5hbWVfYWxpYXMpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCRuYW1lX2FsaWFzLCRvbmVzZXQpOwoJLy8gQWRkZWQgYnkgU3Rpa2tpIEVORFMKCQoJaWYgKCR0aGlzRmllbGQtPkdldEFsaWFzKCkgIT0gJycpCgkJewoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzRmllbGQtPkdldEFsaWFzKCksJG9uZXNldCk7CgkJJG9uZXNldC0+YWxpYXMgPSAkdGhpc0ZpZWxkLT5HZXRBbGlhcygpOwoJCX0KCWVsc2UKCQl7CgkJJG9uZXNldC0+YWxpYXMgPSAkbmFtZV9hbGlhczsKCQl9CgoJJGZpZWxkc1skb25lc2V0LT5pbnB1dF9pZF0gPSAkb25lc2V0OwoJLy9hcnJheV9wdXNoKCRmaWVsZHMsJG9uZXNldCk7CiAgICAgIH0KCSAgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZiX2hpZGRlbicsJGhpZGRlbik7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZpZWxkcycsJGZpZWxkcyk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ3ByZXZpb3VzJywkcHJldik7CgogICAgJGpzU3RyID0gJyc7CiAgICAkanNUcmlnZ2VyID0gJyc7CiAgICBpZiAoJHRoaXMtPkdldEF0dHIoJ2lucHV0X2J1dHRvbl9zYWZldHknLCcwJykgPT0gJzEnKQogICAgICB7CgkkanNTdHIgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJLyogPCFbQ0RBVEFbICovCiAgICB2YXIgc3VibWl0dGVkID0gMDsKICAgIGZ1bmN0aW9uIExvY2tCdXR0b24gKCkKICAgICAgIHsKICAgICAgIHZhciByZXQgPSBmYWxzZTsKICAgICAgIGlmICggISBzdWJtaXR0ZWQgKQogICAgICAgICAgewogICAgICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIicuJGlkLidmYnJwX3N1Ym1pdCIpOwogICAgICAgICAgIGlmIChpdGVtICE9IG51bGwpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge2l0ZW0uZGlzYWJsZWQgPSB0cnVlfSwgMCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgc3VibWl0dGVkID0gMTsKICAgICAgICAgICByZXQgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQovKiBdXT4gKi8KPC9zY3JpcHQ+JzsKICAgICAgJGpzVHJpZ2dlciA9ICIgb25jbGljaz0ncmV0dXJuIExvY2tCdXR0b24oKSciOwogICAgICB9CgogICAgJGpzID0gJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9qYXZhc2NyaXB0Jyk7CgogICAgaWYgKCR0aGlzLT5QYWdlID4gMSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3ByZXYnLCc8aW5wdXQgY2xhc3M9ImNtc19zdWJtaXQgZmJzdWJtaXRfcHJldiIgbmFtZT0iJy4kaWQuJ2ZicnBfcHJldiIgaWQ9IicuJGlkLidmYnJwX3ByZXYiIHZhbHVlPSInLiR0aGlzLT5HZXRBdHRyKCdwcmV2X2J1dHRvbl90ZXh0JykuJyIgdHlwZT0ic3VibWl0IiAnLiRqcy4nIC8+Jyk7CQkJCQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3ByZXYnLCcnKTsKICAgICAgfQoKICAgIGlmICgkdGhpcy0+UGFnZSA8ICRmb3JtUGFnZUNvdW50KQogICAgICB7CgoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJzxpbnB1dCBjbGFzcz0iY21zX3N1Ym1pdCBmYnN1Ym1pdF9uZXh0IiBuYW1lPSInLiRpZC4nZmJycF9zdWJtaXQiIGlkPSInLiRpZC4nZmJycF9zdWJtaXQiIHZhbHVlPSInLiR0aGlzLT5HZXRBdHRyKCduZXh0X2J1dHRvbl90ZXh0JykuJyIgdHlwZT0ic3VibWl0IiAnLiRqcy4nIC8+Jyk7ICAKICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgICRjYXB0Y2hhID0gJG1vZC0+Z2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsKICAgICAgaWYgKCR0aGlzLT5HZXRBdHRyKCd1c2VfY2FwdGNoYScsJzAnKT09ICcxJyAmJiAkY2FwdGNoYSAhPSBudWxsKQogICAgICAgICB7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdncmFwaGljX2NhcHRjaGEnLCRjYXB0Y2hhLT5nZXRDYXB0Y2hhKCkpOwogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfY2FwdGNoYScsJHRoaXMtPkdldEF0dHIoJ3RpdGxlX3VzZXJfY2FwdGNoYScsJG1vZC0+TGFuZygndGl0bGVfdXNlcl9jYXB0Y2hhJykpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2NhcHRjaGEnLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2NhcHRjaGFfcGhyYXNlJywnJykpOwogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGFzX2NhcHRjaGEnLCcxJyk7CiAgICAgICAgIH0KICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoYXNfY2FwdGNoYScsJzAnKTsKICAgICAgICAgfQoJCSAKCQkgCgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJzxpbnB1dCBjbGFzcz0iY21zX3N1Ym1pdCBmYnN1Ym1pdCIgbmFtZT0iJy4kaWQuJ2ZicnBfc3VibWl0IiBpZD0iJy4kaWQuJ2ZicnBfc3VibWl0IiB2YWx1ZT0iJy4kdGhpcy0+R2V0QXR0cignc3VibWl0X2J1dHRvbl90ZXh0JykuJyIgdHlwZT0ic3VibWl0IiAnLiRqcy4nIC8+Jyk7ICAJCSAKICAgICAgfQoKCSAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnZmJfJy4kdGhpcy0+SWQpOwogIH0KCiAgZnVuY3Rpb24gTG9hZEZvcm0oJGxvYWREZWVwPWZhbHNlKQogIHsKICAgIHJldHVybiAkdGhpcy0+TG9hZCgkdGhpcy0+SWQsIGFycmF5KCksICRsb2FkRGVlcCk7CiAgfQoKZnVuY3Rpb24gdW5teV9odG1sZW50aXRpZXMoJHZhbCkKewoJaWYgKCR2YWwgPT0gIiIpCgl7CgkJcmV0dXJuICIiOwoJfQoJJHZhbCA9IGh0bWxfZW50aXR5X2RlY29kZSgkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJmFtcDsiLCImIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJiM2MDsmIzMzOy0tIiwiPCEtLSIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIi0tJiM2MjsiLCItLT4iLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImZ3Q7IiwiPiIsICR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImbHQ7IiwiPCIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiZxdW90OyIsIlwiIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJiMwMzY7IiwiXCQiLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImIzMzOyIsIiEiLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImIzM5OyIsIiciLCR2YWwpOwoKCS8vIFVuY29tbWVudCBpZiB5b3UgbmVlZCB0byBjb252ZXJ0IHVuaWNvZGUgY2hhcnMKCXJldHVybiAkdmFsOwp9CgoKCgoKICBmdW5jdGlvbiBMb2FkKCRmb3JtSWQsICYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UsICRsb2FkUmVzcD1mYWxzZSkKICB7CgogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwoKLy9lcnJvcl9sb2coImVudGVyaW5nIEZvcm0gTG9hZCB3aXRoIHVzYWdlICIubWVtb3J5X2dldF91c2FnZSgpKTsKICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0gV0hFUkUgZm9ybV9pZD0/JzsKICAgICRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybUlkKSk7CiAgICBpZigkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKICAgICAgewoJJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKTsKCSR0aGlzLT5JZCA9ICRyZXN1bHRbJ2Zvcm1faWQnXTsKCWlmICghaXNzZXQoJHBhcmFtc1snZmJycF9mb3JtX25hbWUnXSkgfHwgZW1wdHkoJHBhcmFtc1snZmJycF9mb3JtX25hbWUnXSkpCgkgIHsKCSAgICAkdGhpcy0+TmFtZSA9ICRyZXN1bHRbJ25hbWUnXTsKCSAgfQoJaWYgKCFpc3NldCgkcGFyYW1zWydmYnJwX2Zvcm1fYWxpYXMnXSkgfHwgZW1wdHkoJHBhcmFtc1snZmJycF9mb3JtX2FsaWFzJ10pKQoJICB7CgkgICAgJHRoaXMtPkFsaWFzID0gJHJlc3VsdFsnYWxpYXMnXTsKCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgJHNxbCA9ICdTRUxFQ1QgbmFtZSx2YWx1ZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2Zvcm1fYXR0ciBXSEVSRSBmb3JtX2lkPT8nOwogICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtSWQpKTsKICAgIHdoaWxlICgkcnMgJiYgJHJlc3VsdD0kcnMtPkZldGNoUm93KCkpCiAgICAgIHsKCSR0aGlzLT5BdHRyc1skcmVzdWx0WyduYW1lJ11dID0gJHJlc3VsdFsndmFsdWUnXTsKICAgICAgfQogICAgICAgICAgCiAgICAkdGhpcy0+bG9hZGVkID0gJ3N1bW1hcnknOwoKICAgIGlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSkKICAgICAgewoJJGxvYWREZWVwID0gdHJ1ZTsKCSRsb2FkUmVzcCA9IHRydWU7CiAgICAgIH0KCiAgICBpZiAoJGxvYWREZWVwKQogICAgICB7CgkgIGlmICgkbG9hZFJlc3ApCgkJewoJLy8gaWYgaXQncyBhIHN0b3JlZCBmb3JtLCBsb2FkIHRoZSByZXN1bHRzIC0tIGJ1dCB3ZSBuZWVkIHRvIG1hbnVhbGx5IG1lcmdlIHRoZW0sCgkvLyBzaW5jZSAkcGFyYW1zW10gc2hvdWxkIG92ZXJyaWRlIHRoZSBkYXRhYmFzZSB2YWx1ZSAoc2F5IHdlJ3JlIHJlc3VibWl0dGluZyBhIGZvcm0pCgkJJGZiZiA9ICRtb2QtPkdldEZvcm1Ccm93c2VyRmllbGQoJGZvcm1JZCk7CgkJaWYgKCRmYmYgIT0gZmFsc2UpCgkJCXsKCQkJLy8gaWYgd2UncmUgYmluZGluZyB0byBGRVUsIGdldCB0aGUgRkVVIElELCBzZWUgaWYgdGhlcmUncyBhIHJlc3BvbnNlIGZvcgoJCQkvLyB0aGF0IHVzZXIuIElmIHNvLCBsb2FkIGl0LiBPdGhlcndpc2UsIGJyaW5nIHVwIGFuIGVtcHR5IGZvcm0uCgkJCWlmICgkZmJmLT5HZXRPcHRpb24oJ2ZldV9iaW5kJywnMCcpPT0nMScpCgkJCQl7CgkJCQkkZmV1ID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKCQkJCWlmICgkZmV1ID09IGZhbHNlKQoJCQkJCXsKCQkJCQlkZWJ1Z19kaXNwbGF5KCJGQUlMRUQgdG8gaW5zdGF0aWF0ZSBGRVUhIik7CgkJCQkJcmV0dXJuOwoJCQkJCX0KCQkJCWlmICghaXNzZXQoJF9DT09LSUVbJ2Ntc19hZG1pbl91c2VyX2lkJ10pKQoJCQkJCXsKCQkJCQkvLyBGaXggZm9yIEJ1ZyA1NDIyLiBBZGFwdGVkIGZyb20gTWlrZSBIdWdoZXNkb24ncyBjb2RlLgoJCQkJCSRyZXNwb25zZV9pZCA9ICRtb2QtPkdldFJlc3BvbnNlSURGcm9tRkVVSUQoJGZldS0+TG9nZ2VkSW5JZCgpLCAkZm9ybUlkKTsKCQkJCQlpZiAoJHJlc3BvbnNlX2lkICE9PSBmYWxzZSkKCQkJCQkJewoJCQkJCQkkY2hlY2sgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkdldE9uZSgnc2VsZWN0IGNvdW50KCopIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQkJCQknbW9kdWxlX2ZiX2Zvcm1icm93c2VyIHdoZXJlIGZicl9pZD0/JyxhcnJheSgkcmVzcG9uc2VfaWQpKTsKCQkJCQkJaWYgKCRjaGVjayA9PSAxKQoJCQkJCQkJewoJCQkJCQkJJHBhcmFtc1sncmVzcG9uc2VfaWQnXSA9ICRyZXNwb25zZV9pZDsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pKQoJICB7CgkgICAgJGxvYWRQYXJhbXMgPSBhcnJheSgncmVzcG9uc2VfaWQnPT4kcGFyYW1zWydyZXNwb25zZV9pZCddKTsKCQkJJGxvYWRUeXBlcyA9IGFycmF5KCk7CgkgICAgJHRoaXMtPkxvYWRSZXNwb25zZVZhbHVlcygkbG9hZFBhcmFtcywgJGxvYWRUeXBlcyk7CgkgICAgZm9yZWFjaCAoJGxvYWRQYXJhbXMgYXMgJHRoaXNQYXJhbUtleT0+JHRoaXNQYXJhbVZhbHVlKQoJICAgICAgewoJCWlmICghIGlzc2V0KCRwYXJhbXNbJHRoaXNQYXJhbUtleV0pKQoJCSAgewoJCQkJaWYgKCR0aGlzLT5HZXRGb3JtU3RhdGUoKSA9PSAndXBkYXRlJyAmJiAkbG9hZFR5cGVzWyR0aGlzUGFyYW1LZXldID09ICdDaGVja2JveEZpZWxkJykKCQkJCXsKCQkJCQkkcGFyYW1zWyR0aGlzUGFyYW1LZXldID0gJyc7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJJHBhcmFtc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWx1ZTsKCQkJCX0KCQkgIH0KCSAgICAgIH0KCSAgfQoJfQoJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZm9ybV9pZD0/IE9SREVSIEJZIG9yZGVyX2J5JzsKCSRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybUlkKSk7CgkkcmVzdWx0ID0gYXJyYXkoKTsKCWlmICgkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCSAgewoJICAgICRyZXN1bHQgPSAkcnMtPkdldEFycmF5KCk7CgkgIH0KCSRmaWVsZENvdW50ID0gMDsKCWlmIChjb3VudCgkcmVzdWx0KSA+IDApCgkgIHsKCSAgICBmb3JlYWNoKCRyZXN1bHQgYXMgJHRoaXNSZXMpCgkgICAgICB7Ci8vZXJyb3JfbG9nKCJJbnN0YW50aWF0aW5nIEZpZWxkLiB1c2FnZSAiLm1lbW9yeV9nZXRfdXNhZ2UoKSk7CgoJCSRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkdGhpc1Jlc1sndHlwZSddLCAnJyk7CgkJLy8gY3JlYXRlIHRoZSBmaWVsZCBvYmplY3QKCQlpZiAoCgkJICAgICggCgkJICAgICBpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgICAoCgkJICAgICAgIGlzc2V0KCRwYXJhbXNbJ2ZicnBfXycuJHRoaXNSZXNbJ2ZpZWxkX2lkJ11dKSB8fAoJCSAgICAgICBpc3NldCgkcGFyYW1zWydmYnJwX19fJy4kdGhpc1Jlc1snZmllbGRfaWQnXV0pCgkJICAgICAgICkKCQkgICAgICApIHx8CgkJICAgIChpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgIGlzc2V0KCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXNSZXNbJ25hbWUnXV0pKSB8fAoJCSAgICAoaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmCgkJICAgICBpc3NldCgkcGFyYW1zWyd2YWx1ZV9mbGQnLiR0aGlzUmVzWydmaWVsZF9pZCddXSkpIHx8CgkJICAgICgKCQkgICAgIGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pICYmIGlzc2V0KCR0aGlzUmVzWydmaWVsZF9pZCddKSAmJgoJCSAgICAgJHBhcmFtc1snZmllbGRfaWQnXSA9PSAkdGhpc1Jlc1snZmllbGRfaWQnXQoJCSAgICAgKQoJCSAgICApCgkJICB7CgkJICAgICR0aGlzUmVzID0gYXJyYXlfbWVyZ2UoJHRoaXNSZXMsJHBhcmFtcyk7CgkJICB9CgkJJHRoaXMtPkZpZWxkc1skZmllbGRDb3VudF0gPSAkdGhpcy0+TmV3RmllbGQoJHRoaXNSZXMpOwoJCSRmaWVsZENvdW50Kys7CgkgICAgICB9CgkgIH0KCSR0aGlzLT5sb2FkZWQgPSAnZnVsbCc7CiAgICAgIH0KCgkJCiAgICBmb3IgKCRpPTA7ICRpIDwgY291bnQoJHRoaXMtPkZpZWxkcyk7ICRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+VHlwZSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzKys7CgkgIH0KICAgICAgfQoKICAgIHJldHVybiB0cnVlOwogIH0KCi8qIG5vdGFibGUgcGFyYW1zOgogIGZicnBfeG1sX2ZpbGUgLS0gc291cmNlIGZpbGUgZm9yIHRoZSBYTUwKICB4bWxfc3RyaW5nIC0tIHNvdXJjZSBzdHJpbmcgZm9yIHRoZSBYTUwKKi8KCiAgZnVuY3Rpb24gSW1wb3J0WE1MKCYkcGFyYW1zKQogIHsKICAJLy8geG1sX3BhcnNlcl9jcmVhdGUsIHhtbF9wYXJzZV9pbnRvX3N0cnVjdAogIAkkcGFyc2VyID0geG1sX3BhcnNlcl9jcmVhdGUoJycpOwogICB4bWxfcGFyc2VyX3NldF9vcHRpb24oICRwYXJzZXIsIFhNTF9PUFRJT05fQ0FTRV9GT0xESU5HLCAwICk7CiAgIHhtbF9wYXJzZXJfc2V0X29wdGlvbiggJHBhcnNlciwgWE1MX09QVElPTl9TS0lQX1dISVRFLCAwICk7IC8vIHdhcyAxCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF94bWxfZmlsZSddKSAmJiAhIGVtcHR5KCRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSkpCgkJewoJCXhtbF9wYXJzZV9pbnRvX3N0cnVjdCgkcGFyc2VyLCBmaWxlX2dldF9jb250ZW50cygkcGFyYW1zWydmYnJwX3htbF9maWxlJ10pLCAkdmFsdWVzKTsKCQl9CgllbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ3htbF9zdHJpbmcnXSkgJiYgISBlbXB0eSgkcGFyYW1zWyd4bWxfc3RyaW5nJ10pKQoJCXsKCQl4bWxfcGFyc2VfaW50b19zdHJ1Y3QoJHBhcnNlciwgJHBhcmFtc1sneG1sX3N0cmluZyddLCAkdmFsdWVzKTsKCQl9CgllbHNlCgkJewoJCXJldHVybiBmYWxzZTsKCQl9Cgl4bWxfcGFyc2VyX2ZyZWUoJHBhcnNlcik7CgkkZWxlbWVudHMgPSBhcnJheSgpOwoJJHN0YWNrID0gYXJyYXkoKTsKCSRmaWVsZE1hcCA9IGFycmF5KCk7Cglmb3JlYWNoICggJHZhbHVlcyBhcyAkdGFnICkKCQl7CgkJJGluZGV4ID0gY291bnQoICRlbGVtZW50cyApOwoJCWlmICggJHRhZ1sndHlwZSddID09ICJjb21wbGV0ZSIgfHwgJHRhZ1sndHlwZSddID09ICJvcGVuIiApCgkJCXsKCQkJJGVsZW1lbnRzWyRpbmRleF0gPSBhcnJheSgpOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnbmFtZSddID0gJHRhZ1sndGFnJ107CgkJCSRlbGVtZW50c1skaW5kZXhdWydhdHRyaWJ1dGVzJ10gPSBlbXB0eSgkdGFnWydhdHRyaWJ1dGVzJ10pID8gIiIgOiAkdGFnWydhdHRyaWJ1dGVzJ107CgkJCSRlbGVtZW50c1skaW5kZXhdWydjb250ZW50J10gICAgPSBlbXB0eSgkdGFnWyd2YWx1ZSddKSA/ICIiIDogJHRhZ1sndmFsdWUnXTsKCQkJaWYgKCAkdGFnWyd0eXBlJ10gPT0gIm9wZW4iICkKCQkJCXsKCQkJCSMgcHVzaAoJCQkJJGVsZW1lbnRzWyRpbmRleF1bJ2NoaWxkcmVuJ10gPSBhcnJheSgpOwoJCQkJJHN0YWNrW2NvdW50KCRzdGFjayldID0gJiRlbGVtZW50czsKCQkJCSRlbGVtZW50cyA9ICYkZWxlbWVudHNbJGluZGV4XVsnY2hpbGRyZW4nXTsKCQkJCX0KICAgICAgICB9CgkJaWYgKCAkdGFnWyd0eXBlJ10gPT0gImNsb3NlIiApCgkJCXsgICAgIyBwb3AKCQkJJGVsZW1lbnRzID0gJiRzdGFja1tjb3VudCgkc3RhY2spIC0gMV07CgkJCXVuc2V0KCRzdGFja1tjb3VudCgkc3RhY2spIC0gMV0pOwoJCQl9CgkJfQovL2RlYnVnX2Rpc3BsYXkoJGVsZW1lbnRzKTsKCWlmICghaXNzZXQoJGVsZW1lbnRzWzBdKSB8fCAhaXNzZXQoJGVsZW1lbnRzWzBdKSB8fCAhaXNzZXQoJGVsZW1lbnRzWzBdWydhdHRyaWJ1dGVzJ10pKQoJCXsKCQkvL3BhcnNpbmcgZmFpbGVkLCBvciBpbnZhbGlkIGZpbGUuCgkJcmV0dXJuIGZhbHNlOwoJCX0KCSRwYXJhbXNbJ2Zvcm1faWQnXSA9IC0xOyAvLyBvdmVycmlkZSBhbnkgZm9ybV9pZCB2YWx1ZXMgdGhhdCBtYXkgYmUgYXJvdW5kCgkkZm9ybUF0dHJzID0gJiRlbGVtZW50c1swXVsnYXR0cmlidXRlcyddOwoKICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1hbGlhcyddKSAmJiAhZW1wdHkoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybWFsaWFzJ10pKQogICAgICB7CiAgICAgICR0aGlzLT5TZXRBbGlhcygkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtYWxpYXMnXSk7CiAgICAgIH0KICAgZWxzZSBpZiAoJHRoaXMtPmluWE1MKCRmb3JtQXR0cnNbJ2FsaWFzJ10pKQoJCXsKCQkkdGhpcy0+U2V0QWxpYXMoJGZvcm1BdHRyc1snYWxpYXMnXSk7CgkJfQogICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybW5hbWUnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pKQogICAgICB7CiAgICAgICR0aGlzLT5TZXROYW1lKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pOwogICAgICB9CgkkZm91bmRmaWVsZHMgPSBmYWxzZTsKCS8vIHBvcHVsYXRlIHRoZSBhdHRyaWJ1dGVzIGFuZCBmaWVsZCBuYW1lIGZpcnN0LiBXaGVuIHdlIHNlZSBhIGZpZWxkLCB3ZSBzYXZlIHRoZSBmb3JtIGFuZCB0aGVuIHN0YXJ0IGFkZGluZyB0aGUgZmllbGRzIHRvIGl0LgoKCWZvcmVhY2ggKCRlbGVtZW50c1swXVsnY2hpbGRyZW4nXSBhcyAkdGhpc0NoaWxkKQoJCXsKCQlpZiAoJHRoaXNDaGlsZFsnbmFtZSddID09ICdmb3JtX25hbWUnKQoJCQl7CgkJCSRjdXJuYW1lID0gICR0aGlzLT5HZXROYW1lKCk7CgkJCWlmIChlbXB0eSgkY3VybmFtZSkpCiAgICAgICAgICAgIHsKCQkJICAgJHRoaXMtPlNldE5hbWUoJHRoaXNDaGlsZFsnY29udGVudCddKTsKCQkJICAgfQoJCQl9CgkJZWxzZWlmICgkdGhpc0NoaWxkWyduYW1lJ10gPT0gJ2F0dHJpYnV0ZScpCgkJCXsKCQkJJHRoaXMtPlNldEF0dHIoJHRoaXNDaGlsZFsnYXR0cmlidXRlcyddWydrZXknXSwgJHRoaXNDaGlsZFsnY29udGVudCddKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyB3ZSBnb3QgdXMgYSBmaWVsZAoJCQlpZiAoISAkZm91bmRmaWVsZHMpCgkJCQl7CgkJCQkvLyBmaXJzdCBmaWVsZAoJCQkJJGZvdW5kZmllbGRzID0gdHJ1ZTsKCQkJCWlmKCBpc3NldCgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSAmJiAKCQkJCSAgICB0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pICE9ICcnKQoJCQkJICB7CgkJCQkgICAgJHRoaXMtPlNldE5hbWUodHJpbSgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSk7CgkJCQkgIH0KCQkJCWlmKCBpc3NldCgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtYWxpYXMnXSkgJiYKCQkJCSAgICB0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pICE9ICcnKQoJCQkJICB7CgkJCQkgICAgJHRoaXMtPlNldEFsaWFzKHRyaW0oJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybWFsaWFzJ10pKTsKCQkJCSAgfQoJCQkJJHRoaXMtPlN0b3JlKCk7CgkJCQkkcGFyYW1zWydmb3JtX2lkJ10gPSAkdGhpcy0+R2V0SWQoKTsKCQkJCX0KCQkJCS8vZGVidWdfZGlzcGxheSgkdGhpc0NoaWxkKTsKCQkJJGZpZWxkQXR0cnMgPSAmJHRoaXNDaGlsZFsnYXR0cmlidXRlcyddOwoJCQkkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJGZpZWxkQXR0cnNbJ3R5cGUnXSwgJycpOwoJCQkvL2RlYnVnX2Rpc3BsYXkoJGNsYXNzTmFtZSk7CgkJICAgICRuZXdGaWVsZCA9IG5ldyAkY2xhc3NOYW1lKCR0aGlzLCAkcGFyYW1zKTsKCQkJJG9sZElkID0gJGZpZWxkQXR0cnNbJ2lkJ107CgoJCQlpZiAoJHRoaXMtPmluWE1MKCRmaWVsZEF0dHJzWydhbGlhcyddKSkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+U2V0QWxpYXMoJGZpZWxkQXR0cnNbJ2FsaWFzJ10pOwoJCQkJfQoJCQkkbmV3RmllbGQtPlNldFZhbGlkYXRpb25UeXBlKCRmaWVsZEF0dHJzWyd2YWxpZGF0aW9uX3R5cGUnXSk7CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ29yZGVyX2J5J10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRPcmRlcigkZmllbGRBdHRyc1snb3JkZXJfYnknXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ3JlcXVpcmVkJ10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRSZXF1aXJlZCgkZmllbGRBdHRyc1sncmVxdWlyZWQnXSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ2hpZGVfbGFiZWwnXSkpCgkJCQl7CgkJCQkkbmV3RmllbGQtPlNldEhpZGVMYWJlbCgkZmllbGRBdHRyc1snaGlkZV9sYWJlbCddKTsKCQkJCX0KCQkJZm9yZWFjaCAoJHRoaXNDaGlsZFsnY2hpbGRyZW4nXSBhcyAkdGhpc09wdCkKCQkJCXsJCgkJCQlpZiAoJHRoaXNPcHRbJ25hbWUnXSA9PSAnZmllbGRfbmFtZScpCgkJCQkJewoJCQkJCSRuZXdGaWVsZC0+U2V0TmFtZSgkdGhpc09wdFsnY29udGVudCddKTsKCQkJCQl9CgkJCQlpZiAoJHRoaXNPcHRbJ25hbWUnXSA9PSAnb3B0aW9ucycpCgkJCQkJewoJCQkJCWZvcmVhY2ggKCR0aGlzT3B0WydjaGlsZHJlbiddIGFzICR0aGlzT3B0aW9uKQoJCQkJCQkJewoJCQkJCQkJJG5ld0ZpZWxkLT5PcHRpb25Gcm9tWE1MKCR0aGlzT3B0aW9uKTsKCQkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCSRuZXdGaWVsZC0+U3RvcmUodHJ1ZSk7CiAgICAgICAgIGFycmF5X3B1c2goJHRoaXMtPkZpZWxkcywkbmV3RmllbGQpOwoJCQkkZmllbGRNYXBbJG9sZElkXSA9ICRuZXdGaWVsZC0+R2V0SWQoKTsKCQkJfQoJCX0KCiAgIC8vIGNsZWFuIHVwIHJlZmVyZW5jZXMKICAgCglpZiAoaXNzZXQoJHBhcmFtc1snZmJycF94bWxfZmlsZSddKSAmJiAhIGVtcHR5KCRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSkpCgkJewoJCS8vIG5lZWQgdG8gdXBkYXRlIG1hcHBpbmdzIGluIHRlbXBsYXRlcy4KCQkkdG1wID0gJHRoaXMtPnVwZGF0ZVJlZnMoJHRoaXMtPkdldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCcnKSwgJGZpZWxkTWFwKTsKCQkkdGhpcy0+U2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJHRtcCk7CgkJJHRtcCA9ICR0aGlzLT51cGRhdGVSZWZzKCR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfcmVzcG9uc2UnLCcnKSwgJGZpZWxkTWFwKTsKCQkkdGhpcy0+U2V0QXR0cignc3VibWl0X3Jlc3BvbnNlJywkdG1wKTsKCgkJLy8gbmVlZCB0byB1cGRhdGUgbWFwcGluZ3MgaW4gZmllbGQgdGVtcGxhdGVzLgogICAgICAkb3B0aW9ucyA9IGFycmF5KCdlbWFpbF90ZW1wbGF0ZScsJ2ZpbGVfdGVtcGxhdGUnKTsKCQlmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJGZpZD0+JHRoaXNGaWVsZCkKICAgICAgICAgewogICAgICAgICAkY2hhbmdlcyA9IGZhbHNlOwogICAgICAgICBmb3JlYWNoICgkb3B0aW9ucyBhcyAkdG8pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHRlbXBsID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCR0bywnJyk7CiAgICAgICAgICAgIGlmICghZW1wdHkoJHRlbXBsKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkdG1wID0gJHRoaXMtPnVwZGF0ZVJlZnMoJHRlbXBsLCAkZmllbGRNYXApOwogICAgICAgICAgICAgICAkdGhpc0ZpZWxkLT5TZXRPcHRpb24oJHRvLCR0bXApOwogICAgICAgICAgICAgICAkY2hhbmdlcyA9IHRydWU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoJCSAgIC8vIG5lZWQgdG8gdXBkYXRlIG1hcHBpbmdzIGluIEZvcm1Ccm93c2VyIHNvcnQgZmllbGRzCiAgICAgICAgIGlmICgkdGhpc0ZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgZm9yICgkaT0xOyRpPDY7JGkrKykKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkb2xkID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpKTsKICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRmaWVsZE1hcFskb2xkXSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJHRoaXNGaWVsZC0+U2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpLCRmaWVsZE1hcFskb2xkXSk7CiAgICAgICAgICAgICAgICAgICRjaGFuZ2VzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgaWYgKCRjaGFuZ2VzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzRmllbGQtPlN0b3JlKHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICR0aGlzLT5TdG9yZSgpOwogICAJfQoJCglyZXR1cm4gdHJ1ZTsJCiAgfQoKCiAgZnVuY3Rpb24gdXBkYXRlUmVmcygkdGV4dCwgJiRmaWVsZE1hcCkKICAgewogICAgICBmb3JlYWNoICgkZmllbGRNYXAgYXMgJGs9PiR2KQogICAgICAgICB7CiAgICAgICAgICR0ZXh0ID0gcHJlZ19yZXBsYWNlKCcvKFtce1xiXHNdKVwkZmxkXycuJGsuJyhbXH1cYlxzXSkvJywnJDFcJGZsZF8nLiR2LickMicsJHRleHQpOwogICAgICAgICB9CiAgICAgIHJldHVybiAkdGV4dDsKICAgfQoKICBmdW5jdGlvbiBpblhNTCgmJHZhcikKICB7CiAgCQlpZiAoaXNzZXQoJHZhcikgJiYgc3RybGVuKCR2YXIpID4gMCkKICAJCQl7CgkJCXJldHVybiB0cnVlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBmYWxzZTsKCQkJfQogIH0KCiAgLy8gc3RvcmVEZWVwIGFsc28gc3RvcmVzIGFsbCBmaWVsZHMgYW5kIG9wdGlvbnMgZm9yIGEgZm9ybQogIGZ1bmN0aW9uIFN0b3JlKCRzdG9yZURlZXA9ZmFsc2UpCiAgewogIAoJJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwoJJHBhcmFtcyA9ICR0aGlzLT5tb2R1bGVfcGFyYW1zOwogIAoJLy8gQ2hlY2sgaWYgbmV3IG9yIG9sZCBmb3JtCiAgICBpZiAoJHRoaXMtPklkID09IC0xKSB7CgkKCQkkdGhpcy0+SWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7CgkJJHNxbCA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm0gKGZvcm1faWQsIG5hbWUsIGFsaWFzKSBWQUxVRVMgKD8sID8sID8pIjsKCQkkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCwgJHRoaXMtPk5hbWUsICR0aGlzLT5BbGlhcykpOwogICAgfSBlbHNlIHsKCQkKCQkkc3FsID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm0gc2V0IG5hbWU9PywgYWxpYXM9PyB3aGVyZSBmb3JtX2lkPT8iOwoJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPk5hbWUsICR0aGlzLT5BbGlhcywgJHRoaXMtPklkKSk7CiAgICB9CgkgIAogICAgLy8gU2F2ZSBvdXQgdGhlIGF0dHJzCiAgICAkc3FsID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZm9ybV9hdHRyIFdIRVJFIGZvcm1faWQ9PyI7CiAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCkpOwoJCiAgICBmb3JlYWNoICgkdGhpcy0+QXR0cnMgYXMgJHRoaXNBdHRyS2V5PT4kdGhpc0F0dHJWYWx1ZSkgewoJCgkJJGZvcm1BdHRySWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKCQkkc3FsID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZm9ybV9hdHRyIChmb3JtX2F0dHJfaWQsIGZvcm1faWQsIG5hbWUsIHZhbHVlKSBWQUxVRVMgKD8sID8sID8sID8pIjsKCQkkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtQXR0cklkLCAkdGhpcy0+SWQsICR0aGlzQXR0cktleSwgJHRoaXNBdHRyVmFsdWUpKTsKCQoJCWlmICgkdGhpc0F0dHJLZXkgPT0gJ2Zvcm1fdGVtcGxhdGUnKSB7CgkJCgkJCSR0aGlzLT5tb2R1bGVfcHRyLT5TZXRUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQsJHRoaXNBdHRyVmFsdWUpOwoJCX0KICAgIH0KCQoJLy8gVXBkYXRlIGZpZWxkIHBvc2l0aW9uCgkkb3JkZXJfbGlzdCA9IGZhbHNlOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydCddKSkKCQl7CgkJJG9yZGVyX2xpc3QgPSBleHBsb2RlKCcsJywkcGFyYW1zWydmYnJwX3NvcnQnXSk7CgkJfQoJCQoJaWYoaXNfYXJyYXkoJG9yZGVyX2xpc3QpICYmIGNvdW50KCRvcmRlcl9saXN0KSA+IDApIHsKCQkKCQkkY291bnQgPSAxOwoJCSRzcWwgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZmllbGQgU0VUIG9yZGVyX2J5PT8gV0hFUkUgZmllbGRfaWQ9PyI7CgoJCWZvcmVhY2ggKCRvcmRlcl9saXN0IGFzICRvbmVmbGRpZCkgewoJCgkJCSRmaWVsZGlkID0gc3Vic3RyKCRvbmVmbGRpZCw1KTsKCQkJJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRjb3VudCwgJGZpZWxkaWQpKTsKCQkJJGNvdW50Kys7CgkJfQoJfQoJCgkvLyBSZWxvYWQgZXZlcnl0aGluZwoJJHRoaXMtPkxvYWQoJHRoaXMtPklkLCRwYXJhbXMsdHJ1ZSk7CgkKICAgIHJldHVybiAkcmVzOwogIH0KCiAgZnVuY3Rpb24gRGVsZXRlKCkKICB7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CgkJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICBpZiAoJHRoaXMtPmxvYWRlZCAhPSAnZnVsbCcpCiAgICAgIHsKCQkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsYXJyYXkoKSx0cnVlKTsKICAgICAgfQogICAgZm9yZWFjaCAoJHRoaXMtPkZpZWxkcyBhcyAkZmllbGQpCiAgICAgIHsKCQkkZmllbGQtPkRlbGV0ZSgpOwogICAgICB9CiAgICAkdGhpcy0+bW9kdWxlX3B0ci0+RGVsZXRlVGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkKTsKICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZm9ybSB3aGVyZSBmb3JtX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkdGhpcy0+SWQpKTsKICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIGZvcm1faWQ9Pyc7CiAgICAkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCkpOwogICAgcmV0dXJuIHRydWU7CiAgfQoKICAvLyByZXR1cm5zIGEgY2xhc3MgbmFtZSwgYW5kIG1ha2VzIHN1cmUgdGhlIGZpbGUgd2hlcmUgdGhlIGNsYXNzIGlzCiAgLy8gZGVmaW5lZCBoYXMgYmVlbiBsb2FkZWQuCiAgZnVuY3Rpb24gTWFrZUNsYXNzTmFtZSgkdHlwZSwgJGNsYXNzRGlyUHJlZml4KQogIHsKICAgIC8vIHBlcmZvcm0gcnVkaW1lbnRhcnkgc2VjdXJpdHksIHNpbmNlIFR5cGUgY291bGQgY29tZSBpbiBmcm9tIGEgZm9ybQogICAgJHR5cGUgPSBwcmVnX3JlcGxhY2UoIi9bXFddfFwuXC4vIiwgIl8iLCAkdHlwZSk7CiAgICBpZiAoJHR5cGUgPT0gJycgfHwgc3RybGVuKCR0eXBlKSA8IDEpCiAgICAgIHsKCSR0eXBlID0gJ0ZpZWxkJzsKICAgICAgfQogICAgJGNsYXNzRmlsZT0nJzsKICAgIGlmIChzdHJsZW4oJGNsYXNzRGlyUHJlZml4KSA+IDApCiAgICAgIHsKCSRjbGFzc0ZpbGUgPSAkY2xhc3NEaXJQcmVmaXggLicvJy4kdHlwZS4nLmNsYXNzLnBocCc7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJGNsYXNzRmlsZSA9ICR0eXBlLicuY2xhc3MucGhwJzsKICAgICAgfQogICAgcmVxdWlyZV9vbmNlIGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksICRjbGFzc0ZpbGUpOwogICAgLy8gY2xhc3MgbmFtZXMgYXJlIHByZXBlbmRlZCB3aXRoICJmYiIgdG8gcHJldmVudCBuYW1lc3BhY2UgY2xhc2guCiAgICByZXR1cm4gKCAnZmInLiR0eXBlICk7CiAgfQoKICBmdW5jdGlvbiBBZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRhYiwgJG1lc3NhZ2U9JycpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwoJJGNvbmZpZyA9ICRtb2QtPkdldENvbmZpZygpOwoJCQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtZXNzYWdlKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCAkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fc3RvcmVfZm9ybScsICRyZXR1cm5pZCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1pZCcsICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2Zvcm1faWQnLCAkdGhpcy0+SWQpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiSGVhZGVycygpLgoJCQkJCQkJJG1vZC0+U2V0VGFiSGVhZGVyKCdtYWludGFiJywkbW9kLT5MYW5nKCd0YWJfbWFpbicpLCgnbWFpbnRhYicgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCgkJCQkJCQkkbW9kLT5TZXRUYWJIZWFkZXIoJ3N1Ym1pdHRhYicsJG1vZC0+TGFuZygndGFiX3N1Ym1pdCcpLCgnc3VibWl0dGFiJyA9PSAkdGFiKT90cnVlOmZhbHNlKS4KCQkJCQkJCSRtb2QtPlNldFRhYkhlYWRlcignc3ltYm9sdGFiJywkbW9kLT5MYW5nKCd0YWJfc3ltYm9sJyksKCdzeW1ib2x0YWInID09ICR0YWIpP3RydWU6ZmFsc2UpLgoJCQkJCQkJJG1vZC0+U2V0VGFiSGVhZGVyKCdjYXB0Y2hhdGFiJywkbW9kLT5MYW5nKCd0YWJfY2FwdGNoYScpLCgnY2FwdGNoYXRhYicgPT0gJHRhYik/dHJ1ZTpmYWxzZSkuCgkJCQkJCQkkbW9kLT5TZXRUYWJIZWFkZXIoJ3VkdHRhYicsJG1vZC0+TGFuZygndGFiX3VkdCcpLCgndWR0dGFiJyA9PSAkdGFiKT90cnVlOmZhbHNlKS4KCQkJCQkJCSRtb2QtPlNldFRhYkhlYWRlcigndGVtcGxhdGVsYXlvdXQnLCRtb2QtPkxhbmcoJ3RhYl90ZW1wbGF0ZWxheW91dCcpLCgndGVtcGxhdGVsYXlvdXQnID09ICR0YWIpP3RydWU6ZmFsc2UpLgoJCQkJCQkJJG1vZC0+U2V0VGFiSGVhZGVyKCdzdWJtaXR0ZW1wbGF0ZScsJG1vZC0+TGFuZygndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZScpLCgnc3VibWl0dGVtcGxhdGUnID09ICR0YWIpP3RydWU6ZmFsc2UpLgoJCQkJCQkJJG1vZC0+RW5kVGFiSGVhZGVycygpIC4gJG1vZC0+U3RhcnRUYWJDb250ZW50KCkpOwoJICAKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX2VuZCcsJG1vZC0+RW5kVGFiQ29udGVudCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWludGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigibWFpbnRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXR0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJzdWJtaXR0YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ltYm9sdGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigic3ltYm9sdGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3VkdHRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInVkdHRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZXRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInRlbXBsYXRlbGF5b3V0IikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdHRlbXBsYXRldGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigic3VibWl0dGVtcGxhdGUiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignY2FwdGNoYXRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoImNhcHRjaGF0YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFiX2VuZCcsJG1vZC0+RW5kVGFiKCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmFtZScsJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fbmFtZScsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1fbmFtZScsICR0aGlzLT5OYW1lLCA1MCkpOwoJCgkkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfbG9hZF90ZW1wbGF0ZScsJG1vZC0+TGFuZygndGl0bGVfbG9hZF90ZW1wbGF0ZScpKTsKCSRtb2RMaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9nZXRfdGVtcGxhdGUnLCAkcmV0dXJuaWQsICcnLCBhcnJheSgpLCAnJywgdHJ1ZSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc2VjdXJpdHlfa2V5JyxDTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldKTsKCQoJJHRlbXBsYXRlTGlzdCA9IGFycmF5KCcnPT4nJywkbW9kLT5MYW5nKCdkZWZhdWx0X3RlbXBsYXRlJyk9PidSZW5kZXJGb3JtRGVmYXVsdC50cGwnLAoJCSRtb2QtPkxhbmcoJ3RhYmxlX2xlZnRfdGVtcGxhdGUnKT0+J1JlbmRlckZvcm1UYWJsZVRpdGxlTGVmdC50cGwnLAoJCSRtb2QtPkxhbmcoJ3RhYmxlX3RvcF90ZW1wbGF0ZScpPT4nUmVuZGVyRm9ybVRhYmxlVGl0bGVUb3AudHBsJyk7CgkJCgkkYWxsRm9ybXMgPSAkbW9kLT5HZXRGb3JtcygpOwoJZm9yZWFjaCAoJGFsbEZvcm1zIGFzICR0aGlzRm9ybSkKCQl7CgkJaWYgKCR0aGlzRm9ybVsnZm9ybV9pZCddICE9ICR0aGlzLT5JZCkKCQkJewoJCQkkdGVtcGxhdGVMaXN0WyRtb2QtPkxhbmcoJ2Zvcm1fdGVtcGxhdGVfbmFtZScsJHRoaXNGb3JtWyduYW1lJ10pXSA9CgkJCQkkdGhpc0Zvcm1bJ2Zvcm1faWQnXTsKCQkJfQoJCX0KCQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2xvYWRfdGVtcGxhdGUnLCRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLAoJCSdmYnJwX2ZiX3RlbXBsYXRlX2xvYWQnLCAkdGVtcGxhdGVMaXN0LCAtMSwgJycsICdpZD0iZmJfdGVtcGxhdGVfbG9hZCIgb25jaGFuZ2U9ImpRdWVyeSh0aGlzKS5mYl9nZXRfdGVtcGxhdGUoXCcnLiRtb2QtPkxhbmcoJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZScpLidcJyxcJycuJG1vZExpbmsuJ1wnKTsiJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hlbHBfdGVtcGxhdGVfdmFyaWFibGVzJywkbW9kLT5MYW5nKCd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV91bnNwZWNpZmllZCcsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV91bnNwZWNpZmllZCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSksIDUwKSk7CiAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3N0YXR1cycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3N0YXR1cycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0ZXh0X3JlYWR5JywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50JykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fYWxpYXMnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fYWxpYXMnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9hbGlhcycsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtX2FsaWFzJywKCQkJCQkgICAgICAgJHRoaXMtPkFsaWFzLCA1MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fY3NzX2NsYXNzJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX2Nzc19jbGFzcycsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdjc3NfY2xhc3MnLCdmb3JtYnVpbGRlcmZvcm0nKSwgNTAsNTApKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX2ZpZWxkcycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX2ZpZWxkcycpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX21haW4nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9tYWluJykpOwogICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRpZHMnLDApICE9IDAgKQogICAgICB7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9pZCcsCgkJCSAgICAgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfaWQnKSk7CiAgICAgIH0KICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkYWxpYXNlcycsMSkgIT0gMCApCiAgICAgIHsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX2FsaWFzJywKCQkJICAgICAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCcpKTsKICAgICAgfQoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdiYWNrJywgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJG1vZC0+TGFuZygnYmFja190b3AnKSwgYXJyYXkoKSkpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9uYW1lJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX25hbWUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfdHlwZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF90eXBlJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX3R5cGUnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdHlwZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3RlbXBsYXRlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfbGlzdF9kZWxpbWl0ZXInLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfbGlzdF9kZWxpbWl0ZXInKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfcmVkaXJlY3RfcGFnZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9yZWRpcmVjdF9wYWdlJykpOwoJCQkgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2FjdGlvbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYWN0aW9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfbXVzdF9zYXZlX29yZGVyJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX211c3Rfc2F2ZV9vcmRlcicpKTsKCgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2lubGluZV9mb3JtJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2lubGluZV9mb3JtJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfYWN0aW9ucycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfYWN0aW9ucycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfbGFiZWxzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0JywKCQkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfaGVscCcsCiRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2luZm8uZ2lmJywndHJ1ZScsJycsJycsJ3N5c3RlbWljb24nKS4KCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9oZWxwJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJywKJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vaW5mby5naWYnLCd0cnVlJywnJywnJywnc3lzdGVtaWNvbicpLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCcpKTsKCiAgICAkc3VibWl0QWN0aW9ucyA9IGFycmF5KCRtb2QtPkxhbmcoJ2Rpc3BsYXlfdGV4dCcpPT4ndGV4dCcsCiAgICAgICAgICRtb2QtPkxhbmcoJ3JlZGlyZWN0X3RvX3BhZ2UnKT0+J3JlZGlyJyk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfc3VibWl0X2FjdGlvbicsCiAgICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCAnZmJycF9mb3JtYV9zdWJtaXRfYWN0aW9uJywgJHN1Ym1pdEFjdGlvbnMsICR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfYWN0aW9uJywndGV4dCcpKSk7CgogICAgJGNhcHRjaGEgPSAkbW9kLT5nZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOwogICAgaWYgKCRjYXB0Y2hhID09IG51bGwpCiAgICAgICAgIHsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2luc3RhbGxfY2FwdGNoYScsCgkJCSAgICRtb2QtPkxhbmcoJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCcpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2NhcHRjaGFfaW5zdGFsbGVkJywwKTsKICAgICAgICAgfQogICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV91c2VfY2FwdGNoYScsCgkJCSAgICRtb2QtPkxhbmcoJ3RpdGxlX3VzZV9jYXB0Y2hhJykpOwogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignY2FwdGNoYV9pbnN0YWxsZWQnLDEpOwoKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3VzZV9jYXB0Y2hhJywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2ZicnBfZm9ybWFfdXNlX2NhcHRjaGEnLCcwJykuCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdmYnJwX2Zvcm1hX3VzZV9jYXB0Y2hhJywnMScsJHRoaXMtPkdldEF0dHIoJ3VzZV9jYXB0Y2hhJywnMCcpKS4KCQkJICAgJG1vZC0+TGFuZygndGl0bGVfdXNlX2NhcHRjaGFfaGVscCcpKTsKCQkJfQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2luZm9ybWF0aW9uJywkbW9kLT5MYW5nKCdpbmZvcm1hdGlvbicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9vcmRlcicsJG1vZC0+TGFuZygnb3JkZXInKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2JywkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGFzZGlzcG9zaXRpb24nLCR0aGlzLT5IYXNEaXNwb3NpdGlvbigpPzE6MCk7CiAgICAkbWF4T3JkZXIgPSAxOwogICAgaWYoJHRoaXMtPklkID4gMCkKICAgICAgewoJICAKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLCAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX2Zvcm1fb3AnLCRtb2QtPkxhbmcoJ3VwZGF0ZWQnKSkuCgkJCQkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfc29ydCcsJycsJ2NsYXNzPSJmYnJwX3NvcnQiJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZGluZycsMCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc2F2ZV9idXR0b24nLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsICRtb2QtPkxhbmcoJ3NhdmUnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9idXR0b24nLCAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdhY3RpdmVfdGFiJywgJycsICdpZD0iZmJyX2F0YWIiJykuCgkJJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkbW9kLT5MYW5nKCdzYXZlX2FuZF9jb250aW51ZScpLCdvbmNsaWNrPSJqUXVlcnkodGhpcykuZmJfc2V0X3RhYigpIicpKTsKCQoJJGZpZWxkTGlzdCA9IGFycmF5KCk7CgkkY3Vycm93ID0gInJvdzEiOwoJJGNvdW50ID0gMTsKCSRsYXN0ID0gJHRoaXMtPkdldEZpZWxkQ291bnQoKTsKCWZvcmVhY2ggKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCSAgewoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT5yb3djbGFzcyA9ICRjdXJyb3c7CgkgICAgJG9uZXNldC0+bmFtZSA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJHRoaXNGaWVsZC0+R2V0TmFtZSgpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSk7CgkgICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRpZHMnLDApICE9IDAgKQoJICAgICAgewoJCQkkb25lc2V0LT5pZCA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJHRoaXNGaWVsZC0+R2V0SWQoKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgICAgfQoJICAgICRvbmVzZXQtPnR5cGUgPSAkdGhpc0ZpZWxkLT5HZXREaXNwbGF5VHlwZSgpOwoJICAgICRvbmVzZXQtPmFsaWFzID0gJHRoaXNGaWVsZC0+R2V0QWxpYXMoKTsKCQkkb25lc2V0LT5pZCA9ICR0aGlzRmllbGQtPkdldElEKCk7CgoJICAgIGlmICghJHRoaXNGaWVsZC0+RGlzcGxheUluRm9ybSgpIHx8ICR0aGlzRmllbGQtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpCgkgICAgICB7CgkJCWlmKCRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPnRoZW1lTmFtZSA9PSAnTkNsZWFuR3JleScpIHsKCgkJCQkkb25lc2V0LT5kaXNwb3NpdGlvbiA9ICc8aW1nIHNyYz0iJy4kY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiRtb2QtPkdldE5hbWUoKS4nL2ltYWdlcy9zdG9wLmdpZiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBhbHQ9Ik5vIGF2YWlsYWJsZSIgdGl0bGU9Ik5vIGF2YWlsYWJsZSIgLz4nOwoJCQl9IGVsc2UgewoKCQkJCSRvbmVzZXQtPmRpc3Bvc2l0aW9uID0gJzxpbWcgc3JjPSInLiRjb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzLycuJG1vZC0+R2V0TmFtZSgpLicvaW1hZ2VzL3N0b3AuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGFsdD0iTm8gYXZhaWxhYmxlIiB0aXRsZT0iTm8gYXZhaWxhYmxlIiAvPic7CQoJCQl9CgkgICAgICB9CgkgICAgZWxzZSBpZiAoJHRoaXNGaWVsZC0+SXNSZXF1aXJlZCgpKQoJICAgICAgewoJCQkkb25lc2V0LT5kaXNwb3NpdGlvbiA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX3JlcXVpcmVkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywndHJ1ZScsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsJ2ZicnBfYWN0aXZlJz0+J29mZicsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSksJycsICcnLCAnJywgJ2NsYXNzPSJ0cnVlIiBvbmNsaWNrPSJqUXVlcnkodGhpcykuZmJfYWRtaW5fdXBkYXRlX2ZpZWxkX3JlcXVpcmVkKCk7IHJldHVybiBmYWxzZTsiJyk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCQkkb25lc2V0LT5kaXNwb3NpdGlvbiA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX3JlcXVpcmVkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsJ2ZhbHNlJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnZmJycF9hY3RpdmUnPT4nb24nLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpLCcnLCAnJywgJycsICdjbGFzcz0iZmFsc2UiIG9uY2xpY2s9ImpRdWVyeSh0aGlzKS5mYl9hZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQoKTsgcmV0dXJuIGZhbHNlOyInKTsKCSAgICAgIH0KCQkgIAoJICAgICRvbmVzZXQtPmZpZWxkX3N0YXR1cyA9ICR0aGlzRmllbGQtPlN0YXR1c0luZm8oKTsKCSAgICAkb25lc2V0LT5lZGl0bGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCRtb2QtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSk7CgkgICAgJG9uZXNldC0+ZGVsZXRlbGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZGVsZXRlX2ZpZWxkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCRtb2QtPkxhbmcoJ2RlbGV0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCksJ2Zvcm1faWQnPT4kdGhpcy0+SWQpLCcnLCAnJywgJycsICdvbmNsaWNrPSJqUXVlcnkodGhpcykuZmJfZGVsZXRlX2ZpZWxkKFwnJy4kbW9kLT5MYW5nKCdhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJyxodG1sc3BlY2lhbGNoYXJzKCR0aGlzRmllbGQtPkdldE5hbWUoKSkpLidcJyk7IHJldHVybiBmYWxzZTsiJyk7CgoJCS8qIFJlbW92ZWQgQnkgU3Rpa2tpLCByZWluc3RhdGVkIGJ5IFNqRyB3aXRoIEphdmFzY3JpcHQgdG8gaGlkZSBpdCBpZiBKYXZhc2NyaXB0J3MgZW5hYmxlZC4gKi8KCQlpZiAoJGNvdW50ID4gMSkKCQkJewoJCQkkb25lc2V0LT51cCA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX29yZGVyJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmJywndXAnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdmYnJwX2Rpcic9Pid1cCcsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRvbmVzZXQtPnVwID0gJyZuYnNwOyc7CgkJCX0KCQlpZiAoJGNvdW50IDwgJGxhc3QpCgkJCXsKCQkJJG9uZXNldC0+ZG93bj0kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9vcmRlcicsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy1kLmdpZicsJ2Rvd24nLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdmYnJwX2Rpcic9Pidkb3duJywnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJG9uZXNldC0+ZG93biA9ICcmbmJzcDsnOwoJCQl9CgoJICAgICgkY3Vycm93ID09ICJyb3cxIj8kY3Vycm93PSJyb3cyIjokY3Vycm93PSJyb3cxIik7CgkgICAgJGNvdW50Kys7CgkgICAgaWYgKCR0aGlzRmllbGQtPkdldE9yZGVyKCkgPj0gJG1heE9yZGVyKQoJICAgICAgewoJCQkkbWF4T3JkZXIgPSAkdGhpc0ZpZWxkLT5HZXRPcmRlcigpICsgMTsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRmaWVsZExpc3QsICRvbmVzZXQpOwoJICB9CgkgIAoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZpZWxkcycsJGZpZWxkTGlzdCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkX2ZpZWxkX2xpbmsnLAoJCQkgICAgICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQsJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsJG1vZC0+TGFuZygndGl0bGVfYWRkX25ld19maWVsZCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdmYnJwX29yZGVyX2J5Jz0+JG1heE9yZGVyKSwgJycsIGZhbHNlKSAuICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfYWRkX25ld19maWVsZCcpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9vcmRlcl9ieSc9PiRtYXhPcmRlciksICcnLCBmYWxzZSkpOwoKCWlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfZmFzdGFkZCcsMSkgPT0gMSkKCSAgewoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYXN0YWRkJywxKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmFzdGFkZCcsJG1vZC0+TGFuZygndGl0bGVfZmFzdGFkZCcpKTsKCSAgICAkdHlwZUlucHV0ID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPgovKiA8IVtDREFUQVsgKi8KZnVuY3Rpb24gZmFzdF9hZGQoZmllbGRfdHlwZSkKewoJdmFyIHR5cGU9ZmllbGRfdHlwZS5vcHRpb25zW2ZpZWxkX3R5cGUuc2VsZWN0ZWRJbmRleF0udmFsdWU7Cgl2YXIgbGluayA9ICciLiRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQsJycsYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdmYnJwX29yZGVyX2J5Jz0+JG1heE9yZGVyKSwgJycsIHRydWUsdHJ1ZSkuIiYiLiRpZC4iZmJycF9maWVsZF90eXBlPScrdHlwZTsKCXRoaXMubG9jYXRpb249bGluazsKCXJldHVybiB0cnVlOwp9Ci8qIF1dPiAqLwo8L3NjcmlwdD4iOwoJICAgICR0eXBlSW5wdXQgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkdHlwZUlucHV0KTsgCgkgICAgJG1vZC0+aW5pdGlhbGl6ZSgpOwoJICAgIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkX2xldmVsJywnYmFzaWMnKSA9PSAnYmFzaWMnKQoJCQl7CgkJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mYXN0YWRkJywkdHlwZUlucHV0LiRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+c3RkX2ZpZWxkX3R5cGVzKSwgLTEsJycsICdvbmNoYW5nZT0iZmFzdF9hZGQodGhpcykiJykuCgkJCQkkbW9kLT5MYW5nKCd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnKS4KCQkJCSRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZm9ybScsICRyZXR1cm5pZCwkbW9kLT5MYW5nKCd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluaycpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9zZXRfZmllbGRfbGV2ZWwnPT4nYWR2YW5jZWQnKSkpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mYXN0YWRkJywkdHlwZUlucHV0LiRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJmYXN0X2FkZCh0aGlzKSInKS4KCQkJJG1vZC0+TGFuZygndGl0bGVfc3dpdGNoX2Jhc2ljJykuCgkJCSRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZm9ybScsICRyZXR1cm5pZCwkbW9kLT5MYW5nKCd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluaycpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9zZXRfZmllbGRfbGV2ZWwnPT4nYmFzaWMnKSkpOwoJCQl9CgkgIH0JCQkJCQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3NhdmVfYnV0dG9uJywnJyk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0X2J1dHRvbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkbW9kLT5MYW5nKCdhZGQnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZiX2hpZGRlbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9mb3JtX29wJywkbW9kLT5MYW5nKCdhZGRlZCcpKS4kbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX3NvcnQnLCcnLCdpZD0iZmJycF9zb3J0IicpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGRpbmcnLDEpOwogICAgICB9CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbGlua19ub3RyZWFkeScsIjxzdHJvbmc+Ii4kbW9kLT5MYW5nKCd0aXRsZV9ub3RfcmVhZHkxJykuIjwvc3Ryb25nPiAiLiRtb2QtPkxhbmcoJ3RpdGxlX25vdF9yZWFkeTInKS4iICIuJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCwkbW9kLT5MYW5nKCd0aXRsZV9ub3RfcmVhZHlfbGluaycpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9vcmRlcl9ieSc9PiRtYXhPcmRlciwnZmJycF9kaXNwb3NlX29ubHknPT4xKSwgJycsIGZhbHNlLCBmYWxzZSwnY2xhc3M9Im1vZHVsZV9mYl9saW5rIicpLiIgIi4kbW9kLT5MYW5nKCd0aXRsZV9ub3RfcmVhZHkzJykKCQkJICk7CgogICAKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9pbmxpbmVfZm9ybScsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmYnJwX2Zvcm1hX2lubGluZScsJzAnKS4KCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2ZicnBfZm9ybWFfaW5saW5lJywnMScsJHRoaXMtPkdldEF0dHIoJ2lubGluZScsJzAnKSkuCgkJCSAgICRtb2QtPkxhbmcoJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnKSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9zdWJtaXRfYnV0dG9uJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX3N1Ym1pdF9idXR0b25fdGV4dCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfYnV0dG9uX3RleHQnLCRtb2QtPkxhbmcoJ2J1dHRvbl9zdWJtaXQnKSksIDM1LCAzNSkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5JywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfc3VibWl0X2J1dHRvbl9zYWZldHknLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9mb3JtYV9pbnB1dF9idXR0b25fc2FmZXR5JywnMCcpLgoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2ZicnBfZm9ybWFfaW5wdXRfYnV0dG9uX3NhZmV0eScsJzEnLCR0aGlzLT5HZXRBdHRyKCdpbnB1dF9idXR0b25fc2FmZXR5JywnMCcpKS4KCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5JykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9wcmV2X2J1dHRvbicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3ByZXZfYnV0dG9uJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX3ByZXZfYnV0dG9uX3RleHQnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cigncHJldl9idXR0b25fdGV4dCcsJG1vZC0+TGFuZygnYnV0dG9uX3ByZXZpb3VzJykpLCAzNSwgMzUpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX3RpdGxlX3VzZXJfY2FwdGNoYScsCiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0QXR0cigndGl0bGVfdXNlcl9jYXB0Y2hhJywkbW9kLT5MYW5nKCd0aXRsZV91c2VyX2NhcHRjaGEnKSksMzUsODApKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnLCRtb2QtPkxhbmcoJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYScpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX2NhcHRjaGFfd3JvbmcnLAogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldEF0dHIoJ2NhcHRjaGFfd3JvbmcnLCRtb2QtPkxhbmcoJ3dyb25nX2NhcHRjaGEnKSksMzUsODApKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InLCRtb2QtPkxhbmcoJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvcicpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9uZXh0X2J1dHRvbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX25leHRfYnV0dG9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fbmV4dF9idXR0b24nLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfbmV4dF9idXR0b25fdGV4dCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCduZXh0X2J1dHRvbl90ZXh0JywkbW9kLT5MYW5nKCdidXR0b25fY29udGludWUnKSksIDM1LCAzNSkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnLAogICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnLAogICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0JykpOwogICAgewogICAgICAkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgICAkdXNlcnRhZ3MgPSAkdXNlcnRhZ29wcy0+TGlzdFVzZXJUYWdzKCk7CiAgICAgICR1c2VydGFnbGlzdCA9IGFycmF5KCk7CiAgICAgICR1c2VydGFnbGlzdFskbW9kLT5sYW5nKCdub25lJyldID0gLTE7CiAgICAgIGZvcmVhY2goICR1c2VydGFncyBhcyAka2V5ID0+ICR2YWx1ZSApCiAgICAgICAgewogIAkgICR1c2VydGFnbGlzdFskdmFsdWVdID0gJGtleTsKICAgICAgICB9CiAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3ByZWRpc3BsYXlfdWR0JywKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfZm9ybWFfcHJlZGlzcGxheV91ZHQnLCR1c2VydGFnbGlzdCwtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0QXR0cigncHJlZGlzcGxheV91ZHQnLC0xKSkpOwogICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0JywKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfZm9ybWFfcHJlZGlzcGxheV9lYWNoX3VkdCcsJHVzZXJ0YWdsaXN0LC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRBdHRyKCdwcmVkaXNwbGF5X2VhY2hfdWR0JywtMSkpKTsKCiAgICB9CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnLAogICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnKSk7CiAgICB7CiAgICAgICR1c2VydGFnb3BzID0gJGdDbXMtPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgICAgICR1c2VydGFncyA9ICR1c2VydGFnb3BzLT5MaXN0VXNlclRhZ3MoKTsKICAgICAgJHVzZXJ0YWdsaXN0ID0gYXJyYXkoKTsKICAgICAgJHVzZXJ0YWdsaXN0WyRtb2QtPmxhbmcoJ25vbmUnKV0gPSAtMTsKICAgICAgZm9yZWFjaCggJHVzZXJ0YWdzIGFzICRrZXkgPT4gJHZhbHVlICkKICAgICAgICB7CiAgCSAgJHVzZXJ0YWdsaXN0WyR2YWx1ZV0gPSAka2V5OwogICAgICAgIH0KICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fdmFsaWRhdGVfdWR0JywKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2ZicnBfZm9ybWFfdmFsaWRhdGVfdWR0JywkdXNlcnRhZ2xpc3QsLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldEF0dHIoJ3ZhbGlkYXRlX3VkdCcsLTEpKSk7CiAgICB9CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fcmVxdWlyZWRfc3ltYm9sJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdyZXF1aXJlZF9maWVsZF9zeW1ib2wnLCcqJyksIDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfbGlzdF9kZWxpbWl0ZXInLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfbGlzdF9kZWxpbWl0ZXInLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksIDUwKSk7CgogICAgJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZWRpcmVjdF9wYWdlJywkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldEF0dHIoJ3JlZGlyZWN0X3BhZ2UnLCcwJyksICRpZC4nZmJycF9mb3JtYV9yZWRpcmVjdF9wYWdlJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3RlbXBsYXRlJywKCQkJICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkkdGhpcy0+R2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJHRoaXMtPkRlZmF1bHRUZW1wbGF0ZSgpKSwgJ2ZicnBfZm9ybWFfZm9ybV90ZW1wbGF0ZScsJycsJ2ZiX2Zvcm1fdGVtcGxhdGUnLAoJCQkJJycsICcnLCAnODAnLCAnMTUnLCcnLCdodG1sJykpOwoKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdWJtaXRfamF2YXNjcmlwdCcsCgkJJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwKCQkJCSR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfamF2YXNjcmlwdCcsJycpLCAnZmJycF9mb3JtYV9zdWJtaXRfamF2YXNjcmlwdCcsJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywnZmJfc3VibWl0X2phdmFzY3JpcHQnLAoJCQkJJycsICcnLCAnODAnLCAnMTUnLCcnLCdqcycpLgoJCQkJJzxiciAvPicuJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZycpKTsKCgkJCQkJICAgICAgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfc3VibWl0X3Jlc3BvbnNlJywKCQkJICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkkdGhpcy0+R2V0QXR0cignc3VibWl0X3Jlc3BvbnNlJywkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUodHJ1ZSxmYWxzZSkpLAoJCQkJJ2ZicnBfZm9ybWFfc3VibWl0X3Jlc3BvbnNlJywnbW9kdWxlX2ZiX2FyZWFfd2lkZScsJycsCgkJCQknJywgJycsICc4MCcsICcxNScsJycsJ2h0bWwnKSk7CgoJJHBhcm1zID0gYXJyYXkoKTsKCSRwYXJtc1snZm9ybWFfc3VibWl0X3Jlc3BvbnNlJ11bJ2h0bWxfYnV0dG9uJ10gPSB0cnVlOwoJJHBhcm1zWydmb3JtYV9zdWJtaXRfcmVzcG9uc2UnXVsndHh0X2J1dHRvbiddID0gZmFsc2U7CgkkcGFybXNbJ2Zvcm1hX3N1Ym1pdF9yZXNwb25zZSddWydpc19vbmVfbGluZSddID0gZmFsc2U7CgkkcGFybXNbJ2Zvcm1hX3N1Ym1pdF9yZXNwb25zZSddWydpc19lbWFpbCddID0gZmFsc2U7CgkkbW9kLT5zbWFydHktPmFzc2lnbignaGVscF9zdWJtaXRfcmVzcG9uc2UnLCAkdGhpcy0+QWRtaW5UZW1wbGF0ZUhlbHAoJGlkLCRwYXJtcykpOwoKCXJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ0FkZEVkaXRGb3JtLnRwbCcpOwogIH0KCgkvLyBBZGQgbmV3IGZpZWxkCiAgICBmdW5jdGlvbiAmTmV3RmllbGQoJiRwYXJhbXMpCiAgICAgIHsKCS8vJGFlZmllbGQgPSBuZXcgZmJGaWVsZEJhc2UoJHRoaXMsJHBhcmFtcyk7CgkkYWVmaWVsZCA9IGZhbHNlOwogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydmaWVsZF9pZCddKSAmJiAkcGFyYW1zWydmaWVsZF9pZCddICE9IC0xICkKCSAgewogICAgICAgICAgICAvLyB3ZSdyZSBsb2FkaW5nIGFuIGV4dGFudCBmaWVsZAoJICAgICRzcWwgPSAnU0VMRUNUIHR5cGUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9maWVsZCBXSEVSRSBmaWVsZF9pZD0/JzsKCSAgICAkcnMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoICRwYXJhbXNbJ2ZpZWxkX2lkJ10pKTsKCSAgICBpZigkcnMgJiYgJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKSkKCSAgICAgIHsJCQkJCgkJaWYgKCRyZXN1bHRbJ3R5cGUnXSAhPSAnJykKCQkgIHsKCQkgICAgJGNsYXNzTmFtZSA9ICR0aGlzLT5NYWtlQ2xhc3NOYW1lKCRyZXN1bHRbJ3R5cGUnXSAsICcnKTsKCQkgICAgJGFlZmllbGQgPSBuZXcgJGNsYXNzTmFtZSgkdGhpcywgJHBhcmFtcyk7CgkJICAgICRhZWZpZWxkLT5Mb2FkRmllbGQoJHBhcmFtcyk7CgkJICB9CgkgICAgICB9CgkgIH0KCWlmICgkYWVmaWVsZCA9PT0gZmFsc2UpCgkgIHsKCSAgICAvLyBuZXcgZmllbGQKCSAgICBpZiAoISBpc3NldCgkcGFyYW1zWydmYnJwX2ZpZWxkX3R5cGUnXSkpCgkgICAgICB7CgkJLy8gdW5rbm93biBmaWVsZCB0eXBlCgkJJGFlZmllbGQgPSBuZXcgZmJGaWVsZEJhc2UoJHRoaXMsJHBhcmFtcyk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCS8vIHNwZWNpZmllZCBmaWVsZCB0eXBlIHZpYSBwYXJhbXMKICAgICAgICAgICAgCSRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkcGFyYW1zWydmYnJwX2ZpZWxkX3R5cGUnXSwgJycpOwogICAgICAgICAgICAJJGFlZmllbGQgPSBuZXcgJGNsYXNzTmFtZSgkdGhpcywgJHBhcmFtcyk7CgkgICAgICB9CgkgIH0KCXJldHVybiAkYWVmaWVsZDsKICAgICAgfQoKCgogIGZ1bmN0aW9uIEFkZEVkaXRGaWVsZCgkaWQsICYkYWVmaWVsZCwgJGRpc3Bvc2Vfb25seSwgJHJldHVybmlkLCAkbWVzc2FnZT0nJykKICB7CiAgICAkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CgkJCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2JhY2t0b2Zvcm1fbmF2JywkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkcmV0dXJuaWQsICRtb2QtPkxhbmcoJ2xpbmtfYmFja190b19mb3JtJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkKSkpOwogICAgJG1haW5MaXN0ID0gYXJyYXkoKTsKICAgICRhZHZMaXN0ID0gYXJyYXkoKTsKICAgICRiYXNlTGlzdCA9ICRhZWZpZWxkLT5QcmVQb3B1bGF0ZUJhc2VBZG1pbkZvcm0oJGlkLCAkZGlzcG9zZV9vbmx5KTsKICAgIGlmICgkYWVmaWVsZC0+R2V0RmllbGRUeXBlKCkgPT0gJycpCiAgICAgIHsKCS8vIHN0aWxsIG5lZWQgdHlwZQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCkpOwkJCQoJJGZpZWxkTGlzdCA9IGFycmF5KCdtYWluJz0+YXJyYXkoKSwnYWR2Jz0+YXJyYXkoKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gd2UgaGF2ZSBvdXIgdHlwZQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCkpOwkKCSRmaWVsZExpc3QgPSAkYWVmaWVsZC0+UHJlUG9wdWxhdGVBZG1pbkZvcm0oJGlkKTsKICAgICAgfQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2VuZF9mb3JtJywgJG1vZC0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiSGVhZGVycygpLgoJCQkgJG1vZC0+U2V0VGFiSGVhZGVyKCdtYWludGFiJywkbW9kLT5MYW5nKCd0YWJfbWFpbicpKS4KCQkJICRtb2QtPlNldFRhYkhlYWRlcignYWR2YW5jZWR0YWInLCRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpKS4KCQkJICRtb2QtPkVuZFRhYkhlYWRlcnMoKSAuICRtb2QtPlN0YXJ0VGFiQ29udGVudCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX2VuZCcsJG1vZC0+RW5kVGFiQ29udGVudCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWludGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigibWFpbnRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZHZhbmNlZHRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoImFkdmFuY2VkdGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9lbmQnLCRtb2QtPkVuZFRhYigpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdub3RpY2Vfc2VsZWN0X3R5cGUnLCRtb2QtPkxhbmcoJ25vdGljZV9zZWxlY3RfdHlwZScpKTsKCiAgICBpZigkYWVmaWVsZC0+R2V0SWQoKSAhPSAtMSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ29wJywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX29wJywkbW9kLT5MYW5nKCd1cGRhdGVkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfYWVmX3VwZCcsICRtb2QtPkxhbmcoJ3VwZGF0ZScpKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ29wJywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX29wJywgJG1vZC0+TGFuZygnYWRkZWQnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9hZWZfYWRkJywgJG1vZC0+TGFuZygnYWRkJykpKTsKICAgICAgfQoKICAgIGlmICgkYWVmaWVsZC0+SGFzQWRkT3AoKSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdmYnJwX2FlZl9vcHRhZGQnLCRhZWZpZWxkLT5HZXRPcHRpb25BZGRCdXR0b24oKSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGQnLCcnKTsKICAgICAgfQogICAgaWYgKCRhZWZpZWxkLT5IYXNEZWxldGVPcCgpKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignZGVsJywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2ZicnBfYWVmX29wdGRlbCcsJGFlZmllbGQtPkdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2RlbCcsJycpOwogICAgICB9CgoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLCAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmb3JtX2lkJywgJHRoaXMtPklkKSAuICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZpZWxkX2lkJywgJGFlZmllbGQtPkdldElkKCkpIC4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9vcmRlcl9ieScsICRhZWZpZWxkLT5HZXRPcmRlcigpKS4KCQkJICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9zZXRfZnJvbV9mb3JtJywnMScpKTsKCiAgICBpZiAoLyohJGFlZmllbGQtPklzRGlzcG9zaXRpb24oKSAmJiAqLyAhJGFlZmllbGQtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdyZXF1aXJhYmxlJywxKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbigncmVxdWlyYWJsZScsMCk7CiAgICAgIH0KCQkJCiAgICBpZiAoaXNzZXQoJGJhc2VMaXN0WydtYWluJ10pKQogICAgICB7Cglmb3JlYWNoICgkYmFzZUxpc3RbJ21haW4nXSBhcyAkaXRlbSkKCSAgewoJICAgICR0aXRsZVN0cj0kaXRlbVswXTsKCSAgICAkaW5wdXRTdHI9JGl0ZW1bMV07CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJICAgIGlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyOwoJCSRvbmVzZXQtPmhlbHA9Jyc7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkbWFpbkxpc3QsJG9uZXNldCk7CgkgIH0KICAgICAgfQkKICAgIGlmIChpc3NldCgkYmFzZUxpc3RbJ2FkdiddKSkKICAgICAgewoJZm9yZWFjaCAoJGJhc2VMaXN0WydhZHYnXSBhcyAkaXRlbSkKCSAgewoJICAgICR0aXRsZVN0ciA9ICRpdGVtWzBdOwoJICAgICRpbnB1dFN0ciA9ICRpdGVtWzFdOwoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCSAgICBpZiAoaXNfYXJyYXkoJGlucHV0U3RyKSkKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkkb25lc2V0LT5oZWxwPScnOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJGFkdkxpc3QsJG9uZXNldCk7CgkgIH0KICAgICAgfQkKICAgIGlmIChpc3NldCgkZmllbGRMaXN0WydtYWluJ10pKQogICAgICB7Cglmb3JlYWNoICgkZmllbGRMaXN0WydtYWluJ10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHI9JGl0ZW1bMF07CgkgICAgJGlucHV0U3RyPSRpdGVtWzFdOwoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCSAgICBpZiAoaXNfYXJyYXkoJGlucHV0U3RyKSkKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkkb25lc2V0LT5oZWxwPScnOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJG1haW5MaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0KICAgIGlmIChpc3NldCgkZmllbGRMaXN0WydhZHYnXSkpCiAgICAgIHsKCWZvcmVhY2ggKCRmaWVsZExpc3RbJ2FkdiddIGFzICRpdGVtKQoJICB7CgkgICAgJHRpdGxlU3RyPSRpdGVtWzBdOwoJICAgICRpbnB1dFN0cj0kaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRhZHZMaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0KCQkKICAgICRhZWZpZWxkLT5Qb3N0UG9wdWxhdGVBZG1pbkZvcm0oJG1haW5MaXN0LCAkYWR2TGlzdCk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWFpbkxpc3QnLCRtYWluTGlzdCk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYWR2TGlzdCcsJGFkdkxpc3QpOwogICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnQWRkRWRpdEZpZWxkLnRwbCcpOwogIH0KCiAgZnVuY3Rpb24gTWFrZUFsaWFzKCRzdHJpbmcsICRpc0Zvcm09ZmFsc2UpCiAgewogICAgJHN0cmluZyA9IHRyaW0oaHRtbHNwZWNpYWxjaGFycygkc3RyaW5nKSk7CiAgICBpZiAoJGlzRm9ybSkKICAgICAgewoJCXJldHVybiBzdHJ0b2xvd2VyKCRzdHJpbmcpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCQlyZXR1cm4gJ2ZiJy5zdHJ0b2xvd2VyKCRzdHJpbmcpOwogICAgICB9CiAgfQogICAgCiAgZnVuY3Rpb24gU3dhcEZpZWxkc0J5SW5kZXgoJHNyY19maWVsZF9pbmRleCwgJGRlc3RfZmllbGRfaW5kZXgpCiAgewogICAgJHNyY0ZpZWxkID0gJHRoaXMtPkdldEZpZWxkQnlJbmRleCgkc3JjX2ZpZWxkX2luZGV4KTsKICAgICRkZXN0RmllbGQgPSAkdGhpcy0+R2V0RmllbGRCeUluZGV4KCRkZXN0X2ZpZWxkX2luZGV4KTsKICAgICR0bXBPcmRlckJ5ID0gJGRlc3RGaWVsZC0+R2V0T3JkZXIoKTsKICAgICRkZXN0RmllbGQtPlNldE9yZGVyKCRzcmNGaWVsZC0+R2V0T3JkZXIoKSk7CiAgICAkc3JjRmllbGQtPlNldE9yZGVyKCR0bXBPcmRlckJ5KTsKICAgIC8vaXQgc2VlbXMgdGhpcyBtYWtlcyBwaHA0IGdvIGNyYXp5IGZpeGVkIGJ5IHJlbG9hZGluZyBmb3JtIGJlZm9yZSBzaG93aW5nIGl0IGFnYWluCiAgICAjICAgICAgICAkdGhpcy0+RmllbGRzWyRkZXN0X2ZpZWxkX2luZGV4XSA9ICRzcmNGaWVsZDsKICAgICMgICAgICAgICR0aGlzLT5GaWVsZHNbJHNyY19maWVsZF9pbmRleF0gPSAkZGVzdEZpZWxkOwogICAgJHNyY0ZpZWxkLT5TdG9yZSgpOwogICAgJGRlc3RGaWVsZC0+U3RvcmUoKTsKICB9CgogIGZ1bmN0aW9uICZHZXRGaWVsZHMoKQogICAgewogICAgICByZXR1cm4gJHRoaXMtPkZpZWxkczsKICAgIH0KCiAgZnVuY3Rpb24gJkdldEZpZWxkQnlJZCgkZmllbGRfaWQpCiAgICB7CgkkaW5kZXggPSAtMTsKCSRyZXQgPSBmYWxzZTsKCWZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQoJCXsKCQlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldElkKCkgPT0gJGZpZWxkX2lkKQoJICAgIAl7CgkJCSRpbmRleCA9ICRpOwoJCQl9CgkJfQoJaWYgKCRpbmRleCAhPSAtMSkKCQl7CgkgIAkkcmV0ID0gJHRoaXMtPkZpZWxkc1skaW5kZXhdOwoJCX0KCXJldHVybiAkcmV0OwogICAgfQoKCiAgZnVuY3Rpb24gJkdldEZpZWxkQnlBbGlhcygkZmllbGRfYWxpYXMpCiAgICB7CgkkaW5kZXggPSAtMTsKCSRyZXQgPSBmYWxzZTsKCWZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQoJCXsKCQlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldEFsaWFzKCkgPT0gJGZpZWxkX2FsaWFzKQoJICAgIAl7CgkJCSRpbmRleCA9ICRpOwoJCQl9CgkJfQoJaWYgKCRpbmRleCAhPSAtMSkKCQl7CgkgIAkkcmV0ID0gJHRoaXMtPkZpZWxkc1skaW5kZXhdOwoJCX0KCXJldHVybiAkcmV0OwogICAgfQoKICBmdW5jdGlvbiAmR2V0RmllbGRCeU5hbWUoJGZpZWxkX25hbWUpCiAgICB7CgkkaW5kZXggPSAtMTsKCSRyZXQgPSBmYWxzZTsKCWZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQoJCXsKCQlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldE5hbWUoKSA9PSAkZmllbGRfbmFtZSkKCSAgICAJewoJCQkkaW5kZXggPSAkaTsKCQkJfQoJCX0KCWlmICgkaW5kZXggIT0gLTEpCgkJewoJICAJJHJldCA9ICR0aGlzLT5GaWVsZHNbJGluZGV4XTsKCQl9CglyZXR1cm4gJHJldDsKICAgIH0KCgogIGZ1bmN0aW9uICZHZXRGaWVsZEJ5SW5kZXgoJGZpZWxkX2luZGV4KQogICAgewogICAgICByZXR1cm4gJHRoaXMtPkZpZWxkc1skZmllbGRfaW5kZXhdOwogICAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbmRleEZyb21JZCgkZmllbGRfaWQpCiAgewogICAgJGluZGV4ID0gLTE7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpID09ICRmaWVsZF9pZCkKCSAgewoJICAgICRpbmRleCA9ICRpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkaW5kZXg7CiAgfQoKCiAgZnVuY3Rpb24gRGVmYXVsdFRlbXBsYXRlKCkKICB7CiAgICByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy8uLi90ZW1wbGF0ZXMvUmVuZGVyRm9ybURlZmF1bHQudHBsJyk7CiAgfQoKICBmdW5jdGlvbiBEZWxldGVGaWVsZCgkZmllbGRfaWQpCiAgewogICAgJGluZGV4ID0gJHRoaXMtPkdldEZpZWxkSW5kZXhGcm9tSWQoJGZpZWxkX2lkKTsKICAgIGlmICgkaW5kZXggIT0gLTEpCiAgICAgIHsKCSR0aGlzLT5GaWVsZHNbJGluZGV4XS0+RGVsZXRlKCk7CglhcnJheV9zcGxpY2UoJHRoaXMtPkZpZWxkcywkaW5kZXgsMSk7CiAgICAgIH0KICB9IAoKICBmdW5jdGlvbiBSZXNldEZpZWxkcygpCiAgewogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJCSR0aGlzLT5GaWVsZHNbJGldLT5SZXNldFZhbHVlKCk7CiAgICAgIH0KICB9CgogIC8vIEZvcm1Ccm93c2VyID49IDAuMyBSZXNwb25zZSBsb2FkIG1ldGhvZC4gVGhpcyBwb3B1bGF0ZXMgdGhlIEZpZWxkIHZhbHVlcyBkaXJlY3RseQogIC8vIChhcyBvcHBvc2VkIHRvIExvYWRSZXNwb25zZVZhbHVlcywgd2hpY2ggcGxhY2VzIHRoZSB2YWx1ZXMgaW50byB0aGUgJHBhcmFtcyBhcnJheSkKICBmdW5jdGlvbiBMb2FkUmVzcG9uc2UoJHJlc3BvbnNlX2lkKQogIHsKCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCQkKCSRvbmVzZXQgPSBuZXcgU3RkQ2xhc3MoKTsKCSRyZXMgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCByZXNwb25zZSwgZm9ybV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgV0hFUkUgZmJyX2lkPT8nLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKCglpZiAoJHJlcyAmJiAkcm93PSRyZXMtPkZldGNoUm93KCkpCgkJewoJCSRvbmVzZXQtPnhtbCA9ICRyb3dbJ3Jlc3BvbnNlJ107CgkJJG9uZXNldC0+Zm9ybV9pZCA9ICRyb3dbJ2Zvcm1faWQnXTsKCQl9CglpZiAoJG9uZXNldC0+Zm9ybV9pZCAhPSAkdGhpcy0+R2V0SWQoKSkKCQl7CgkJcmV0dXJuIGZhbHNlOwoJCX0KCSRmYkZpZWxkID0gJHRoaXMtPkdldEZvcm1Ccm93c2VyRmllbGQoKTsKCWlmICgkZmJGaWVsZCA9PSBmYWxzZSkKCQl7CgkJLy8gZXJyb3IgaGFuZGxpbmcgZ29lcyBoZXJlLgoJCWVjaG8oJG1vZC0+TGFuZygnZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJykpOwoJCX0KCSRtb2QtPkhhbmRsZVJlc3BvbnNlRnJvbVhNTCgkZmJGaWVsZCwgJG9uZXNldCk7CgoJbGlzdCgkZm5hbWVzLCAkYWxpYXNlcywgJHZhbHMpID0gJG1vZC0+UGFyc2VSZXNwb25zZVhNTCgkb25lc2V0LT54bWwsIGZhbHNlKTsKCSR0aGlzLT5SZXNldEZpZWxkcygpOwoJZm9yZWFjaCAoJHZhbHMgYXMgJGlkPT4kdmFsKQoJCXsKCQkvL2Vycm9yX2xvZygic2V0dGluZyB2YWx1ZSBvZiBmaWVsZCAiLiRpZC4iIHRvIGJlICIuJHZhbCk7CgkJJGluZGV4ID0gJHRoaXMtPkdldEZpZWxkSW5kZXhGcm9tSWQoJGlkKTsKCQlpZigkaW5kZXggIT0gLTEgJiYgIGlzX29iamVjdCgkdGhpcy0+RmllbGRzWyRpbmRleF0pICkKCQkJewoJCQkkdGhpcy0+RmllbGRzWyRpbmRleF0tPlNldFZhbHVlKCR2YWwpOwoJCQl9CgkJfQoJcmV0dXJuIHRydWU7CiAgfQoKCS8vIENoZWNrIGlmIEZvcm1Ccm93ZWlzZXIgZmllbGQgZXhpc3RzCglmdW5jdGlvbiBHZXRGb3JtQnJvd3NlckZpZWxkKCkKCXsKCQkkZmllbGRzID0gJHRoaXMtPkdldEZpZWxkcygpOwoJCSRmYkZpZWxkID0gZmFsc2U7CgkJZm9yZWFjaCgkZmllbGRzIGFzICR0aGlzRmllbGQpCgkJCXsKCQkJaWYgKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykKCQkJCXsKCQkJCSRmYkZpZWxkID0gJHRoaXNGaWVsZDsKCQkJCX0KCQkJfQoJCWlmICgkZmJGaWVsZCA9PSBmYWxzZSkKCQkJewoJCQkvLyBlcnJvciBoYW5kbGluZyBnb2VzIGhlcmUuCgkJCXJldHVybiBmYWxzZTsJCgkJCX0KCQlyZXR1cm4gJGZiRmllbGQ7CQkKCX0KCgogIGZ1bmN0aW9uIFJlaW5kZXhSZXNwb25zZXMoKQogIHsKCUBzZXRfdGltZV9saW1pdCgwKTsKCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCSRyZXNwb25zZXMgPSBhcnJheSgpOwoJJHJlcyA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUIGZicl9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXIgV0hFUkUgZm9ybV9pZD0/JywgYXJyYXkoJHRoaXMtPklkKSk7Cgl3aGlsZSAoJHJlcyAmJiAkcm93PSRyZXMtPkZldGNoUm93KCkpCgkJewoJCWFycmF5X3B1c2goJHJlc3BvbnNlcywkcm93WydmYnJfaWQnXSk7CgkJfQoJJGZicl9maWVsZCA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlckZpZWxkKCk7Cglmb3JlYWNoKCRyZXNwb25zZXMgYXMgJHRoaXNfcmVzcCkKCQl7CgkJaWYgKCR0aGlzLT5Mb2FkUmVzcG9uc2UoJHRoaXNfcmVzcCkpCgkJCXsKCQkJJHRoaXMtPlN0b3JlUmVzcG9uc2UoJHRoaXNfcmVzcCwnJywkZmJyX2ZpZWxkKTsKCQkJfQoJCX0KICB9CgoKICAvLyBGb3JtQnJvd3NlciA+PSAwLjMgUmVzcG9uc2UgbG9hZCBtZXRob2QuIFRoaXMgcG9wdWxhdGVzIHRoZSAkcGFyYW1zIGFycmF5IGZvciBsYXRlciBwcm9jZXNzaW5nL2NvbWJpbmF0aW9uCiAgLy8gKGFzIG9wcG9zZWQgdG8gTG9hZFJlc3BvbnNlLCB3aGljaCBwbGFjZXMgdGhlIHZhbHVlcyBpbnRvIHRoZSBGaWVsZCB2YWx1ZXMgZGlyZWN0bHkpCiAgZnVuY3Rpb24gTG9hZFJlc3BvbnNlVmFsdWVzKCYkcGFyYW1zLCAmJHR5cGVzKQogIHsKCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCSRvbmVzZXQgPSBuZXcgU3RkQ2xhc3MoKTsKCSRmb3JtX2lkID0gLTE7CgkkcmVzID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgcmVzcG9uc2UsIGZvcm1faWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyIFdIRVJFIGZicl9pZD0/JywgYXJyYXkoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpOwoKCWlmICgkcmVzICYmICRyb3c9JHJlcy0+RmV0Y2hSb3coKSkKCQl7CgkJJG9uZXNldC0+eG1sID0gJHJvd1sncmVzcG9uc2UnXTsKCQkkZm9ybV9pZCA9ICRyb3dbJ2Zvcm1faWQnXTsKCQl9CgkvLyBsb2FkZWQgYSByZXNwb25zZSAtLSBhdCB0aGlzIHBvaW50LCB3ZSBjaGVjayB0aGF0IHRoZSByZXNwb25zZQoJLy8gaXMgZm9yIHRoZSBjb3JyZWN0IGZvcm1faWQhCglpZiAoJGZvcm1faWQgIT0gJHRoaXMtPkdldElkKCkpCgkJewoJCXJldHVybiBmYWxzZTsKCQl9CgkkZmJGaWVsZCA9ICRtb2QtPkdldEZvcm1Ccm93c2VyRmllbGQoJGZvcm1faWQpOwoJaWYgKCRmYkZpZWxkID09IGZhbHNlKQoJCXsKCQkvLyBlcnJvciBoYW5kbGluZyBnb2VzIGhlcmUuCgkJZWNobygkbW9kLT5MYW5nKCdlcnJvcl9oYXNfbm9fZmJfZmllbGQnKSk7CgkJfQoJJG1vZC0+SGFuZGxlUmVzcG9uc2VGcm9tWE1MKCRmYkZpZWxkLCAkb25lc2V0KTsKCWxpc3QoJGZuYW1lcywgJGFsaWFzZXMsICR2YWxzKSA9ICRtb2QtPlBhcnNlUmVzcG9uc2VYTUwoJG9uZXNldC0+eG1sLCBmYWxzZSk7CgkkdHlwZXMgPSAkbW9kLT5QYXJzZVJlc3BvbnNlWE1MVHlwZSgkb25lc2V0LT54bWwpOwoJZm9yZWFjaCAoJHZhbHMgYXMgJGlkPT4kdmFsKQoJCXsKCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9fJy4kaWRdKSAmJgoJCQkhIGlzX2FycmF5KCRwYXJhbXNbJ2ZicnBfXycuJGlkXSkpCgkJCXsKCQkJJHBhcmFtc1snZmJycF9fJy4kaWRdID0gYXJyYXkoJHBhcmFtc1snZmJycF9fJy4kaWRdKTsKCQkJYXJyYXlfcHVzaCgkcGFyYW1zWydmYnJwX18nLiRpZF0sICR2YWwpOwoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiRpZF0pKQoJCQl7CgkJCWFycmF5X3B1c2goJHBhcmFtc1snZmJycF9fJy4kaWRdLCAkdmFsKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcGFyYW1zWydmYnJwX18nLiRpZF0gPSAkdmFsOwoJCQl9CgkJfQoJcmV0dXJuIHRydWU7CiAgfQoKICAvLyBGb3JtQnJvd3NlciA8IDAuMyBSZXNwb25zZSBsb2FkIG1ldGhvZCAgCiAgZnVuY3Rpb24gTG9hZFJlc3BvbnNlVmFsdWVzT2xkKCYkcGFyYW1zKQogIHsKICAgICRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKICAgIC8vIGxvYWRpbmcgYSByZXNwb25zZSAtLSBhdCB0aGlzIHBvaW50LCB3ZSBjaGVjayB0aGF0IHRoZSByZXNwb25zZQogICAgLy8gaXMgZm9yIHRoZSBjb3JyZWN0IGZvcm1faWQhCiAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9yZXNwIHdoZXJlIHJlc3BfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpKQogICAgICB7CglpZiAoJHJlc3VsdFsnZm9ybV9pZCddICE9ICR0aGlzLT5HZXRJZCgpKQoJICB7CgkgICAgcmV0dXJuIGZhbHNlOwoJICB9Cgkkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfcmVzcF92YWwgV0hFUkUgcmVzcF9pZD0/IG9yZGVyIGJ5IHJlc3BfdmFsX2lkJzsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcGFyYW1zWydyZXNwb25zZV9pZCddKSk7Cgl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkgIHsgLy8gd2FzICdfXycJCSAgICAgICAgCQoJICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSAmJgoJCSEgaXNfYXJyYXkoJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSkpCgkgICAgICB7CgkJJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSA9IGFycmF5KCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0pOwoJCWFycmF5X3B1c2goJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSwgJHJvd1sndmFsdWUnXSk7CgkgICAgICB9CgkgICAgZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSkKCSAgICAgIHsKCQlhcnJheV9wdXNoKCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0sICRyb3dbJ3ZhbHVlJ10pOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dID0gJHJvd1sndmFsdWUnXTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogIH0gICAKCiAgLy8gVmFsaWRhdGlvbiBzdHVmZiBhY3Rpb24udmFsaWRhdGUucGhwCiAgZnVuY3Rpb24gQ2hlY2tSZXNwb25zZSgkZm9ybV9pZCwgJHJlc3BvbnNlX2lkLCAkY29kZSkKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkc3FsID0gJ1NFTEVDVCBzZWNyZXRfY29kZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgV0hFUkUgZm9ybV9pZD0/IEFORCBmYnJfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJGZvcm1faWQsJHJlc3BvbnNlX2lkKSkpCiAgICAgIHsKCWlmICgkcmVzdWx0WydzZWNyZXRfY29kZSddID09ICRjb2RlKQoJICB7CgkgICAgcmV0dXJuIHRydWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgLy8gTWFzdGVyIHJlc3BvbnNlIGlucHV0dGVyCiAgZnVuY3Rpb24gU3RvcmVSZXNwb25zZSgkcmVzcG9uc2VfaWQ9LTEsJGFwcHJvdmVyPScnLCYkZm9ybUJ1aWxkZXJEaXNwb3NpdGlvbikKICB7CgkkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkZmllbGRzID0gJHRoaXMtPkdldEZpZWxkcygpOwoJJG5ld3JlYyA9IGZhbHNlOwoJCgkkY3J5cHQgPSBmYWxzZTsKCSRoYXNoX2ZpZWxkcyA9IGZhbHNlOwoJJHNvcnRfZmllbGRzID0gYXJyYXkoKTsKCQoJLy8gQ2hlY2sgaWYgZm9ybSBoYXMgRGF0YWJhc2UgZmllbGRzLCBkbyBpbml0CglpZiAoaXNfb2JqZWN0KCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uKSAmJgogICAgICAoJGZvcm1CdWlsZGVyRGlzcG9zaXRpb24tPkdldEZpZWxkVHlwZSgpPT0nRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicgfHwKICAgICAgICRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5HZXRGaWVsZFR5cGUoKT09J0Rpc3Bvc2l0aW9uRGF0YWJhc2UnKSkKCQl7CgkJJGNyeXB0ID0gKCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5HZXRPcHRpb24oJ2NyeXB0JywnMCcpID09ICcxJyk7CgkJJGhhc2hfZmllbGRzID0gKCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5HZXRPcHRpb24oJ2hhc2hfc29ydCcsJzAnKSA9PSAnMScpOwoJCWZvciAoJGk9MDskaTw1OyRpKyspCgkJCXsKCQkJJHNvcnRfZmllbGRzWyRpXSA9ICRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uLT5nZXRTb3J0RmllbGRWYWwoJGkrMSk7CgkJCX0KCQl9CgoJLy8gSWYgbmV3IGZpZWxkCglpZiAoJHJlc3BvbnNlX2lkID09IC0xKQoJCXsKCQlpZiAoaXNfb2JqZWN0KCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uKSAmJiAkZm9ybUJ1aWxkZXJEaXNwb3NpdGlvbi0+R2V0T3B0aW9uKCdmZXVfYmluZCcsJzAnKSA9PSAnMScpCgkJCXsKCQkJJGZldSA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CgkJCWlmICgkZmV1ID09IGZhbHNlKQoJCQkJewoJCQkJZGVidWdfZGlzcGxheSgiRkFJTEVEIHRvIGluc3RhdGlhdGUgRkVVISIpOwoJCQkJcmV0dXJuOwoJCQkJfQoJCQkkZmV1X2lkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRmZXVfaWQgPSAtMTsKCQkJfQkJCQoJCSRyZXNwb25zZV9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiAnbW9kdWxlX2ZiX2Zvcm1icm93c2VyX3NlcScpOwkKCSAgICBmb3JlYWNoICgkZmllbGRzIGFzICR0aGlzRmllbGQpCgkJCXsKCQkJLy8gc2V0IHRoZSByZXNwb25zZV9pZCB0byBiZSB0aGUgYXR0cmlidXRlIG9mIHRoZSBkYXRhYmFzZSBkaXNwb3NpdGlvbgoJCQlpZiAoKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkRhdGFiYXNlJyl8fAoJCQkJKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykpCgkJCQl7CgkJCQkkdGhpc0ZpZWxkLT5TZXRWYWx1ZSgkcmVzcG9uc2VfaWQpOwoJCQkJfQoJCQl9CgkJJG5ld3JlYyA9IHRydWU7CgkJfQoJZWxzZQoJCXsKCQkkZmV1X2lkID0gJG1vZC0+Z2V0RkVVSURGcm9tUmVzcG9uc2VJRCgkcmVzcG9uc2VfaWQpOwoJCX0KCQkKCS8vIENvbnZlcnQgZm9ybSB0byBYTUwKCSR4bWwgPSAkdGhpcy0+UmVzcG9uc2VUb1hNTCgpOwoJCgkvLyBEbyB0aGUgYWN0dWFsIGFkZGluZwoJaWYgKCEgJGNyeXB0KQoJCXsKCQkkb3V0cHV0ID0gJHRoaXMtPlN0b3JlUmVzcG9uc2VYTUwoCgkJCSRyZXNwb25zZV9pZCwKCQkJJG5ld3JlYywKCQkJJGFwcHJvdmVyLAoJCQlpc3NldCgkc29ydF9maWVsZHNbMF0pPyRzb3J0X2ZpZWxkc1swXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzFdKT8kc29ydF9maWVsZHNbMV06JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1syXSk/JHNvcnRfZmllbGRzWzJdOicnLAoJCQlpc3NldCgkc29ydF9maWVsZHNbM10pPyRzb3J0X2ZpZWxkc1szXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzRdKT8kc29ydF9maWVsZHNbNF06JycsCgkJCSRmZXVfaWQsCgkJCSR4bWwpOwoJCX0KCWVsc2VpZiAoISAkaGFzaF9maWVsZHMpCgkJewoJCWxpc3QoJHJlcywgJHhtbCkgPSAkbW9kLT5jcnlwdCgkeG1sLCRmb3JtQnVpbGRlckRpc3Bvc2l0aW9uKTsKCQlpZiAoISAkcmVzKQoJCQl7CgkJCXJldHVybiBhcnJheShmYWxzZSwgJHhtbCk7CgkJCX0KCQkkb3V0cHV0ID0gJHRoaXMtPlN0b3JlUmVzcG9uc2VYTUwoCgkJCSRyZXNwb25zZV9pZCwKCQkJJG5ld3JlYywKCQkJJGFwcHJvdmVyLAoJCQlpc3NldCgkc29ydF9maWVsZHNbMF0pPyRzb3J0X2ZpZWxkc1swXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzFdKT8kc29ydF9maWVsZHNbMV06JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1syXSk/JHNvcnRfZmllbGRzWzJdOicnLAoJCQlpc3NldCgkc29ydF9maWVsZHNbM10pPyRzb3J0X2ZpZWxkc1szXTonJywKCQkJaXNzZXQoJHNvcnRfZmllbGRzWzRdKT8kc29ydF9maWVsZHNbNF06JycsCgkJCSRmZXVfaWQsCgkJCSR4bWwpOwoJCX0KCWVsc2UKCQl7CgkJbGlzdCgkcmVzLCAkeG1sKSA9ICRtb2QtPmNyeXB0KCR4bWwsJGZvcm1CdWlsZGVyRGlzcG9zaXRpb24pOwoJCWlmICghICRyZXMpCgkJCXsKCQkJcmV0dXJuIGFycmF5KGZhbHNlLCAkeG1sKTsKCQkJfQoJCSRvdXRwdXQgPSAkdGhpcy0+U3RvcmVSZXNwb25zZVhNTCgKCQkJJHJlc3BvbnNlX2lkLAoJCQkkbmV3cmVjLAoJCQkkYXBwcm92ZXIsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1swXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1swXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1sxXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1sxXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1syXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1syXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1szXSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1szXSk6JycsCgkJCWlzc2V0KCRzb3J0X2ZpZWxkc1s0XSk/JG1vZC0+Z2V0SGFzaGVkU29ydEZpZWxkVmFsKCRzb3J0X2ZpZWxkc1s0XSk6JycsCgkJCSRmZXVfaWQsCgkJCSR4bWwpOwoJCX0KCS8vcmV0dXJuIGFycmF5KHRydWUsJycpOyBTdGlra2kgcmVwbGFjZWQ6IGluc3RlYWQgb2YgdHJ1ZSwgcmV0dXJuIGFjdHVhbCBkYXRhLCBkaWRuJ3Qgc2F3IGFueSBzaWRlIGVmZmVjdHMuCglyZXR1cm4gJG91dHB1dDsKICB9CgogIC8vIENvbnZlcnRzIGZvcm0gdG8gWE1MCiAgZnVuY3Rpb24gJlJlc3BvbnNlVG9YTUwoKQogIHsKICAJJHhtbCA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sIC49ICI8cmVzcG9uc2UgZm9ybV9pZD1cIiIuJHRoaXMtPklkLiJcIj5cbiI7Cglmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCQl7CgkJCSR4bWwgLj0gJHRoaXNGaWVsZC0+RXhwb3J0WE1MKHRydWUpOwoJCX0KCSR4bWwgLj0gIjwvcmVzcG9uc2U+XG4iOwogICByZXR1cm4gJHhtbDsKICB9CgogIC8vIEluc2VydHMgcGFyc2VkIFhNTCBkYXRhIHRvIGRhdGFiYXNlCiAgZnVuY3Rpb24gU3RvcmVSZXNwb25zZVhNTCgkcmVzcG9uc2VfaWQ9LTEsJG5ld3JlYz1mYWxzZSwkYXBwcm92ZXI9JycsJHNvcnRmaWVsZDEsCiAgICRzb3J0ZmllbGQyLCRzb3J0ZmllbGQzLCRzb3J0ZmllbGQ0LCRzb3J0ZmllbGQ1LCAkZmV1X2lkLCR4bWwpCiAgewogICAgJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgJHNlY3JldF9jb2RlID0gJyc7CgogICAgaWYgKCRuZXdyZWMpCiAgICAgIHsKCQkvLyBzYXZpbmcgYSBuZXcgcmVzcG9uc2UKCQkkc2VjcmV0X2NvZGUgPSBzdWJzdHIobWQ1KHNlc3Npb25faWQoKS4nXycudGltZSgpKSwwLDcpOwoJCS8vJHJlc3BvbnNlX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX2Zvcm1icm93c2VyIChmYnJfaWQsIGZvcm1faWQsIHN1Ym1pdHRlZCwgc2VjcmV0X2NvZGUsIGluZGV4X2tleV8xLCBpbmRleF9rZXlfMiwgaW5kZXhfa2V5XzMsIGluZGV4X2tleV80LCBpbmRleF9rZXlfNSwgZmV1aWQsIHJlc3BvbnNlKSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/LD8sPyknOwoJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwKCQkJYXJyYXkoJHJlc3BvbnNlX2lkLAoJCQkJJHRoaXMtPkdldElkKCksCgkJCQkkdGhpcy0+Y2xlYW5fZGF0ZXRpbWUoJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSwKCQkJCSRzZWNyZXRfY29kZSwKCQkJCSRzb3J0ZmllbGQxLCRzb3J0ZmllbGQyLCRzb3J0ZmllbGQzLCRzb3J0ZmllbGQ0LCRzb3J0ZmllbGQ1LAoJCQkJJGZldV9pZCwKCQkJCSR4bWwKCQkJKSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRhcHByb3ZlciAhPSAnJykKICAgICAgewoJCSRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IHVzZXJfYXBwcm92ZWQ9PyB3aGVyZSBmYnJfaWQ9Pyc7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLAoJCQkgICAgYXJyYXkoJHRoaXMtPmNsZWFuX2RhdGV0aW1lKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSksJHJlc3BvbnNlX2lkKSk7CgkJYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJyxhcnJheSgkcmVzcG9uc2VfaWQsJGFwcHJvdmVyKSkpOwogICAgICB9CiAgICBpZiAoISAkbmV3cmVjKQogICAgICB7CgkgICRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IGluZGV4X2tleV8xPT8sIGluZGV4X2tleV8yPT8sIGluZGV4X2tleV8zPT8sIGluZGV4X2tleV80PT8sIGluZGV4X2tleV81PT8sIHJlc3BvbnNlPT8gd2hlcmUgZmJyX2lkPT8nOwoJICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsCgkJCSAgICBhcnJheSgkc29ydGZpZWxkMSwkc29ydGZpZWxkMiwkc29ydGZpZWxkMywkc29ydGZpZWxkNCwkc29ydGZpZWxkNSwkeG1sLCRyZXNwb25zZV9pZCkpOwogICAgICB9CiAgICByZXR1cm4gYXJyYXkoJHJlc3BvbnNlX2lkLCRzZWNyZXRfY29kZSk7CiAgfSAgIAoKCS8vIFNvbWUgc3R1cGlkIGRhdGUgZnVuY3Rpb24KCWZ1bmN0aW9uIGNsZWFuX2RhdGV0aW1lKCRkdCkKCXsKICAgIHJldHVybiBzdWJzdHIoJGR0LDEsc3RybGVuKCRkdCktMik7Cgl9CiAgCiAgLy8gV2hlbiBkb3dubG9hZGluZyBmb3JtLgogIGZ1bmN0aW9uIEV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzID0gZmFsc2UpCiAgewoJJHhtbHN0ciA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sc3RyIC49ICI8Zm9ybSBpZD1cIiIuJHRoaXMtPklkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0YWxpYXM9XCIiLiR0aGlzLT5BbGlhcy4iXCI+XG4iOwoJJHhtbHN0ciAuPSAiXHRcdDxmb3JtX25hbWU+PCFbQ0RBVEFbIi4kdGhpcy0+TmFtZS4iXV0+PC9mb3JtX25hbWU+XG4iOwogICBmb3JlYWNoICgkdGhpcy0+QXR0cnMgYXMgJHRoaXNBdHRyS2V5PT4kdGhpc0F0dHJWYWx1ZSkKICAgICAgewoJCSR4bWxzdHIgLj0gIlx0XHQ8YXR0cmlidXRlIGtleT1cIiR0aGlzQXR0cktleVwiPjwhW0NEQVRBWyR0aGlzQXR0clZhbHVlXV0+PC9hdHRyaWJ1dGU+XG4iOwoJCX0KCWZvcmVhY2goJHRoaXMtPkZpZWxkcyBhcyAkdGhpc0ZpZWxkKQoJCXsKCQkkeG1sc3RyIC49ICR0aGlzRmllbGQtPkV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzKTsKCQl9CgkkeG1sc3RyIC49ICI8L2Zvcm0+XG4iOwoJcmV0dXJuICR4bWxzdHI7CiAgfQogIAogIGZ1bmN0aW9uIEdldEZvcm1Ccm93c2Vyc0ZvckZvcm0oKQoJewoJCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCQkkZmJyID0gJHRoaXMtPm1vZHVsZV9wdHItPkdldE1vZHVsZUluc3RhbmNlKCdGb3JtQnJvd3NlcicpOwoJCSRicm93c2VycyA9IGFycmF5KCk7CgkJaWYgKCRmYnIgIT0gRkFMU0UpCgkJCXsKCQkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUIGJyb3dzZXJfaWQgZnJvbSAnLiBjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJyX2Jyb3dzZXIgd2hlcmUgZm9ybV9pZD0/JywKCQkJCWFycmF5KCR0aGlzLT5HZXRJZCgpKSk7CgkJCXdoaWxlICgkcmVzICYmICRyb3c9JHJlcy0+RmV0Y2hSb3coKSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGJyb3dzZXJzLCAkcm93Wydicm93c2VyX2lkJ10pOwoJCQkJfQoJICAgICAgCX0KCQlyZXR1cm4gJGJyb3dzZXJzOwoJfQoKICBmdW5jdGlvbiBBZGRUb1NlYXJjaEluZGV4KCRyZXNwb25zZV9pZCkKCXsJCgkvLyBmaW5kIGJyb3dzZXJzIGtleWVkIHRvIHRoaXMKCSRicm93c2VycyA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlcnNGb3JGb3JtKCk7CglpZiAoY291bnQoJGJyb3dzZXJzKSA8IDEpCgkJewoJCXJldHVybjsKCQl9CgkKCSRtb2R1bGUgPSYgJHRoaXMtPm1vZHVsZV9wdHItPkdldE1vZHVsZUluc3RhbmNlKCdTZWFyY2gnKTsKICAgIGlmICgkbW9kdWxlICE9IEZBTFNFKQogICAgICB7CgkJJHN1Ym1pdHN0cmluZyA9ICcnOwoJCWZvcmVhY2ggKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCQkJewoJCQlpZiAoJHRoaXNGaWVsZC0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJJHN1Ym1pdHN0cmluZyAuPSAnICcuJHRoaXNGaWVsZC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSk7CgkJCQl9CgkJCX0KCQlmb3JlYWNoICgkYnJvd3NlcnMgYXMgJHRoaXNCcm93c2VyKQoJCQl7CgkJCSRtb2R1bGUtPkFkZFdvcmRzKCAnRm9ybUJyb3dzZXInLCAkcmVzcG9uc2VfaWQsICdzdWJfJy4kdGhpc0Jyb3dzZXIsICRzdWJtaXRzdHJpbmcsIG51bGwpOwkKCQkJfQogICAgICB9Cgl9CgogIGZ1bmN0aW9uIHNldEZpbmlzaGVkRm9ybVNtYXJ0eSgkaHRtbGVtYWlsPWZhbHNlKQoJewoJCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCSAgIAoJICAgICR0aGVGaWVsZHMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CgkgICAgJHVuc3BlYyA9ICR0aGlzLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgoJCSRmb3JtSW5mbyA9IGFycmF5KCk7CgkJCgkgICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoZUZpZWxkcyk7JGkrKykKCSAgICAgIHsKCQkJJHJlcGxWYWwgPSAkdW5zcGVjOwoJCQkkcmVwbFZhbHMgPSBhcnJheSgpOwoJCQlpZiAoJHRoZUZpZWxkc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCQkgIAkJewoJCSAgICAJCSRyZXBsVmFsID0gJHRoZUZpZWxkc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJCSAgICAJCWlmICgkaHRtbGVtYWlsKQoJCSAgICAgICAgCQl7CgkJCQkJCS8vIGFsbG93IDxCUj4gYXMgZGVsaW1pdGVyIG9yIGluIGNvbnRlbnQKCQkJCQkJJHJlcGxWYWwgPSBwcmVnX3JlcGxhY2UoJy88YnIoXHMpKihcLykqPi9pJywnfEJSfCcsJHJlcGxWYWwpOwoJCQkJCQkkcmVwbFZhbCA9IHByZWdfcmVwbGFjZSgnL1tcblxyXSsvJywnfEJSfCcsJHJlcGxWYWwpOwoJICAgICAgICAgICAgCQkkcmVwbFZhbCA9IGh0bWxzcGVjaWFsY2hhcnMoJHJlcGxWYWwpOwoJCQkJCQkkcmVwbFZhbCA9IHByZWdfcmVwbGFjZSgnL1x8QlJcfC8nLCc8YnIgLz4nLCRyZXBsVmFsKTsKCSAgICAgICAgICAgIAkJfQoJCSAgICAJCWlmICgkcmVwbFZhbCA9PSAnJykKCQkgICAgICAJCQl7CgkJCQkJCSRyZXBsVmFsID0gJHVuc3BlYzsKCQkgICAgICAJCQl9CgkJICAJCX0KCQkKCQkgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGVGaWVsZHNbJGldLT5HZXRWYXJpYWJsZU5hbWUoKSwkcmVwbFZhbCk7CgkJIAkkbW9kLT5zbWFydHktPmFzc2lnbignZmxkXycuJHRoZUZpZWxkc1skaV0tPkdldElkKCksJHJlcGxWYWwpOwoJCQkkZmxkb2JqID0gJHRoZUZpZWxkc1skaV0tPkV4cG9ydE9iamVjdCgpOwoJCSAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldFZhcmlhYmxlTmFtZSgpLidfb2JqJywkZmxkb2JqKTsKCQkgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kdGhlRmllbGRzWyRpXS0+R2V0SWQoKS4nX29iaicsJGZsZG9iaik7CgkJCWlmICgkdGhlRmllbGRzWyRpXS0+R2V0QWxpYXMoKSAhPSAnJykKCQkJCXsKCQkgICAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpLCRyZXBsVmFsKTsKCQkgICAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpLidfb2JqJywkZmxkb2JqKTsKCQkJCX0KCSAgICAgIH0KCQkvLyBnZW5lcmFsIGZvcm0gZGV0YWlscwoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZm9ybV9uYW1lJywkdGhpcy0+R2V0TmFtZSgpKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2RhdGUnLGRhdGUoJ3InKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9ob3N0JywkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9zb3VyY2VfaXAnLCRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsKCSAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfdXJsJywoZW1wdHkoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKT8kbW9kLT5MYW5nKCdub19yZWZlcnJlcl9pbmZvJyk6JF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZiX3ZlcnNpb24nLCRtb2QtPkdldFZlcnNpb24oKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ1RBQicsIlx0Iik7Cgl9IAoJCglmdW5jdGlvbiBtYW5hZ2VGaWxlVXBsb2FkcygpCgl7CgkJZ2xvYmFsICRnQ21zOwoJCSR0aGVGaWVsZHMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CgkJJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgCgkJLy8gYnVpbGQgcmVuYW1lIG1hcAoJCSRtYXBJZCA9IGFycmF5KCk7CgkJJGV2YWxfc3RyaW5nID0gZmFsc2U7CgkJZm9yKCRqPTA7JGo8Y291bnQoJHRoZUZpZWxkcyk7JGorKykKCQkJewoJICAgICRtYXBJZFskdGhlRmllbGRzWyRqXS0+R2V0SWQoKV0gPSAkajsKICAgICAgfQoKCSAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhlRmllbGRzKTskaSsrKQoJICAgICAgewoJICAJCWlmIChzdHJ0b2xvd2VyKGdldF9jbGFzcygkdGhlRmllbGRzWyRpXSkpID09ICdmYmZpbGV1cGxvYWRmaWVsZCcgKQoJICAgIAkJewoJIAkJICAgICAgLy8gSGFuZGxlIGZpbGUgdXBsb2FkcwoJCQkgICAgICAvLyBpZiB0aGUgdXBsb2FkcyBtb2R1bGUgaXMgZm91bmQsIGFuZCB0aGUgb3B0aW9uIGlzIGNoZWNrZWQgaW4KCQkJICAgICAgLy8gdGhlIGZpZWxkLCB0aGVuIHRoZSBmaWxlIGlzIGFkZGVkIHRvIHRoZSB1cGxvYWRzIG1vZHVsZQoJCQkgICAgICAvLyBhbmQgYSBsaW5rIGlzIGFkZGVkIHRvIHRoZSByZXN1bHRzCgkJCSAgICAgIC8vIGlmIHRoZSBvcHRpb24gaXMgbm90IGNoZWNrZWQsIHRoZW4gdGhlIGZpbGUgaXMgbWVyZWx5IHVwbG9hZGVkIHRvCgkJCQkgIC8vIHRoZSAidXBsb2FkcyIgZGlyZWN0b3J5CgoJICAgICAgCQkkX2lkID0gJG1vZC0+bW9kdWxlX2lkLidmYnJwX18nLiR0aGVGaWVsZHNbJGldLT5JZDsKCSAgICAgIAkJaWYoIGlzc2V0KCAkX0ZJTEVTWyRfaWRdICkgJiYgJF9GSUxFU1skX2lkXVsnc2l6ZSddID4gMCApCgkgICAgICAgIAkJewoJICAgIAkJCSR0aGlzRmlsZSA9JiAkX0ZJTEVTWyRfaWRdOwoJCQkJCQkkdGhpc0V4dCA9IHN1YnN0cigkdGhpc0ZpbGVbJ25hbWUnXSxzdHJycG9zKCR0aGlzRmlsZVsnbmFtZSddLCcuJykpOwoJCgkJCQkJCWlmICgkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCdmaWxlX3JlbmFtZScsJycpID09ICcnKQoJCQkJCQkJewoJCQkJCQkJJGRlc3RpbmF0aW9uX25hbWUgPSAkdGhpc0ZpbGVbJ25hbWUnXTsKCQkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQkJewoJCQkJICAgIAkkZmxkcyA9IGFycmF5KCk7CgkJCQkgICAgCSRkZXN0aW5hdGlvbl9uYW1lID0gJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignZmlsZV9yZW5hbWUnKTsKCQkJCSAgICAJcHJlZ19tYXRjaF9hbGwoJy9cJGZsZF8oXGQrKS8nLCAkZGVzdGluYXRpb25fbmFtZSwgJGZsZHMpOwoJCQkJCQkJZm9yZWFjaCAoJGZsZHNbMV0gYXMgJHRGKQoJICAgICAgICAgICAgICAgIHsKCSAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJG1hcElkWyR0Rl0pKQoJICAgICAgICAgICAgICAgICAgICB7CgkgICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbWFwSWRbJHRGXTsKCSAgICAgICAgICAgICAgICAgICAgJGRlc3RpbmF0aW9uX25hbWUgPSBzdHJfcmVwbGFjZSgnJGZsZF8nLiR0RiwKCSAgICAgICAgICAgICAgICAgICAgICAgICAkdGhlRmllbGRzWyRyZWZdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSwkZGVzdGluYXRpb25fbmFtZSk7CgkgICAgICAgICAgICAgICAgICAgIH0KCSAgICAgICAgICAgICAgICB9CgkJCQkJCQkkZGVzdGluYXRpb25fbmFtZSA9IHN0cl9yZXBsYWNlKCckZXh0JywkdGhpc0V4dCwkZGVzdGluYXRpb25fbmFtZSk7CgkJCQkJCQl9CgkKCSAgICAJCQlpZiggJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignc2VuZHRvX3VwbG9hZHMnKSApCgkgICAgICAJCQkJewoJICAgICAgICAJCQkvLyB3ZSBoYXZlIGEgZmlsZSB3ZSBjYW4gc2VuZCB0byB0aGUgdXBsb2FkcwoJICAgICAgICAJCQkkdXBsb2FkcyA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdVcGxvYWRzJyk7CgkgICAgICAgIAkJCWlmKCAhJHVwbG9hZHMgKQoJICAgICAgICAgIAkJCQl7CgkgICAgICAJCQkJCS8vIG5vIHVwbG9hZHMgbW9kdWxlCgkgICAgICAJCQkJCWF1ZGl0KC0xLCAkbW9kLT5HZXROYW1lKCksICRtb2QtPkxhbmcoJ3N1Ym1pdF9lcnJvcicpLCRtYWlsLT5HZXRFcnJvckluZm8oKSk7CgkgICAgICAgICAgICAJCQlyZXR1cm4gYXJyYXkoJHJlcywgJG1vZC0+TGFuZygnbm91cGxvYWRzX2Vycm9yJykpOwoJICAgICAgICAgIAkJCQl9CgoJICAgICAgICAJCQkkcGFybXMgPSBhcnJheSgpOwoJICAgICAgICAJCQkkcGFybXNbJ2lucHV0X2F1dGhvciddID0gJG1vZC0+TGFuZygnYW5vbnltb3VzJyk7CgkgICAgICAgIAkJCSRwYXJtc1snaW5wdXRfc3VtbWFyeSddID0gJG1vZC0+TGFuZygndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknKTsKCSAgICAgICAgCQkJJHBhcm1zWydjYXRlZ29yeV9pZCddID0gJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbigndXBsb2Fkc19jYXRlZ29yeScpOwoJICAgICAgICAJCQkkcGFybXNbJ2ZpZWxkX25hbWUnXSA9ICRfaWQ7CgkJCQkJCQkgICRwYXJtc1snaW5wdXRfZGVzdG5hbWUnXSA9ICRkZXN0aW5hdGlvbl9uYW1lOwoJCQkJCQkJCWlmICgkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCdhbGxvd19vdmVyd3JpdGUnLCcwJykgPT0gJzEnKQoJCQkJCQkJCQl7CgkJCQkJCQkJCSRwYXJtc1snaW5wdXRfcmVwbGFjZSddID0gMTsJCgkJCQkJCQkJCX0KCSAgICAgICAgCQkJJHJlcyA9ICR1cGxvYWRzLT5BdHRlbXB0VXBsb2FkKC0xLCRwYXJtcywtMSk7CgkgICAgICAgIAkJCQoJICAgICAgICAJCQlpZiggJHJlc1swXSA9PSBmYWxzZSApCgkgICAgICAgICAgCQkJCXsKCSAgICAgIAkJCQkJLy8gZmFpbGVkIHVwbG9hZCBraWxscyB0aGUgc2VuZC4KCSAgICAgIAkJCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkcmVzWzFdKSk7CgkgICAgICAJCQkJCXJldHVybiBhcnJheSgkcmVzWzBdLCAkbW9kLT5MYW5nKCd1cGxvYWRzX2Vycm9yJywkcmVzWzFdKSk7CgkgICAgICAgICAgCQkJCX0KCgkgICAgICAgIAkJCSR1cGxvYWRzX2Rlc3RwYWdlID0gJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbigndXBsb2Fkc19kZXN0cGFnZScpOwoJCQkJCQkkdXJsID0gJHVwbG9hZHMtPkNyZWF0ZUxpbmsgKCRwYXJtc1snY2F0ZWdvcnlfaWQnXSwgJ2dldGZpbGUnLCAkdXBsb2Fkc19kZXN0cGFnZSwgJycsCgkJCQkJCQlhcnJheSAoJ3VwbG9hZF9pZCcgPT4gJHJlc1sxXSksICcnLCB0cnVlKTsKCgkJCQkJCSR1cmwgPSBzdHJfcmVwbGFjZSgnYWRtaW4vbW9kdWxlaW50ZXJmYWNlLnBocD8nLCdpbmRleC5waHA/JywkdXJsKTsKCQoJCQkJCQkkdGhlRmllbGRzWyRpXS0+UmVzZXRWYWx1ZSgpOwoJICAgICAgICAJCQkkdGhlRmllbGRzWyRpXS0+U2V0VmFsdWUoJHVybCk7CgkgICAgICAJCQkJfQoJICAgIAkJCWVsc2UKCSAgICAgIAkJCQl7CgkgICAgICAgIAkJCS8vIEhhbmRsZSB0aGUgdXBsb2FkIG91cnNlbHZlcwoJCQkJCQkkc3JjID0gJHRoaXNGaWxlWyd0bXBfbmFtZSddOwkJCQkJCQoJCQkJCQkkZGVzdF9wYXRoID0gJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignZmlsZV9kZXN0aW5hdGlvbicsJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pOwkJCQkJCQoJCQkJCQkKCQkJCQkJLy8gdmFsaWRhdGVkIG1lc3NhZ2UgYmVmb3JlLCBub3cgZG8gaXQgZm9yIHRoZSBmaWxlIGl0c2VsZgoJCQkJCQkkdmFsaWQgPSB0cnVlOwoJCQkJCSAgICAkbXMgPSAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCdtYXhfc2l6ZScpOwoJCQkJCSAgICAkZXh0cyA9ICR0aGVGaWVsZHNbJGldLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJywnJyk7CgkJCQkJICAgIGlmICgkbXMgIT0gJycgJiYgJHRoaXNGaWxlWydzaXplJ10gPiAoJG1zICogMTAyNCkpCgkJCQkJCQl7CgkJCQkJCQkkdmFsaWQgPSBmYWxzZTsKCQkJCQkJCX0KCQkJCQkgICAgZWxzZSBpZiAoJGV4dHMgIT0gJycpCgkJCQkJCQl7CgkJCQkJCQkkbWF0Y2ggPSBmYWxzZTsKCQkJCQkJCSRsZWdhbEV4dHMgPSBleHBsb2RlKCcsJywkZXh0cyk7CgkJCQkJCQlmb3JlYWNoICgkbGVnYWxFeHRzIGFzICR0aGlzRXh0KQoJCQkJCQkJCXsKCQkJCQkJCQlpZiAocHJlZ19tYXRjaCgnL1wuJy50cmltKCR0aGlzRXh0KS4nJC9pJywkdGhpc0ZpbGVbJ25hbWUnXSkpCgkJCQkJCQkJCXsKCQkJCQkJCQkJJG1hdGNoID0gdHJ1ZTsKCQkJCQkJCQkJfQoJCQkJCQkJCWVsc2UgaWYgKHByZWdfbWF0Y2goJy8nLnRyaW0oJHRoaXNFeHQpLicvaScsJHRoaXNGaWxlWyd0eXBlJ10pKQoJCQkJCQkJCQl7CgkJCQkJCQkJCSRtYXRjaCA9IHRydWU7CgkJCQkJCQkJCX0KCQkJCQkJCQl9CgkJCQkJCQlpZiAoISAkbWF0Y2gpCgkJCQkJCQkJewoJCQkJCQkJCSR2YWxpZCA9IGZhbHNlOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJaWYgKCEgJHZhbGlkKQoJCQkJCQkJewoJCQkJCQkJdW5saW5rKCRzcmMpOwoJCQkJCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnaWxsZWdhbF9maWxlJyxhcnJheSgkdGhpc0ZpbGVbJ25hbWUnXSwkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkpKTsKCQkgICAgICAJCQkJcmV0dXJuIGFycmF5KGZhbHNlLCAnJyk7CgkJCQkJCQl9CgkJCQkJCSRkZXN0ID0gJGRlc3RfcGF0aC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRkZXN0aW5hdGlvbl9uYW1lOwoJCQkJCQlpZiAoZmlsZV9leGlzdHMoJGRlc3QpICYmICR0aGVGaWVsZHNbJGldLT5HZXRPcHRpb24oJ2FsbG93X292ZXJ3cml0ZScsJzAnKT09JzAnKQoJCQkJCQkJewoJCQkJCQkJdW5saW5rKCRzcmMpOwoJCQkJCQkJcmV0dXJuIGFycmF5KGZhbHNlLCRtb2QtPkxhbmcoJ2ZpbGVfYWxyZWFkeV9leGlzdHMnLCBhcnJheSgkZGVzdGluYXRpb25fbmFtZSkpKTsKCQkJCQkJCX0KCQkJCQkJaWYgKCEgbW92ZV91cGxvYWRlZF9maWxlKCRzcmMsJGRlc3QpKQoJCQkJCQkJewoJCQkJCQkJYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywnJykpOwoJCSAgICAgIAkJCQlyZXR1cm4gYXJyYXkoZmFsc2UsICRtb2QtPkxhbmcoJ3VwbG9hZHNfZXJyb3InLCcnKSk7CgkJCQkJCQl9CgkJCQkJCWVsc2UKCQkJCQkJCXsKCQkJCQkJCWlmIChzdHJwb3MoJGRlc3RfcGF0aCwkZ0Ntcy0+Y29uZmlnWydyb290X3BhdGgnXSkgIT09IEZBTFNFKQoJCQkJCQkJCXsKCQkJCQkJCQkkdXJsID0gc3RyX3JlcGxhY2UoJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10sJycsJGRlc3RfcGF0aCkuJy8nLiRkZXN0aW5hdGlvbl9uYW1lOwoJCQkJCQkJCX0KCQkJCQkJCWVsc2UKCQkJCQkJCQl7CgkJCQkJCQkJJHVybCA9ICRtb2QtPkxhbmcoJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCcsJGRlc3RpbmF0aW9uX25hbWUpOwoJCQkJCQkJCX0KCQkJCQkJCSR0aGVGaWVsZHNbJGldLT5SZXNldFZhbHVlKCk7CgkJCQkJCQkkdGhlRmllbGRzWyRpXS0+U2V0VmFsdWUoYXJyYXkoJGRlc3QsJHVybCkpOwoJCQkJCQkJfQoJICAgICAgCQkJCX0KCSAgICAgICAgCQl9CgkgICAgCQl9CgkgICAgICAJfQoJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressAgainField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CgkJJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKCQkJJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCgkJCSk7CgkJJHRoaXMtPm1vZGlmaWVzT3RoZXJGaWVsZHMgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJcmV0dXJuICRtb2QtPmZiQ3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksCgkJCTI1LDEyOCwkanMuJHRoaXMtPkdldENTU0lkVGFnKCksJ3RleHQnKTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9pZCcpIC4gJzogJyAuICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX3ZhbGlkYXRlJywnJyk7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmbGRzID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQkkb3B0cyA9IGFycmF5KCk7CgkJZm9yZWFjaCAoJGZsZHMgYXMgJHRmKQoJCQl7CgkJCSRvcHRzWyR0Zi0+R2V0TmFtZSgpXT0kdGYtPkdldE5hbWUoKTsKCQkJfQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KAoJCQkJJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9maWVsZF90b192YWxpZGF0ZScsICRvcHRzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZmllbGRfdG9fdmFsaWRhdGUnKSkKCQkJKQoJCSk7CgoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluKTsKCX0KCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJGZpZWxkX3RvX3ZhbGlkYXRlID0gJHRoaXMtPkdldE9wdGlvbignZmllbGRfdG9fdmFsaWRhdGUnLCcnKTsKCgkJaWYgKCRmaWVsZF90b192YWxpZGF0ZSAhPSAnJykKCQl7CgkJCWZvcmVhY2ggKCR0aGlzLT5mb3JtX3B0ci0+RmllbGRzIGFzICRvbmVfZmllbGQpCgkJCXsKCQkJCWlmICgkb25lX2ZpZWxkLT5OYW1lID09ICRmaWVsZF90b192YWxpZGF0ZSkKCQkJCXsKCQkJCQkkdmFsdWUgPSAkb25lX2ZpZWxkLT5HZXRWYWx1ZSgpOwoJCQkJCWlmICgkdmFsdWUgIT0gJHRoaXMtPlZhbHVlKQoJCQkJCXsKCQkJCQkJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCQkJCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnLCAkZmllbGRfdG9fdmFsaWRhdGUpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Zyb21FbWFpbEFkZHJlc3NGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJ2VtYWlsJzsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkKCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpLCd0ZXh0Jyk7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAgICRhZHYgPSBhcnJheSgpOwoJCSRob3B0cyA9IGFycmF5KCRtb2QtPkxhbmcoJ29wdGlvbl9mcm9tJyk9PidmJywkbW9kLT5MYW5nKCdvcHRpb25fcmVwbHknKT0+J3InLCRtb2QtPkxhbmcoJ29wdGlvbl9ib3RoJyk9PidiJyk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hlYWRlcnNfdG9fbW9kaWZ5JywgJGhvcHRzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignaGVhZGVyc190b19tb2RpZnknLCdmJykpKSk7CgoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgkKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCSRodG0gPSAkdGhpcy0+R2V0T3B0aW9uKCdoZWFkZXJzX3RvX21vZGlmeScsJ2YnKTsKCgkJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJCXsKCQkJCSRyZXBsVmFsID0gJyc7CgkJCQlpZiAoJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKQogICAgICAgICAgICAgICAmJiBpc19zdWJjbGFzc19vZigkb3RoZXJzWyRpXSwnZmJEaXNwb3NpdGlvbkVtYWlsQmFzZScpKQoJCQkJCXsKCQkJCQlpZiAoJGh0bSA9PSAnZicgfHwgJGh0bSA9PSAnYicpCiAgICAgICAgICAgICAgICAgIHsKCQkJCQkgICAgJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJywkdGhpcy0+VmFsdWUpOwoJCQkJCSAgIH0KICAgICAgICAgICAgICAgaWYgKCRodG0gPT0gJ3InIHx8ICRodG0gPT0gJ2InKQogICAgICAgICAgICAgICAgICB7CgkJCQkJICAgICRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX3JlcGx5X3RvX2FkZHJlc3MnLCR0aGlzLT5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgIH0KCQkJCQl9CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdlbWFpbCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICB9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailNameField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbE5hbWVGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbE5hbWVGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Zyb21FbWFpbE5hbWVGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkKCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgJG1haW4gPSBhcnJheSgpOwogICAgICAkYWR2ID0gYXJyYXkoKTsKCQkkaG9wdHMgPSBhcnJheSgkbW9kLT5MYW5nKCdvcHRpb25fZnJvbScpPT4nZicsJG1vZC0+TGFuZygnb3B0aW9uX3JlcGx5Jyk9PidyJywkbW9kLT5MYW5nKCdvcHRpb25fYm90aCcpPT4nYicpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaGVhZGVyc190b19tb2RpZnknKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oZWFkZXJzX3RvX21vZGlmeScsICRob3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2hlYWRlcnNfdG9fbW9kaWZ5JywnYicpKSkpOwoKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJJGh0bSA9ICR0aGlzLT5HZXRPcHRpb24oJ2hlYWRlcnNfdG9fbW9kaWZ5JywnYicpOwoKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewkJCgkJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCQl7CgkJCQkkcmVwbFZhbCA9ICcnOwoJCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkKICAgICAgICAgICAgICAgJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCQl7CgkJCQkJaWYgKCRodG0gPT0gJ2YnIHx8ICRodG0gPT0gJ2InKQogICAgICAgICAgICAgICAgICB7CgkJCQkJICAgICRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScsJHRoaXMtPlZhbHVlKTsKCQkJCQkgICB9CiAgICAgICAgICAgICAgIGlmICgkaHRtID09ICdyJyB8fCAkaHRtID09ICdiJykKICAgICAgICAgICAgICAgICAgewoJCQkJCSAgICAkb3RoZXJzWyRpXS0+U2V0T3B0aW9uKCdlbWFpbF9yZXBseV90b19uYW1lJywkdGhpcy0+VmFsdWUpOwogICAgICAgICAgICAgICAgICB9CgkJCQkJfQoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailSubjectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Zyb21FbWFpbFN1YmplY3RGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkKCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCQoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkJCXsJCQoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAnJzsKCQkJCWlmICgkb3RoZXJzWyRpXS0+SXNEaXNwb3NpdGlvbigpICYmIGlzX3N1YmNsYXNzX29mKCRvdGhlcnNbJGldLCdmYkRpc3Bvc2l0aW9uRW1haWxCYXNlJykpCgkJCQkJewoJCQkJCSRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnLCR0aGlzLT5WYWx1ZSk7CgkJCQkJfQoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/HiddenField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkhpZGRlbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJIaWRkZW5GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnSGlkZGVuRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgogICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJICAkdiA9ICR0aGlzLT5WYWx1ZTsKICAJICB9CgllbHNlCgkJewoJCSR2ID0gJHRoaXMtPkdldE9wdGlvbigndmFsdWUnLCcnKTsKCQl9CgogICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpID09ICcxJykKICAgICAgewogICAgICAkdiA9ICAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdik7CiAgICAgIH0KCQkKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignZmJyX2VkaXQnLCcwJykgPT0gJzEnICYmICRwYXJhbXNbJ2luX2FkbWluJ10gPT0gMSkKCQkJewoJCQkkdHlwZSA9ICJ0ZXh0IjsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdHlwZSA9ICJoaWRkZW4iOwoJCQl9CgkJCiAgICByZXR1cm4gJzxpbnB1dCB0eXBlPSInLiR0eXBlLiciIG5hbWU9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nIiB2YWx1ZT0iJy4kdi4nIicuJHRoaXMtPkdldENTU0lkVGFnKCkuJyAvPic7CiAgfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdmFsdWUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfdmFsdWUnLCR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyksMjUsMTAyNCkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zbWFydHlfZXZhbCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc21hcnR5X2V2YWwnLCcwJykuCgkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NtYXJ0eV9ldmFsJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignc21hcnR5X2V2YWwnLCcwJykpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2Zicl9lZGl0JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9mYnJfZWRpdCcsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZmJyX2VkaXQnLAoJCQkJCScxJywgJHRoaXMtPkdldE9wdGlvbignZmJyX2VkaXQnLCcwJykpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/LinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gICdMaW5rRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+UmVxdWlyZWQgPSBmYWxzZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCQoJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCXsKCQkJJHZhbCA9ICR0aGlzLT5WYWx1ZTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdmFsID0gYXJyYXkoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rJywnJyksJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rX3RpdGxlJywnJykpOwoJCQl9IAoJCSRmaWVsZERpc3AgPSBhcnJheSgpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ2ZicnBfXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJykuJzwvbGFiZWw+JzsKCQkkdGhpc0JveC0+dGl0bGUgPSAkbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJyk7CgkJJHRoaXNCb3gtPmlucHV0ID0gJHRoaXMtPlRleHRGaWVsZCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkdmFsWzBdLCcnLCcnLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ18xJykpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ2ZicnBfXycuJHRoaXMtPklkLidfMiI+Jy4kbW9kLT5MYW5nKCdsaW5rX2xhYmVsJykuJzwvbGFiZWw+JzsKCQkkdGhpc0JveC0+dGl0bGUgPSAkbW9kLT5MYW5nKCdsaW5rX2xhYmVsJyk7CgkJJHRoaXNCb3gtPmlucHV0ID0gJHRoaXMtPlRleHRGaWVsZCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkdmFsWzFdLCcnLCcnLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ18yJykpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwkJCQoJCXJldHVybiAkZmllbGREaXNwOwoJCQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UgfHwgISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSRyZXQgPSAnJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJzxhIGhyZWY9IicuJHRoaXMtPlZhbHVlWzBdLiciPicuJHRoaXMtPlZhbHVlWzFdLic8L2E+JzsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoKCX0KCgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkLCBzaW5jZSB0aGlzIGNhbiBvbmx5IGJlIGRvbmUgdmlhIHZhbGlkYXRpb24KICAgICAgJHRoaXMtPlJlbW92ZUFkbWluRmllbGQoJG1haW5BcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSk7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2xpbmsnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9saW5rJywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmsnLCcnKSwyNSwxMjgpKSwKICAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0X2xpbmtfdGl0bGUnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfbGlua190aXRsZScsJycpLDI1LDEyOCkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cgp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/classes/ModuleInterfaceField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgoqIFRoaXMgRmllbGQgd3JpdHRlbiBieSBKZXJlbXkgQmFzcyA8amVyZW15QmFzc0BjYWJsZW9uZS5uZXQ+CgoqLwoKY2xhc3MgZmJNb2R1bGVJbnRlcmZhY2VGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiTW9kdWxlSW50ZXJmYWNlRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ01vZHVsZUludGVyZmFjZUZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgIC8vJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7IFJFTU9WRUQgQlkgU3Rpa2tpCiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOyAKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgLy8kdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CQogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKXsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCgkkdiA9ICR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyk7CgoJLyogUkVNT1ZFRCBCWSBTdGlra2kgLSB0b3RhbGx5IHVzZWxlc3MgdGhhdCBpIGNhbiBzZWUuCgkkdmFsID0gYXJyYXkoKTsKCWlmKCAkdGhpcy0+VmFsdWUgIT09IGZhbHNlICl7CgkJCgkJJHZhbCA9ICR0aGlzLT5WYWx1ZTsKCQkKCQlpZiggIWlzX2FycmF5KCAkdGhpcy0+VmFsdWUgKSApewoJCQkkdmFsID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQl9Cgl9CgkqLwoJCglnbG9iYWwgJGdDbXM7CgkkZ0Ntcy0+c21hcnR5LT5hc3NpZ24oJ0ZCaWQnLCRpZC4nZmJycF9fJy4kdGhpcy0+SWQpOwoJLy8gZm9yIHNlbGVjdGVkLi4uIHdoYXQgdG8gZG8gaGVyZSAgCgkvLyBmb3IgdGhpbmdzIGxpa2UgY2hlY2tlZD0iY2hlY2tlZCIgb24gdGhlIGJhY2sgcGFnZQoJJGdDbXMtPnNtYXJ0eS0+YXNzaWduKCdGQnZhbHVlJywkdGhpcy0+VmFsdWUpOwoJCiAgICByZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHYpOzsKICB9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCdoZWxwX21vZHVsZV9pbnRlcmZhY2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5MYW5nKCdoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZycpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF90YWcnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfdmFsdWUnLCR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyksMTAwLDEwMjQpKQoJCSk7CgkJJGFkdiA9IGFycmF5KCk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoJCmZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCiAgICBpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpIHsKCQkKCQkkZmllbGRSZXQgPSBhcnJheSgpOwoJCWlmICghaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkgewoJCQoJCQkkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJCX0KCQkKCQlpZiAoJGFzX3N0cmluZykgewoJCQlyZXR1cm4gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJHRoaXMtPlZhbHVlKTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQl9CgkJCiAgICB9IGVsc2UgewoJCQoJCWlmICgkYXNfc3RyaW5nKSB7CgkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCX0gZWxzZSB7CgkJCgkJCXJldHVybiBhcnJheSgkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCQl9CiAgICB9CgkKICB9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/MultiselectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYk11bHRpc2VsZWN0RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKCWZ1bmN0aW9uIGZiTXVsdGlzZWxlY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnTXVsdGlzZWxlY3RGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5vcHRpb25BZGQgPSAwOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDI7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQkkc3ViamVjdHMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJCXsKCQkJJHZhbCA9IGFycmF5KCk7CgkJCX0KCQllbHNlaWYgKCFpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSR2YWwgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR2YWwgPSAkdGhpcy0+VmFsdWU7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICRzb3J0ZWQsJHZhbCwgJHRoaXMtPkdldE9wdGlvbignbGluZXMnLCczJyksCiAgICAgICAgICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdvcHRpb25fbmFtZScsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ29wdGlvbnMnLCRudW0pOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50SXRlbXMoKTsKCQlpZiAoJHRoaXMtPm9wdGlvbkFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkJCSR0aGlzLT5vcHRpb25BZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX25hbWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xpbmVzX3RvX3Nob3cnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGluZXMnLCR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnMycpLDEwLDEwKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJJHZhbHMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fdmFsdWUnKTsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCQkJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJCXsKCQkJCSR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCQl9CgkJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc09uZSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGZpZWxkUmV0LCR2YWxzWyR0aGlzT25lIC0gMV0pOwoJCQkJfQoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJGZpZWxkUmV0KTsKCQkJCX0JCQkKCQkJfQoJCWVsc2UKCQkJewoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkJCQl9CgkJCX0KCQoJfQkKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/PageBreakField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlBhZ2VCcmVha0ZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiUGFnZUJyZWFrRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdQYWdlQnJlYWtGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSBmYWxzZTsKCQkkdGhpcy0+UmVxdWlyZWQgPSBmYWxzZTsKCQkvLyR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnKTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQpCgl7Cgl9CgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCXJldHVybiBhcnJheSgpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZAogICAgICAkdGhpcy0+UmVtb3ZlQWRtaW5GaWVsZCgkbWFpbkFycmF5LCAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKTsKICAgICAgJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7Cgl9CgkKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/PasswordAgainField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlBhc3N3b3JkQWdhaW5GaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlBhc3N3b3JkQWdhaW5GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKCQkkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1Bhc3N3b3JkQWdhaW5GaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKCQkJKTsKCQkkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CiAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2hpZGUnLCcxJykgPT0gJzAnKQogICAgICAgewoJICAgICByZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCQkgICAgKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6JycpLAogICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSwKICAgICAgICAgICAgMjU1LAoJCQkkanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwogICAgICAgIH0KICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgIHJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFBhc3N3b3JkKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAogICAgICAgICAgICAoJHRoaXMtPlZhbHVlPyR0aGlzLT5WYWx1ZTonJyksICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpLAogICAgICAgICAgICAyNTUsICRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CiAgICAgICAgIH0KICAgfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2lkJykgLiAnOiAnIC4gJHRoaXMtPkdldE9wdGlvbignZmllbGRfdG9fdmFsaWRhdGUnLCcnKTsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZsZHMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCSRvcHRzID0gYXJyYXkoKTsKCQlmb3JlYWNoICgkZmxkcyBhcyAkdGYpCgkJCXsKCQkJaWYgKCR0Zi0+R2V0RmllbGRUeXBlKCkgPT0gJ1Bhc3N3b3JkRmllbGQnKQogICAgICAgICAgICB7CgkJCSAgICRvcHRzWyR0Zi0+R2V0TmFtZSgpXT0kdGYtPkdldE5hbWUoKTsKCQkJICAgfQoJCQl9CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoCgkJCQkkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF90b192YWxpZGF0ZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpZWxkX3RvX3ZhbGlkYXRlJywgJG9wdHMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF90b192YWxpZGF0ZScpKQoJCQkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXNwbGF5X2xlbmd0aCcpLAoJCQkgICAgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgJ2ZicnBfb3B0X2xlbmd0aCcsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzEyJyksMjUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWluaW11bV9sZW5ndGgnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF9taW5fbGVuZ3RoJywKCQkJICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbWluX2xlbmd0aCcsJzgnKSwyNSwyNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oaWRlJyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2hpZGUnLCcwJykuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oaWRlJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignaGlkZScsJzEnKSkuJG1vZC0+TGFuZygndGl0bGVfaGlkZV9oZWxwJykpLAoKCQkpOwoKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbik7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSRmaWVsZF90b192YWxpZGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX3ZhbGlkYXRlJywnJyk7CgoJCWlmICgkZmllbGRfdG9fdmFsaWRhdGUgIT0gJycpCgkJewoJCQlmb3JlYWNoICgkdGhpcy0+Zm9ybV9wdHItPkZpZWxkcyBhcyAkb25lX2ZpZWxkKQoJCQl7CgkJCQlpZiAoJG9uZV9maWVsZC0+TmFtZSA9PSAkZmllbGRfdG9fdmFsaWRhdGUpCgkJCQl7CgkJCQkJJHZhbHVlID0gJG9uZV9maWVsZC0+R2V0VmFsdWUoKTsKCQkJCQlpZiAoJHZhbHVlICE9ICR0aGlzLT5WYWx1ZSkKCQkJCQl7CgkJCQkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwYXNzd29yZF9kb2VzX25vdF9tYXRjaCcsICRmaWVsZF90b192YWxpZGF0ZSk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/PasswordField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiUGFzc3dvcmRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlBhc3N3b3JkRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1Bhc3N3b3JkRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnKT0+J3JlZ2V4X21hdGNoJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJyk9PidyZWdleF9ub21hdGNoJwogICAgICAgICAgICApOwoKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgICRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCSAgJHJvID0gJyc7CiAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3JlYWRvbmx5JywnMCcpID09ICcxJykKICAgICAgICAgewogICAgICAgICAkcm8gPSAnIHJlYWRvbmx5PSJyZWFkb25seSInOwogICAgICAgICB9CiAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2hpZGUnLCcxJykgPT0gJzAnKQogICAgICAgewoJICAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQkJICAgICgkdGhpcy0+VmFsdWU/JHRoaXMtPlZhbHVlOicnKSwKICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyksCiAgICAgICAgICAgIDI1NSwKCQkJJGpzLiRyby4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CiAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0UGFzc3dvcmQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCiAgICAgICAgICAgICgkdGhpcy0+VmFsdWU/JHRoaXMtPlZhbHVlOicnKSwgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyksCiAgICAgICAgICAgIDI1NSwgJGpzLiRyby4kdGhpcy0+R2V0Q1NTSWRUYWcoKSk7CiAgICAgICAgIH0KCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCSAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgJHJldCA9ICRtb2QtPkxhbmcoJ2FiYnJldmlhdGlvbl9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJykpOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQogICAgICBpZiAoJHRoaXMtPkdldE9wdGlvbigncmVhZG9ubHknLCcwJykgPT0gJzEnKQogICAgICAgICB7CiAgICAgICAgICRyZXQgLj0gIiwgIi4kbW9kLT5MYW5nKCd0aXRsZV9yZWFkX29ubHknKTsKICAgICAgICAgfQoJCSByZXR1cm4gJHJldDsKCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlzcGxheV9sZW5ndGgnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF9sZW5ndGgnLAoJCQkgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCcxMicpLDI1LDI1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21pbmltdW1fbGVuZ3RoJyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnZmJycF9vcHRfbWluX2xlbmd0aCcsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ21pbl9sZW5ndGgnLCc4JyksMjUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaGlkZScpLAoJCQkgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9oaWRlJywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGlkZScsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2hpZGUnLCcxJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfaGVscCcpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcmVhZF9vbmx5JyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3JlYWRvbmx5JywnMCcpLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcmVhZG9ubHknLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdyZWFkb25seScsJzAnKSkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksCgkJCSAgICAgIGFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCQkgICdmYnJwX29wdF9yZWdleCcsCgkJCQkJCQkgICR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JyksMjUsMTAyNCksJG1vZC0+TGFuZygndGl0bGVfcmVnZXhfaGVscCcpKSksCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnbm9uZSc6CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X21hdGNoJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX3ZhbGlkJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgIAkgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9ub21hdGNoJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgfQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdtaW5fbGVuZ3RoJywwKSA+IDAgJiYgc3RybGVuKCR0aGlzLT5WYWx1ZSkgPCAkdGhpcy0+R2V0T3B0aW9uKCdtaW5fbGVuZ3RoJywwKSkKCQkJewoJCQkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2F0X2xlYXN0JywkdGhpcy0+R2V0T3B0aW9uKCdtaW5fbGVuZ3RoJywwKSk7CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/ProvincePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiUHJvdmluY2VQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJFByb3ZpbmNlczsKCQoJZnVuY3Rpb24gZmJQcm92aW5jZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnUHJvdmluY2VQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPlByb3ZpbmNlcyA9IGFycmF5KAogICAgICAgICJObyBEZWZhdWx0Ij0+JycsIkFsYmVydGEiPT4iQUIiLCAiQnJpdGlzaCBDb2x1bWJpYSI9PiJCQyIsICJNYW5pdG9iYSI9PiJNQiIsICJOZXcgQnJ1bnN3aWNrIj0+Ik5CIiwgCiAgICAgICAgIk5ld2ZvdW5kbGFuZCBhbmQgTGFicmFkb3IiPT4iTkwiLCAiTm9ydGh3ZXN0IFRlcnJpdG9yaWVzIj0+Ik5UIiwgIk5vdmEgU2NvdGlhIj0+Ik5TIiwgIk51bmF2dXQiPT4iTlUiLCAKICAgICAgICAiT250YXJpbyI9PiJPTiIsICJQcmluY2UgRWR3YXJkIElzbGFuZCI9PiJQRSIsICJRdWViZWMiPT4iUUMiLCAiU2Fza2F0Y2hld2FuIj0+IlNLIiwgIll1a29uIj0+IllUIik7CgoJfQoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkcmV0ID0gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+UHJvdmluY2VzKTsKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgoJCXVuc2V0KCR0aGlzLT5Qcm92aW5jZXNbJG1vZC0+TGFuZygnbm9fZGVmYXVsdCcpXSk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkdGhpcy0+UHJvdmluY2VzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJyksJHRoaXMtPlByb3ZpbmNlcyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHRoaXMtPlByb3ZpbmNlcyA9IGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpLCR0aGlzLT5Qcm92aW5jZXMpOwoJCQl9CgoKCQlpZiAoISAkdGhpcy0+SGFzVmFsdWUoKSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3Byb3ZpbmNlJywnJykgIT0gJycpCgkJICB7CgkJICAkdGhpcy0+U2V0VmFsdWUoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9wcm92aW5jZScsJycpKTsKCQkgIH0KCgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICR0aGlzLT5Qcm92aW5jZXMsIC0xLCAkdGhpcy0+VmFsdWUsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlrc29ydCgkdGhpcy0+UHJvdmluY2VzKTsKCgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHRfcHJvdmluY2UnLAogICAgICAgICAgICAJCSR0aGlzLT5Qcm92aW5jZXMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3Byb3ZpbmNlJywnJykpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/PulldownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlB1bGxkb3duRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKICAgIGZ1bmN0aW9uIGFycmF5X3NvcnRfYnlfa2V5KCRpbnB1dCkKCXsKCQlpZiggIWlzX2FycmF5KCRpbnB1dCkgKSByZXR1cm47CgkJJGExID0gYXJyYXkoKTsKCQlmb3JlYWNoKCAkaW5wdXQgYXMgJGsgPT4gJHYgKSB7CgkJCSRhMVskdl0gPSAkazsKCQl9CgkJYXNvcnQoJGExKTsKCQkkYTIgPSBhcnJheSgpOwoJCWZvcmVhY2goICRhMSBhcyAkayA9PiAkdiApIHsKCQkJJGEyWyR2XSA9ICRrOwoJCX0KCQlyZXR1cm4gJGEyOwoJfQoKCWZ1bmN0aW9uIGZiUHVsbGRvd25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1B1bGxkb3duRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5vcHRpb25BZGQgPSAwOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQkkc3ViamVjdHMgPSAkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkgewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspIHsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQl9CgkJCWlmKCAkdGhpcy0+R2V0T3B0aW9uKCdzb3J0JykgPT0gJzEnICkgewoJCQkJa3NvcnQoJHNvcnRlZCk7CgkJCX0KCQl9CgkJZWxzZSB7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQl9CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpIHsKCQkJJHNvcnRlZCA9IGFycmF5KCcgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyk9PicnKSArICRzb3J0ZWQ7CgkJfQoJCWVsc2UgewoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpICsgJHNvcnRlZDsKCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl9uYW1lJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnb3B0aW9ucycsJG51bSk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkkdGhpcy0+Y291bnRJdGVtcygpOwoJCWlmICgkdGhpcy0+b3B0aW9uQWRkID4gMCkKCQkJewoJCQkkdGhpcy0+b3B0aW9uQ291bnQgKz0gJHRoaXMtPm9wdGlvbkFkZDsKCQkJJHRoaXMtPm9wdGlvbkFkZCA9IDA7CgkJCX0KCQkkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9vcHRpb25fbmFtZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9vcHRpb25fdmFsdWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKCgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+b3B0aW9uQ291bnQ+MT8kdGhpcy0+b3B0aW9uQ291bnQ6MSk7JGkrKykKCQkJewoJCQkkZGVzdHMgLj0gICc8dHI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X29wdGlvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fbmFtZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X29wdGlvbl92YWx1ZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQl9CgkJJGRlc3RzIC49ICc8L3RhYmxlPic7CgkJJG1haW4gPSBhcnJheSgpOwoJCSRhZHYgPSBhcnJheSgpOwoJCSRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkJCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+TGFuZygnc2VsZWN0X29uZScpKSwyNSwxMjgpKTsKCQkkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygnc29ydF9vcHRpb25zJyksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zb3J0JywKCQkJCQkJCQkJCQkJICBhcnJheSgnWWVzJz0+MSwnTm8nPT4wKSwtMSwKCQkJCQkJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdzb3J0JywwKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfcHVsbGRvd25fZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsKCR0aGlzLT5WYWx1ZS0xKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJLy8kcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJJHJldCA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/RadioGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlJhZGlvR3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgkKICBmdW5jdGlvbiBmYlJhZGlvR3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdSYWRpb0dyb3VwRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKCiAgfQoKICBmdW5jdGlvbiBjb3VudEJveGVzKCkKICB7CiAgICAkdG1wID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX25hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ID0gY291bnQoJHRtcCk7CiAgICAgIH0KICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCiAgICAgIHsKCSR0aGlzLT5vcHRpb25Db3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5jb3VudEJveGVzKCk7CiAgICAkcmV0ID0gJG1vZC0+TGFuZygnb3B0aW9ucycsJHRoaXMtPm9wdGlvbkNvdW50KTsKICAgIGlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQogICAgICB7CgkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKICAgICAgfQogICAgcmV0dXJuICRyZXQ7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKICB9CgogIGZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfb3B0aW9ucycpOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRuYW1lcyA9ICR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICAkaXNfc2V0ID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX2lzX3NldCcpOwoJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKICAgICRmaWVsZERpc3AgPSBhcnJheSgpOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKICAgICAgewoJJGxhYmVsID0gJyc7CgkkdGhpc0JveCA9IG5ldyBzdGRDbGFzcygpOwoJaWYgKHN0cmxlbigkbmFtZXNbJGldKSA+IDApCgkgIHsKCSAgICAkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnXycuJGkpLiciPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJICAgICR0aGlzQm94LT50aXRsZSA9ICRuYW1lc1skaV07CgkgIH0KCSRjaGVja192YWwgPSBmYWxzZTsKCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJICB7CgkgICAgJGNoZWNrX3ZhbCA9ICR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaSsxKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgaWYgKGlzc2V0KCRpc19zZXRbJGldKSAmJiAkaXNfc2V0WyRpXSA9PSAneScpCgkgICAgICB7CgkJJGNoZWNrX3ZhbCA9IHRydWU7CgkgICAgICB9CQkJCQoJICB9CgkkdGhpc0JveC0+aW5wdXQgPSAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSInLiRpZC4nZmJycF9fJy4kdGhpcy0+SWQuJyIgdmFsdWU9IicuKCRpKzEpLiciJzsKCWlmICgkY2hlY2tfdmFsKQoJICB7CgkgICAgJHRoaXNCb3gtPmlucHV0IC49ICcgY2hlY2tlZD0iY2hlY2tlZCInOwoJICB9CgkkdGhpc0JveC0+aW5wdXQgLj0gJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnXycuJGkpLicgLz4nOwoJYXJyYXlfcHVzaCgkZmllbGREaXNwLCAkdGhpc0JveCk7CiAgICAgIH0KICAgIHJldHVybiAkZmllbGREaXNwOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQogICAgICB7CgkgICAkcmV0ID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywoJHRoaXMtPlZhbHVlIC0gMSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSAgICRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgICAgfQoJaWYgKCRhc19zdHJpbmcpCgkJewoJCXJldHVybiAkcmV0OwoJCX0KCWVsc2UKCQl7CgkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCX0KICB9CgoKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJICB7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9uYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2lzX3NldCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkZGVsY291bnQrKzsKCSAgfQogICAgICB9CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkeWVzTm8gPSBhcnJheSgkbW9kLT5MYW5nKCdubycpPT4nbicsJG1vZC0+TGFuZygneWVzJyk9Pid5Jyk7CgogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICAgIGlmICgkdGhpcy0+b3B0aW9uQWRkID4gMCkKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICAgfQogICAgJGJveGVzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfcmFkaW9fbGFiZWwnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3NldCcpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4KICAgICAgJzwvdGg+PC90cj4nOwoKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5vcHRpb25Db3VudD4xPyR0aGlzLT5vcHRpb25Db3VudDoxKTskaSsrKQogICAgICB7CgkkYm94ZXMgLj0gJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2J1dHRvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX2NoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX2lzX3NldFtdJywgJHllc05vLCAtMSwgJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCRpKSkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KCSAgJzwvdGQ+PC90cj4nOwogICAgICB9CiAgICAkYm94ZXMgLj0gJzwvdGFibGU+JzsKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnKSwkYm94ZXMpCgkJICApOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKCiAgZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCiAgewogICAgJG5hbWVzID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX25hbWUnKTsKICAgICRjaGVja2VkID0gJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX2NoZWNrZWQnKTsKICAgIGZvciAoJGk9MDskaTxjb3VudCgkbmFtZXMpOyRpKyspCiAgICAgIHsKCWlmICgkbmFtZXNbJGldID09ICcnICYmICRjaGVja2VkWyRpXSA9PSAnJyApCgkgIHsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX25hbWUnLCAkaSk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywgJGkpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25faXNfc2V0JywgJGkpOwoJICAgICRpLS07CgkgIH0KICAgICAgfQogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/StatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiU3RhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJFN0YXRlczsKCQoJZnVuY3Rpb24gZmJTdGF0ZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnU3RhdGVQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCiAgICAgICAgJHRoaXMtPlN0YXRlcyA9IGFycmF5KAogICAgICAgICJObyBEZWZhdWx0Ij0+JycsIkFsYWJhbWEiPT4iQUwiLCAiQWxhc2thIj0+IkFLIiwgIkFyaXpvbmEiPT4iQVoiLCAiQXJrYW5zYXMiPT4iQVIiLCAKICAgICAgICAiQ2FsaWZvcm5pYSI9PiJDQSIsICJDb2xvcmFkbyI9PiJDTyIsICJDb25uZWN0aWN1dCI9PiJDVCIsICJEZWxhd2FyZSI9PiJERSIsIAogICAgICAgICJGbG9yaWRhIj0+IkZMIiwgIkdlb3JnaWEiPT4iR0EiLCAiSGF3YWlpIj0+IkhJIiwgIklkYWhvIj0+IklEIiwgCiAgICAgICAgIklsbGlub2lzIj0+IklMIiwgIkluZGlhbmEiPT4iSU4iLCAiSW93YSI9PiJJQSIsIAogICAgICAgICJLYW5zYXMiPT4iS1MiLCAiS2VudHVja3kiPT4iS1kiLCAiTG91aXNpYW5hIj0+IkxBIiwgIk1haW5lIj0+Ik1FIiwKICAgICAgICAiTWFyeWxhbmQiPT4iTUQiLCAiTWFzc2FjaHVzZXR0cyI9PiJNQSIsIAogICAgICAgICJNaWNoaWdhbiI9PiJNSSIsICJNaW5uZXNvdGEiPT4iTU4iLCAiTWlzc2lzc2lwcGkiPT4iTVMiLAogICAgICAgICJNaXNzb3VyaSI9PiJNTyIsICJNb250YW5hIj0+Ik1UIiwgIk5lYnJhc2thIj0+Ik5FIiwgCiAgICAgICAgIk5ldmFkYSI9PiJOViIsICJOZXcgSGFtcHNoaXJlIj0+Ik5IIiwgIk5ldyBKZXJzZXkiPT4iTkoiLAogICAgICAgICJOZXcgTWV4aWNvIj0+Ik5NIiwgIk5ldyBZb3JrIj0+Ik5ZIiwgCiAgICAgICAgIk5vcnRoIENhcm9saW5hIj0+Ik5DIiwgIk5vcnRoIERha290YSI9PiJORCIsICJPaGlvIj0+Ik9IIiwKICAgICAgICAiT2tsYWhvbWEiPT4iT0siLCAiT3JlZ29uIj0+Ik9SIiwgCiAgICAgICAgIlBlbm5zeWx2YW5pYSI9PiJQQSIsICJSaG9kZSBJc2xhbmQiPT4iUkkiLCAiU291dGggQ2Fyb2xpbmEiPT4iU0MiLAogICAgICAgICJTb3V0aCBEYWtvdGEiPT4iU0QiLCAiVGVubmVzc2VlIj0+IlROIiwgIlRleGFzIj0+IlRYIiwgIlV0YWgiPT4iVVQiLAogICAgICAgICJWZXJtb250Ij0+IlZUIiwgIlZpcmdpbmlhIj0+IlZBIiwgIldhc2hpbmd0b24iPT4iV0EiLAogICAgICAgICJEaXN0cmljdCBvZiBDb2x1bWJpYSI9PiJEQyIsICJXZXN0IFZpcmdpbmlhIj0+IldWIiwgIldpc2NvbnNpbiI9PiJXSSIsCiAgICAgICAgIld5b21pbmciPT4iV1kiKTsKCgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRyZXQgPSBhcnJheV9zZWFyY2goJHRoaXMtPlZhbHVlLCR0aGlzLT5TdGF0ZXMpOwoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQkJCgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKCQl1bnNldCgkdGhpcy0+U3RhdGVzWyRtb2QtPkxhbmcoJ25vX2RlZmF1bHQnKV0pOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHRoaXMtPlN0YXRlcyA9IGFycmF5X21lcmdlKGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpLCR0aGlzLT5TdGF0ZXMpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR0aGlzLT5TdGF0ZXMgPSBhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyk9PicnKSwkdGhpcy0+U3RhdGVzKTsKCQkJfQoKCgkJaWYgKCEgJHRoaXMtPkhhc1ZhbHVlKCkgJiYgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9zdGF0ZScsJycpICE9ICcnKQoJCSAgewoJCSAgJHRoaXMtPlNldFZhbHVlKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfc3RhdGUnLCcnKSk7CgkJICB9CgoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkdGhpcy0+U3RhdGVzLCAtMSwgJHRoaXMtPlZhbHVlLCAkanMuJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWtzb3J0KCR0aGlzLT5TdGF0ZXMpOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9zdGF0ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPlN0YXRlcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfc3RhdGUnLCcnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+TGFuZygnc2VsZWN0X29uZScpKSkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/StaticTextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN0YXRpY1RleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN0YXRpY1RleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1N0YXRpY1RleHRGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gZmFsc2U7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPkhhc0xhYmVsID0gMDsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpID09ICcxJykKICAgICAgICAgewogICAgICAgICAkdGhpcy0+U2V0U21hcnR5RXZhbCh0cnVlKTsKICAgICAgICAgfQoJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJyk7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJIHJldHVybiAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkxhbmcoJ3RleHRfbGVuZ3RoJyxzdHJsZW4oJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpKSk7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkcmV0ID0gJ1tzdGF0aWMgdGV4dCBmaWVsZF0nOwoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQkJCgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV90ZXh0JyksCgkJCQkkbW9kLT5DcmVhdGVUZXh0QXJlYSgoZ2V0X3ByZWZlcmVuY2UoZ2V0X3VzZXJpZCgpLCAndXNlX3d5c2l3eWcnKT09JzEnKSwgJGZvcm1EZXNjcmlwdG9yLCAgJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpLCAnZmJycF9vcHRfdGV4dCcsJ3BhZ2VoZWFkdGFncycpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc21hcnR5X2V2YWwnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc21hcnR5X2V2YWwnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdzbWFydHlfZXZhbCcsJzAnKSkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/SystemLinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN5c3RlbUxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN5c3RlbUxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gICdTeXN0ZW1MaW5rRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+UmVxdWlyZWQgPSBmYWxzZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAgICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJHRoaXNMaW5rID0gbmV3IHN0ZENsYXNzKCk7CgkJZ2xvYmFsICRnQ21zOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdhdXRvX2xpbmsnLCcwJykgPT0gJzEnKQoJCQl7CgkJCSRwYWdlaW5mbyA9ICRnQ21zLT52YXJpYWJsZXNbJ3BhZ2VpbmZvJ107CgkJCSR0aGlzTGluay0+aW5wdXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRwYWdlaW5mby0+Y29udGVudF9pZCwgJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlKTsKCQkJJHRoaXNMaW5rLT5uYW1lID0gJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlOwoJCQkkdGhpc0xpbmstPnRpdGxlID0gJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRjb250ZW50b3BzID0gJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICAJCSRjb2JqID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCR0aGlzLT5HZXRPcHRpb24oJ3RhcmdldF9wYWdlJywnMCcpKTsKCQkJJHRoaXNMaW5rLT5pbnB1dCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+Q3JlYXRlQ29udGVudExpbmsoJGNvYmotPklkKCksICRjb2JqLT5OYW1lKCkpOwoJCQkkdGhpc0xpbmstPm5hbWUgPSAkY29iai0+TmFtZSgpOwoJCQkkdGhpc0xpbmstPnRpdGxlID0gJGNvYmotPk5hbWUoKTsKCQkJfQoJCXJldHVybiBhcnJheSgkdGhpc0xpbmspOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJZ2xvYmFsICRnQ21zOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdhdXRvX2xpbmsnLCcwJykgPT0gJzEnKQoJCQl7CgkJCSRwYWdlaW5mbyA9ICRnQ21zLT52YXJpYWJsZXNbJ3BhZ2VpbmZvJ107CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRwYWdlaW5mby0+Y29udGVudF9pZCwgJHBhZ2VpbmZvLT5jb250ZW50X3RpdGxlKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgCQkkY29iaiA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkdGhpcy0+R2V0T3B0aW9uKCd0YXJnZXRfcGFnZScsJzAnKSk7CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRjb2JqLT5JZCgpLCAkY29iai0+TmFtZSgpKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCWdsb2JhbCAkZ0NtczsKICAgIAkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoKCQkkbWFpbiA9IGFycmF5KAoJCSAJCSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZScpLCRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYXV0b19saW5rJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignYXV0b19saW5rJywnMCcpKS4kbW9kLT5MYW5nKCd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJykpLAogICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbGlua190b19zaXRlcGFnZScpLAoJCQkJIAkkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldE9wdGlvbigndGFyZ2V0X3BhZ2UnLCcnKSwgJGZvcm1EZXNjcmlwdG9yLidmYnJwX29wdF90YXJnZXRfcGFnZScpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TextAreaField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlndGggKGMpMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRBcmVhRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJUZXh0QXJlYUZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewoJCSR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwoJCSRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnVGV4dEFyZWFGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKCQkJJG1vZC0+TGFuZygndmFsaWRhdGlvbl9sZW5ndGgnKT0+J2xlbmd0aCcKICAgICAgICAgICAgKTsKCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7ICAgICAgICAgICAgCgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsJCgkJJHJldCA9ICRtb2QtPkNyZWF0ZVRleHRBcmVhKCgkdGhpcy0+R2V0T3B0aW9uKCd3eXNpd3lnJywnMCcpID09ICcxJz90cnVlOmZhbHNlKSwkaWQsKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6JHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpKSwKCQkJCSAgICdmYnJwX18nLiR0aGlzLT5JZCwnJywkdGhpcy0+R2V0Q1NTSWQoKSwnJywnJywkdGhpcy0+R2V0T3B0aW9uKCdjb2xzJywnODAnKSwkdGhpcy0+R2V0T3B0aW9uKCdyb3dzJywnMTUnKSk7CgkJCQkgICAKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKT09JzEnKSB7CgkJCSRyZXQgLj0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4nOwoJCQkkcmV0IC49ICJcbnZhciBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIuJHRoaXMtPkdldENTU0lkKCkuIicpO1xuIjsKCQkJJHJldCAuPSAiaWYgKGYpXG57XG5mLm9uZm9jdXM9ZnVuY3Rpb24oKXtcbmlmICh0aGlzLnZhbHVlPT10aGlzLmRlZmF1bHRWYWx1ZSkge3RoaXMudmFsdWU9Jyc7fVxufVxuIjsKCQkJJHJldCAuPSAiZi5vbmJsdXI9ZnVuY3Rpb24oKXtcbmlmICh0aGlzLnZhbHVlPT0nJykge3RoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWU7fVxufVxuIjsKCQkJJHJldCAuPSAifVxuOyI7CgkJCSRyZXQgLj0gIjwvc2NyaXB0PlxuIjsKCQl9CgoJCXJldHVybiAkcmV0OwogICB9CglmdW5jdGlvbiBWYWxpZGF0ZSgpewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbGVuZ3RoID0gJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnJyk7CgkJaWYoaXNfbnVtZXJpYygkbGVuZ3RoKSAmJiAkbGVuZ3RoID4gMCl7CgkJCWlmKChzdHJsZW4oJHRoaXMtPlZhbHVlKS0xKSA+ICRsZW5ndGgpewoJCQkJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJywgJGxlbmd0aCk7CgkJCX0KCQkJJHRoaXMtPlZhbHVlID0gc3Vic3RyKCR0aGlzLT5WYWx1ZSwgMCwgJGxlbmd0aCsxKTsKCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRyZXQgPSAnJzsKCgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApIHsKCQkKCQkJJHJldCA9IGFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJfQoJCQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCd3eXNpd3lnJywnMCcpID09ICcxJykgewoJCQoJCQkkcmV0IC49ICcgd3lzaXd5Zyc7CgkJfSBlbHNlIHsKCQkKCQkJJHJldCAuPSAnIG5vbi13eXNpd3lnJzsKCQl9CgkJCgkJJHJldCAuPSAgJywgJy4kbW9kLT5MYW5nKCdyb3dzJywkdGhpcy0+R2V0T3B0aW9uKCdyb3dzJywnMTUnKSk7CgkJJHJldCAuPSAgJywgJy4kbW9kLT5MYW5nKCdjb2xzJywkdGhpcy0+R2V0T3B0aW9uKCdjb2xzJywnODAnKSk7CgkJCgkJcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgICAkbWFpbiA9IGFycmF5KAogICAgICAgICAJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdXNlX3d5c2l3eWcnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF93eXNpd3lnJywnMCcpLgoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3d5c2l3eWcnLCcxJywkdGhpcy0+R2V0T3B0aW9uKCd3eXNpd3lnJywnMCcpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHRhcmVhX3Jvd3MnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfcm93cycsJHRoaXMtPkdldE9wdGlvbigncm93cycsJzE1JyksNSw1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHRhcmVhX2NvbHMnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY29scycsJHRoaXMtPkdldE9wdGlvbignY29scycsJzgwJyksNSw1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJycpLCA1LCA1KSkKICAgICAgICAgICAgKTsKCSAgICRhZHYgPSBhcnJheShhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksCgkJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLAoJCQkJCQkJCSAgICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLAoJCQkJCQkJCSAgICdmYnJwX29wdF9kZWZhdWx0JwoJCQkJICAgICAgICAgICAgICAgKSksICAgICAgICApOwoJCQoJICAgJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJyksJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JyksJ2ZicnBfb3B0X2RlZmF1bHQnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHQnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJykpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCcpKQoJCSk7CgogICAgICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkKCQkvLyBoaWRlICJqYXZhc2NyaXB0IgoJCSR0aGlzLT5SZW1vdmVBZG1pbkZpZWxkKCRhZHZBcnJheSwgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9udW1lcmljJyk9PidudW1lcmljJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9pbnRlZ2VyJyk9PidpbnRlZ2VyJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl91c3Bob25lJyk9Pid1c3Bob25lJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJyk9PidlbWFpbCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnKT0+J3JlZ2V4X21hdGNoJywKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJyk9PidyZWdleF9ub21hdGNoJwogICAgICAgICAgICApOwoKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQkkcm8gPSAnJzsKCQkKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVhZG9ubHknLCcwJykgPT0gJzEnKSB7CgkJCSRybyA9ICcgcmVhZG9ubHk9InJlYWRvbmx5Iic7CiAgICAgICAgfQoJCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2h0bWw1JywnMCcpID09ICcxJykKCQkJewoJCQlyZXR1cm4gJG1vZC0+ZmJDcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsJHRoaXMtPlZhbHVlLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpPDI1PyR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpOjI1LAoJCQkJJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyksCgkJCQkJJyBwbGFjZWhvbGRlcj0iJy4kdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JykuJyInLiRqcy4kcm8uJHRoaXMtPkdldENTU0lkVGFnKCkpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAkbW9kLT5mYkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwoJHRoaXMtPkhhc1ZhbHVlKCk/JHRoaXMtPlZhbHVlOiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKSksJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk8MjU/JHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk6MjUsICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpLAoJCQkJKCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJyk9PTE/KCcgb25mb2N1cz0iaWYodGhpcy52YWx1ZT09dGhpcy5kZWZhdWx0VmFsdWUpIHRoaXMudmFsdWU9XCdcJzsiIG9uYmx1cj0iaWYodGhpcy52YWx1ZT09XCdcJykgdGhpcy52YWx1ZT10aGlzLmRlZmF1bHRWYWx1ZTsiJyk6JyAnKS4kanMuJHJvLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9ICRtb2QtPkxhbmcoJ2FiYnJldmlhdGlvbl9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJykpOwoJCQoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKSB7CgkJCgkJICAJJHJldCAuPSAiLCAiLmFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJfQoJCQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdyZWFkb25seScsJzAnKSA9PSAnMScpIHsKICAgICAgICAKCQkJJHJldCAuPSAiLCAiLiRtb2QtPkxhbmcoJ3RpdGxlX3JlYWRfb25seScpOwogICAgICAgIH0KCQkgCgkJcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fbGVuZ3RoJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2xlbmd0aCcsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSwyNSwyNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yZWFkX29ubHknKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yZWFkb25seScsJzAnKS4KCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yZWFkb25seScsJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3JlYWRvbmx5JywnMCcpKSkKCQkpOwoKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3JlZ2V4JywkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcpLDI1LDEwMjQpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX3JlZ2V4X2hlbHAnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdCcsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLDI1LDEwMjQpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaHRtbDUnKSwkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2h0bWw1JywnMCcpLgoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2h0bWw1JywnMScsJHRoaXMtPkdldE9wdGlvbignaHRtbDUnLCcwJykpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdCcpLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzAnKS4KCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywnMScsJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSkuJzxiciAvPicuJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJykpCQoJCSk7CgkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CgkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdudW1lcmljJzoKCQkJCSAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpICR0aGlzLT5WYWx1ZSA9IHRyaW0oJHRoaXMtPlZhbHVlKTsKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgiL14oW1xkXC5cLF0pKyQvaSIsICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX251bWJlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdpbnRlZ2VyJzoKCQkJCSAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpICR0aGlzLT5WYWx1ZSA9IHRyaW0oJHRoaXMtPlZhbHVlKTsKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgCSEgcHJlZ19tYXRjaCgiL14oW1xkXSkrJC9pIiwgJHRoaXMtPlZhbHVlKSB8fAogICAgICAgICAgICAgICAgICAgICAgaW50dmFsKCR0aGlzLT5WYWx1ZSkgIT0gJHRoaXMtPlZhbHVlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5faW50ZWdlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnZW1haWwnOgoJCQkJICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkgJHRoaXMtPlZhbHVlID0gdHJpbSgkdGhpcy0+VmFsdWUpOwogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3VzcGhvbmUnOgoJCQkJICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkgJHRoaXMtPlZhbHVlID0gdHJpbSgkdGhpcy0+VmFsdWUpOwogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCcvXihbMC05XVtcc1wuLV0/KT8oXCg/WzAtOV17M31cKT98WzAtOV17M30pW1xzXC4tXT8oWzAtOV17M31bXHNcLi1dP1swLTldezR9fFthLXpBLVowLTldezd9KShccz8oeHxleHR8ZXh0Lilccz9bYS16QS1aMC05XSspPyQvJywKICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9waG9uZScsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAncmVnZXhfbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X25vbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgIHByZWdfbWF0Y2goJHRoaXMtPkdldE9wdGlvbigncmVnZXgnLCcvLiovJyksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl92YWxpZCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAJICAgYnJlYWs7CgkJICB9CgkJICAKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSA+IDAgJiYgc3RybGVuKCR0aGlzLT5WYWx1ZSkgPiAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKQoJCQl7CgkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKTsKCQkJfQoJCQkKCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextFieldExpandable.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZEV4cGFuZGFibGUgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJUZXh0RmllbGRFeHBhbmRhYmxlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnVGV4dEZpZWxkRXhwYW5kYWJsZSc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNVc2VyQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNVc2VyRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKCQkkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CgoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSRzaWJsaW5nX2lkID0gJHRoaXMtPkdldE9wdGlvbignc2libGluZ3MnLCcnKTsKCQkkaGlkZWJ1dHRvbnMgPSAkdGhpcy0+R2V0T3B0aW9uKCdoaWRlYnV0dG9ucycsJycpOwoKCQlpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKSB7CgoJCQkkdmFscyA9IDE7CgkgICAgfSBlbHNlIHsKCgkJCSR2YWxzID0gY291bnQoJHRoaXMtPlZhbHVlKTsKCSAgICB9CgkJCgkJZm9yZWFjaCAoJHBhcmFtcyBhcyAkcEtleT0+JHBWYWwpIHsKCQkKCQkJaWYgKHN1YnN0cigkcEtleSwwLDkpID09ICdmYnJwX0ZlWF8nKSB7CgkJCQkKCQkJCSRwdHMgPSBleHBsb2RlKCdfJywkcEtleSk7CgkJCQlpZiAoJHB0c1syXSA9PSAkdGhpcy0+SWQgfHwgJHB0c1syXSA9PSAkc2libGluZ19pZCkgewoJCQkJCQoJCQkJCS8vIGFkZCByb3cKCQkJCQkkdGhpcy0+VmFsdWVbJHZhbHNdPScnOwoJCQkJCSR2YWxzKys7CgkJCQl9CiAgICAgICAgICAgIH0KCQkJCgkJCWVsc2UgaWYgKHN1YnN0cigkcEtleSwwLDkpID09ICdmYnJwX0ZlRF8nKSB7CgkJCQkKCQkJCSRwdHMgPSBleHBsb2RlKCdfJywkcEtleSk7CgkJCQlpZiAoJHB0c1syXSA9PSAkdGhpcy0+SWQgfHwgJHB0c1syXSA9PSAkc2libGluZ19pZCkgewoJCQkJCgkJCQkJLy8gZGVsZXRlIHJvdwoJCQkJCWlmIChpc3NldCgkdGhpcy0+VmFsdWVbJHB0c1syXV0pKSB7CgkJCQkJCgkJCQkJCWFycmF5X3NwbGljZSgkdGhpcy0+VmFsdWUsICRwdHNbMl0sIDEpOwoJCQkJCX0KCQkJCQkkdmFscy0tOwoJCQkJfQogICAgICAgICAgICB9CiAgICAgICAgfQoKCQkvLyBJbnB1dCBmaWVsZHMKCQkkcmV0ID0gYXJyYXkoKTsKCQlmb3IgKCRpPTA7JGk8JHZhbHM7JGkrKykgewoJCQoJCQkkdGhpc1JvdyA9IG5ldyBzdGRDbGFzcygpOwoKCQkJLy8kdGhpc1Jvdy0+bmFtZSA9ICcnOwoJCQkvLyR0aGlzUm93LT50aXRsZSA9ICcnOwoJCQkkdGhpc1Jvdy0+aW5wdXQgPSAkbW9kLT5mYkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCR0aGlzLT5WYWx1ZVskaV0sJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk8MjU/JHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk6MjUsCgkJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSwkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfJy4kaSkpOwoJCQkKCQkJaWYoISRoaWRlYnV0dG9ucykgJHRoaXNSb3ctPm9wID0gJG1vZC0+ZmJDcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX0ZlRF8nLiR0aGlzLT5JZC4nXycuJGksICR0aGlzLT5HZXRPcHRpb24oJ2RlbF9idXR0b24nLCdYJyksICR0aGlzLT5HZXRDU1NJZFRhZygnX2RlbF8nLiRpKS4oJHZhbHM9PTE/JyBkaXNhYmxlZD0iZGlzYWJsZWQiJzonJykpOwoKCQkJCgkJCWFycmF5X3B1c2goJHJldCwgJHRoaXNSb3cpOwogICAgICAgIH0KCQkKCQkvLyBBZGQgYnV0dG9uCgkJJHRoaXNSb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCQkvLyR0aGlzUm93LT5uYW1lID0gJyc7CgkJLy8kdGhpc1Jvdy0+dGl0bGUgPSAnJzsKCQkvLyR0aGlzUm93LT5pbnB1dCA9ICcnOwoJCWlmKCEkaGlkZWJ1dHRvbnMpICR0aGlzUm93LT5vcCA9ICRtb2QtPmZiQ3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9GZVhfJy4kdGhpcy0+SWQuJ18nLiRpLCAkdGhpcy0+R2V0T3B0aW9uKCdhZGRfYnV0dG9uJywnKycpLCAkdGhpcy0+R2V0Q1NTSWRUYWcoJ19hZGRfJy4kaSkpOwoJCQoJCWFycmF5X3B1c2goJHJldCwgJHRoaXNSb3cpOwoJCQoJCQoJCXJldHVybiAkcmV0OwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9ICRtb2QtPkxhbmcoJ2FiYnJldmlhdGlvbl9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJykpOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKSB7CgkJCgkJCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCX0KCQkKCQlyZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZyA9IHRydWUpCgl7CgkJJGZvcm0gPSAkdGhpcy0+Zm9ybV9wdHI7CgkJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkgewoJCQoJCQkkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICAgIH0KCQkKCQlpZiAoJGFzX3N0cmluZykgewoJCQoJCQlyZXR1cm4gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJHRoaXMtPlZhbHVlKTsKCQl9IGVsc2UgewoJCQoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fbGVuZ3RoJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfbGVuZ3RoJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpLDI1LDI1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF9idXR0b25fdGV4dCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2FkZF9idXR0b24nLCR0aGlzLT5HZXRPcHRpb24oJ2FkZF9idXR0b24nLCcrJyksMTUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVsX2J1dHRvbl90ZXh0JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfZGVsX2J1dHRvbicsJHRoaXMtPkdldE9wdGlvbignZGVsX2J1dHRvbicsJ1gnKSwxNSwyNSkpCgkJKTsKCQkKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3JlZ2V4JywkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcpLDI1LDI1NSkuJzxiciAvPicuJG1vZC0+TGFuZygndGl0bGVfcmVnZXhfaGVscCcpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfc2libGluZ3MnKSwkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NpYmxpbmdzJywkdGhpcy0+R2V0RmllbGRTaWJsaW5ncygpLC0xLCR0aGlzLT5HZXRPcHRpb24oJ3NpYmxpbmdzJywnJykpLic8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zJyksJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9oaWRlYnV0dG9ucycsMCkuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaGlkZWJ1dHRvbnMnLDEsJHRoaXMtPkdldE9wdGlvbignaGlkZWJ1dHRvbnMnLDApKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oaWRlYnV0dG9uc19oZWxwJykpCQkJCQoJCSk7CgkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIExhYmVsU3ViQ29tcG9uZW50cygpCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQkKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CgkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJICAgIHsKCQkgICAgJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkgICAgfQoJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc1ZhbCkKCQkgICAgewoJCSAgICBzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgICAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdudW1lcmljJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCIvXihbXGRcLlwsXSkrJC9pIiwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9udW1iZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnaW50ZWdlcic6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgCSEgcHJlZ19tYXRjaCgiL14oW1xkXSkrJC9pIiwgJHRoaXNWYWwpIHx8CiAgICAgICAgICAgICAgICAgICAgICBpbnR2YWwoJHRoaXNWYWwpICE9ICR0aGlzVmFsKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5faW50ZWdlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXNWYWwgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzVmFsKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X25vbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXNWYWwgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgfQoJCSAgCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkgPiAwICYmIHN0cmxlbigkdGhpc1ZhbCkgPiAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKQoJCQl7CgkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKTsKCQkJfQoJCX0KCQkKCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQoJCgkvLyBHZXRzIGFsbCBtaXJyb3IgZmllbGRzIG9mIHRoaXMgZmllbGQKCWZ1bmN0aW9uIEdldEZpZWxkU2libGluZ3MoKSAKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmb3JtID0gJHRoaXMtPmZvcm1fcHRyOwoJCSRzaWJsaW5ncyA9IGFycmF5KCk7CgkJCgkJJHNpYmxpbmdzWyRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV0gPSAnJzsKCQoJCWZvciAoJGk9MDsgJGkgPCBjb3VudCgkZm9ybS0+RmllbGRzKTsgJGkrKykgewoJCgkJCSR0aGlzRmllbGQgPSAmJGZvcm0tPkZpZWxkc1skaV07CgkKCQkJaWYgKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdUZXh0RmllbGRFeHBhbmRhYmxlJyAmJiAkdGhpc0ZpZWxkLT5HZXRJZCgpICE9ICR0aGlzLT5HZXRJZCgpKSB7CgkJCgkJCQkkc2libGluZ3NbJHRoaXNGaWVsZC0+R2V0TmFtZSgpXSA9ICR0aGlzRmllbGQtPkdldElkKCk7CgkJCQkKCQkJfQoJCX0KCQkKCQlyZXR1cm4gJHNpYmxpbmdzOwoJCgl9CgkKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TimePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRpbWVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGZsYWcxMmhvdXI7CgkKCWZ1bmN0aW9uIGZiVGltZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnVGltZVBpY2tlckZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICApOwogICAgICAkdGhpcy0+ZmxhZzEyaG91ciA9IGFycmF5KAoJCSAgCSRtb2QtPkxhbmcoJ3RpdGxlX2JlZm9yZV9ub29uJyk9PiRtb2QtPkxhbmcoJ3RpdGxlX2JlZm9yZV9ub29uJyksCiAgICAgICAgCSRtb2QtPkxhbmcoJ3RpdGxlX2FmdGVyX25vb24nKT0+JG1vZC0+TGFuZygndGl0bGVfYWZ0ZXJfbm9vbicpKTsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKICAgICR0aGlzLT5sYWJlbFN1YkNvbXBvbmVudHMgPSBmYWxzZTsKCX0KCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICgkdGhpcy0+R2V0T3B0aW9uKCcyNF9ob3VyJywnMCcpID09ICcwJz8kbW9kLT5MYW5nKCcxMl9ob3VyJyk6JG1vZC0+TGFuZygnMjRfaG91cicpKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJCiAgICAgICAkbm93ID0gbG9jYWx0aW1lKHRpbWUoKSx0cnVlKTsKICAgICAgICRNaW5zID0gYXJyYXkoKTsKICAgICAgICRIb3VycyA9IGFycmF5KCk7CiAgICAgICAkcmV0ID0gYXJyYXkoKTsKICAgICAgIGZvciAoJGk9MDskaTw2MDskaSsrKQogICAgICAgCXsKCQkJJG1vID0gc3ByaW50ZigiJTAyZCIsJGkpOwoJCQkkTWluc1skbW9dPSRtbzsKCQkJfQogICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykgPT0gJzAnKQogICAgICAgCQl7CiAgICAgICAJCWZvciAoJGk9MTskaTwxMzskaSsrKQogICAgICAgCQl7CgkJCQkJJG1vID0gc3ByaW50ZigiJTAyZCIsJGkpOwoJCQkJCSRIb3Vyc1skbW9dPSRtbzsKCQkJCX0KCQkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQkJewoJCQkJJG5vd1sndG1faG91ciddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCk7CgkJCQkkbm93WydtZXJpZCddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMik7CgkJCQkkbm93Wyd0bV9taW4nXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkbm93WydtZXJpZCddID0gJG1vZC0+TGFuZygndGl0bGVfYmVmb3JlX25vb24nKTsKCQkJCWlmICgkbm93Wyd0bV9ob3VyJ10gPiAxMikKCQkJCQl7CgkJCQkJJG5vd1sndG1faG91ciddIC09IDEyOwoJCQkJCSRub3dbJ21lcmlkJ10gPSAkbW9kLT5MYW5nKCd0aXRsZV9hZnRlcl9ub29uJyk7CgkJCQkJfQoJCQkJZWxzZWlmICgkbm93Wyd0bV9ob3VyJ10gPT0gMCkKCQkJCQl7CgkJCQkJJG5vd1sndG1faG91ciddID0gMTI7CgkJCQkJfQoJCQkJfQoKICAgICAgICAgICAgJGhyID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgICAgICRoci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkSG91cnMsIC0xLCAkbm93Wyd0bV9ob3VyJ10sJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX2hvdXInKSk7CiAgICAgICAJCSRoci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdob3VyJyk7CiAgICAgICAJCSRoci0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5HZXRDU1NJZCgnX2hvdXInKS4nIj4nLiRtb2QtPkxhbmcoJ2hvdXInKS4nPC9sYWJlbD4nOwogICAgICAgCQlhcnJheV9wdXNoKCRyZXQsICRocik7CiAgICAgICAJCQogICAgICAgICAgICAkbWluID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgICAgICRtaW4tPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLAogICAgICAgCQkJJE1pbnMsIC0xLCAkbm93Wyd0bV9taW4nXSwkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfbWluJykpOwogICAgICAgCQkkbWluLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21pbicpOwogICAgICAgCQkkbWluLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfbWluJykuJyI+Jy4kbW9kLT5MYW5nKCdtaW4nKS4nPC9sYWJlbD4nOwogICAgICAgCQlhcnJheV9wdXNoKCRyZXQsICRtaW4pOwoKICAgICAgICAgICAgJG1lciA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAgICAkbWVyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSR0aGlzLT5mbGFnMTJob3VyLCAtMSwgJG5vd1snbWVyaWQnXSwgJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygnX21lcmlkaWFuJykpOwogICAgICAgICAgICAkbWVyLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfbWVyaWRpYW4nKS4nIj4nLiRtb2QtPkxhbmcoJ21lcmlkJykuJzwvbGFiZWw+JzsKICAgICAgICAgICAgJG1lci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdtZXJpZCcpOwogICAgICAgICAgICBhcnJheV9wdXNoKCRyZXQsJG1lcik7CiAgICAgICAgICAgIHJldHVybiAkcmV0OwogICAgICAgCQl9CiAgICAgICBlbHNlCiAgICAgICAJCXsKICAgICAgIAkJZm9yICgkaT0wOyRpPDI0OyRpKyspCiAgICAgICAJCXsKCQkJCQkkbW8gPSBzcHJpbnRmKCIlMDJkIiwkaSk7CgkJCQkJJEhvdXJzWyRtb109JG1vOwoJCQkJfQoKCQkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQkJewoJCQkJJG5vd1sndG1faG91ciddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCk7CgkJCQkkbm93Wyd0bV9taW4nXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQkJfQogICAgICAgICAgICAkaHIgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJGhyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSRIb3VycywgLTEsICRub3dbJ3RtX2hvdXInXSwkanMuJHRoaXMtPkdldENTU0lkVGFnKCdfaG91cicpKTsKICAgICAgIAkJJGhyLT50aXRsZSA9ICRtb2QtPkxhbmcoJ2hvdXInKTsKICAgICAgIAkJJGhyLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJHRoaXMtPkdldENTU0lkKCdfaG91cicpLiciPicuJG1vZC0+TGFuZygnaG91cicpLic8L2xhYmVsPic7CiAgICAgICAJCWFycmF5X3B1c2goJHJldCwgJGhyKTsKICAgICAgIAkJCiAgICAgICAgICAgICRtaW4gPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJG1pbi0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkTWlucywgLTEsICRub3dbJ3RtX21pbiddLCRqcy4kdGhpcy0+R2V0Q1NTSWRUYWcoJ19taW4nKSk7CiAgICAgICAJCSRtaW4tPnRpdGxlID0gJG1vZC0+TGFuZygnbWluJyk7CiAgICAgICAJCSRtaW4tPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kdGhpcy0+R2V0Q1NTSWQoJ19taW4nKS4nIj4nLiRtb2QtPkxhbmcoJ21pbicpLic8L2xhYmVsPic7CiAgICAgICAJCWFycmF5X3B1c2goJHJldCwgJG1pbik7CgogICAgICAgICAgICByZXR1cm4gJHJldDsKICAgICAgIAkJfQoKCgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignMjRfaG91cicsJzAnKSA9PSAnMCcpCgkJCQl7CgkJCQkkcmV0ID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCkuJzonLgoJCQkJCSR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLicgJy4KCQkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHJldCA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApLic6Jy4KCQkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlXzI0X2hvdXInKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0XzI0X2hvdXInLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCcyNF9ob3VyJywnMCcpKSkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/UniqueIntegerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlVuaXF1ZUludGVnZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgoJZnVuY3Rpb24gZmJVbmlxdWVJbnRlZ2VyRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CgkJJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdVbmlxdWVJbnRlZ2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCQkkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkgewoKCQkJJHJldCA9ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkdGhpcy0+VmFsdWUpOwoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd190b191c2VyJywnMCcpID09ICcxJykgewoKCQkJCSRyZXQgLj0gJHRoaXMtPlZhbHVlOwoJCQl9CgkJCgkJfSBlbHNlIGlmICgkdGhpcy0+R2V0T3B0aW9uKCd1c2VfcmFuZG9tX2dlbmVyYXRvcicsJzAnKSA9PSAnMScpIHsKCgkJCSR0aW1lcyA9ICR0aGlzLT5HZXRPcHRpb24oJ251bWJlcnNfdG9fZ2VuZXJhdGUnLCc1JykgPyAkdGhpcy0+R2V0T3B0aW9uKCdudW1iZXJzX3RvX2dlbmVyYXRlJywnNScpIDogNTsKCQkJJG51bWJlciA9ICR0aGlzLT5nZW5lcmF0ZV9udW1iZXJzKDAsOSwkdGltZXMpOwoJCQkkcmV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsJG51bWJlcik7CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3RvX3VzZXInLCcwJykgPT0gJzEnKSB7CQkJCgkJCQkKCQkJCSRyZXQgLj0gJG51bWJlcjsJCQoJCQl9CgkJCgkJfSBlbHNlIHsKCgkJCSRkYiA9ICRtb2QtPmRiSGFuZGxlOwoJCQkkc2VxID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfdW5pcXVlZmllbGRfc2VxJyk7CgkJCSRyZXQgPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwkc2VxKTsKCQkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdG9fdXNlcicsJzAnKSA9PSAnMScpIHsKCQkJCgkJCQkkcmV0IC49ICRzZXE7CgkJCX0KCQl9CgoJCXJldHVybiAkcmV0OwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zaG93X3RvX3VzZXInKSwgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zaG93X3RvX3VzZXInLCcwJykuCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2hvd190b191c2VyJywgJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdG9fdXNlcicsJzAnKSkpLAkJCQkKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InKSwgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF91c2VfcmFuZG9tX2dlbmVyYXRvcicsJzAnKS4KCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF91c2VfcmFuZG9tX2dlbmVyYXRvcicsICcxJywkdGhpcy0+R2V0T3B0aW9uKCd1c2VfcmFuZG9tX2dlbmVyYXRvcicsJzAnKSkpLAkKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X251bWJlcnNfdG9fZ2VuZXJhdGUnLCR0aGlzLT5HZXRPcHRpb24oJ251bWJlcnNfdG9fZ2VuZXJhdGUnLCc1JyksMjUsMjUpKQkJCQkJCQoJCSk7CgkJCQkKCQkkYWR2ID0gYXJyYXkoKTsKCQkKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gZ2VuZXJhdGVfbnVtYmVycygkbWluLCAkbWF4LCAkdGltZXMpCgl7CgkJJG91dHB1dCA9ICcnOwoJCSRhcnJheSA9IHJhbmdlKCRtaW4sICRtYXgpOwoJCXNyYW5kICgoZG91YmxlKW1pY3JvdGltZSgpKjEwMDAwKTsKCQlmb3IoJHggPSAwOyAkeCA8ICR0aW1lczsgJHgrKykgewoJCQoJCQkkaSA9IHJhbmQoMSwgY291bnQoJGFycmF5KSktMTsKCQkJJG91dHB1dCAuPSAkYXJyYXlbJGldOwoJCX0KCQkKCQlyZXR1cm4gJG91dHB1dDsKCX0JCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/UserTagField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlVzZXJUYWdGaWVsZCBleHRlbmRzICBmYkZpZWxkQmFzZQp7CgogIGZ1bmN0aW9uIGZiVXNlclRhZ0ZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ1VzZXJUYWdGaWVsZCc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCd1ZHRuYW1lJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICB9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CiAgICAkbW9kPSR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJHVuc3BlYyA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwogICAgJHBhcmFtcyA9IGFycmF5KCk7CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignZXhwb3J0X2Zvcm0nLCcwJykgPT0gJzEnKQogICAgICB7CiAgICAgICRwYXJhbXNbJ0ZPUk0nXSA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICAgfQogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJJHJlcGxWYWwgPSAnJzsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgJHJlcGxWYWwgPSAkb3RoZXJzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkgICAgaWYgKCRyZXBsVmFsID09ICcnKQoJICAgICAgewoJCSAgICAkcmVwbFZhbCA9ICR1bnNwZWM7CgkgICAgICB9CgkgIH0KICAgJG5hbWUgPSAkb3RoZXJzWyRpXS0+R2V0VmFyaWFibGVOYW1lKCk7CgkkcGFyYW1zWyRuYW1lXSA9ICRyZXBsVmFsOwoJJGlkID0gJG90aGVyc1skaV0tPkdldElkKCk7CgkkcGFyYW1zWydmbGRfJy4kaWRdID0gJHJlcGxWYWw7CgkkYWxpYXMgPSAkb3RoZXJzWyRpXS0+R2V0QWxpYXMoKTsKCWlmICghZW1wdHkoJGFsaWFzKSkKICAgICAgewoJICAgJHBhcmFtc1skYWxpYXNdID0gJHJlcGxWYWw7CgkgICB9CiAgIH0KCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgJHVkdCA9ICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnKTsKICAgICRyZXMgPSAkdXNlcnRhZ29wcy0+Q2FsbFVzZXJUYWcoICR1ZHQsICRwYXJhbXMpOwoKICAgIGlmKCAkcmVzID09PSBGQUxTRSApCiAgICAgIHsKCSAgIHJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl91c2VydGFnJywgJHVkdCk7CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwoJfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkdXNlcnRhZ29wcyA9ICRnQ21zLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgJHVzZXJ0YWdzID0gJHVzZXJ0YWdvcHMtPkxpc3RVc2VyVGFncygpOwogICAgJHVzZXJ0YWdsaXN0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICR1c2VydGFncyBhcyAka2V5ID0+ICR2YWx1ZSApCiAgICAgIHsKCSR1c2VydGFnbGlzdFskdmFsdWVdID0gJGtleTsKICAgICAgfQogICAgJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VkdF9uYW1lJyksCgkJICAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLAoJCQkJCSAgICAgICdmYnJwX29wdF91ZHRuYW1lJywkdXNlcnRhZ2xpc3QsLTEsCgkJCQkJICAgICAgJHRoaXMtPkdldE9wdGlvbigndWR0bmFtZScpKSk7CiAgICAgICRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZXhwb3J0X2Zvcm0nLCcwJykuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9leHBvcnRfZm9ybScsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ2V4cG9ydF9mb3JtJywnMCcpKSk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/YearPullDownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwogICAKICAgVGhpcyBGaWVsZCB3cml0dGVuIGJ5IFRhcGlvICJTdGlra2kiIEz2eXR0eSA8dGFwc2FAYmxhY2ttaWxrLmZpPgoqLwoKY2xhc3MgZmJZZWFyUHVsbGRvd25GaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlllYXJQdWxsZG93bkZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewoJCSR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnWWVhclB1bGxEb3duRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJJHNvcnRlZCA9YXJyYXkoKTsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3llYXJfc3RhcnQnLCcnKSAhPSAnJykgewoJCQkkY291bnRfZnJvbSA9ICR0aGlzLT5HZXRPcHRpb24oJ3llYXJfc3RhcnQnLCcnKTsKCQl9IGVsc2UgewoJCQkkY291bnRfZnJvbSA9IDE5MDA7CgkJfQoJCQoJCWZvciAoJGk9ZGF0ZSgiWSIpOyAkaT49JGNvdW50X2Zyb207ICRpLS0pIHsKCQkJJHNvcnRlZFskaV09JGk7CgkJfQoJCQkKCQlpZiggJHRoaXMtPkdldE9wdGlvbignc29ydCcpID09ICcxJyApIHsKCQkJa3NvcnQoJHNvcnRlZCk7CgkJfQoJCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykgewoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpICsgJHNvcnRlZDsKCQl9IGVsc2UgewoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpICsgJHNvcnRlZDsKCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsJGpzLiR0aGlzLT5HZXRDU1NJZFRhZygpKTsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkKCQkkbWFpbiA9IGFycmF5KCk7CgkJJGFkdiA9IGFycmF5KCk7CgkJJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCQkJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpOwoJCQkJCQkJCQkJCSAgCgkJJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnKSwKCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3llYXJfc3RhcnQnLAoJCQkJCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbigneWVhcl9zdGFydCcsMTkwMCksMjUsMTI4KSk7CgkJCQkJCQkJCQkJICAKCQkkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygnc29ydF9vcHRpb25zJyksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zb3J0JywKCQkJCQkJCQkJCQkJICBhcnJheSgnWWVzJz0+MSwnTm8nPT4wKSwtMSwKCQkJCQkJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdzb3J0JywwKSkpOwoJCQkJCQkJCQkJCQkgIAoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPlZhbHVlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/FormBuilder.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgVmVyc2lvbjogMC42LCByZWxlYXNlZCAyMDA4CiMKIyBDb3B5cmlnaHQgKGMpIDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KIyBGb3IgSW5mb3JtYXRpb24sIFN1cHBvcnQsIEJ1ZyBSZXBvcnRzLCBldGMsIHBsZWFzZSB2aXNpdCB0aGUKIyBDTVMgTWFkZSBTaW1wbGUgRm9yZ2U6CiMgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mb3JtYnVpbGRlci8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBGb3JtQnVpbGRlciBleHRlbmRzIENNU01vZHVsZQp7CgoJdmFyICRmaWVsZF90eXBlczsKCXZhciAkZGlzcF9maWVsZF90eXBlczsKCXZhciAkc3RkX2ZpZWxkX3R5cGVzOwoJdmFyICRhbGxfdmFsaWRhdGlvbl90eXBlczsKCXZhciAkbW9kdWxlX3B0cjsKCXZhciAkbW9kdWxlX2lkOwoJdmFyICRlbWFpbF9yZWdleDsKCXZhciAkZW1haWxfcmVnZXhfcmVsYXhlZDsKCXZhciAkZGJIYW5kbGU7CgoJZnVuY3Rpb24gRm9ybUJ1aWxkZXIoKQoJewoJCWdsb2JhbCAkZ0NtczsKCQkkdGhpcy0+Q01TTW9kdWxlKCk7CgoJCSR0aGlzLT5tb2R1bGVfcHRyID0gJiR0aGlzOwoJCSR0aGlzLT5kYkhhbmRsZSA9ICAkdGhpcy0+R2V0RGIoKTsKCQkkdGhpcy0+bW9kdWxlX2lkID0gJyc7CgkJJHRoaXMtPmVtYWlsX3JlZ2V4ID0gIi9eKFtcd1xkXC5cLVxfXSkrXEAoW1x3XGRcLlwtXF9dKylcLihcdyspJC9pIjsKCQkkdGhpcy0+ZW1haWxfcmVnZXhfcmVsYXhlZD0iL14oW1x3XGRcLlwtXF9dKStcQChbXHdcZFwuXC1cX10pKyQvaSI7CgkJCgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9Gb3JtLmNsYXNzLnBocCc7CgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9GaWVsZEJhc2UuY2xhc3MucGhwJzsJCQoJCQoJfQoJCglmdW5jdGlvbiBpbml0aWFsaXplKCkKCXsKCQkkZGlyPW9wZW5kaXIoZGlybmFtZShfX0ZJTEVfXykuJy9jbGFzc2VzJyk7CgkJJHRoaXMtPmZpZWxkX3R5cGVzID0gYXJyYXkoKTsKCQl3aGlsZSgkZmlsZXNwZWM9cmVhZGRpcigkZGlyKSkKCQl7CgkJCWlmKHN0cnBvcygkZmlsZXNwZWMsJ0ZpZWxkJykgPT09IGZhbHNlICYmIHN0cnBvcygkZmlsZXNwZWMsJ0Rpc3Bvc2l0aW9uJykgPT09IGZhbHNlKQoJCQl7CgkJCQljb250aW51ZTsKCQkJfQoJCQkkc2hvcnRuYW1lID0gc3Vic3RyKCRmaWxlc3BlYywwLHN0cnBvcygkZmlsZXNwZWMsJy4nKSk7CgkJCWlmIChzdWJzdHIoJHNob3J0bmFtZSwtNCkgPT0gJ0Jhc2UnKQoJCQl7CgkJCQljb250aW51ZTsKCQkJfQoJCQkkdGhpcy0+ZmllbGRfdHlwZXNbJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfJy4kc2hvcnRuYW1lKV0gPSAkc2hvcnRuYW1lOwoJCX0KCQkKCQlmb3JlYWNoICgkdGhpcy0+ZmllbGRfdHlwZXMgYXMgJHROYW1lPT4kdFR5cGUpCgkJewoJCQlpZiAoc3Vic3RyKCR0VHlwZSwwLDExKSA9PSAnRGlzcG9zaXRpb24nKQoJCQl7CgkJCQkkdGhpcy0+ZGlzcF9maWVsZF90eXBlc1skdE5hbWVdPSR0VHlwZTsKCQkJfQoJCX0KCQkkdGhpcy0+YWxsX3ZhbGlkYXRpb25fdHlwZXMgPSBhcnJheSgpOwoJCWtzb3J0KCR0aGlzLT5maWVsZF90eXBlcyk7CgkJJHRoaXMtPnN0ZF9maWVsZF90eXBlcyA9IGFycmF5KAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9UZXh0RmllbGQnKT0+J1RleHRGaWVsZCcsCgkJCSR0aGlzLT5MYW5nKCdmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnKT0+J1RleHRBcmVhRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJyk9PidDaGVja2JveEZpZWxkJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJyk9PidDaGVja2JveEdyb3VwRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJyk9PidQdWxsZG93bkZpZWxkJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJyk9PidSYWRpb0dyb3VwRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJyk9PidEaXNwb3NpdGlvbkVtYWlsJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJyk9PidEaXNwb3NpdGlvbkZpbGUnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCcpPT4nUGFnZUJyZWFrRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnKT0+J1N0YXRpY1RleHRGaWVsZCcpOwoJCWtzb3J0KCR0aGlzLT5zdGRfZmllbGRfdHlwZXMpOwoJfQoKCWZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKQoJewoJCXJldHVybiBGQUxTRTsKCX0KCglmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkKCXsKCQlyZXR1cm4gRkFMU0U7Cgl9CgoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICdGb3JtQnVpbGRlcic7Cgl9CgkKCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCX0KCglmdW5jdGlvbiBHZXRWZXJzaW9uKCkKCXsKCQlyZXR1cm4gJzAuNyc7Cgl9CgoJZnVuY3Rpb24gR2V0QXV0aG9yKCkKCXsKCQlyZXR1cm4gJ1NqRyc7Cgl9CgoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJewoJCXJldHVybiAnc2pnQGNtc21vZHVsZXMuY29tJzsKCX0KCglmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCRsYW5nID0gJ2VuX1VTJykKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzYycpOwoJfQoKCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpCgl7CgkJJGZuID0gZGlybmFtZShfX0ZJTEVfXykuJy9jaGFuZ2Vsb2cuaW5jJzsKCQlyZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7Cgl9CgoJZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCWZ1bmN0aW9uIEhhc0FkbWluKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQoJewoJCXJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKTsKCX0KCglmdW5jdGlvbiBBZG1pblN0eWxlKCkKCXsKCQkkb3V0cHV0ID0gJyc7CgkJCgkJJGZuID0gZGlybmFtZShfX0ZJTEVfXykuJy9pbmNsdWRlcy9hZG1pbi5jc3MnOwoJCSRvdXRwdXQgLj0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkJCgkJcmV0dXJuICRvdXRwdXQ7Cgl9CgoJZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCgl7CgkJZ2xvYmFsICRnQ21zOwoJCSR0bXBsID0gJyc7CgkJCgkJaWYgKCRHTE9CQUxTWydDTVNfVkVSU0lPTiddIDwgMS45KSB7CQoJCQoJCQkkdG1wbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pbmNsdWRlcy9qcXVlcnktMS40LjIubWluLmpzIj48L3NjcmlwdD4nOwoJCX0KCQkkdG1wbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pbmNsdWRlcy9qcXVlcnkudGFibGVkbmQuanMiPjwvc2NyaXB0Pic7CQkKCQkkdG1wbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pbmNsdWRlcy9mYl9qcXVlcnlfZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4nOwoJCSR0bXBsIC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzLycuJHRoaXMtPkdldE5hbWUoKS4nL2luY2x1ZGVzL2ZiX2pxdWVyeS5qcyI+PC9zY3JpcHQ+JzsKCQkKICAgICAgICByZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0bXBsKTsKCQkKCX0KCQoJZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCgl7CgkJJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CgkJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZicnBfKicsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCcpKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9mYnJwXy4qLycsQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmb3JtX2lkJywnbnVsbCcsJHRoaXMtPkxhbmcoJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJykpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmb3JtX2lkJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2Zvcm0nLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZScpKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9ybScsQ0xFQU5fU1RSSU5HKTsKCQkKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWVsZF9pZCcsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnKSk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZpZWxkX2lkJyxDTEVBTl9JTlQpOwoJCQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3ZhbHVlXyonLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZycpKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy92YWx1ZV8uKi8nLENMRUFOX1NUUklORyk7CgkJCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncmVzcG9uc2VfaWQnLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJykpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXNwb25zZV9pZCcsQ0xFQU5fSU5UKTsKCX0KCglmdW5jdGlvbiBEb0FjdGlvbigkbmFtZSwkaWQsJHBhcmFtcywkcmV0dXJuaWQ9JycpCgl7CgkKCQlnbG9iYWwgJGdDbXM7CgkJJHNtYXJ0eSA9JiAkZ0Ntcy0+R2V0U21hcnR5KCk7CgkJCgkJJHRoaXMtPm1vZHVsZV9pZCA9ICRpZDsKCQlwYXJlbnQ6OkRvQWN0aW9uKCRuYW1lLCRpZCwkcGFyYW1zLCRyZXR1cm5pZCk7CgoJfQoKCWZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCgl7CgkJcmV0dXJuIGFycmF5KCdDTVNNYWlsZXInPT4nMS43MycpOwoJfQoKCS8vIG1heSBiZSB0b28gc3RyaW5nZW50LCBidXQgYmV0dGVyIHNhZmUgdGhhbiBzb3JyeS4KCWZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKCXsKCQlyZXR1cm4gJzEuMSc7Cgl9CgoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RfaW5zdGFsbCcpOwoJfQoKCglmdW5jdGlvbiBDaGVja0FjY2VzcygkcGVybWlzc2lvbj0nTW9kaWZ5IEZvcm1zJykKCXsKCQkkYWNjZXNzID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkcGVybWlzc2lvbik7CgkJaWYgKCEkYWNjZXNzKSAgewoJCQllY2hvICI8cCBjbGFzcz1cImVycm9yXCI+Ii4kdGhpcy0+TGFuZygneW91X25lZWRfcGVybWlzc2lvbicsJHBlcm1pc3Npb24pLiI8L3A+IjsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQllbHNlIHJldHVybiB0cnVlOwoJfQoKCS8qCglETyBOT1QgYWxsb3cgcGFyYW1ldGVycyB0byBiZSB1c2VkIGZvciBwYXNzaW5nIHRoZSBvcmRlcl9ieSEgSXQgaXMgbm90IGVzY2FwZWQgYmVmb3JlCglkYXRhYmFzZSBhY2Nlc3MuIElmIHdlIGxldCBBRE9EQiBxdW90ZSBpdCwgdGhlIFNRTCBpcyBub3QgdmFsaWQgKG5vdCB0aGF0IE15U1FMIGNhcmVzLAoJYnV0IFBvc3RncmVzIGRvZXMpLgoJKi8KCQoJZnVuY3Rpb24gR2V0Rm9ybXMoJG9yZGVyX2J5PSduYW1lJykKCXsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkc3FsID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIE9SREVSIEJZICcuJG9yZGVyX2J5OwoJCSRyZXN1bHQgPSBhcnJheSgpOwoJCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKCQlpZigkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCQl7CgkJCSRyZXN1bHQgPSAkcnMtPkdldEFycmF5KCk7CgkJfQoJCXJldHVybiAkcmVzdWx0OwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1JREZyb21BbGlhcygkZm9ybV9hbGlhcykKCXsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkc3FsID0gJ1NFTEVDVCBmb3JtX2lkIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIFdIRVJFIGFsaWFzID0gPyc7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtX2FsaWFzKSk7CgkJaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkJewoJCQkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJCQlyZXR1cm4gJHJlc3VsdFsnZm9ybV9pZCddOwoJCX0KCQlyZXR1cm4gLTE7Cgl9CgoJZnVuY3Rpb24gR2V0Rm9ybU5hbWVGcm9tSUQoJGZvcm1faWQpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJHNxbCA9ICdTRUxFQ1QgbmFtZSBmcm9tICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBXSEVSRSBmb3JtX2lkID0gPyc7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtX2lkKSk7CgkJaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkJewoJCQkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJCX0KCQlyZXR1cm4gJHJlc3VsdFsnbmFtZSddOwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1CeUlEKCRmb3JtX2lkLCAkbG9hZERlZXA9ZmFsc2UpCgl7CgkJJHBhcmFtcyA9IGFycmF5KCdmb3JtX2lkJz0+JGZvcm1faWQpOwoJCXJldHVybiBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCAkbG9hZERlZXApOwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1CeVBhcmFtcygmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQoJewoJCXJldHVybiBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCAkbG9hZERlZXApOwoJfQoKCQoJZnVuY3Rpb24gR2V0SGVscCgkbGFuZyA9ICdlbl9VUycpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7Cgl9CgoJZnVuY3Rpb24gR2V0UmVzcG9uc2UoJGZvcm1faWQsJHJlc3BvbnNlX2lkLCRmaWVsZF9saXN0PWFycmF5KCksICRkYXRlRm10PSdkIEYgeScpCgl7CgkJJG5hbWVzID0gYXJyYXkoKTsKCQkkdmFsdWVzID0gYXJyYXkoKTsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkZmJGaWVsZCA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlckZpZWxkKCRmb3JtX2lkKTsKCQlpZiAoJGZiRmllbGQgPT0gZmFsc2UpCgkJCXsKCQkJLy8gZXJyb3IgaGFuZGxpbmcgZ29lcyBoZXJlLgoJCQllY2hvKCR0aGlzLT5MYW5nKCdlcnJvcl9oYXNfbm9fZmJfZmllbGQnKSk7CgkJCX0KCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgV0hFUkUgZmJyX2lkPT8nLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKCgkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCWlmICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCSRvbmVzZXQtPmlkID0gJHJvd1snZmJyX2lkJ107CgkJCSRvbmVzZXQtPnVzZXJfYXBwcm92ZWQgPSAoZW1wdHkoJHJvd1sndXNlcl9hcHByb3ZlZCddKT8nJzpkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pKSk7IAoJCQkkb25lc2V0LT5hZG1pbl9hcHByb3ZlZCA9IChlbXB0eSgkcm93WydhZG1pbl9hcHByb3ZlZCddKT8nJzpkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydhZG1pbl9hcHByb3ZlZCddKSkpOwoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSBkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSkpOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkX2RhdGUgPSAoZW1wdHkoJHJvd1sndXNlcl9hcHByb3ZlZCddKT8nJzokZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSk7IAoJCQkkb25lc2V0LT5hZG1pbl9hcHByb3ZlZF9kYXRlID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOiRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydhZG1pbl9hcHByb3ZlZCddKSk7CgkJCSRvbmVzZXQtPnN1Ym1pdHRlZF9kYXRlID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3N1Ym1pdHRlZCddKTsKCQkJJG9uZXNldC0+eG1sID0gJHJvd1sncmVzcG9uc2UnXTsKCQkJJG9uZXNldC0+ZmllbGRzID0gYXJyYXkoKTsKCQkJJG9uZXNldC0+bmFtZXMgPSBhcnJheSgpOwoJCQkkb25lc2V0LT5maWVsZHNieWFsaWFzID0gYXJyYXkoKTsKCQl9CgoJCSRwb3B1bGF0ZV9uYW1lcyA9IHRydWU7CgkJJHRoaXMtPkhhbmRsZVJlc3BvbnNlRnJvbVhNTCgkZmJGaWVsZCwgJG9uZXNldCk7CgkJbGlzdCgkZm5hbWVzLCAkYWxpYXNlcywgJHZhbHMpID0gJHRoaXMtPlBhcnNlUmVzcG9uc2VYTUwoJG9uZXNldC0+eG1sKTsKCgkJZm9yZWFjaCAoJGZuYW1lcyBhcyAkaWQ9PiRuYW1lKQoJCQl7CgkJCWlmIChpc3NldCgkZmllbGRfbGlzdFskaWRdKSAmJiAkZmllbGRfbGlzdFskaWRdID4gLTEpCgkJCQl7CgkJCQkkb25lc2V0LT52YWx1ZXNbJGZpZWxkX2xpc3RbJGlkXV09JHZhbHNbJGlkXTsKCQkJCSRvbmVzZXQtPm5hbWVzWyRmaWVsZF9saXN0WyRpZF1dPSRmbmFtZXNbJGlkXTsKCQkJCX0KCQkJaWYgKGlzc2V0KCRhbGlhc2VzWyRpZF0pKQoJCQkJewoJCQkJJG9uZXNldC0+ZmllbGRzYnlhbGlhc1skYWxpYXNlc1skaWRdXSA9ICR2YWxzWyRpZF07CgkJCQl9CgkJCX0KCQlyZXR1cm4gJG9uZXNldDsKCX0KCglmdW5jdGlvbiBQYXJzZVJlc3BvbnNlWE1MKCR4bWxzdHIsICRodW1hbl9yZWFkYWJsZV92YWx1ZXMgPSB0cnVlKQoJewoJCSRuYW1lcyA9IGFycmF5KCk7CgkJJGFsaWFzZXMgPSBhcnJheSgpOwoJCSR2YWxzID0gYXJyYXkoKTsKCQkkeG1sID0gbmV3IFNpbXBsZVhNTEVsZW1lbnQoJHhtbHN0cik7CgkJZm9yZWFjaCAoJHhtbC0+ZmllbGQgYXMgJHhtbGZpZWxkKQoJCQl7CgkJCWlmICgkaHVtYW5fcmVhZGFibGVfdmFsdWVzKQoJCQkJewoJCQkJaWYgKGlzc2V0KCR4bWxmaWVsZFsnZGlzcGxheV9pbl9zdWJtaXNzaW9uJ10pICYmICR4bWxmaWVsZFsnZGlzcGxheV9pbl9zdWJtaXNzaW9uJ10gPT0gJzEnKQoJCQkJCXsKCQkJCQkkaWQgPSAoaW50KSR4bWxmaWVsZFsnaWQnXTsKCQkJCQkkbmFtZXNbJGlkXSA9ICgoc3RyaW5nKSR4bWxmaWVsZC0+ZmllbGRfbmFtZSk7CgkJCQkJJHZhbHNbJGlkXSA9ICgoc3RyaW5nKSR4bWxmaWVsZC0+aHVtYW5fcmVhZGFibGVfdmFsdWUpOwoJCQkJCWlmIChpc3NldCgkeG1sZmllbGQtPm9wdGlvbnMpKQoJCQkJCQl7CgkJCQkJCWZvcmVhY2ggKCR4bWxmaWVsZC0+b3B0aW9ucy0+b3B0aW9uIGFzICR0bykKCQkJCQkJCXsKCQkJCQkJCWlmICgkdG9bJ25hbWUnXSA9PSAnZmllbGRfYWxpYXMnKQoJCQkJCQkJCXsKCQkJCQkJCQkkYWxpYXNlc1skaWRdPSgoc3RyaW5nKSR0byk7CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkaWQgPSAoaW50KSR4bWxmaWVsZFsnaWQnXTsKCQkJCSRhcnJUeXBlcyA9ICR4bWxmaWVsZC0+eHBhdGgoJ29wdGlvbnMvdmFsdWUnKTsgCgkJCQlpZiAoY291bnQoJGFyclR5cGVzKSA+IDEpCgkJCQkJewoJCQkJCSR2YWxzWyRpZF0gPSBhcnJheSgpOwoJCQkJCWZvcmVhY2goJGFyclR5cGVzIGFzICR0dikKCQkJCQkJewoJCQkJCQlhcnJheV9wdXNoKCR2YWxzWyRpZF0sKHN0cmluZykkdHYpOwoJCQkJCQl9CgkJCQkJfQoJCQkJZWxzZQoJCQkJCXsKCQkJCQkkdmFsc1skaWRdID0gKHN0cmluZykkeG1sZmllbGQtPm9wdGlvbnMtPnZhbHVlOwoJCQkJCX0KCQkJCX0KCQkJfQoJCXJldHVybiBhcnJheSgkbmFtZXMsICRhbGlhc2VzLCAkdmFscyk7Cgl9CgoJLy8gTmV3IGZ1bmN0aW9uIGFzIHBhcnQgb2YgZml4IGZvciBCdWcgNTcwMiBmcm9tIE1pa2UgSHVnaGVzZG9uLgoJZnVuY3Rpb24gUGFyc2VSZXNwb25zZVhNTFR5cGUoJHhtbHN0cikKCXsKCQkkdHlwZXMgPSBhcnJheSgpOwoJCSR4bWwgPSBuZXcgU2ltcGxlWE1MRWxlbWVudCgkeG1sc3RyKTsKCQlmb3JlYWNoICgkeG1sLT5maWVsZCBhcyAkeG1sZmllbGQpCgkJewoJCQkkaWQgPSAoaW50KSR4bWxmaWVsZFsnaWQnXTsKCQkJJHR5cGVzWydmYnJwX18nLiRpZF0gPSAoc3RyaW5nKSR4bWxmaWVsZFsndHlwZSddOwoJCX0KCQlyZXR1cm4gJHR5cGVzOwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1Ccm93c2VyRmllbGQoJGZvcm1faWQpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZCBXSEVSRSBmb3JtX2lkPT8gYW5kIHR5cGU9Pyc7CgkJJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtX2lkLCdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykpOwoJCSRyZXN1bHQgPSBhcnJheSgpOwoJCWlmICghICRycyB8fCAkcnMtPlJlY29yZENvdW50KCkgPT0gMCkKCQkJewoJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQkkdGhpc1JlcyA9ICRycy0+R2V0QXJyYXkoKTsKCQkkcGFyYW1zID0gYXJyYXkoKTsKCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywkcGFyYW1zLGZhbHNlKTsKCgkJJGNsYXNzTmFtZSA9ICRhZWZvcm0tPk1ha2VDbGFzc05hbWUoJHRoaXNSZXNbMF1bJ3R5cGUnXSwgJycpOwoJCS8vIGNyZWF0ZSB0aGUgZmllbGQgb2JqZWN0CgkJJGZpZWxkID0gJGFlZm9ybS0+TmV3RmllbGQoJHRoaXNSZXNbMF0pOwoJCXJldHVybiAkZmllbGQ7CQkKCX0KCQoJCglmdW5jdGlvbiBIYW5kbGVSZXNwb25zZUZyb21YTUwoJiRmYkZpZWxkLCAmJHJlc3BvbnNlT2JqKQoJewoJCSRjcnlwdCA9ICRmYkZpZWxkLT5HZXRPcHRpb24oJ2NyeXB0JywnMCcpOwoJCWlmICgkY3J5cHQgPT0gJzEnKQoJCQl7CgkJCSRjcnlwdGxpYiA9ICRmYkZpZWxkLT5HZXRPcHRpb24oJ2NyeXB0X2xpYicpOwoJCQkka2V5ZmlsZSA9ICRmYkZpZWxkLT5HZXRPcHRpb24oJ2tleWZpbGUnKTsKCQkJaWYgKCRjcnlwdGxpYiA9PSAnb3BlbnNzbCcpCgkJCQl7CgkJCQkkb3BlbnNzbCA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnT3BlblNTTCcpOwoJCQkJJHBrZXkgPSAkZmJGaWVsZC0+R2V0T3B0aW9uKCdwcml2YXRlX2tleScpOwoJCQkJJG9wZW5zc2wtPlJlc2V0KCk7CgkJCQkkb3BlbnNzbC0+bG9hZF9wcml2YXRlX2tleWZpbGUoJHBrZXksJGtleWZpbGUpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlpZiAoZmlsZV9leGlzdHMoJGtleWZpbGUpKQoJCQkgICAgCXsKCQkJICAgICAgICAka2V5ZmlsZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRrZXlmaWxlKTsKCQkJICAgICAgICB9CgkJCQl9CgkJCX0KCgkJaWYgKCRjcnlwdCA9PSAnMScpCgkJCXsKCQkJaWYgKCRjcnlwdGxpYiA9PSAnb3BlbnNzbCcpCgkJCQl7CgkJCQkkcmVzcG9uc2VPYmotPnhtbCA9ICRvcGVuc3NsLT5kZWNyeXB0X2Zyb21fcGF5bG9hZCgkcmVzcG9uc2VPYmotPnhtbCk7CgkJCQlpZiAoJHJlc3BvbnNlT2JqLT54bWwgPT0gZmFsc2UpCgkJCQkJewoJCQkJCWRlYnVnX2Rpc3BsYXkoJG9wZW5zc2wtPm9wZW5zc2xfZXJyb3JzKCkpOwoJCQkJCX0KCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHJlc3BvbnNlT2JqLT54bWwgPSAkdGhpcy0+ZmJkZWNyeXB0KCRyZXNwb25zZU9iai0+eG1sLCRrZXlmaWxlKTsKCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIEdldFNvcnRlZFJlc3BvbnNlcygkZm9ybV9pZCwgJHN0YXJ0X3BvaW50LCAkbnVtYmVyPTEwMCwgJGFkbWluX2FwcHJvdmVkPWZhbHNlLCAkdXNlcl9hcHByb3ZlZD1mYWxzZSwgJGZpZWxkX2xpc3Q9YXJyYXkoKSwgJGRhdGVGbXQ9J2QgRiB5JywgJiRwYXJhbXMpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJG5hbWVzID0gYXJyYXkoKTsKCQkkdmFsdWVzID0gYXJyYXkoKTsKCQkkc3FsID0gJ0ZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm1icm93c2VyIFdIRVJFIGZvcm1faWQ9Pyc7CgkJJHNxbHBhcm1zID0gYXJyYXkoJGZvcm1faWQpOwoJCWlmICgkdXNlcl9hcHByb3ZlZCkKCQl7CgkJCSRzcWwgLj0gJyBhbmQgdXNlcl9hcHByb3ZlZCBpcyBub3QgbnVsbCc7CgkJfQoJCWlmICgkYWRtaW5fYXBwcm92ZWQpCgkJewoJCQkkc3FsIC49ICcgYW5kIGFkbWluX2FwcHJvdmVkIGlzIG5vdCBudWxsJzsKCQl9CgkJaWYoICghIGVtcHR5KCRwYXJhbXNbJ2ZicnBfcmVzcG9uc2Vfc2VhcmNoJ10pKSAmJiAoaXNfYXJyYXkoJHBhcmFtc1snZmJycF9yZXNwb25zZV9zZWFyY2gnXSkpICkKCQl7CgkJCSRzcWwgLj0gJyBBTkQgcmVzcF9pZCBJTiAoJy4gaW1wbG9kZSgnLCcsICRwYXJhbXNbJ2ZicnBfcmVzcG9uc2Vfc2VhcmNoJ10pIC4nKSc7CgkJfQoJCWlmIChpc3NldCgkcGFyYW1zWydmaWx0ZXJfZmllbGQnXSkgJiYgc3Vic3RyKCRwYXJhbXNbJ2ZpbHRlcl9maWVsZCddLDAsNSkgPT0naW5kZXgnKQoJCQl7CgkJCSRpZHhmbGQgPSBpbnR2YWwoc3Vic3RyKCRwYXJhbXNbJ2ZpbHRlcl9maWVsZCddLDUpKTsKCQkJJHNxbCAuPSAnIEFORCBpbmRleF9rZXlfJy4kaWR4ZmxkLic9Pyc7CgkJCWFycmF5X3B1c2goJHNxbHBhcm1zLCRwYXJhbXNbJ2ZpbHRlcl92YWx1ZSddKTsKCQkJfQoJCWlmICghIGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSB8fCAkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXT09J3N1Ym1pdGRhdGUnIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQl7CgkJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10pICYmICRwYXJhbXNbJ2ZicnBfc29ydF9kaXInXSA9PSAnYScpCgkJCXsKCQkJCSRzcWwgLj0gJyBvcmRlciBieSBzdWJtaXR0ZWQgYXNjJzsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRzcWwgLj0gJyBvcmRlciBieSBzdWJtaXR0ZWQgZGVzYyc7CgkJCX0KCQl9CgkJZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2ZpZWxkJ10pKQoJCQl7CgkJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10pICYmICRwYXJhbXNbJ2ZicnBfc29ydF9kaXInXSA9PSAnZCcpCgkJCQl7CgkJCQkJJHNxbCAuPSAnIG9yZGVyIGJ5IGluZGV4X2tleV8nLihpbnQpJHBhcmFtc1snZmJycF9zb3J0X2ZpZWxkJ10uJyBkZXNjJzsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkkc3FsIC49ICcgb3JkZXIgYnkgaW5kZXhfa2V5XycuKGludCkkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXS4nIGFzYyc7CgkJCQl9CgkJCX0KCgkJJGRiY291bnQgPSAkZGItPkV4ZWN1dGUoJ1NFTEVDVCBDT1VOVCgqKSBhcyBudW0gJy4kc3FsLCRzcWxwYXJtcyk7CgoJCSRyZWNvcmRzID0gMDsKCQlpZiAoJGRiY291bnQgJiYgJHJvdyA9ICRkYmNvdW50LT5GZXRjaFJvdygpKQoJCXsKCQkJJHJlY29yZHMgPSAkcm93WydudW0nXTsKCQl9CgoJCWlmICgkbnVtYmVyID4gLTEpCgkJCXsKCQkJJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgnU0VMRUNUICogJy4kc3FsLCAkbnVtYmVyLCAkc3RhcnRfcG9pbnQsICRzcWxwYXJtcyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgKiAnLiRzcWwsICRzcWxwYXJtcyk7CgkJCX0KCQkJCgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5pZCA9ICRyb3dbJ2Zicl9pZCddOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSkpOyAKCQkJJG9uZXNldC0+YWRtaW5fYXBwcm92ZWQgPSAoZW1wdHkoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSkpKTsgCgkJCSRvbmVzZXQtPnN1Ym1pdHRlZCA9IGRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3N1Ym1pdHRlZCddKSk7CgkJCSRvbmVzZXQtPnVzZXJfYXBwcm92ZWRfZGF0ZSA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOiRkYi0+VW5peFRpbWVTdGFtcCgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pKTsgCgkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkX2RhdGUgPSAoZW1wdHkoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSk/Jyc6JGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKTsgCgkJCSRvbmVzZXQtPnN1Ym1pdHRlZF9kYXRlID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3N1Ym1pdHRlZCddKTsKCgkJCSRvbmVzZXQtPnhtbCA9ICRyb3dbJ3Jlc3BvbnNlJ107CgkJCSRvbmVzZXQtPmZpZWxkcyA9IGFycmF5KCk7CgkJCSRvbmVzZXQtPmZpZWxkc2J5YWxpYXMgPSBhcnJheSgpOwoJCQlhcnJheV9wdXNoKCR2YWx1ZXMsJG9uZXNldCk7CgkJfQoJCSRmYkZpZWxkID0gJHRoaXMtPkdldEZvcm1Ccm93c2VyRmllbGQoJGZvcm1faWQpOwoJCWlmICgkZmJGaWVsZCA9PSBmYWxzZSkKCQkJewoJCQkvLyBlcnJvciBoYW5kbGluZyBnb2VzIGhlcmUuCgkJCWVjaG8oJHRoaXMtPkxhbmcoJ2Vycm9yX2hhc19ub19mYl9maWVsZCcpKTsKCQkJfQoJCQoJCSRwb3B1bGF0ZV9uYW1lcyA9IHRydWU7CgkJJG1hcGZpZWxkcyA9IChjb3VudCgkZmllbGRfbGlzdCkgPiAwKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJHZhbHVlcyk7JGkrKykKCQl7CgkJCSR0aGlzLT5IYW5kbGVSZXNwb25zZUZyb21YTUwoJGZiRmllbGQsICR2YWx1ZXNbJGldKTsKCQkJbGlzdCgkZm5hbWVzLCAkYWxpYXNlcywgJHZhbHMpID0gJHRoaXMtPlBhcnNlUmVzcG9uc2VYTUwoJHZhbHVlc1skaV0tPnhtbCk7CgkJCWZvcmVhY2ggKCRmbmFtZXMgYXMgJGlkPT4kbmFtZSkKCQkJCXsKCQkJCWlmICgkbWFwZmllbGRzKQoJCQkJCXsKCQkJCQlpZiAoaXNzZXQoJGZpZWxkX2xpc3RbJGlkXSkgJiYgJGZpZWxkX2xpc3RbJGlkXSA+IC0xKQoJCQkJCQl7CgkJCQkJCWlmICgkcG9wdWxhdGVfbmFtZXMpCgkJCQkJCQl7CgkJCQkJCQkkbmFtZXNbJGZpZWxkX2xpc3RbJGlkXV0gPSAkbmFtZTsKCQkJCQkJCX0KCQkJCQkJJHZhbHVlc1skaV0tPmZpZWxkc1skZmllbGRfbGlzdFskaWRdXT0kdmFsc1skaWRdOwoJCQkJCQl9CgkJCQkJaWYgKGlzc2V0KCRhbGlhc2VzWyRpZF0pKQoJCQkJCQl7CgkJCQkJCSR2YWx1ZXNbJGldLT5maWVsZHNieWFsaWFzWyRhbGlhc2VzWyRpZF1dID0gJHZhbHNbJGlkXTsKCQkJCQkJfQoJCQkJCX0KCQkJCWVsc2UKCQkJCQl7CgkJCQkJaWYgKCRwb3B1bGF0ZV9uYW1lcykKCQkJCQkJewoJCQkJCQkkbmFtZXNbJGlkXSA9ICRuYW1lOwoJCQkJCQl9CgkJCQkJJHZhbHVlc1skaV0tPmZpZWxkc1skaWRdPSR2YWxzWyRpZF07CgkJCQkJaWYgKGlzc2V0KCRhbGlhc2VzWyRpZF0pKQoJCQkJCQl7CgkJCQkJCSR2YWx1ZXNbJGldLT5maWVsZHNieWFsaWFzWyRhbGlhc2VzWyRpZF1dID0gJHZhbHNbJGlkXTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJJHBvcHVsYXRlX25hbWVzID0gZmFsc2U7CgkJfQoJCXJldHVybiBhcnJheSgkcmVjb3JkcywgJG5hbWVzLCAkdmFsdWVzKTsKCX0KCgkvLyB3cml0ZXMgYWxsIHJlY29yZHMgaW50byBhIGZsYXQgZmlsZS4KCWZ1bmN0aW9uIFdyaXRlU29ydGVkUmVzcG9uc2VzVG9GaWxlKCRmb3JtX2lkLCAkZmlsZXNwZWMsICRzdHJpcHRhZ3M9dHJ1ZSwgJGRhdGVGbXQ9J2QgRiB5JywgJiRwYXJhbXMpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJG5hbWVzID0gYXJyYXkoKTsKCQkkdmFsdWVzID0gYXJyYXkoKTsKCQkkc3FsID0gJ0ZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm1icm93c2VyIFdIRVJFIGZvcm1faWQ9Pyc7CgoJCWlmICghIGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSB8fCAkcGFyYW1zWydmYnJwX3NvcnRfZmllbGQnXT09J3N1Ym1pdGRhdGUnIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQl7CgkJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10pICYmICRwYXJhbXNbJ2ZicnBfc29ydF9kaXInXSA9PSAnZCcpCgkJCXsKCQkJCSRzcWwgLj0gJyBvcmRlciBieSBzdWJtaXR0ZWQgZGVzYyc7CQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHNxbCAuPSAnIG9yZGVyIGJ5IHN1Ym1pdHRlZCBhc2MnOwoJCQl9CgkJfQoJCWVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddKSkKCQkJewoJCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2RpciddKSAmJiAkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10gPT0gJ2QnKQoJCQkJewoJCQkJCSRzcWwgLj0gJyBvcmRlciBieSBpbmRleF9rZXlfJy4oaW50KSRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddLicgZGVzYyc7CQoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRzcWwgLj0gJyBvcmRlciBieSBpbmRleF9rZXlfJy4oaW50KSRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddLicgYXNjJzsKCQkJCX0KCQkJfQoKCQkkZmJGaWVsZCA9ICR0aGlzLT5HZXRGb3JtQnJvd3NlckZpZWxkKCRmb3JtX2lkKTsKCQlpZiAoJGZiRmllbGQgPT0gZmFsc2UpCgkJCXsKCQkJLy8gZXJyb3IgaGFuZGxpbmcgZ29lcyBoZXJlLgoJCQllY2hvKCR0aGlzLT5MYW5nKCdlcnJvcl9oYXNfbm9fZmJfZmllbGQnKSk7CgkJCX0KCgkJJGZoID0gZm9wZW4oJGZpbGVzcGVjLCAndysnKTsKCQlpZiAoJGZoID09PSBmYWxzZSkKCQkJewoJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgKiAnLiRzcWwsIGFycmF5KCRmb3JtX2lkKSk7CgoJCSRwb3B1bGF0ZV9uYW1lcyA9IHRydWU7CgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5pZCA9ICRyb3dbJ2Zicl9pZCddOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSkpOyAKCQkJJG9uZXNldC0+YWRtaW5fYXBwcm92ZWQgPSAoZW1wdHkoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSkpKTsgCgkJCSRvbmVzZXQtPnN1Ym1pdHRlZCA9IGRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3N1Ym1pdHRlZCddKSk7CgkJCSRvbmVzZXQtPnhtbCA9ICRyb3dbJ3Jlc3BvbnNlJ107CgkJCSR0aGlzLT5IYW5kbGVSZXNwb25zZUZyb21YTUwoJGZiRmllbGQsICRvbmVzZXQpOwoJCQlsaXN0KCRmbmFtZXMsICRhbGlhc2VzLCAkdmFscykgPSAkdGhpcy0+UGFyc2VSZXNwb25zZVhNTCgkb25lc2V0LT54bWwpOwoJCQlpZiAoJHBvcHVsYXRlX25hbWVzKQoJCQkJewoJCQkJaWYgKCRzdHJpcHRhZ3MpCgkJICAgICAgICAgCXsKCQkJCQlmb3JlYWNoICgkZm5hbWVzIGFzICRpZD0+JG5hbWUpCgkJCQkJCXsKCQkgICAgICAgICAgICAJJGZuYW1lc1skaV0gPSBzdHJpcF90YWdzKCRmbmFtZXNbJGldKTsKCQkgICAgICAgICAgICAJfQoJCSAgICAgICAgIAl9CgkJCQlmcHV0cyAoJGZoLCAkdGhpcy0+TGFuZygndGl0bGVfc3VibWl0X2RhdGUnKS4iXHQiLgoJCQkJCSR0aGlzLT5MYW5nKCd0aXRsZV9hcHByb3ZhbF9kYXRlJykuIlx0Ii4KCQkJCQkkdGhpcy0+TGFuZygndGl0bGVfdXNlcl9hcHByb3ZlZCcpLiJcdCIuCgkJCQkJaW1wbG9kZSgiXHQiLCRmbmFtZXMpLiJcbiIpOwoJCQkJJHBvcHVsYXRlX25hbWVzID0gZmFsc2U7CgkJCQl9CgkJCWZwdXRzICgkZmgsJG9uZXNldC0+c3VibWl0dGVkIC4gIlx0Iik7CgkJCWZwdXRzICgkZmgsJG9uZXNldC0+YWRtaW5fYXBwcm92ZWQgLiAiXHQiKTsKCQkJZnB1dHMgKCRmaCwkb25lc2V0LT51c2VyX2FwcHJvdmVkIC4gIlx0Iik7CgkJCWZvcmVhY2ggKCR2YWxzIGFzICR0dikKCQkJCXsKCQkJCWlmICgkc3RyaXB0YWdzKQoJICAgICAgICAgICAgICAgewoJICAgICAgICAgICAgICAgJHR2ID0gc3RyaXBfdGFncygkdHYpOwoJICAgICAgICAgICAgICAgfQoJCQkJZnB1dHMgKCRmaCxwcmVnX3JlcGxhY2UoJy9bXG5cdFxyXS8nLCcgJywkdHYpKTsKCQkJCWZwdXRzICgkZmgsIlx0Iik7CgkJCQl9CgkJCWZwdXRzKCRmaCwiXG4iKTsKCQl9CgkJZmNsb3NlKCRmaCk7CgkJcmV0dXJuIHRydWU7Cgl9CgoKCglmdW5jdGlvbiBHZXRTb3J0YWJsZUZpZWxkcygkZm9ybV9pZCkKCXsKCQkkcmV0ID0gYXJyYXkoKTsKCQkkcGFybSA9IGFycmF5KCdmb3JtX2lkJz0+JGZvcm1faWQpOwoJCSRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFybSwgdHJ1ZSk7CgkJJGZiRmllbGQgPSAkYWVmb3JtLT5HZXRGb3JtQnJvd3NlckZpZWxkKCk7CgkJaWYgKCRmYkZpZWxkID09IGZhbHNlKQoJCQl7CgkJCS8vIGVycm9yIGhhbmRsaW5nIGdvZXMgaGVyZS4KCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQlyZXR1cm4gJGZiRmllbGQtPmdldFNvcnRGaWVsZExpc3QoKTsKCX0KCiAgZnVuY3Rpb24gR2V0RkVVSURGcm9tUmVzcG9uc2VJRCgkcmVzcG9uc2VfaWQpCgl7CgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICRzcWwgPSAnU0VMRUNUIGZldWlkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9mb3JtYnJvd3NlciB3aGVyZSBmYnJfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSkpCiAgICAgIHsKCSAgICByZXR1cm4gJHJlc3VsdFsnZmV1aWQnXTsKICAgICAgfQogICAgcmV0dXJuIC0xOwoJfQoKICBmdW5jdGlvbiBHZXRSZXNwb25zZUlERnJvbUZFVUlEKCRmZXVfaWQsICRmb3JtX2lkPS0xKQoJewoJJGRiID0gJHRoaXMtPkdldERiKCk7CgoJLy8gRml4IGZvciBCdWcgNTQyMi4gQWRhcHRlZCBmcm9tIE1pa2UgSHVnaGVzZG9uJ3MgY29kZS4KCSRzcWwgPSAnU0VMRUNUIGZicl9pZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgd2hlcmUgZmV1aWQ9Pyc7CglpZiAoJGZvcm1faWQgIT0gLTEpCgl7CgkJJHNxbCAuPSAnIGFuZCBmb3JtX2lkID0gJy4kZm9ybV9pZC4nIE9SREVSIEJZIHN1Ym1pdHRlZCBERVNDJzsKCX0KCiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJGZldV9pZCkpKQogICAgICB7CgkgICAgcmV0dXJuICRyZXN1bHRbJ2Zicl9pZCddOwogICAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAJfQoKCWZ1bmN0aW9uIGZpZWxkX3NvcnRlcl9hc2MoJGEsICRiKQoJewoJCXJldHVybiBzdHJjYXNlY21wKCRhLT5maWVsZHNbJGEtPnNmXSwgJGItPmZpZWxkc1skYi0+c2ZdKTsKCX0KCglmdW5jdGlvbiBmaWVsZF9zb3J0ZXJfZGVzYygkYSwgJGIpCgl7CgkJcmV0dXJuIHN0cmNhc2VjbXAoJGItPmZpZWxkc1skYi0+c2ZdLCAkYS0+ZmllbGRzWyRhLT5zZl0pOwoJfQoKCQoJLy8gRm9yIGEgZ2l2ZW4gZm9ybSwgcmV0dXJucyBhbiBhcnJheSBvZiByZXNwb25zZSBvYmplY3RzCglmdW5jdGlvbiBMaXN0UmVzcG9uc2VzKCRmb3JtX2lkLCAkc29ydF9vcmRlcj0nc3VibWl0dGVkJykKCXsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkcmV0ID0gYXJyYXkoKTsKCQkkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX3Jlc3AgV0hFUkUgZm9ybV9pZD0/IE9SREVSIEJZID8nOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmb3JtX2lkLCRzb3J0X29yZGVyKSk7CgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5pZCA9ICRyZXN1bHRbJ3Jlc3BfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0Wyd1c2VyX2FwcHJvdmVkJ10pOyAKCQkJJG9uZXNldC0+YWRtaW5fYXBwcm92ZWQgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHJlc3VsdFsnYWRtaW5fYXBwcm92ZWQnXSk7IAoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHJlc3VsdFsnc3VibWl0dGVkJ10pOyAKCQkJYXJyYXlfcHVzaCgkcmV0LCRvbmVzZXQpOwoJCX0KCQlyZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBkZWYoJiR2YXIpCgl7CgkJaWYgKCFpc3NldCgkdmFyKSkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZWxzZSBpZiAoaXNfbnVsbCgkdmFyKSkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZWxzZSBpZiAoIWlzX2FycmF5KCR2YXIpICYmIGVtcHR5KCR2YXIpKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQllbHNlIGlmIChpc19hcnJheSgkdmFyKSAmJiBjb3VudCgkdmFyKSA9PSAwKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCglmdW5jdGlvbiBDbGVhckZpbGVMb2NrKCkKCXsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkc3FsID0gIkRFTEVURSBmcm9tICIuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmxvY2snOwoJCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKCX0KCglmdW5jdGlvbiBHZXRGaWxlTG9jaygpCgl7CgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJHNxbCA9ICJpbnNlcnQgaW50byAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zsb2NrIChmbG9ja19pZCwgZmxvY2spIHZhbHVlcyAoMSwiLiRkYi0+c3lzVGltZVN0YW1wLiIpIjsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CgkJaWYgKCRycykKCQl7CgkJCXJldHVybiB0cnVlOwoJCX0KCQkkc3FsID0gIlNFTEVDVCBmbG9ja19pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgoJCQkJIm1vZHVsZV9mYl9mbG9jayB3aGVyZSBmbG9jayArIGludGVydmFsIDE1IHNlY29uZCA8ICIuJGRiLT5zeXNUaW1lU3RhbXA7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoJCWlmICgkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCQl7CgkJCSR0aGlzLT5DbGVhckZpbGVMb2NrKCk7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIGZhbHNlOwoJfQoKCWZ1bmN0aW9uIFJldHVybkZpbGVMb2NrKCkKCXsKCQkkdGhpcy0+Q2xlYXJGaWxlTG9jaygpOwoJfQoKCWZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24gKCAkZXZlbnRuYW1lICkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2luZm9fJy4kZXZlbnRuYW1lICk7Cgl9CgoJZnVuY3Rpb24gR2V0RXZlbnRIZWxwICggJGV2ZW50bmFtZSApCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9oZWxwXycuJGV2ZW50bmFtZSApOwoJfQoKCWZ1bmN0aW9uIENyZWF0ZVBhZ2VEcm9wZG93bigkaWQsJG5hbWUsJGN1cnJlbnQ9JycsCgkJCQkJCQkJJGFkZHRleHQ9JycsJG1hcmtkZWZhdWx0ID10cnVlKQoJewogICAgICBnbG9iYWwgJGdDbXM7CgkJLy8gd2UgZ2V0IGhlcmUgKGhvcGVmdWxseSkgd2hlbiB0aGUgdGVtcGxhdGUgaXMgY2hhbmdlZAoJCS8vIGluIHRoZSBkcm9wZG93bi4KCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkZGVmYXVsdGlkID0gJyc7CgkJaWYoICRtYXJrZGVmYXVsdCApCgkJewoJCQkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoJCQkkZGVmYXVsdGlkID0gJGNvbnRlbnRvcHMtPkdldERlZmF1bHRQYWdlSUQoKTsKCQl9CgkJCgkJLy8gZ2V0IGEgbGlzdCBvZiB0aGUgcGFnZXMgdXNlZCBieSB0aGlzIHRlbXBsYXRlCgkJJG15cGFnZXMgPSBhcnJheSgpOwoKCQlpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21sZV92ZXJzaW9uJywnMCcpID09ICcxJykKCQkJewoJCQlnbG9iYWwgJG1sZWJsb2NrOwoJCQkkcSA9ICJTRUxFQ1QgY29udGVudF9pZCxjb250ZW50X25hbWUkbWxlYmxvY2sgYXMgY29udGVudF9uYW1lIEZST00gIi4KCQkJCWNtc19kYl9wcmVmaXgoKS4iY29udGVudCBXSEVSRSB0eXBlID0gPyBBTkQgYWN0aXZlID0gMSI7CQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRxID0gIlNFTEVDVCBjb250ZW50X2lkLGNvbnRlbnRfbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgoJCQkJImNvbnRlbnQgV0hFUkUgdHlwZSA9ID8gQU5EIGFjdGl2ZSA9IDEiOwoJCQl9CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoJ2NvbnRlbnQnKSApOwoJCXdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKCQl7CgkJCWlmKCAkZGVmYXVsdGlkICE9ICcnICYmICRyb3dbJ2NvbnRlbnRfaWQnXSA9PSAkZGVmYXVsdGlkICkKCQkJewoJCQkJLy8gdXNlIGEgc3RhciBpbnN0ZWFkIG9mIGEgd29yZCBoZXJlIHNvIEkgZG9uJ3QgaGF2ZSB0bwoJCQkJLy8gd29ycnkgYWJvdXQgdHJhbnNsYXRpb24gc3R1ZmYKCQkJCSRteXBhZ2VzWyRyb3dbJ2NvbnRlbnRfbmFtZSddLicgKCopJ10gPSAkcm93Wydjb250ZW50X2lkJ107CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkbXlwYWdlc1skcm93Wydjb250ZW50X25hbWUnXV0gPSAkcm93Wydjb250ZW50X2lkJ107CgkJCX0KCQl9CgkJcmV0dXJuICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnZmJycF8nLiRuYW1lLCRteXBhZ2VzLC0xLCRjdXJyZW50LCRhZGR0ZXh0KTsKCX0KCglmdW5jdGlvbiBTdXBwcmVzc0FkbWluT3V0cHV0KCYkcmVxdWVzdCkKCXsKCQlpZiAoaXNzZXQoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKSAmJiBzdHJwb3MoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddLCdleHBvcnR4bWwnKSAhPT0gZmFsc2UpCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJZWxzZWlmIChpc3NldCgkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pICYmIHN0cnBvcygkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10sJ2FkbWluX2dldF90ZW1wbGF0ZScpICE9PSBmYWxzZSkKCQl7CgkJCXJldHVybiB0cnVlOwoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9CgogICBmdW5jdGlvbiBjcnlwdCgkc3RyaW5nLCAkZGlzcG9zaXRpb25GaWVsZCkKICAgewogICBpZiAoJGRpc3Bvc2l0aW9uRmllbGQtPkdldE9wdGlvbignY3J5cHRfbGliJykgPT0gJ29wZW5zc2wnKQogICAgICB7CgkgICAkb3BlbnNzbCA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnT3BlblNTTCcpOwoJICAgaWYgKCRvcGVuc3NsID09PSBGQUxTRSkKCQkgICAgewoJCSAgICByZXR1cm4gYXJyYXkoZmFsc2UsJHRoaXMtPkxhbmcoJ3RpdGxlX2luc3RhbGxfb3BlbnNzbCcpKTsKCQkgICAgfQoJICAgJG9wZW5zc2wtPlJlc2V0KCk7CgkgICBpZiAoISAkb3BlbnNzbC0+bG9hZF9jZXJ0aWZpY2F0ZSgkZGlzcG9zaXRpb25GaWVsZC0+R2V0T3B0aW9uKCdjcnlwdF9jZXJ0JykpKQoJCSAgIHsKCQkgICByZXR1cm4gYXJyYXkoZmFsc2UsJG9wZW5zc2wtPm9wZW5zc2xfZXJyb3JzKCkpOwoJCSAgIH0KCSAgICRlbmMgPSAkb3BlbnNzbC0+ZW5jcnlwdF90b19wYXlsb2FkKCRzdHJpbmcpOwoJICAgfQogICAgZWxzZQogICAgICB7CiAgICAgICRrZiA9ICRkaXNwb3NpdGlvbkZpZWxkLT5HZXRPcHRpb24oJ2tleWZpbGUnKTsKICAgICAgaWYgKGZpbGVfZXhpc3RzKCRrZikpCiAgICAgICAgIHsKICAgICAgICAgJGtleSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRrZik7CiAgICAgICAgIH0KICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICRrZXkgPSAka2Y7CiAgICAgICAgIH0KICAgICAgJGVuYyA9ICR0aGlzLT5mYmVuY3J5cHQoJHN0cmluZywka2V5KTsKICAgICAgfQogICAgcmV0dXJuIGFycmF5KHRydWUsJGVuYyk7CiAgIH0KCgogIGZ1bmN0aW9uIGdldEhhc2hlZFNvcnRGaWVsZFZhbCgkdmFsKQoJewoJaWYgKHN0cmxlbigkdmFsKSA+IDQpCgkJewoJCSR2YWwgPSBzdWJzdHIoJHZhbCwwLDQpLiBtZDUoc3Vic3RyKCR2YWwsNCkpOwoJCX0KCXJldHVybiAkdmFsOwoJfQogICAKCWZ1bmN0aW9uIEdldEFjdGl2ZVRhYigmJHBhcmFtcykKCQl7CgkJaWYgKEZBTFNFID09IGVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpCgkJCXsKCQkgICAgcmV0dXJuICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKCQkgIAl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAnbWFpbnRhYic7CgkJCX0KCX0KICAKICAgZnVuY3Rpb24gZmJlbmNyeXB0KCRzdHJpbmcsJGtleSkKICAgICAgewogICAgICAka2V5ID0gc3Vic3RyKG1kNSgka2V5KSwwLDI0KTsKICAgICAgJHRkID0gbWNyeXB0X21vZHVsZV9vcGVuICgndHJpcGxlZGVzJywgJycsICdlY2InLCAnJyk7CiAgICAgICRpdiA9IG1jcnlwdF9jcmVhdGVfaXYgKG1jcnlwdF9lbmNfZ2V0X2l2X3NpemUgKCR0ZCksIE1DUllQVF9SQU5EKTsKICAgICAgbWNyeXB0X2dlbmVyaWNfaW5pdCAoJHRkLCAka2V5LCAkaXYpOwogICAgICAkZW5jID0gYmFzZTY0X2VuY29kZShtY3J5cHRfZ2VuZXJpYyAoJHRkLCAkc3RyaW5nKSk7CiAgICAgIG1jcnlwdF9nZW5lcmljX2RlaW5pdCAoJHRkKTsKICAgICAgbWNyeXB0X21vZHVsZV9jbG9zZSAoJHRkKTsKICAgICAgcmV0dXJuICRlbmM7CiAgICAgIH0KCiAgIGZ1bmN0aW9uIGZiZGVjcnlwdCgkY3J5cHQsJGtleSkKICAgICAgewogICAgICAkY3J5cHQgPSBiYXNlNjRfZGVjb2RlKCRjcnlwdCk7CiAgICAgICR0ZCA9IG1jcnlwdF9tb2R1bGVfb3BlbiAoJ3RyaXBsZWRlcycsICcnLCAnZWNiJywgJycpOwogICAgICAka2V5ID0gc3Vic3RyKG1kNSgka2V5KSwwLDI0KTsKICAgICAgJGl2ID0gbWNyeXB0X2NyZWF0ZV9pdiAobWNyeXB0X2VuY19nZXRfaXZfc2l6ZSAoJHRkKSwgTUNSWVBUX1JBTkQpOwogICAgICBtY3J5cHRfZ2VuZXJpY19pbml0ICgkdGQsICRrZXksICRpdik7CiAgICAgICRwbGFpbiA9IG1kZWNyeXB0X2dlbmVyaWMgKCR0ZCwgJGNyeXB0KTsKICAgICAgbWNyeXB0X2dlbmVyaWNfZGVpbml0ICgkdGQpOwogICAgICBtY3J5cHRfbW9kdWxlX2Nsb3NlICgkdGQpOwogICAgICByZXR1cm4gJHBsYWluOwogICAgICB9CgogIGZ1bmN0aW9uIGZiQ3JlYXRlSW5wdXRUZXh0KCRpZCwgJG5hbWUsICR2YWx1ZT0nJywgJHNpemU9JzEwJywgJG1heGxlbmd0aD0nMjU1JywgJGFkZHR0ZXh0PScnLCAkdHlwZT0ndGV4dCcpCgl7CiAgCSR2YWx1ZSA9IGNtc19odG1sZW50aXRpZXMoJHZhbHVlKTsKICAJJGlkID0gY21zX2h0bWxlbnRpdGllcygkaWQpOwogIAkkbmFtZSA9IGNtc19odG1sZW50aXRpZXMoJG5hbWUpOwogIAkkc2l6ZSA9IGNtc19odG1sZW50aXRpZXMoJHNpemUpOwogIAkkbWF4bGVuZ3RoID0gY21zX2h0bWxlbnRpdGllcygkbWF4bGVuZ3RoKTsKCiAgCSR2YWx1ZSA9IHN0cl9yZXBsYWNlKCciJywgJyZxdW90OycsICR2YWx1ZSk7CgogIAkkdGV4dCA9ICc8aW5wdXQgdHlwZT0iJy4kdHlwZS4nIiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgc2l6ZT0iJy4kc2l6ZS4nIiBtYXhsZW5ndGg9IicuJG1heGxlbmd0aC4nIic7CiAgCWlmICgkYWRkdHRleHQgIT0gJycpCiAgICAJewogICAgICAJJHRleHQgLj0gJyAnIC4gJGFkZHR0ZXh0OwogICAgCX0KICAJJHRleHQgLj0gIiAvPlxuIjsKICAJcmV0dXJuICR0ZXh0OwoJfQoKCWZ1bmN0aW9uIGZiQ3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkYWRkdHRleHQ9JycsICRpbWFnZT0nJywgJGNvbmZpcm10ZXh0PScnKQoJewoJICAkaWQgPSBjbXNfaHRtbGVudGl0aWVzKCRpZCk7CgkgICRuYW1lID0gY21zX2h0bWxlbnRpdGllcygkbmFtZSk7CgkgICRpbWFnZSA9IGNtc19odG1sZW50aXRpZXMoJGltYWdlKTsKCQlnbG9iYWwgJGdDbXM7CgkJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCQkkdGV4dCA9ICc8aW5wdXQgbmFtZT0iJy4kaWQuJG5hbWUuJyIgdmFsdWU9IicuJHZhbHVlLiciIHR5cGU9JzsKCQlpZiAoJGltYWdlICE9ICcnKQoJCXsKCQkJJHRleHQgLj0gJyJpbWFnZSInOwoJCQkkaW1nID0gJGNvbmZpZ1sncm9vdF91cmwnXSAuICcvJyAuICRpbWFnZTsKCQkJJHRleHQgLj0gJyBzcmM9IicuJGltZy4nIic7CgkJfQoJCWVsc2UKCQl7CgkJCSR0ZXh0IC49ICcic3VibWl0Iic7CgkJfQoJCWlmICgkY29uZmlybXRleHQgIT0gJycgKQoJCSAgewoJCQkkdGV4dCAuPSAnIG9uY2xpY2s9InJldHVybiBjb25maXJtKFwnJy4kY29uZmlybXRleHQuJ1wnKTsiJzsKCQkgIH0KCQlpZiAoJGFkZHR0ZXh0ICE9ICcnKQoJCXsKCQkJJHRleHQgLj0gJyAnLiRhZGR0dGV4dDsKCQl9CgkJJHRleHQgLj0gJyAvPic7CgkJcmV0dXJuICR0ZXh0IC4gIlxuIjsKCX0KCgogIGZ1bmN0aW9uIERlbGV0ZUZyb21TZWFyY2hJbmRleCgmJHBhcmFtcykKCXsKCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCgkJLy8gZmluZCBicm93c2VycyBrZXllZCB0byB0aGlzCgkJJGJyb3dzZXJzID0gJGFlZm9ybS0+R2V0Rm9ybUJyb3dzZXJzRm9yRm9ybSgpOwoJCWlmIChjb3VudCgkYnJvd3NlcnMpIDwgMSkKCQkJewoJCQlyZXR1cm47CgkJCX0KCgkJJG1vZHVsZSA9JiAkdGhpcy0+bW9kdWxlX3B0ci0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NlYXJjaCcpOwoJICAgIGlmICgkbW9kdWxlICE9IEZBTFNFKQoJICAgICAgewoJCQlmb3JlYWNoICgkYnJvd3NlcnMgYXMgJHRoaXNCcm93c2VyKQoJCQkJewoJCQkJJG1vZHVsZS0+RGVsZXRlV29yZHMoICdGb3JtQnJvd3NlcicsICRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10sICdzdWJfJy4kdGhpc0Jyb3dzZXIpOwkKCQkJCX0KCSAgICAgIH0KCX0KCgoKCiAgZnVuY3Rpb24gUmVnaXN0ZXJUaW55TUNFUGx1Z2luKCkgewogICAgCiAgICAkY29uZmlnPSR0aGlzLT5HZXRDb25maWcoKTsKICAgICRwbHVnaW4gPSAiCgl0aW55bWNlLmNyZWF0ZSgndGlueW1jZS5wbHVnaW5zLmZvcm1waWNrZXInLCB7CiAgICAgICAgY3JlYXRlQ29udHJvbDogZnVuY3Rpb24obiwgY20pIHsKICAgICAgICAgICAgc3dpdGNoIChuKSB7CiAgICAgICAgICAgICAgICAgY2FzZSAnZm9ybXBpY2tlcic6CiAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBjbS5jcmVhdGVNZW51QnV0dG9uKCdmb3JtcGlja2VyJywgewogICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA6ICciIC4gJHRoaXMtPkdldEZyaWVuZGx5TmFtZSgpIC4gIicsCiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlIDogJyIgLiAkY29uZmlnWyJyb290X3VybCJdIC4gIi9tb2R1bGVzL0Zvcm1CdWlsZGVyL2ltYWdlcy9pbmZvLXNtYWxsLmdpZicsCiAgICAgICAgICAgICAgICAgICAgICAgIGljb25zIDogZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgICAgICBjLm9uUmVuZGVyTWVudS5hZGQoZnVuY3Rpb24oYywgbSkgewogICAgICAgICAgICAgICAgIjsKICAgICRmb3JtcyA9ICR0aGlzLT5HZXRGb3JtcygpOwogICAgCiAgICBmb3JlYWNoICgkZm9ybXMgYXMgJGZvcm0pIHsgICAgIAogICAgICAgICRwbHVnaW4gLj0gIgogICAgICAgICAgICBtLmFkZCh7CiAgICAgICAgICAgICAgICB0aXRsZSA6ICciIC4gJGZvcm1bJ25hbWUnXSAuICInLAogICAgICAgICAgICAgICAgb25jbGljayA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICB0aW55TUNFLmFjdGl2ZUVkaXRvci5leGVjQ29tbWFuZCgnbWNlSW5zZXJ0Q29udGVudCcsIGZhbHNlLCAnJiMxMjM7Rm9ybUJ1aWxkZXIgZm9ybT1cIiIuJGZvcm1bImFsaWFzIl0uIlwiJiMxMjU7Jyk7CiAgICAgICAgICAgICAgICB9CiAgICAgIH0pOwogICAgICAiOwogICAgfQoKCgogICAgJHBsdWdpbiAuPSAiCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAvLyBSZXR1cm4gdGhlIG5ldyBtZW51IGJ1dHRvbiBpbnN0YW5jZQogICAgICAgICAgICAgIHJldHVybiBjOwogICAgICAgICAgICB9CgogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICB9Cn0pOwoiOwogcmV0dXJuIGFycmF5KGFycmF5KCdmb3JtcGlja2VyJywgJHBsdWdpbiwgJHRoaXMtPkdldEZyaWVuZGx5TmFtZSgpKSk7CiAgfQoKCgoKfSAvLyBFbmQgb2YgQ2xhc3MKCiMgdmltOnRzPTQgc3c9NCBub2V0Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPflAP///4+IiP7+/vv7+/z8/P39/cjHx/X19fT09PLy8vr6+vn5+efm5uTj4+jn55CJidHQ0O3s7NnZ2ZWPj+Xl5d3d3dvb2/j4+NPS0vDw8PHx8e7u7vf39+vq6tra2uLi4uzs7NHR0dHOzszLy+Hf39bW1uLh4fX09M/Pz8vKyr25ucfExObl5djX18rJyfn4+Nzb2+/u7u/v7/b29sXExMC8vNLPz7y4uElJScC/v+fn5+no6NnY2NDPz2dnZ93c3JeQkOzr68vLy+Pi4pSOjvPz876+vvz7+5+ZmfDv73Z2dr29vevr6+Hh4bu6usTExH19fdfV1Z2Xl9LS0qqkpJeRkaulpeDe3o2Njbu3t46OjsPDw9TU1N7d3dXU1K6pqXV1dbeyss7Ly1tbW7q5ufHw8PPy8ri4uJWVlaKcnPj39/Lx8cLBwX9/f8HAwLq2ttPR0ff29tXT0/v6+iUlJerq6rm1tZycnKmpqdPQ0JiRkcfDw8TAwKScnD09PaehodfU1Le3t+3t7aCamtDQ0Ly8vKGcnLWxscnJyVpaWrOyst/f36OdnbKysp2dnW5uboqKip6YmCkpKcrHx9fX14GBgbOurmJiYlZWVt3b2+rp6Z+amtzc3CAgINjW1t7c3JqUlJaPj/b19cXFxd7f387OztHPz5GRkXl5eaijo769vZSNjaioqOrr67q1tb66utrZ2ebm5pmSkpmZmczMzKqqqpGKiubk5NTT09TR0baxsejo6Ojp6crKylBQUOTk5JaQkNfW1pWOjt/e3qWfn5+fn7m0tJiSks7MzG5lZZOMjOPj47+/vzY2NoODg+Hg4KKiov79/cbFxcTCwr28vLu5ud7e3sLCwunp6bW1tevs7MfGxtDNzZ6enmBgYOLj4+Dg4NjY2K2oqNXS0rezs////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAOUALAAAAAAgACAAAAj/AMsJHEiwoMGDBAEoVDiQIcKHCRdKnEgRQMKDFTNqpChwo0eNHT8qHJDBAQsGdZKcWDBDw4YNAkiIMTMxQ4VFIC4o4LCwFTUnKQyM2vKEDBk2IQwg0EUkU7mFBEqg8aGE1RJo3ipR0BYCAQATLCxI6METgBtN5AJEeaqQwIdAUJr5mYWlE44pCUagIOWhixBVigyUALeEhYoAntgCELCgCLYKFRAIuhaCg1tkhCjBIPGNQYNhP5os2BMAkOKFAjYKKHCkwEIFCRx0GBdAxOmNBTZYsFABFq4RNHLkkLbtSYMAK26PTHAgg5BeFwrw2MLpl4MNBwaMZOIkRgA7pwl4/+gGBkshR74uIQLww8sJMx2GWPACoQcELi1mBKByusAUZzhAgQckqNzhAQAN0OCCKRgEA4MJDICQhAYDLAAEEiEppIEEtCwjgw4yZAfAHDEEkcAC0Sw2wAEfWrOGIXpkqJBrGRGQAAMwYDCCAS5A0MUzKThghTAybnRACtW4EA4FGiiw2AUUcMGEJUQUudgBTRjRSDFgnJFBCzsckQAFPJRigAEotMDLCa5MICMIp/igxRh0YPLIGMzMgIEBGEAAhwQNFEGAGhEAcEENwMj4QSKSaNGGErWgUAICBMQigQkRILAAARGE0QcoAyiwQhUyImBENrskoB1u0ySzSRYKrZsQSpEKOCkSAAgIIMoQufARySpW3qrQC3lQEcCxxzYkbAExyBEGMVUc+8AxVrwxibIfDRCEGF9MgGwAE2TRgEEelWHDFw8gawsSxkSxQxwIUSTAAbfYoMIfQKQbgDJp1HDFCxDdVgY34uh7rBQ3XCFAwBFFoAIj3gbwgCyp3CACAxwszLCyn3wrxSskaLwxQg4McogIHQA8skEBAQA7]]></data>
	</file>
	<file>
	  <filename>/images/info-large.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAOZoAHm4/367/326/3q4/3W2/3e3/3u5/3O1/////ozB/Hy6/67U/Xi3/+bx/n+6/Hy5/3a3/3a2/+Hv/vT5/oS+/1ak/W6y/qvR/e31/2Cq/mSr/Fil/H66/2Cp/GSs/GWt/nKz/IrA/Guv/JDE//j7/4C6/Pr8/3O1/t7t/lal/Wqv/pHE/Guw/mSs/lel/GSt/t/u/l6p/FWk/Fyn/Ie+/Nnr/vf7/2Gr/ff6/2yx/lWk/Xi4/1im/b7c/ZDD/OXx/qbP/WGq/bnZ/VGi/KPN/Wiu/n65/IG7/KXP/4jA/3K0/+v0/nW1/5zL/3S1/4zC//L4/rva/myx/6vS/tbp/rzb/4G8//r8/vz+/qnR/5/M/9vs/rXX/+71/oa//3S2/9Pn/pLF/+jy/orB/63U/5rJ/3K1/3q5/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGgALAAAAAAUABQAAAf/gGiCgxhCKyVGIRcwg42NPSIyNyosLxUdRDaOgjhHOhEBAgpnCgEDQR4ojiYgRQEGAAAEAhAAAwEnGxKNPi0BsbJcS1FMsQIHGiSCNUO/sQwFYghUTsABGUBoDTQWD8AABWFTXgXAAwMxDQszsN8HEBTl3wEpCwkuHN8FTRITFLXABHxI4ICHM1kjfmCZYEVerAc5HBQ8uMMAhQk/GDD4BtHBvXzACIxBAEZKhG8CE6xrF+tAGQRVsmj5Yq3etm7AlJBBAKXLCAKxzqVDw+ygGSRXtiQ5YA3boF4HDTyRFRCZMkGsXMHaQWCjLVy6HHX6FEqBAgGmUKnahAaSJEqWDDBpYiuo0KFEizYFAgA7]]></data>
	</file>
	<file>
	  <filename>/images/info-small.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDAAMAOZNAHm4/3W2/3y6/367/3e3/326/3u5/3+7/3i4/4a+/XO1/4S9/fP5/3+6/Hq4/3a2/+/3/u31/5vJ/Y/D/WKq/bLW/7XX/XK0/2at/GWt/t7u/mSs/Mbg/s/m/tXo/pHE/cni/qHM/YjA/5TG/Wyx/pDD/abP/W2x/mKr/YnA/9rr/oS+/6fQ/97t/m2x/4e//3G0/43C/2+y/na3/8vj/szk/o/D/325/JrJ/efy/m2y/4e+/Yi//c7l/nS1/4m//dnr/sLe/rbY/WKs/bnZ/cji/+Lw/qvS/YC7/5LF//j7/2au/nCz/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAE0ALAAAAAAMAAwAAAeAgE2CDEILNyFGgopBGwEIPgQoOIo0GQcIKRVIBQElTQwYBwAKLBAvBAVLHhYyBgAEAjYPAAACIzsBDgQrGkAXtAMJCw8OAAFFNTrACUdMrjAdPUkBtRMRFKIKKjkxMwIuIE1EJAMIIgMBBQANiiZDBgYFAicNSopNLRI/PB8cioEAOw==]]></data>
	</file>
	<file>
	  <filename>/images/stop.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUAOZ/AI0AAJQAAf36+tsCFP729/79/deRlPujq8tydO1zfd2Xm+QFGvzBx65NTaMAAe4OJdoAC/bp6ecPI/V6hv4qQPHg4eQAFP4sQv7q7KkAA9oABsmKivo4Tfe4va4DDPkiOdurrPESKf4nPf8oP+EADfvx8vrl570ABbEAA//M0Z0nJ5kAAf3u78QABcgADP0kO/OXn6tHR54eH/YgNp4AAfUYL+/c3ORVYdaKjv3i5bweKPyqs/cnPf1NYPomPcImMK4/P9UAA/Lc3f10guMcLumQlv/u8LZBRbVPULtSVfbCxvjf4fLJzP3m6NWXmMNGTs9IUeG5utpJV/rIzfxse9+2tu4RJ/ZSY/5QYv1fb8VvcdRucv7p68FSVu6bofRib74FEukJIPUbMv8jOuAsPejLy70lL7YACOTBweUyQ+8bMP7k5+9DU8AeKd4YKtY9SOvV1e/S0+zX1/GTmvSXn+9hcOptdcA2PPbs7PabpPyWof5xgP53hf/+/v///////yH5BAEAAH8ALAAAAAAUABQAAAf/gH+Cgn5rO3tYPVQHOX6Dj4IYfBQiFJQfNSFfTZCCKRcjFC8UHBwzIVZhCx2QKWMXF1kMXAQEGAxsFgskrIJGoRcvep0FdCQWECZ/fkMfPh88NQeOkDAaLlJ+GGIzVxMhamF51IN9by4tSzsPD1N+EwsSFjDkgkwnJ0V1YRIsf30JSCyAMKdeCTAnoKRZQISAIIAaBmgoOEhAmzM/yAxw4/ChnSAuUCigJkAHCjM3IAzwV26LAw8ZRv4pAfOJFw0alEDqg8BBBgcK/sRx4ACHiRYn7vTZiYCGAxoGujwV4ifJihVOOvFcQYPriiNLIwRYEcBJAUh+tFwlW2FQFAABMQIAQYNHgIAIZZDEBQACUhUAgOHKkBEgMN96gio0MGw4ho1O5eRsiKFCRYwNcM4+CgQAOw==]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dGFibGUubW9kdWxlX2ZiX3RhYmxlIHtmb250LXNpemU6IDEwcHg7IHdpZHRoOjYwMHB4OyBtYXJnaW46IDA7fQoubW9kdWxlX2ZiX2FyZWFfd2lkZSB7d2lkdGg6IDU1N3B4O30KLm1vZHVsZV9mYl9sZWdlbmR7Zm9udC1zaXplOiA5cHg7IG1hcmdpbjogNnB4IDA7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO30KLm1vZHVsZV9mYl9hcmVhX3Nob3J0IHt3aWR0aDogNTAwcHg7IGhlaWdodDogMTAwcHg7fQoubW9kdWxlX2ZiX2xpbmsge3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO30KLm1vZHVsZV9mYl9maWVsZHNldCB7bWFyZ2luLWJvdHRvbToyZW07fQoubW9kdWxlX2Zicl90YWJsZSB0ci5yb3cxOmhvdmVyLCAubW9kdWxlX2Zicl90YWJsZSB0ci5yb3cyOmhvdmVye2JhY2tncm91bmQ6ICNDQ0RCREQ7fQoub2RkIHtiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO3RleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbm1lbnQ6IHRvcDt9Ci5ldmVuIHtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO3RleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbm1lbnQ6IHRvcDt9Ci5pbnB1dGhlbHAgIHsgY29sb3I6ICMzODQ2NTQ7IHBhZGRpbmc6IDA7IG1hcmdpbjogMDsgbWFyZ2luLWxlZnQ6IDIwJTsgd2lkdGg6IGF1dG87IHRleHQtYWxpZ246bGVmdDsgfQ==]]></data>
	</file>
	<file>
	  <filename>/includes/Advanced_Contact_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjE0IgoJYWxpYXM9ImFkdmFuY2VkX2NvbnRhY3QiPgoJCTxmb3JtX25hbWU+PCFbQ0RBVEFbQWR2YW5jZWQgQ29udGFjdCBGb3JtXV0+PC9mb3JtX25hbWU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9hY3Rpb24iPjwhW0NEQVRBW3RleHRdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iY3NzX2NsYXNzIj48IVtDREFUQVthZHZhbmNlZGNvbnRhY3Rmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Imxpc3RfZGVsaW1pdGVyIj48IVtDREFUQVssXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImlubGluZSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Im5leHRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0NvbnRpbnVlLi4uXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InRpdGxlX3VzZXJfY2FwdGNoYSI+PCFbQ0RBVEFbUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NhcHRjaGEiPjwhW0NEQVRBW11dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjYXB0Y2hhX3dyb25nIj48IVtDREFUQVtDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icHJldl9idXR0b25fdGV4dCI+PCFbQ0RBVEFbQmFjay4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZXF1aXJlZF9maWVsZF9zeW1ib2wiPjwhW0NEQVRBWypdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idW5zcGVjaWZpZWQiPjwhW0NEQVRBW1t1bnNwZWNpZmllZF1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtTdWJtaXQgRm9ybV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9yZXNwb25zZSI+PCFbQ0RBVEFbPHA+VGhhbmsgeW91LCA8c3Ryb25nPnskeW91cl9uYW1lfTwvc3Ryb25nPi48L3A+CjxwPllvdXIgc3VibWlzc2lvbiBoYXMgYmVlbiBzdWNjZXNzZnVsLiBZb3UgbWF5IHdpc2ggdG8gcHJpbnQgdGhpcyBwYWdlIGFzIGEgcmVmZXJlbmNlLjwvcD4KPGgzPkNvbnRhY3QgRGV0YWlsczwvaDM+CjxwPgo8c3Ryb25nPk5hbWU8L3N0cm9uZz46IHskeW91cl9uYW1lfTxiciAvPgo8c3Ryb25nPkVtYWlsPC9zdHJvbmc+OiA8YSBocmVmPSJtYWlsdG86eyR5b3VyX2VtYWlsX2FkZHJlc3N9Ij57JHlvdXJfZW1haWxfYWRkcmVzc308L2E+PGJyIC8+CjwvcD4KPGgzPkZlZWRiYWNrIERldGFpbHM8L2gzPgo8cD4KPHN0cm9uZz5TdWJqZWN0PC9zdHJvbmc+OiB7JHN1YmplY3R9PGJyIC8+CjxzdHJvbmc+Q29tbWVudHM8L3N0cm9uZz46PGJyIC8+CnskbWVzc2FnZX0KPC9wPiAKPGg0Pk90aGVyIGluZm9ybWF0aW9uPC9oND4KPHA+CjxzdHJvbmc+RGF0ZSBvZiBTdWJtaXNzaW9uPC9zdHJvbmc+OiB7JHN1Yl9kYXRlfTxiciAvPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPlVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfdXJsfTxiciAvPgo8c3Ryb25nPkRvbWFpbjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5Zb3VyIElQIGFkZHJlc3M8L3N0cm9uZz46IHskc3ViX3NvdXJjZV9pcH0KPC9wPiBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icHJlZGlzcGxheV91ZHQiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImZvcm1fdGVtcGxhdGUiPjwhW0NEQVRBW3sqIERFRkFVTFQgRk9STSBMQVlPVVQgLyBwdXJlIENTUyAqfQp7JGZiX2Zvcm1faGVhZGVyfQp7aWYgJGZiX2Zvcm1fZG9uZSA9PSAxfQoJeyogVGhpcyBmaXJzdCBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHN1Ym1pc3Npb24gZXJyb3JzICp9Cgl7aWYgaXNzZXQoJGZiX3N1Ym1pc3Npb25fZXJyb3IpICYmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4KCQl7aWYgaXNzZXQoJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnMpICYmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8ZGl2IGNsYXNzPSJlcnJvciI+CgkJCTx1bD4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQkJey9mb3JlYWNofQoJCQk8L3VsPgoJCTwvZGl2PgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmIGlzc2V0KCRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9ycykgJiYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPgoJCTx1bD4KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0KCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCXsvZm9yZWFjaH0KCQk8L3VsPgoJCTwvZGl2PgoJey9pZn0KCXtpZiBpc3NldCgkY2FwdGNoYV9lcnJvcikgJiYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4KCTxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08c3Bhbj57JHRpdGxlX3BhZ2VfeF9vZl95fTwvc3Bhbj57L2lmfQoJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQogICAgICAgIAl7c3RyaXB9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTxkaXYKICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJycgfHwgJGVudHJ5LT52YWxpZCA9PSAwfSBjbGFzcz0iCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfXJlcXVpcmVkey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30geyRlbnRyeS0+Y3NzX2NsYXNzfXsvaWZ9CiAgICAgICAgICAgICAgICAgICAge2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gZmJfaW52YWxpZHsvaWZ9CiAgICAgICAgICAgICAgCQkiCiAgICAgICAgICAgIAl7L2lmfQogICAgICAgICAgICAJPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQogICAgICAgICAgICAJPGxhYmVse2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgIT0gMX0gZm9yPSJ7JGVudHJ5LT5pbnB1dF9pZH0iey9pZn0+eyRlbnRyeS0+bmFtZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30KICAgICAgICAgICAgICAgCQl7JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2x9CiAgICAgICAgICAgIAl7L2lmfQogICAgICAgICAgICAJPC9sYWJlbD4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQogICAgICAgICAgICAJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5sYWJlbF9wYXJ0cyA9PSAxfQogICAgICAgICAgICAgICAJCQk8ZGl2PnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgCQl7ZWxzZX0KICAgICAgICAgICAgICAgCQkJeyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fQogICAgICAgICAgICAgICAJCXsvaWZ9CiAgICAgICAgICAgICAgIAkJe2lmIGlzc2V0KCRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wKSAmJiAkZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9ey9pZn0KICAgICAgICAgICAgCXsvc2VjdGlvbn0KICAgICAgICAgCXtlbHNlfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+c21hcnR5X2V2YWwgPT0gJzEnfXtldmFsIHZhcj0kZW50cnktPmlucHV0fXtlbHNlfXskZW50cnktPmlucHV0fXsvaWZ9CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7JGVudHJ5LT5lcnJvcn17L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9CiAgICAgICAgICAgIAk8L2Rpdj4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7L3N0cmlwfQogICAgIAl7L2lmfQoJey9mb3JlYWNofQoJe2lmICRoYXNfY2FwdGNoYSA9PSAxfQoJCTxkaXYgY2xhc3M9ImNhcHRjaGEiPnskZ3JhcGhpY19jYXB0Y2hhfXskdGl0bGVfY2FwdGNoYX08YnIgLz57JGlucHV0X2NhcHRjaGF9PC9kaXY+Cgl7L2lmfQoJPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+Cgk8L2Rpdj4KCXskZmJfZm9ybV9lbmR9CnsvaWZ9CnskZmJfZm9ybV9mb290ZXJ9XV0+PC9hdHRyaWJ1dGU+Cgk8ZmllbGQgaWQ9IjExMyIKCQl0eXBlPSJGaWVsZHNldFN0YXJ0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIxIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtBYm91dCBZb3UgRmllbGRzZXRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImxlZ2VuZCI+PCFbQ0RBVEFbQWJvdXQgWW91XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iaGVscHRleHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImphdmFzY3JpcHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMTQiCgkJdHlwZT0iRnJvbUVtYWlsTmFtZUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIxIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbWW91ciBOYW1lXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVt1c2Vyc19uYW1lXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iaGVscHRleHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImphdmFzY3JpcHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMTUiCgkJdHlwZT0iRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSJub25lIgoJCW9yZGVyX2J5PSIzIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbWW91ciBFbWFpbCBBZGRyZXNzXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9zdWJqZWN0Ij48IVtDREFUQVtFbWFpbCBmcm9tIFNpdGVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InNlbmRfdXNlcl9jb3B5Ij48IVtDREFUQVtjXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0ic2VuZF91c2VyX2xhYmVsIj48IVtDREFUQVtTZW5kIG1lIGEgY29weSBvZiBmb3JtXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImphdmFzY3JpcHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9Imh0bWxfZW1haWwiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3RlbXBsYXRlIj48IVtDREFUQVtGb3JtQnVpbGRlciBTdWJtaXNzaW9uCkZvcm0gTmFtZTogeyRzdWJfZm9ybV9uYW1lfQpEYXRlIG9mIFN1Ym1pc3Npb246IHskc3ViX2RhdGV9CllvdXIgc2VydmVyOiB7JHN1Yl9ob3N0fQpJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtOiB7JHN1Yl9zb3VyY2VfaXB9ClVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTogeyRzdWJfdXJsfQpGb3JtQnVpbGRlciB2ZXJzaW9uOiB7JGZiX3ZlcnNpb259ClRhYiBDaGFyYWN0ZXI6IHskVEFCfQotPgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCllvdXIgTmFtZTogeyRmbGRfMTE2fQpZb3VyIEVtYWlsIEFkZHJlc3M6IHskZmxkXzQzfQpFbWFpbCBBZ2FpbjogeyRmbGRfNDJ9ClN1YmplY3Q6IHskZmxkXzExOH0KTWVzc2FnZTogeyRmb299Cl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2VuY29kaW5nIj48IVtDREFUQVt1dGYtOF1dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMTYiCgkJdHlwZT0iRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjQiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtFbWFpbCBBZ2Fpbl1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfdG9fdmFsaWRhdGUiPjwhW0NEQVRBW1lvdXIgRW1haWwgQWRkcmVzc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMjAiCgkJdHlwZT0iRmllbGRzZXRFbmQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjUiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0Fib3V0IFlvdSBGaWVsZHNldCBFbmRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImhlbHB0ZXh0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTIxIgoJCXR5cGU9IlBhZ2VCcmVha0ZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI2IgoJCXJlcXVpcmVkPSIiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVticmVha2VyXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEyMyIKCQl0eXBlPSJGaWVsZHNldFN0YXJ0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI3IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtDb250YWN0IEZpZWxkc2V0XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJsZWdlbmQiPjwhW0NEQVRBW0NvbnRhY3RdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJoZWxwdGV4dCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEyMiIKCQl0eXBlPSJTdGF0aWNUZXh0RmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjgiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0dyZWV0aW5nXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJ0ZXh0Ij48IVtDREFUQVtIZWxsbywgeyR1c2Vyc19uYW1lLT52YWx1ZX0hPGJyIC8+IFdoYXQgaXMgaXQgeW91J2QgbGlrZSB0byB0YWxrIHRvIHVzIGFib3V0P11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImhlbHB0ZXh0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJqYXZhc2NyaXB0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJzbWFydHlfZXZhbCI+PCFbQ0RBVEFbMV1dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMTciCgkJdHlwZT0iRnJvbUVtYWlsU3ViamVjdEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI5IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbU3ViamVjdF1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTE4IgoJCXR5cGU9IlRleHRBcmVhRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjEwIgoJCXJlcXVpcmVkPSIxIgoJCWhpZGVfbGFiZWw9IjAiCgkJZGlzcGxheV9pbl9zdWJtaXNzaW9uPSIxIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbTWVzc2FnZV1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0icm93cyI+PCFbQ0RBVEFbNV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNvbHMiPjwhW0NEQVRBWzYwXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbbWVzc2FnZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImRlZmF1bHQiPjwhW0NEQVRBW0VudGVyIFlvdXIgTWVzc2FnZSBIZXJlXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY2xlYXJfZGVmYXVsdCI+PCFbQ0RBVEFbMV1dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMTkiCgkJdHlwZT0iRGlzcG9zaXRpb25FbWFpbCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMTEiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IjEiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtTZW5kIFRvXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9zdWJqZWN0Ij48IVtDREFUQVtDb250YWN0IEZvcm0gU3VibWlzc2lvbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fbmFtZSI+PCFbQ0RBVEFbRm9ybSBCdWlsZGVyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9hZGRyZXNzIj48IVtDREFUQVt3ZWJzaXRlQHlvdXJkb21haW4uY29tXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZGVzdGluYXRpb25fYWRkcmVzcyI+PCFbQ0RBVEFbeW91QHlvdXJkb21haW4uY29tXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9Imh0bWxfZW1haWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbPGgxPkZvcm1CdWlsZGVyIFN1Ym1pc3Npb248L2gxPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPkRhdGUgb2YgU3VibWlzc2lvbjwvc3Ryb25nPjogeyRzdWJfZGF0ZX08YnIgLz4KPHN0cm9uZz5Zb3VyIHNlcnZlcjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5JUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9PGJyIC8+CjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+CjxzdHJvbmc+Rm9ybUJ1aWxkZXIgdmVyc2lvbjwvc3Ryb25nPjogeyRmYl92ZXJzaW9ufTxiciAvPgo8c3Ryb25nPlRhYiBDaGFyYWN0ZXI8L3N0cm9uZz46IHskVEFCfTxiciAvPgoKPGhyIC8+CntpZiAkZmxkXzExNCAhPSAiIiAmJiAkZmxkXzExNCAhPSAiW3Vuc3BlY2lmaWVkXSIgfTxzdHJvbmc+WW91ciBOYW1lPC9zdHJvbmc+OiB7JGZsZF8xMTR9PGJyIC8+ey9pZn0Ke2lmICRmbGRfMTE1ICE9ICIiICYmICRmbGRfMTE1ICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5Zb3VyIEVtYWlsIEFkZHJlc3M8L3N0cm9uZz46IHskZmxkXzExNX08YnIgLz57L2lmfQp7aWYgJGZsZF8xMTYgIT0gIiIgJiYgJGZsZF8xMTYgIT0gIlt1bnNwZWNpZmllZF0iIH08c3Ryb25nPkVtYWlsIEFnYWluPC9zdHJvbmc+OiB7JGZsZF8xMTZ9PGJyIC8+ey9pZn0Ke2lmICRmbGRfMTE3ICE9ICIiICYmICRmbGRfMTE3ICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5TdWJqZWN0PC9zdHJvbmc+OiB7JGZsZF8xMTd9PGJyIC8+ey9pZn0Ke2lmICRtZXNzYWdlICE9ICIiICYmICRtZXNzYWdlICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5NZXNzYWdlPC9zdHJvbmc+OiB7JG1lc3NhZ2V9PGJyIC8+ey9pZn0Ke2lmICRmbGRfMTE5ICE9ICIiICYmICRmbGRfMTE5ICE9ICJbdW5zcGVjaWZpZWRdIiB9PHN0cm9uZz5TZW5kIFRvPC9zdHJvbmc+OiB7JGZsZF8xMTl9PGJyIC8+ey9pZn0KXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZW5jb2RpbmciPjwhW0NEQVRBW3V0Zi04XV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEyNCIKCQl0eXBlPSJGaWVsZHNldEVuZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMTIiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlkaXNwbGF5X2luX3N1Ym1pc3Npb249IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0NvbnRhY3QgRmllbGRzZXQgRW5kXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJoZWxwdGV4dCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+CjwvZm9ybT4K]]></data>
	</file>
	<file>
	  <filename>/includes/Contact_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjEiCglhbGlhcz0iY29udGFjdCI+CgkJPGZvcm1fbmFtZT48IVtDREFUQVtDb250YWN0IEZvcm1dXT48L2Zvcm1fbmFtZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV90ZW1wbGF0ZSI+PCFbQ0RBVEFbeyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiBpc3NldCgkZmJfc3VibWlzc2lvbl9lcnJvcikgJiYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2PgoJCXtpZiBpc3NldCgkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycykgJiYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgaXNzZXQoJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzKSAmJiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+CgkJPHVsPgoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJPC9kaXY+Cgl7L2lmfQoJe2lmIGlzc2V0KCRjYXB0Y2hhX2Vycm9yKSAmJiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoJPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CiAgICAgICAgCXtzdHJpcH0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPGRpdgogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJyB8fCAkZW50cnktPnZhbGlkID09IDB9IGNsYXNzPSIKICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9cmVxdWlyZWR7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7JGVudHJ5LT5jc3NfY2xhc3N9ey9pZn0KICAgICAgICAgICAgICAgICAgICB7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSBmYl9pbnZhbGlkey9pZn0KICAgICAgICAgICAgICAJCSIKICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQogICAgICAgICAgICAgICAJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk8L2xhYmVsPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAgICAgICAgIAl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAJCXtlbHNlfQogICAgICAgICAgICAgICAJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAgCQl7aWYgaXNzZXQoJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3ApICYmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQogICAgICAgICAgICAJey9zZWN0aW9ufQogICAgICAgICAJe2Vsc2V9CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTwvZGl2PgogICAgICAgICAJey9pZn0KICAgICAgICAgCXsvc3RyaXB9CiAgICAgCXsvaWZ9Cgl7L2ZvcmVhY2h9Cgl7aWYgJGhhc19jYXB0Y2hhID09IDF9CgkJPGRpdiBjbGFzcz0iY2FwdGNoYSI+eyRncmFwaGljX2NhcHRjaGF9eyR0aXRsZV9jYXB0Y2hhfTxiciAvPnskaW5wdXRfY2FwdGNoYX08L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KCTwvZGl2PgoJeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2FjdGlvbiI+PCFbQ0RBVEFbdGV4dF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjc3NfY2xhc3MiPjwhW0NEQVRBW2NvbnRhY3Rmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Imxpc3RfZGVsaW1pdGVyIj48IVtDREFUQVssXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImlubGluZSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfamF2YXNjcmlwdCI+PCFbQ0RBVEFbXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Im5leHRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0NvbnRpbnVlLi4uXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InRpdGxlX3VzZXJfY2FwdGNoYSI+PCFbQ0RBVEFbUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NhcHRjaGEiPjwhW0NEQVRBW11dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjYXB0Y2hhX3dyb25nIj48IVtDREFUQVtDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icHJldl9idXR0b25fdGV4dCI+PCFbQ0RBVEFbQmFjay4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZXF1aXJlZF9maWVsZF9zeW1ib2wiPjwhW0NEQVRBWypdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idW5zcGVjaWZpZWQiPjwhW0NEQVRBW1t1bnNwZWNpZmllZF1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtTdWJtaXQgRm9ybV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9yZXNwb25zZSI+PCFbQ0RBVEFbPHA+VGhhbmsgeW91LCA8c3Ryb25nPnskeW91cl9uYW1lfTwvc3Ryb25nPi48L3A+CjxwPllvdXIgc3VibWlzc2lvbiBoYXMgYmVlbiBzdWNjZXNzZnVsLiBZb3UgbWF5IHdpc2ggdG8gcHJpbnQgdGhpcyBwYWdlIGFzIGEgcmVmZXJlbmNlLjwvcD4KPGgzPkNvbnRhY3QgRGV0YWlsczwvaDM+CjxwPgo8c3Ryb25nPk5hbWU8L3N0cm9uZz46IHskeW91cl9uYW1lfTxiciAvPgo8c3Ryb25nPkVtYWlsPC9zdHJvbmc+OiA8YSBocmVmPSJtYWlsdG86eyR5b3VyX2VtYWlsX2FkZHJlc3N9Ij57JHlvdXJfZW1haWxfYWRkcmVzc308L2E+PGJyIC8+CjwvcD4KPGgzPkZlZWRiYWNrIERldGFpbHM8L2gzPgo8cD4KPHN0cm9uZz5TdWJqZWN0PC9zdHJvbmc+OiB7JHN1YmplY3R9PGJyIC8+CjxzdHJvbmc+Q29tbWVudHM8L3N0cm9uZz46PGJyIC8+CnskbWVzc2FnZX0KPC9wPiAKPGg0Pk90aGVyIGluZm9ybWF0aW9uPC9oND4KPHA+CjxzdHJvbmc+RGF0ZSBvZiBTdWJtaXNzaW9uPC9zdHJvbmc+OiB7JHN1Yl9kYXRlfTxiciAvPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPlVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfdXJsfTxiciAvPgo8c3Ryb25nPkRvbWFpbjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5Zb3VyIElQIGFkZHJlc3M8L3N0cm9uZz46IHskc3ViX3NvdXJjZV9pcH0KPC9wPiBdXT48L2F0dHJpYnV0ZT4KCTxmaWVsZCBpZD0iMyIKCQl0eXBlPSJGaWVsZHNldFN0YXJ0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIxIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0NvbnRhY3QgRmllbGRzZXRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImxlZ2VuZCI+PCFbQ0RBVEFbQ29udGFjdF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjQiCgkJdHlwZT0iRnJvbUVtYWlsTmFtZUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1lvdXIgTmFtZV1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNDMiCgkJdHlwZT0iRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSJub25lIgoJCW9yZGVyX2J5PSIzIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1lvdXIgRW1haWwgQWRkcmVzc11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfc3ViamVjdCI+PCFbQ0RBVEFbRW1haWwgZnJvbSBTaXRlXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9uYW1lIj48IVtDREFUQVtGb3JtIEJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJzZW5kX3VzZXJfY29weSI+PCFbQ0RBVEFbY11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InNlbmRfdXNlcl9sYWJlbCI+PCFbQ0RBVEFbU2VuZCBtZSBhIGNvcHkgb2YgZm9ybV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJqYXZhc2NyaXB0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVswXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfdGVtcGxhdGUiPjwhW0NEQVRBW0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24KRm9ybSBOYW1lOiB7JHN1Yl9mb3JtX25hbWV9CkRhdGUgb2YgU3VibWlzc2lvbjogeyRzdWJfZGF0ZX0KWW91ciBzZXJ2ZXI6IHskc3ViX2hvc3R9CklQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm06IHskc3ViX3NvdXJjZV9pcH0KVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtOiB7JHN1Yl91cmx9CkZvcm1CdWlsZGVyIHZlcnNpb246IHskZmJfdmVyc2lvbn0KVGFiIENoYXJhY3RlcjogeyRUQUJ9Ci0+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KWW91ciBOYW1lOiB7JGZsZF80fQpZb3VyIEVtYWlsIEFkZHJlc3M6IHskZmxkXzQzfQpFbWFpbCBBZ2FpbjogeyRmbGRfNDJ9ClN1YmplY3Q6IHskZmxkXzZ9Ck1lc3NhZ2U6IHskZm9vfQpdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9lbmNvZGluZyI+PCFbQ0RBVEFbdXRmLThdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNDIiCgkJdHlwZT0iRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjQiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbRW1haWwgQWdhaW5dXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX3RvX3ZhbGlkYXRlIj48IVtDREFUQVtZb3VyIEVtYWlsIEFkZHJlc3NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNiIKCQl0eXBlPSJGcm9tRW1haWxTdWJqZWN0RmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjUiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbU3ViamVjdF1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iNyIKCQl0eXBlPSJUZXh0QXJlYUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI2IgoJCXJlcXVpcmVkPSIxIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW01lc3NhZ2VdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9InJvd3MiPjwhW0NEQVRBWzVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjb2xzIj48IVtDREFUQVs2MF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZmllbGRfYWxpYXMiPjwhW0NEQVRBW21lc3NhZ2VdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZWZhdWx0Ij48IVtDREFUQVtFbnRlciBZb3VyIE1lc3NhZ2UgSGVyZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNsZWFyX2RlZmF1bHQiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTA0IgoJCXR5cGU9IkRpc3Bvc2l0aW9uRW1haWwiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjciCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbU2VuZCBUb11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfc3ViamVjdCI+PCFbQ0RBVEFbQ29udGFjdCBGb3JtIFN1Ym1pc3Npb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fYWRkcmVzcyI+PCFbQ0RBVEFbd2Vic2l0ZUB5b3VyZG9tYWluLmNvbV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImRlc3RpbmF0aW9uX2FkZHJlc3MiPjwhW0NEQVRBW3lvdUB5b3VyZG9tYWluLmNvbV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImZpZWxkX2FsaWFzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVsxXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfdGVtcGxhdGUiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2VuY29kaW5nIj48IVtDREFUQVt1dGYtOF1dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxMDUiCgkJdHlwZT0iRmllbGRzZXRFbmQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjgiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbZmllbGRzZXQgZW5kXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KPC9mb3JtPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/default.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCmZvcm0ge21hcmdpbi10b3A6MH0KZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0KZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0KZmllbGRzZXQgZGl2IHsKCW1hcmdpbi1ib3R0b206MC41ZW07CgltYXJnaW4tbGVmdDoxZW07Cn0KZmllbGRzZXQgZGl2IGRpdiB7CgltYXJnaW4tdG9wOjAuNWVtOwoJbWFyZ2luLWxlZnQ6MWVtCn0KZmllbGRzZXQgewoJbWFyZ2luLWJvdHRvbToxZW07Cglib3JkZXI6MXB4IHNvbGlkICNGNjA7CglwYWRkaW5nOjAuNWVtCn0KZmllbGRzZXQgbGFiZWwgewoJd2lkdGg6YXV0bzsKfQpsZWdlbmQgewoJY29sb3I6I0ZGRjsKCWJhY2tncm91bmQ6I0Y2MDsKCWZvbnQtc3R5bGU6aXRhbGljOwoJZm9udC1zaXplOjEuMmVtOwoJbWFyZ2luLWJvdHRvbTowLjVlbTsKCXBhZGRpbmc6MC4yZW07Cgl3aWR0aDphdXRvOwoJYm9yZGVyOjFweCBzb2xpZCAjQ0NDCn0KdGV4dGFyZWEgewoJbWFyZ2luOiAwLjVlbSAwOwoJd2lkdGg6OTglOwoJaGVpZ2h0OiA2ZW0KfQoKLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscwoJdG8gaGVscCBhbGlnbm1lbnQgKi8KLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQouc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LAouc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0KCi8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovCi5jYXB0Y2hhIHsKCW1hcmdpbjowLjVlbSAwOwoJd2lkdGg6MjAwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcgp9Ci5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQouY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19CgovKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8KLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0KCi8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMKCXRvIGhlbHAgYWxpZ25tZW50ICovCi5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0KLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwKLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19CgovKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLwouY2FwdGNoYSB7CgltYXJnaW46MC41ZW0gMDsKCXdpZHRoOjIwMHB4OwoJdGV4dC1hbGlnbjpjZW50ZXIKfQouY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0KLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQoKLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovCi5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19CgouY29udGFjdGZvcm0gaW5wdXQge2JvcmRlcjogMXB4IHNvbGlkICNmNjA7fQouY29udGFjdGZvcm0gaW5wdXQuY2hlY2tib3gge2JvcmRlcjogbm9uZTt9Ci5jb250YWN0Zm9ybSBsYWJlbCB7CglkaXNwbGF5OiBibG9jazsKCWZsb2F0OiBsZWZ0OwoJd2lkdGg6IDE1MHB4Owp9Ci5jb250YWN0Zm9ybSBsYWJlbC5sYWJlbCB7CglkaXNwbGF5OiBpbmxpbmU7CglmbG9hdDogbm9uZTsKCXdpZHRoOiA1MHB4OwoJZm9udC1zaXplOiAxMHB4Owp9Ci5jb250YWN0Zm9ybSB0ZXh0YXJlYSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZjOwoJYm9yZGVyOiAxcHggc29saWQgI2Y2MDsKfQouZm9ybWJ1aWxkZXJmb3JtIC5tZXNzYWdlIHsKCWxpbmUtaGVpZ2h0OiAxNnB4OwoJcGFkZGluZzogMCAwIDhweCAwOwp9]]></data>
	</file>
	<file>
	  <filename>/includes/fb_jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7CgoJJCgiLm1vZHVsZV9mYl90YWJsZSIpLnRhYmxlRG5EKHsKCQoJCW9uRHJhZ0NsYXNzOiAicm93MWhvdmVyIiwKCQlvbkRyb3A6IGZ1bmN0aW9uKHRhYmxlLCByb3cpIHsKCQkKCQkJCXZhciB0b3RhbHJvd3MgPSBqUXVlcnkoIi5tb2R1bGVfZmJfdGFibGUiKS5maW5kKCJ0Ym9keSB0ciIpLnNpemUoKTsKCQkJCQoJCQkJalF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHIiKS5yZW1vdmVDbGFzcygpOwoJCQkJalF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsKCQkJCWpRdWVyeSgiLm1vZHVsZV9mYl90YWJsZSIpLmZpbmQoInRib2R5IHRyOm50aC1jaGlsZCgybikiKS5hZGRDbGFzcygicm93MiIpOwoJCQkJCgkJCQl2YXIgcm93cyA9IHRhYmxlLnRCb2RpZXNbMF0ucm93czsKCQkJCXZhciBzb3J0c3RyID0gcm93c1swXS5pZDsKCQkJCWZvciAodmFyIGk9MTsgaTxyb3dzLmxlbmd0aDsgaSsrKSB7CgkJCQkJc29ydHN0ciArPSAiLCIrcm93c1tpXS5pZDsKCQkJCX0KCQkJCQoJCQkJJCgnLmZicnBfc29ydCcpLnZhbChzb3J0c3RyKTsKCQkJCSQoJy5yZW9yZGVybWVzc2FnZScpLnNob3coKTsKCQl9Cgl9KTsKICAgIGpRdWVyeSgiLnVwZG93biIpLmhpZGUoKTsKfSk7]]></data>
	</file>
	<file>
	  <filename>/includes/fb_jquery_functions.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[alF1ZXJ5LmZuLmZiX2RlbGV0ZV9maWVsZCA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKCiAgICBpZiAoY29uZmlybShtZXNzYWdlKSkgewoKCQl2YXIgdXJsID0galF1ZXJ5KHRoaXMpLmF0dHIoImhyZWYiKTsKCQl2YXIgcGFyZW50ID0galF1ZXJ5KHRoaXMpLmNsb3Nlc3QoInRyIik7CgkJCgkJalF1ZXJ5LmFqYXgoewoJCQl0eXBlOiAiR0VUIiwKCQkJdXJsOiB1cmwsCgkJCWVycm9yOiBmdW5jdGlvbigpIHsKCQkJCQoJCQkJYWxlcnQoJ1NvcnJ5LiBUaGVyZSB3YXMgYW4gZXJyb3IuJyk7CgkJCX0sCQkJCgkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKCkgewoJCQkKCQkJCXBhcmVudC5mYWRlT3V0KCIxMDAwIiwgZnVuY3Rpb24oKSB7CgoJCQkJCXBhcmVudC5yZW1vdmUoKTsKCQkJCQl2YXIgdG90YWxyb3dzID0galF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHIiKS5zaXplKCk7CgkJCQkKCQkJCQlqUXVlcnkoIi5tb2R1bGVfZmJfdGFibGUiKS5maW5kKCJ0Ym9keSB0ciIpLnJlbW92ZUNsYXNzKCk7CgkJCQkJalF1ZXJ5KCIubW9kdWxlX2ZiX3RhYmxlIikuZmluZCgidGJvZHkgdHI6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsKCQkJCQlqUXVlcnkoIi5tb2R1bGVfZmJfdGFibGUiKS5maW5kKCJ0Ym9keSB0cjpudGgtY2hpbGQoMm4pIikuYWRkQ2xhc3MoInJvdzIiKTsKCQkJCX0pOwkJCQoJCQl9CQoJCX0pOwoJCQoJfQoJCgp9OwoKalF1ZXJ5LmZuLmZiX2dldF90ZW1wbGF0ZSA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHVybCkgewoKCXZhciB2YWx1ZSA9IGpRdWVyeSh0aGlzKS52YWwoKTsKCQkKCWlmIChjb25maXJtKG1lc3NhZ2UpKSB7CgkJCQoJCWpRdWVyeS5hamF4KHsKCQkJdHlwZTogIkdFVCIsCgkJCXVybDogdXJsLAkJCQoJCQlkYXRhOiAnJm0xX2ZicnBfdGlkPScrdmFsdWUsCgkJCWVycm9yOiBmdW5jdGlvbigpIHsKCQkJCQoJCQkJYWxlcnQoJ1NvcnJ5LiBUaGVyZSB3YXMgYW4gZXJyb3IuJyk7CgkJCX0sCgkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKCQkJCQoJCQkJalF1ZXJ5KCIjZmJfZm9ybV90ZW1wbGF0ZSIpLnZhbChkYXRhKTsKCQkJfQoJCX0pOwkKCQkJCQoJCgl9CgkKfTsKCmpRdWVyeS5mbi5mYl9hZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQgPSBmdW5jdGlvbigpIHsKCgl2YXIgdXJsID0galF1ZXJ5KHRoaXMpLmF0dHIoImhyZWYiKTsKCXZhciBjdXJyZW50ID0galF1ZXJ5KHRoaXMpOwoJCglqUXVlcnkuYWpheCh7CgkJdHlwZTogIkdFVCIsCgkJdXJsOiB1cmwsCgkJZXJyb3I6IGZ1bmN0aW9uKCkgewoJCQkJCgkJCWFsZXJ0KCdTb3JyeS4gVGhlcmUgd2FzIGFuIGVycm9yLicpOwoJCX0sCQkJCgkJc3VjY2VzczogZnVuY3Rpb24oKSB7CgkJCQoJCQlpZihjdXJyZW50Lmhhc0NsYXNzKCJ0cnVlIikpIHsKCQkKCQkJCXZhciByZXBsYWNldXJsID0gY3VycmVudC5hdHRyKCJocmVmIikucmVwbGFjZSgnZmJycF9hY3RpdmU9b2ZmJywnZmJycF9hY3RpdmU9b24nKTsKCQkJCXZhciByZXBsYWNlcGljID0gY3VycmVudC5jaGlsZHJlbigpLmF0dHIoInNyYyIpLnJlcGxhY2UoJ3RydWUnLCAnZmFsc2UnKTsKCQkJCXZhciByZXBsYWNlb3RoZXIgPSAnZmFsc2UnOwkJCQoJCQkJY3VycmVudC5yZW1vdmVDbGFzcygidHJ1ZSIpLmFkZENsYXNzKCJmYWxzZSIpOwoJCQkKCQkJfSBlbHNlIHsKCQkJCQoJCQkJdmFyIHJlcGxhY2V1cmwgPSBjdXJyZW50LmF0dHIoImhyZWYiKS5yZXBsYWNlKCdmYnJwX2FjdGl2ZT1vbicsJ2ZicnBfYWN0aXZlPW9mZicpOwoJCQkJdmFyIHJlcGxhY2VwaWMgPSBjdXJyZW50LmNoaWxkcmVuKCkuYXR0cigic3JjIikucmVwbGFjZSgnZmFsc2UnLCAndHJ1ZScpOwoJCQkJdmFyIHJlcGxhY2VvdGhlciA9ICd0cnVlJzsKCQkJCWN1cnJlbnQucmVtb3ZlQ2xhc3MoImZhbHNlIikuYWRkQ2xhc3MoInRydWUiKTsKCQkKCQkJfQoJCQoJCQljdXJyZW50LmF0dHIoeyBocmVmIDogcmVwbGFjZXVybCB9KTsKCQkJY3VycmVudC5jaGlsZHJlbigpLmF0dHIoeyBzcmMgOiByZXBsYWNlcGljLCB0aXRsZSA6IHJlcGxhY2VvdGhlciwgYWx0IDogcmVwbGFjZW90aGVyIH0pOwkJCgkJCQoJCQkKCQl9Cgl9KTsJCQp9OwoKalF1ZXJ5LmZuLmZiX3NldF90YWIgPSBmdW5jdGlvbigpIHsKCXZhciBhY3RpdmUgPSBqUXVlcnkoJyNwYWdlX3RhYnMgPiAuYWN0aXZlJyk7CglqUXVlcnkoJyNmYnJfYXRhYicpLnZhbChhY3RpdmUuYXR0cignaWQnKSk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/includes/jquery-1.4.2.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNC4yCiAqIGh0dHA6Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMCwgSm9obiBSZXNpZwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNsdWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJpZ2h0IDIwMTAsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBTYXQgRmViIDEzIDIyOjMzOjQ4IDIwMTAgLTA1MDAKICovCihmdW5jdGlvbihBLHcpe2Z1bmN0aW9uIG1hKCl7aWYoIWMuaXNSZWFkeSl7dHJ5e3MuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYSl7c2V0VGltZW91dChtYSwxKTtyZXR1cm59Yy5yZWFkeSgpfX1mdW5jdGlvbiBRYShhLGIpe2Iuc3JjP2MuYWpheCh7dXJsOmIuc3JjLGFzeW5jOmZhbHNlLGRhdGFUeXBlOiJzY3JpcHQifSk6Yy5nbG9iYWxFdmFsKGIudGV4dHx8Yi50ZXh0Q29udGVudHx8Yi5pbm5lckhUTUx8fCIiKTtiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX1mdW5jdGlvbiBYKGEsYixkLGYsZSxqKXt2YXIgaT1hLmxlbmd0aDtpZih0eXBlb2YgYj09PSJvYmplY3QiKXtmb3IodmFyIG8gaW4gYilYKGEsbyxiW29dLGYsZSxkKTtyZXR1cm4gYX1pZihkIT09dyl7Zj0haiYmZiYmYy5pc0Z1bmN0aW9uKGQpO2ZvcihvPTA7bzxpO28rKyllKGFbb10sYixmP2QuY2FsbChhW29dLG8sZShhW29dLGIpKTpkLGopO3JldHVybiBhfXJldHVybiBpPwplKGFbMF0sYik6d31mdW5jdGlvbiBKKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9ZnVuY3Rpb24gWSgpe3JldHVybiBmYWxzZX1mdW5jdGlvbiBaKCl7cmV0dXJuIHRydWV9ZnVuY3Rpb24gbmEoYSxiLGQpe2RbMF0udHlwZT1hO3JldHVybiBjLmV2ZW50LmhhbmRsZS5hcHBseShiLGQpfWZ1bmN0aW9uIG9hKGEpe3ZhciBiLGQ9W10sZj1bXSxlPWFyZ3VtZW50cyxqLGksbyxrLG4scjtpPWMuZGF0YSh0aGlzLCJldmVudHMiKTtpZighKGEubGl2ZUZpcmVkPT09dGhpc3x8IWl8fCFpLmxpdmV8fGEuYnV0dG9uJiZhLnR5cGU9PT0iY2xpY2siKSl7YS5saXZlRmlyZWQ9dGhpczt2YXIgdT1pLmxpdmUuc2xpY2UoMCk7Zm9yKGs9MDtrPHUubGVuZ3RoO2srKyl7aT11W2tdO2kub3JpZ1R5cGUucmVwbGFjZShPLCIiKT09PWEudHlwZT9mLnB1c2goaS5zZWxlY3Rvcik6dS5zcGxpY2Uoay0tLDEpfWo9YyhhLnRhcmdldCkuY2xvc2VzdChmLGEuY3VycmVudFRhcmdldCk7bj0wO2ZvcihyPQpqLmxlbmd0aDtuPHI7bisrKWZvcihrPTA7azx1Lmxlbmd0aDtrKyspe2k9dVtrXTtpZihqW25dLnNlbGVjdG9yPT09aS5zZWxlY3Rvcil7bz1qW25dLmVsZW07Zj1udWxsO2lmKGkucHJlVHlwZT09PSJtb3VzZWVudGVyInx8aS5wcmVUeXBlPT09Im1vdXNlbGVhdmUiKWY9YyhhLnJlbGF0ZWRUYXJnZXQpLmNsb3Nlc3QoaS5zZWxlY3RvcilbMF07aWYoIWZ8fGYhPT1vKWQucHVzaCh7ZWxlbTpvLGhhbmRsZU9iajppfSl9fW49MDtmb3Iocj1kLmxlbmd0aDtuPHI7bisrKXtqPWRbbl07YS5jdXJyZW50VGFyZ2V0PWouZWxlbTthLmRhdGE9ai5oYW5kbGVPYmouZGF0YTthLmhhbmRsZU9iaj1qLmhhbmRsZU9iajtpZihqLmhhbmRsZU9iai5vcmlnSGFuZGxlci5hcHBseShqLmVsZW0sZSk9PT1mYWxzZSl7Yj1mYWxzZTticmVha319cmV0dXJuIGJ9fWZ1bmN0aW9uIHBhKGEsYil7cmV0dXJuImxpdmUuIisoYSYmYSE9PSIqIj9hKyIuIjoiIikrYi5yZXBsYWNlKC9cLi9nLCJgIikucmVwbGFjZSgvIC9nLAoiJiIpfWZ1bmN0aW9uIHFhKGEpe3JldHVybiFhfHwhYS5wYXJlbnROb2RlfHxhLnBhcmVudE5vZGUubm9kZVR5cGU9PT0xMX1mdW5jdGlvbiByYShhLGIpe3ZhciBkPTA7Yi5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZT09PShhW2RdJiZhW2RdLm5vZGVOYW1lKSl7dmFyIGY9Yy5kYXRhKGFbZCsrXSksZT1jLmRhdGEodGhpcyxmKTtpZihmPWYmJmYuZXZlbnRzKXtkZWxldGUgZS5oYW5kbGU7ZS5ldmVudHM9e307Zm9yKHZhciBqIGluIGYpZm9yKHZhciBpIGluIGZbal0pYy5ldmVudC5hZGQodGhpcyxqLGZbal1baV0sZltqXVtpXS5kYXRhKX19fSl9ZnVuY3Rpb24gc2EoYSxiLGQpe3ZhciBmLGUsajtiPWImJmJbMF0/YlswXS5vd25lckRvY3VtZW50fHxiWzBdOnM7aWYoYS5sZW5ndGg9PT0xJiZ0eXBlb2YgYVswXT09PSJzdHJpbmciJiZhWzBdLmxlbmd0aDw1MTImJmI9PT1zJiYhdGEudGVzdChhWzBdKSYmKGMuc3VwcG9ydC5jaGVja0Nsb25lfHwhdWEudGVzdChhWzBdKSkpe2U9CnRydWU7aWYoaj1jLmZyYWdtZW50c1thWzBdXSlpZihqIT09MSlmPWp9aWYoIWYpe2Y9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yy5jbGVhbihhLGIsZixkKX1pZihlKWMuZnJhZ21lbnRzW2FbMF1dPWo/ZjoxO3JldHVybntmcmFnbWVudDpmLGNhY2hlYWJsZTplfX1mdW5jdGlvbiBLKGEsYil7dmFyIGQ9e307Yy5lYWNoKHZhLmNvbmNhdC5hcHBseShbXSx2YS5zbGljZSgwLGIpKSxmdW5jdGlvbigpe2RbdGhpc109YX0pO3JldHVybiBkfWZ1bmN0aW9uIHdhKGEpe3JldHVybiJzY3JvbGxUbyJpbiBhJiZhLmRvY3VtZW50P2E6YS5ub2RlVHlwZT09PTk/YS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3c6ZmFsc2V9dmFyIGM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IGMuZm4uaW5pdChhLGIpfSxSYT1BLmpRdWVyeSxTYT1BLiQscz1BLmRvY3VtZW50LFQsVGE9L15bXjxdKig8W1x3XFddKz4pW14+XSokfF4jKFtcdy1dKykkLyxVYT0vXi5bXjojXFtcLixdKiQvLFZhPS9cUy8sCldhPS9eKFxzfFx1MDBBMCkrfChcc3xcdTAwQTApKyQvZyxYYT0vXjwoXHcrKVxzKlwvPz4oPzo8XC9cMT4pPyQvLFA9bmF2aWdhdG9yLnVzZXJBZ2VudCx4YT1mYWxzZSxRPVtdLEwsJD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGFhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYmE9QXJyYXkucHJvdG90eXBlLnB1c2gsUj1BcnJheS5wcm90b3R5cGUuc2xpY2UseWE9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y7Yy5mbj1jLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbihhLGIpe3ZhciBkLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYS5ub2RlVHlwZSl7dGhpcy5jb250ZXh0PXRoaXNbMF09YTt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKGE9PT0iYm9keSImJiFiKXt0aGlzLmNvbnRleHQ9czt0aGlzWzBdPXMuYm9keTt0aGlzLnNlbGVjdG9yPSJib2R5Ijt0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKHR5cGVvZiBhPT09InN0cmluZyIpaWYoKGQ9VGEuZXhlYyhhKSkmJgooZFsxXXx8IWIpKWlmKGRbMV0pe2Y9Yj9iLm93bmVyRG9jdW1lbnR8fGI6cztpZihhPVhhLmV4ZWMoYSkpaWYoYy5pc1BsYWluT2JqZWN0KGIpKXthPVtzLmNyZWF0ZUVsZW1lbnQoYVsxXSldO2MuZm4uYXR0ci5jYWxsKGEsYix0cnVlKX1lbHNlIGE9W2YuY3JlYXRlRWxlbWVudChhWzFdKV07ZWxzZXthPXNhKFtkWzFdXSxbZl0pO2E9KGEuY2FjaGVhYmxlP2EuZnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpOmEuZnJhZ21lbnQpLmNoaWxkTm9kZXN9cmV0dXJuIGMubWVyZ2UodGhpcyxhKX1lbHNle2lmKGI9cy5nZXRFbGVtZW50QnlJZChkWzJdKSl7aWYoYi5pZCE9PWRbMl0pcmV0dXJuIFQuZmluZChhKTt0aGlzLmxlbmd0aD0xO3RoaXNbMF09Yn10aGlzLmNvbnRleHQ9czt0aGlzLnNlbGVjdG9yPWE7cmV0dXJuIHRoaXN9ZWxzZSBpZighYiYmL15cdyskLy50ZXN0KGEpKXt0aGlzLnNlbGVjdG9yPWE7dGhpcy5jb250ZXh0PXM7YT1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO3JldHVybiBjLm1lcmdlKHRoaXMsCmEpfWVsc2UgcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHxUKS5maW5kKGEpOmMoYikuZmluZChhKTtlbHNlIGlmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gVC5yZWFkeShhKTtpZihhLnNlbGVjdG9yIT09dyl7dGhpcy5zZWxlY3Rvcj1hLnNlbGVjdG9yO3RoaXMuY29udGV4dD1hLmNvbnRleHR9cmV0dXJuIGMubWFrZUFycmF5KGEsdGhpcyl9LHNlbGVjdG9yOiIiLGpxdWVyeToiMS40LjIiLGxlbmd0aDowLHNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gUi5jYWxsKHRoaXMsMCl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD90aGlzLnRvQXJyYXkoKTphPDA/dGhpcy5zbGljZShhKVswXTp0aGlzW2FdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWMoKTtjLmlzQXJyYXkoYSk/YmEuYXBwbHkoZixhKTpjLm1lcmdlKGYsYSk7Zi5wcmV2T2JqZWN0PXRoaXM7Zi5jb250ZXh0PXRoaXMuY29udGV4dDtpZihiPT09CiJmaW5kIilmLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrKHRoaXMuc2VsZWN0b3I/IiAiOiIiKStkO2Vsc2UgaWYoYilmLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK2IrIigiK2QrIikiO3JldHVybiBmfSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGMuZWFjaCh0aGlzLGEsYil9LHJlYWR5OmZ1bmN0aW9uKGEpe2MuYmluZFJlYWR5KCk7aWYoYy5pc1JlYWR5KWEuY2FsbChzLGMpO2Vsc2UgUSYmUS5wdXNoKGEpO3JldHVybiB0aGlzfSxlcTpmdW5jdGlvbihhKXtyZXR1cm4gYT09PS0xP3RoaXMuc2xpY2UoYSk6dGhpcy5zbGljZShhLCthKzEpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhSLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwic2xpY2UiLFIuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYy5tYXAodGhpcywKZnVuY3Rpb24oYixkKXtyZXR1cm4gYS5jYWxsKGIsZCxiKX0pKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8YyhudWxsKX0scHVzaDpiYSxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZX07Yy5mbi5pbml0LnByb3RvdHlwZT1jLmZuO2MuZXh0ZW5kPWMuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzWzBdfHx7fSxiPTEsZD1hcmd1bWVudHMubGVuZ3RoLGY9ZmFsc2UsZSxqLGksbztpZih0eXBlb2YgYT09PSJib29sZWFuIil7Zj1hO2E9YXJndW1lbnRzWzFdfHx7fTtiPTJ9aWYodHlwZW9mIGEhPT0ib2JqZWN0IiYmIWMuaXNGdW5jdGlvbihhKSlhPXt9O2lmKGQ9PT1iKXthPXRoaXM7LS1ifWZvcig7YjxkO2IrKylpZigoZT1hcmd1bWVudHNbYl0pIT1udWxsKWZvcihqIGluIGUpe2k9YVtqXTtvPWVbal07aWYoYSE9PW8paWYoZiYmbyYmKGMuaXNQbGFpbk9iamVjdChvKXx8Yy5pc0FycmF5KG8pKSl7aT1pJiYoYy5pc1BsYWluT2JqZWN0KGkpfHwKYy5pc0FycmF5KGkpKT9pOmMuaXNBcnJheShvKT9bXTp7fTthW2pdPWMuZXh0ZW5kKGYsaSxvKX1lbHNlIGlmKG8hPT13KWFbal09b31yZXR1cm4gYX07Yy5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oYSl7QS4kPVNhO2lmKGEpQS5qUXVlcnk9UmE7cmV0dXJuIGN9LGlzUmVhZHk6ZmFsc2UscmVhZHk6ZnVuY3Rpb24oKXtpZighYy5pc1JlYWR5KXtpZighcy5ib2R5KXJldHVybiBzZXRUaW1lb3V0KGMucmVhZHksMTMpO2MuaXNSZWFkeT10cnVlO2lmKFEpe2Zvcih2YXIgYSxiPTA7YT1RW2IrK107KWEuY2FsbChzLGMpO1E9bnVsbH1jLmZuLnRyaWdnZXJIYW5kbGVyJiZjKHMpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfX0sYmluZFJlYWR5OmZ1bmN0aW9uKCl7aWYoIXhhKXt4YT10cnVlO2lmKHMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpcmV0dXJuIGMucmVhZHkoKTtpZihzLmFkZEV2ZW50TGlzdGVuZXIpe3MuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsCkwsZmFsc2UpO0EuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYy5yZWFkeSxmYWxzZSl9ZWxzZSBpZihzLmF0dGFjaEV2ZW50KXtzLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEwpO0EuYXR0YWNoRXZlbnQoIm9ubG9hZCIsYy5yZWFkeSk7dmFyIGE9ZmFsc2U7dHJ5e2E9QS5mcmFtZUVsZW1lbnQ9PW51bGx9Y2F0Y2goYil7fXMuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsJiZhJiZtYSgpfX19LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuICQuY2FsbChhKT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ9LGlzQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuICQuY2FsbChhKT09PSJbb2JqZWN0IEFycmF5XSJ9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oYSl7aWYoIWF8fCQuY2FsbChhKSE9PSJbb2JqZWN0IE9iamVjdF0ifHxhLm5vZGVUeXBlfHxhLnNldEludGVydmFsKXJldHVybiBmYWxzZTtpZihhLmNvbnN0cnVjdG9yJiYhYWEuY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhYWEuY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwKImlzUHJvdG90eXBlT2YiKSlyZXR1cm4gZmFsc2U7dmFyIGI7Zm9yKGIgaW4gYSk7cmV0dXJuIGI9PT13fHxhYS5jYWxsKGEsYil9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlfSxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBhO30scGFyc2VKU09OOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyJ8fCFhKXJldHVybiBudWxsO2E9Yy50cmltKGEpO2lmKC9eW1xdLDp7fVxzXSokLy50ZXN0KGEucmVwbGFjZSgvXFwoPzpbIlxcXC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLCJAIikucmVwbGFjZSgvIlteIlxcXG5ccl0qInx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/L2csIl0iKS5yZXBsYWNlKC8oPzpefDp8LCkoPzpccypcWykrL2csIiIpKSlyZXR1cm4gQS5KU09OJiZBLkpTT04ucGFyc2U/QS5KU09OLnBhcnNlKGEpOihuZXcgRnVuY3Rpb24oInJldHVybiAiKwphKSkoKTtlbHNlIGMuZXJyb3IoIkludmFsaWQgSlNPTjogIithKX0sbm9vcDpmdW5jdGlvbigpe30sZ2xvYmFsRXZhbDpmdW5jdGlvbihhKXtpZihhJiZWYS50ZXN0KGEpKXt2YXIgYj1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fHMuZG9jdW1lbnRFbGVtZW50LGQ9cy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtkLnR5cGU9InRleHQvamF2YXNjcmlwdCI7aWYoYy5zdXBwb3J0LnNjcmlwdEV2YWwpZC5hcHBlbmRDaGlsZChzLmNyZWF0ZVRleHROb2RlKGEpKTtlbHNlIGQudGV4dD1hO2IuaW5zZXJ0QmVmb3JlKGQsYi5maXJzdENoaWxkKTtiLnJlbW92ZUNoaWxkKGQpfX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT09Yi50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYixkKXt2YXIgZixlPTAsaj1hLmxlbmd0aCxpPWo9PT13fHxjLmlzRnVuY3Rpb24oYSk7aWYoZClpZihpKWZvcihmIGluIGEpe2lmKGIuYXBwbHkoYVtmXSwKZCk9PT1mYWxzZSlicmVha31lbHNlIGZvcig7ZTxqOyl7aWYoYi5hcHBseShhW2UrK10sZCk9PT1mYWxzZSlicmVha31lbHNlIGlmKGkpZm9yKGYgaW4gYSl7aWYoYi5jYWxsKGFbZl0sZixhW2ZdKT09PWZhbHNlKWJyZWFrfWVsc2UgZm9yKGQ9YVswXTtlPGomJmIuY2FsbChkLGUsZCkhPT1mYWxzZTtkPWFbKytlXSk7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuKGF8fCIiKS5yZXBsYWNlKFdhLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7Yj1ifHxbXTtpZihhIT1udWxsKWEubGVuZ3RoPT1udWxsfHx0eXBlb2YgYT09PSJzdHJpbmcifHxjLmlzRnVuY3Rpb24oYSl8fHR5cGVvZiBhIT09ImZ1bmN0aW9uIiYmYS5zZXRJbnRlcnZhbD9iYS5jYWxsKGIsYSk6Yy5tZXJnZShiLGEpO3JldHVybiBifSxpbkFycmF5OmZ1bmN0aW9uKGEsYil7aWYoYi5pbmRleE9mKXJldHVybiBiLmluZGV4T2YoYSk7Zm9yKHZhciBkPTAsZj1iLmxlbmd0aDtkPGY7ZCsrKWlmKGJbZF09PT0KYSlyZXR1cm4gZDtyZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgZD1hLmxlbmd0aCxmPTA7aWYodHlwZW9mIGIubGVuZ3RoPT09Im51bWJlciIpZm9yKHZhciBlPWIubGVuZ3RoO2Y8ZTtmKyspYVtkKytdPWJbZl07ZWxzZSBmb3IoO2JbZl0hPT13OylhW2QrK109YltmKytdO2EubGVuZ3RoPWQ7cmV0dXJuIGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZj1bXSxlPTAsaj1hLmxlbmd0aDtlPGo7ZSsrKSFkIT09IWIoYVtlXSxlKSYmZi5wdXNoKGFbZV0pO3JldHVybiBmfSxtYXA6ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZj1bXSxlLGo9MCxpPWEubGVuZ3RoO2o8aTtqKyspe2U9YihhW2pdLGosZCk7aWYoZSE9bnVsbClmW2YubGVuZ3RoXT1lfXJldHVybiBmLmNvbmNhdC5hcHBseShbXSxmKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9uKGEsYixkKXtpZihhcmd1bWVudHMubGVuZ3RoPT09MilpZih0eXBlb2YgYj09PSJzdHJpbmciKXtkPWE7YT1kW2JdO2I9d31lbHNlIGlmKGImJgohYy5pc0Z1bmN0aW9uKGIpKXtkPWI7Yj13fWlmKCFiJiZhKWI9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShkfHx0aGlzLGFyZ3VtZW50cyl9O2lmKGEpYi5ndWlkPWEuZ3VpZD1hLmd1aWR8fGIuZ3VpZHx8Yy5ndWlkKys7cmV0dXJuIGJ9LHVhTWF0Y2g6ZnVuY3Rpb24oYSl7YT1hLnRvTG93ZXJDYXNlKCk7YT0vKHdlYmtpdClbIFwvXShbXHcuXSspLy5leGVjKGEpfHwvKG9wZXJhKSg/Oi4qdmVyc2lvbik/WyBcL10oW1x3Ll0rKS8uZXhlYyhhKXx8Lyhtc2llKSAoW1x3Ll0rKS8uZXhlYyhhKXx8IS9jb21wYXRpYmxlLy50ZXN0KGEpJiYvKG1vemlsbGEpKD86Lio/IHJ2OihbXHcuXSspKT8vLmV4ZWMoYSl8fFtdO3JldHVybnticm93c2VyOmFbMV18fCIiLHZlcnNpb246YVsyXXx8IjAifX0sYnJvd3Nlcjp7fX0pO1A9Yy51YU1hdGNoKFApO2lmKFAuYnJvd3Nlcil7Yy5icm93c2VyW1AuYnJvd3Nlcl09dHJ1ZTtjLmJyb3dzZXIudmVyc2lvbj1QLnZlcnNpb259aWYoYy5icm93c2VyLndlYmtpdCljLmJyb3dzZXIuc2FmYXJpPQp0cnVlO2lmKHlhKWMuaW5BcnJheT1mdW5jdGlvbihhLGIpe3JldHVybiB5YS5jYWxsKGIsYSl9O1Q9YyhzKTtpZihzLmFkZEV2ZW50TGlzdGVuZXIpTD1mdW5jdGlvbigpe3MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsTCxmYWxzZSk7Yy5yZWFkeSgpfTtlbHNlIGlmKHMuYXR0YWNoRXZlbnQpTD1mdW5jdGlvbigpe2lmKHMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe3MuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsTCk7Yy5yZWFkeSgpfX07KGZ1bmN0aW9uKCl7Yy5zdXBwb3J0PXt9O3ZhciBhPXMuZG9jdW1lbnRFbGVtZW50LGI9cy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxkPXMuY3JlYXRlRWxlbWVudCgiZGl2IiksZj0ic2NyaXB0IitKKCk7ZC5zdHlsZS5kaXNwbGF5PSJub25lIjtkLmlubmVySFRNTD0iICAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9Jy9hJyBzdHlsZT0nY29sb3I6cmVkO2Zsb2F0OmxlZnQ7b3BhY2l0eTouNTU7Jz5hPC9hPjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiI7CnZhciBlPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxqPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighKCFlfHwhZS5sZW5ndGh8fCFqKSl7Yy5zdXBwb3J0PXtsZWFkaW5nV2hpdGVzcGFjZTpkLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0zLHRib2R5OiFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KGouZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpqLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5Oi9eMC41NSQvLnRlc3Qoai5zdHlsZS5vcGFjaXR5KSxjc3NGbG9hdDohIWouc3R5bGUuY3NzRmxvYXQsY2hlY2tPbjpkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLnZhbHVlPT09Im9uIixvcHRTZWxlY3RlZDpzLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKHMuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLnNlbGVjdGVkLApwYXJlbnROb2RlOmQucmVtb3ZlQ2hpbGQoZC5hcHBlbmRDaGlsZChzLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSkucGFyZW50Tm9kZT09PW51bGwsZGVsZXRlRXhwYW5kbzp0cnVlLGNoZWNrQ2xvbmU6ZmFsc2Usc2NyaXB0RXZhbDpmYWxzZSxub0Nsb25lRXZlbnQ6dHJ1ZSxib3hNb2RlbDpudWxsfTtiLnR5cGU9InRleHQvamF2YXNjcmlwdCI7dHJ5e2IuYXBwZW5kQ2hpbGQocy5jcmVhdGVUZXh0Tm9kZSgid2luZG93LiIrZisiPTE7IikpfWNhdGNoKGkpe31hLmluc2VydEJlZm9yZShiLGEuZmlyc3RDaGlsZCk7aWYoQVtmXSl7Yy5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgQVtmXX10cnl7ZGVsZXRlIGIudGVzdH1jYXRjaChvKXtjLnN1cHBvcnQuZGVsZXRlRXhwYW5kbz1mYWxzZX1hLnJlbW92ZUNoaWxkKGIpO2lmKGQuYXR0YWNoRXZlbnQmJmQuZmlyZUV2ZW50KXtkLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5jdGlvbiBrKCl7Yy5zdXBwb3J0Lm5vQ2xvbmVFdmVudD0KZmFsc2U7ZC5kZXRhY2hFdmVudCgib25jbGljayIsayl9KTtkLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKX1kPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5pbm5lckhUTUw9IjxpbnB1dCB0eXBlPSdyYWRpbycgbmFtZT0ncmFkaW90ZXN0JyBjaGVja2VkPSdjaGVja2VkJy8+IjthPXMuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2EuYXBwZW5kQ2hpbGQoZC5maXJzdENoaWxkKTtjLnN1cHBvcnQuY2hlY2tDbG9uZT1hLmNsb25lTm9kZSh0cnVlKS5jbG9uZU5vZGUodHJ1ZSkubGFzdENoaWxkLmNoZWNrZWQ7YyhmdW5jdGlvbigpe3ZhciBrPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7ay5zdHlsZS53aWR0aD1rLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO3MuYm9keS5hcHBlbmRDaGlsZChrKTtjLmJveE1vZGVsPWMuc3VwcG9ydC5ib3hNb2RlbD1rLm9mZnNldFdpZHRoPT09MjtzLmJvZHkucmVtb3ZlQ2hpbGQoaykuc3R5bGUuZGlzcGxheT0ibm9uZSJ9KTthPWZ1bmN0aW9uKGspe3ZhciBuPQpzLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2s9Im9uIitrO3ZhciByPWsgaW4gbjtpZighcil7bi5zZXRBdHRyaWJ1dGUoaywicmV0dXJuOyIpO3I9dHlwZW9mIG5ba109PT0iZnVuY3Rpb24ifXJldHVybiByfTtjLnN1cHBvcnQuc3VibWl0QnViYmxlcz1hKCJzdWJtaXQiKTtjLnN1cHBvcnQuY2hhbmdlQnViYmxlcz1hKCJjaGFuZ2UiKTthPWI9ZD1lPWo9bnVsbH19KSgpO2MucHJvcHM9eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUiLHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsY29sc3BhbjoiY29sU3BhbiIsdGFiaW5kZXg6InRhYkluZGV4Iix1c2VtYXA6InVzZU1hcCIsZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIn07dmFyIEc9ImpRdWVyeSIrSigpLFlhPTAsemE9e307Yy5leHRlbmQoe2NhY2hlOnt9LGV4cGFuZG86Ryxub0RhdGE6e2VtYmVkOnRydWUsb2JqZWN0OnRydWUsCmFwcGxldDp0cnVlfSxkYXRhOmZ1bmN0aW9uKGEsYixkKXtpZighKGEubm9kZU5hbWUmJmMubm9EYXRhW2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXthPWE9PUE/emE6YTt2YXIgZj1hW0ddLGU9Yy5jYWNoZTtpZighZiYmdHlwZW9mIGI9PT0ic3RyaW5nIiYmZD09PXcpcmV0dXJuIG51bGw7Znx8KGY9KytZYSk7aWYodHlwZW9mIGI9PT0ib2JqZWN0Iil7YVtHXT1mO2VbZl09Yy5leHRlbmQodHJ1ZSx7fSxiKX1lbHNlIGlmKCFlW2ZdKXthW0ddPWY7ZVtmXT17fX1hPWVbZl07aWYoZCE9PXcpYVtiXT1kO3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmciP2FbYl06YX19LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtpZighKGEubm9kZU5hbWUmJmMubm9EYXRhW2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXthPWE9PUE/emE6YTt2YXIgZD1hW0ddLGY9Yy5jYWNoZSxlPWZbZF07aWYoYil7aWYoZSl7ZGVsZXRlIGVbYl07Yy5pc0VtcHR5T2JqZWN0KGUpJiZjLnJlbW92ZURhdGEoYSl9fWVsc2V7aWYoYy5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8pZGVsZXRlIGFbYy5leHBhbmRvXTsKZWxzZSBhLnJlbW92ZUF0dHJpYnV0ZSYmYS5yZW1vdmVBdHRyaWJ1dGUoYy5leHBhbmRvKTtkZWxldGUgZltkXX19fX0pO2MuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0idW5kZWZpbmVkIiYmdGhpcy5sZW5ndGgpcmV0dXJuIGMuZGF0YSh0aGlzWzBdKTtlbHNlIGlmKHR5cGVvZiBhPT09Im9iamVjdCIpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MuZGF0YSh0aGlzLGEpfSk7dmFyIGQ9YS5zcGxpdCgiLiIpO2RbMV09ZFsxXT8iLiIrZFsxXToiIjtpZihiPT09dyl7dmFyIGY9dGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIrZFsxXSsiISIsW2RbMF1dKTtpZihmPT09dyYmdGhpcy5sZW5ndGgpZj1jLmRhdGEodGhpc1swXSxhKTtyZXR1cm4gZj09PXcmJmRbMV0/dGhpcy5kYXRhKGRbMF0pOmZ9ZWxzZSByZXR1cm4gdGhpcy50cmlnZ2VyKCJzZXREYXRhIitkWzFdKyIhIixbZFswXSxiXSkuZWFjaChmdW5jdGlvbigpe2MuZGF0YSh0aGlzLAphLGIpfSl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MucmVtb3ZlRGF0YSh0aGlzLGEpfSl9fSk7Yy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixkKXtpZihhKXtiPShifHwiZngiKSsicXVldWUiO3ZhciBmPWMuZGF0YShhLGIpO2lmKCFkKXJldHVybiBmfHxbXTtpZighZnx8Yy5pc0FycmF5KGQpKWY9Yy5kYXRhKGEsYixjLm1ha2VBcnJheShkKSk7ZWxzZSBmLnB1c2goZCk7cmV0dXJuIGZ9fSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBkPWMucXVldWUoYSxiKSxmPWQuc2hpZnQoKTtpZihmPT09ImlucHJvZ3Jlc3MiKWY9ZC5zaGlmdCgpO2lmKGYpe2I9PT0iZngiJiZkLnVuc2hpZnQoImlucHJvZ3Jlc3MiKTtmLmNhbGwoYSxmdW5jdGlvbigpe2MuZGVxdWV1ZShhLGIpfSl9fX0pO2MuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpe2I9YTthPSJmeCJ9aWYoYj09PQp3KXJldHVybiBjLnF1ZXVlKHRoaXNbMF0sYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWMucXVldWUodGhpcyxhLGIpO2E9PT0iZngiJiZkWzBdIT09ImlucHJvZ3Jlc3MiJiZjLmRlcXVldWUodGhpcyxhKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLmRlcXVldWUodGhpcyxhKX0pfSxkZWxheTpmdW5jdGlvbihhLGIpe2E9Yy5meD9jLmZ4LnNwZWVkc1thXXx8YTphO2I9Ynx8ImZ4IjtyZXR1cm4gdGhpcy5xdWV1ZShiLGZ1bmN0aW9uKCl7dmFyIGQ9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5kZXF1ZXVlKGQsYil9LGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9fSk7dmFyIEFhPS9bXG5cdF0vZyxjYT0vXHMrLyxaYT0vXHIvZywkYT0vaHJlZnxzcmN8c3R5bGUvLGFiPS8oYnV0dG9ufGlucHV0KS9pLGJiPS8oYnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpL2ksCmNiPS9eKGF8YXJlYSkkL2ksQmE9L3JhZGlvfGNoZWNrYm94LztjLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBYKHRoaXMsYSxiLHRydWUsYy5hdHRyKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5hdHRyKHRoaXMsYSwiIik7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMucmVtb3ZlQXR0cmlidXRlKGEpfSl9LGFkZENsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe3ZhciByPWModGhpcyk7ci5hZGRDbGFzcyhhLmNhbGwodGhpcyxuLHIuYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3RyaW5nIilmb3IodmFyIGI9KGF8fCIiKS5zcGxpdChjYSksZD0wLGY9dGhpcy5sZW5ndGg7ZDxmO2QrKyl7dmFyIGU9dGhpc1tkXTtpZihlLm5vZGVUeXBlPT09MSlpZihlLmNsYXNzTmFtZSl7Zm9yKHZhciBqPSIgIitlLmNsYXNzTmFtZSsiICIsCmk9ZS5jbGFzc05hbWUsbz0wLGs9Yi5sZW5ndGg7bzxrO28rKylpZihqLmluZGV4T2YoIiAiK2Jbb10rIiAiKTwwKWkrPSIgIitiW29dO2UuY2xhc3NOYW1lPWMudHJpbShpKX1lbHNlIGUuY2xhc3NOYW1lPWF9cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGspe3ZhciBuPWModGhpcyk7bi5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxrLG4uYXR0cigiY2xhc3MiKSkpfSk7aWYoYSYmdHlwZW9mIGE9PT0ic3RyaW5nInx8YT09PXcpZm9yKHZhciBiPShhfHwiIikuc3BsaXQoY2EpLGQ9MCxmPXRoaXMubGVuZ3RoO2Q8ZjtkKyspe3ZhciBlPXRoaXNbZF07aWYoZS5ub2RlVHlwZT09PTEmJmUuY2xhc3NOYW1lKWlmKGEpe2Zvcih2YXIgaj0oIiAiK2UuY2xhc3NOYW1lKyIgIikucmVwbGFjZShBYSwiICIpLGk9MCxvPWIubGVuZ3RoO2k8bztpKyspaj1qLnJlcGxhY2UoIiAiK2JbaV0rIiAiLAoiICIpO2UuY2xhc3NOYW1lPWMudHJpbShqKX1lbHNlIGUuY2xhc3NOYW1lPSIifXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhLGY9dHlwZW9mIGI9PT0iYm9vbGVhbiI7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIGo9Yyh0aGlzKTtqLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGUsai5hdHRyKCJjbGFzcyIpLGIpLGIpfSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKGQ9PT0ic3RyaW5nIilmb3IodmFyIGUsaj0wLGk9Yyh0aGlzKSxvPWIsaz1hLnNwbGl0KGNhKTtlPWtbaisrXTspe289Zj9vOiFpLmhhc0NsYXNzKGUpO2lbbz8iYWRkQ2xhc3MiOiJyZW1vdmVDbGFzcyJdKGUpfWVsc2UgaWYoZD09PSJ1bmRlZmluZWQifHxkPT09ImJvb2xlYW4iKXt0aGlzLmNsYXNzTmFtZSYmYy5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHRoaXMuY2xhc3NOYW1lKTt0aGlzLmNsYXNzTmFtZT0KdGhpcy5jbGFzc05hbWV8fGE9PT1mYWxzZT8iIjpjLmRhdGEodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIn19KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7YT0iICIrYSsiICI7Zm9yKHZhciBiPTAsZD10aGlzLmxlbmd0aDtiPGQ7YisrKWlmKCgiICIrdGhpc1tiXS5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKEFhLCIgIikuaW5kZXhPZihhKT4tMSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2V9LHZhbDpmdW5jdGlvbihhKXtpZihhPT09dyl7dmFyIGI9dGhpc1swXTtpZihiKXtpZihjLm5vZGVOYW1lKGIsIm9wdGlvbiIpKXJldHVybihiLmF0dHJpYnV0ZXMudmFsdWV8fHt9KS5zcGVjaWZpZWQ/Yi52YWx1ZTpiLnRleHQ7aWYoYy5ub2RlTmFtZShiLCJzZWxlY3QiKSl7dmFyIGQ9Yi5zZWxlY3RlZEluZGV4LGY9W10sZT1iLm9wdGlvbnM7Yj1iLnR5cGU9PT0ic2VsZWN0LW9uZSI7aWYoZDwwKXJldHVybiBudWxsO3ZhciBqPWI/ZDowO2ZvcihkPWI/ZCsxOmUubGVuZ3RoO2o8ZDtqKyspe3ZhciBpPQplW2pdO2lmKGkuc2VsZWN0ZWQpe2E9YyhpKS52YWwoKTtpZihiKXJldHVybiBhO2YucHVzaChhKX19cmV0dXJuIGZ9aWYoQmEudGVzdChiLnR5cGUpJiYhYy5zdXBwb3J0LmNoZWNrT24pcmV0dXJuIGIuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPT09bnVsbD8ib24iOmIudmFsdWU7cmV0dXJuKGIudmFsdWV8fCIiKS5yZXBsYWNlKFphLCIiKX1yZXR1cm4gd312YXIgbz1jLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihrKXt2YXIgbj1jKHRoaXMpLHI9YTtpZih0aGlzLm5vZGVUeXBlPT09MSl7aWYobylyPWEuY2FsbCh0aGlzLGssbi52YWwoKSk7aWYodHlwZW9mIHI9PT0ibnVtYmVyIilyKz0iIjtpZihjLmlzQXJyYXkocikmJkJhLnRlc3QodGhpcy50eXBlKSl0aGlzLmNoZWNrZWQ9Yy5pbkFycmF5KG4udmFsKCkscik+PTA7ZWxzZSBpZihjLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgdT1jLm1ha2VBcnJheShyKTtjKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPQpjLmluQXJyYXkoYyh0aGlzKS52YWwoKSx1KT49MH0pO2lmKCF1Lmxlbmd0aCl0aGlzLnNlbGVjdGVkSW5kZXg9LTF9ZWxzZSB0aGlzLnZhbHVlPXJ9fSl9fSk7Yy5leHRlbmQoe2F0dHJGbjp7dmFsOnRydWUsY3NzOnRydWUsaHRtbDp0cnVlLHRleHQ6dHJ1ZSxkYXRhOnRydWUsd2lkdGg6dHJ1ZSxoZWlnaHQ6dHJ1ZSxvZmZzZXQ6dHJ1ZX0sYXR0cjpmdW5jdGlvbihhLGIsZCxmKXtpZighYXx8YS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04KXJldHVybiB3O2lmKGYmJmIgaW4gYy5hdHRyRm4pcmV0dXJuIGMoYSlbYl0oZCk7Zj1hLm5vZGVUeXBlIT09MXx8IWMuaXNYTUxEb2MoYSk7dmFyIGU9ZCE9PXc7Yj1mJiZjLnByb3BzW2JdfHxiO2lmKGEubm9kZVR5cGU9PT0xKXt2YXIgaj0kYS50ZXN0KGIpO2lmKGIgaW4gYSYmZiYmIWope2lmKGUpe2I9PT0idHlwZSImJmFiLnRlc3QoYS5ub2RlTmFtZSkmJmEucGFyZW50Tm9kZSYmYy5lcnJvcigidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIik7CmFbYl09ZH1pZihjLm5vZGVOYW1lKGEsImZvcm0iKSYmYS5nZXRBdHRyaWJ1dGVOb2RlKGIpKXJldHVybiBhLmdldEF0dHJpYnV0ZU5vZGUoYikubm9kZVZhbHVlO2lmKGI9PT0idGFiSW5kZXgiKXJldHVybihiPWEuZ2V0QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKSkmJmIuc3BlY2lmaWVkP2IudmFsdWU6YmIudGVzdChhLm5vZGVOYW1lKXx8Y2IudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6dztyZXR1cm4gYVtiXX1pZighYy5zdXBwb3J0LnN0eWxlJiZmJiZiPT09InN0eWxlIil7aWYoZSlhLnN0eWxlLmNzc1RleHQ9IiIrZDtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0fWUmJmEuc2V0QXR0cmlidXRlKGIsIiIrZCk7YT0hYy5zdXBwb3J0LmhyZWZOb3JtYWxpemVkJiZmJiZqP2EuZ2V0QXR0cmlidXRlKGIsMik6YS5nZXRBdHRyaWJ1dGUoYik7cmV0dXJuIGE9PT1udWxsP3c6YX1yZXR1cm4gYy5zdHlsZShhLGIsZCl9fSk7dmFyIE89L1wuKC4qKSQvLGRiPWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1teXHdcc1wuXHxgXS9nLApmdW5jdGlvbihiKXtyZXR1cm4iXFwiK2J9KX07Yy5ldmVudD17YWRkOmZ1bmN0aW9uKGEsYixkLGYpe2lmKCEoYS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04KSl7aWYoYS5zZXRJbnRlcnZhbCYmYSE9PUEmJiFhLmZyYW1lRWxlbWVudClhPUE7dmFyIGUsajtpZihkLmhhbmRsZXIpe2U9ZDtkPWUuaGFuZGxlcn1pZighZC5ndWlkKWQuZ3VpZD1jLmd1aWQrKztpZihqPWMuZGF0YShhKSl7dmFyIGk9ai5ldmVudHM9ai5ldmVudHN8fHt9LG89ai5oYW5kbGU7aWYoIW8pai5oYW5kbGU9bz1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgYyE9PSJ1bmRlZmluZWQiJiYhYy5ldmVudC50cmlnZ2VyZWQ/Yy5ldmVudC5oYW5kbGUuYXBwbHkoby5lbGVtLGFyZ3VtZW50cyk6d307by5lbGVtPWE7Yj1iLnNwbGl0KCIgIik7Zm9yKHZhciBrLG49MCxyO2s9YltuKytdOyl7aj1lP2MuZXh0ZW5kKHt9LGUpOntoYW5kbGVyOmQsZGF0YTpmfTtpZihrLmluZGV4T2YoIi4iKT4tMSl7cj1rLnNwbGl0KCIuIik7Cms9ci5zaGlmdCgpO2oubmFtZXNwYWNlPXIuc2xpY2UoMCkuc29ydCgpLmpvaW4oIi4iKX1lbHNle3I9W107ai5uYW1lc3BhY2U9IiJ9ai50eXBlPWs7ai5ndWlkPWQuZ3VpZDt2YXIgdT1pW2tdLHo9Yy5ldmVudC5zcGVjaWFsW2tdfHx7fTtpZighdSl7dT1pW2tdPVtdO2lmKCF6LnNldHVwfHx6LnNldHVwLmNhbGwoYSxmLHIsbyk9PT1mYWxzZSlpZihhLmFkZEV2ZW50TGlzdGVuZXIpYS5hZGRFdmVudExpc3RlbmVyKGssbyxmYWxzZSk7ZWxzZSBhLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrayxvKX1pZih6LmFkZCl7ei5hZGQuY2FsbChhLGopO2lmKCFqLmhhbmRsZXIuZ3VpZClqLmhhbmRsZXIuZ3VpZD1kLmd1aWR9dS5wdXNoKGopO2MuZXZlbnQuZ2xvYmFsW2tdPXRydWV9YT1udWxsfX19LGdsb2JhbDp7fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGQsZil7aWYoIShhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpKXt2YXIgZSxqPTAsaSxvLGssbixyLHUsej1jLmRhdGEoYSksCkM9eiYmei5ldmVudHM7aWYoeiYmQyl7aWYoYiYmYi50eXBlKXtkPWIuaGFuZGxlcjtiPWIudHlwZX1pZighYnx8dHlwZW9mIGI9PT0ic3RyaW5nIiYmYi5jaGFyQXQoMCk9PT0iLiIpe2I9Ynx8IiI7Zm9yKGUgaW4gQyljLmV2ZW50LnJlbW92ZShhLGUrYil9ZWxzZXtmb3IoYj1iLnNwbGl0KCIgIik7ZT1iW2orK107KXtuPWU7aT1lLmluZGV4T2YoIi4iKTwwO289W107aWYoIWkpe289ZS5zcGxpdCgiLiIpO2U9by5zaGlmdCgpO2s9bmV3IFJlZ0V4cCgiKF58XFwuKSIrYy5tYXAoby5zbGljZSgwKS5zb3J0KCksZGIpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpfWlmKHI9Q1tlXSlpZihkKXtuPWMuZXZlbnQuc3BlY2lhbFtlXXx8e307Zm9yKEI9Znx8MDtCPHIubGVuZ3RoO0IrKyl7dT1yW0JdO2lmKGQuZ3VpZD09PXUuZ3VpZCl7aWYoaXx8ay50ZXN0KHUubmFtZXNwYWNlKSl7Zj09bnVsbCYmci5zcGxpY2UoQi0tLDEpO24ucmVtb3ZlJiZuLnJlbW92ZS5jYWxsKGEsdSl9aWYoZiE9Cm51bGwpYnJlYWt9fWlmKHIubGVuZ3RoPT09MHx8ZiE9bnVsbCYmci5sZW5ndGg9PT0xKXtpZighbi50ZWFyZG93bnx8bi50ZWFyZG93bi5jYWxsKGEsbyk9PT1mYWxzZSlDYShhLGUsei5oYW5kbGUpO2RlbGV0ZSBDW2VdfX1lbHNlIGZvcih2YXIgQj0wO0I8ci5sZW5ndGg7QisrKXt1PXJbQl07aWYoaXx8ay50ZXN0KHUubmFtZXNwYWNlKSl7Yy5ldmVudC5yZW1vdmUoYSxuLHUuaGFuZGxlcixCKTtyLnNwbGljZShCLS0sMSl9fX1pZihjLmlzRW1wdHlPYmplY3QoQykpe2lmKGI9ei5oYW5kbGUpYi5lbGVtPW51bGw7ZGVsZXRlIHouZXZlbnRzO2RlbGV0ZSB6LmhhbmRsZTtjLmlzRW1wdHlPYmplY3QoeikmJmMucmVtb3ZlRGF0YShhKX19fX19LHRyaWdnZXI6ZnVuY3Rpb24oYSxiLGQsZil7dmFyIGU9YS50eXBlfHxhO2lmKCFmKXthPXR5cGVvZiBhPT09Im9iamVjdCI/YVtHXT9hOmMuZXh0ZW5kKGMuRXZlbnQoZSksYSk6Yy5FdmVudChlKTtpZihlLmluZGV4T2YoIiEiKT49MCl7YS50eXBlPQplPWUuc2xpY2UoMCwtMSk7YS5leGNsdXNpdmU9dHJ1ZX1pZighZCl7YS5zdG9wUHJvcGFnYXRpb24oKTtjLmV2ZW50Lmdsb2JhbFtlXSYmYy5lYWNoKGMuY2FjaGUsZnVuY3Rpb24oKXt0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbZV0mJmMuZXZlbnQudHJpZ2dlcihhLGIsdGhpcy5oYW5kbGUuZWxlbSl9KX1pZighZHx8ZC5ub2RlVHlwZT09PTN8fGQubm9kZVR5cGU9PT04KXJldHVybiB3O2EucmVzdWx0PXc7YS50YXJnZXQ9ZDtiPWMubWFrZUFycmF5KGIpO2IudW5zaGlmdChhKX1hLmN1cnJlbnRUYXJnZXQ9ZDsoZj1jLmRhdGEoZCwiaGFuZGxlIikpJiZmLmFwcGx5KGQsYik7Zj1kLnBhcmVudE5vZGV8fGQub3duZXJEb2N1bWVudDt0cnl7aWYoIShkJiZkLm5vZGVOYW1lJiZjLm5vRGF0YVtkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSlpZihkWyJvbiIrZV0mJmRbIm9uIitlXS5hcHBseShkLGIpPT09ZmFsc2UpYS5yZXN1bHQ9ZmFsc2V9Y2F0Y2goail7fWlmKCFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJgpmKWMuZXZlbnQudHJpZ2dlcihhLGIsZix0cnVlKTtlbHNlIGlmKCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtmPWEudGFyZ2V0O3ZhciBpLG89Yy5ub2RlTmFtZShmLCJhIikmJmU9PT0iY2xpY2siLGs9Yy5ldmVudC5zcGVjaWFsW2VdfHx7fTtpZigoIWsuX2RlZmF1bHR8fGsuX2RlZmF1bHQuY2FsbChkLGEpPT09ZmFsc2UpJiYhbyYmIShmJiZmLm5vZGVOYW1lJiZjLm5vRGF0YVtmLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSl7dHJ5e2lmKGZbZV0pe2lmKGk9Zlsib24iK2VdKWZbIm9uIitlXT1udWxsO2MuZXZlbnQudHJpZ2dlcmVkPXRydWU7ZltlXSgpfX1jYXRjaChuKXt9aWYoaSlmWyJvbiIrZV09aTtjLmV2ZW50LnRyaWdnZXJlZD1mYWxzZX19fSxoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGIsZCxmLGU7YT1hcmd1bWVudHNbMF09Yy5ldmVudC5maXgoYXx8QS5ldmVudCk7YS5jdXJyZW50VGFyZ2V0PXRoaXM7Yj1hLnR5cGUuaW5kZXhPZigiLiIpPDAmJiFhLmV4Y2x1c2l2ZTsKaWYoIWIpe2Q9YS50eXBlLnNwbGl0KCIuIik7YS50eXBlPWQuc2hpZnQoKTtmPW5ldyBSZWdFeHAoIihefFxcLikiK2Quc2xpY2UoMCkuc29ydCgpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpfWU9Yy5kYXRhKHRoaXMsImV2ZW50cyIpO2Q9ZVthLnR5cGVdO2lmKGUmJmQpe2Q9ZC5zbGljZSgwKTtlPTA7Zm9yKHZhciBqPWQubGVuZ3RoO2U8ajtlKyspe3ZhciBpPWRbZV07aWYoYnx8Zi50ZXN0KGkubmFtZXNwYWNlKSl7YS5oYW5kbGVyPWkuaGFuZGxlcjthLmRhdGE9aS5kYXRhO2EuaGFuZGxlT2JqPWk7aT1pLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKGkhPT13KXthLnJlc3VsdD1pO2lmKGk9PT1mYWxzZSl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCl9fWlmKGEuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVha319fXJldHVybiBhLnJlc3VsdH0scHJvcHM6ImFsdEtleSBhdHRyQ2hhbmdlIGF0dHJOYW1lIGJ1YmJsZXMgYnV0dG9uIGNhbmNlbGFibGUgY2hhckNvZGUgY2xpZW50WCBjbGllbnRZIGN0cmxLZXkgY3VycmVudFRhcmdldCBkYXRhIGRldGFpbCBldmVudFBoYXNlIGZyb21FbGVtZW50IGhhbmRsZXIga2V5Q29kZSBsYXllclggbGF5ZXJZIG1ldGFLZXkgbmV3VmFsdWUgb2Zmc2V0WCBvZmZzZXRZIG9yaWdpbmFsVGFyZ2V0IHBhZ2VYIHBhZ2VZIHByZXZWYWx1ZSByZWxhdGVkTm9kZSByZWxhdGVkVGFyZ2V0IHNjcmVlblggc2NyZWVuWSBzaGlmdEtleSBzcmNFbGVtZW50IHRhcmdldCB0b0VsZW1lbnQgdmlldyB3aGVlbERlbHRhIHdoaWNoIi5zcGxpdCgiICIpLApmaXg6ZnVuY3Rpb24oYSl7aWYoYVtHXSlyZXR1cm4gYTt2YXIgYj1hO2E9Yy5FdmVudChiKTtmb3IodmFyIGQ9dGhpcy5wcm9wcy5sZW5ndGgsZjtkOyl7Zj10aGlzLnByb3BzWy0tZF07YVtmXT1iW2ZdfWlmKCFhLnRhcmdldClhLnRhcmdldD1hLnNyY0VsZW1lbnR8fHM7aWYoYS50YXJnZXQubm9kZVR5cGU9PT0zKWEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGU7aWYoIWEucmVsYXRlZFRhcmdldCYmYS5mcm9tRWxlbWVudClhLnJlbGF0ZWRUYXJnZXQ9YS5mcm9tRWxlbWVudD09PWEudGFyZ2V0P2EudG9FbGVtZW50OmEuZnJvbUVsZW1lbnQ7aWYoYS5wYWdlWD09bnVsbCYmYS5jbGllbnRYIT1udWxsKXtiPXMuZG9jdW1lbnRFbGVtZW50O2Q9cy5ib2R5O2EucGFnZVg9YS5jbGllbnRYKyhiJiZiLnNjcm9sbExlZnR8fGQmJmQuc2Nyb2xsTGVmdHx8MCktKGImJmIuY2xpZW50TGVmdHx8ZCYmZC5jbGllbnRMZWZ0fHwwKTthLnBhZ2VZPWEuY2xpZW50WSsoYiYmYi5zY3JvbGxUb3B8fApkJiZkLnNjcm9sbFRvcHx8MCktKGImJmIuY2xpZW50VG9wfHxkJiZkLmNsaWVudFRvcHx8MCl9aWYoIWEud2hpY2gmJihhLmNoYXJDb2RlfHxhLmNoYXJDb2RlPT09MD9hLmNoYXJDb2RlOmEua2V5Q29kZSkpYS53aGljaD1hLmNoYXJDb2RlfHxhLmtleUNvZGU7aWYoIWEubWV0YUtleSYmYS5jdHJsS2V5KWEubWV0YUtleT1hLmN0cmxLZXk7aWYoIWEud2hpY2gmJmEuYnV0dG9uIT09dylhLndoaWNoPWEuYnV0dG9uJjE/MTphLmJ1dHRvbiYyPzM6YS5idXR0b24mND8yOjA7cmV0dXJuIGF9LGd1aWQ6MUU4LHByb3h5OmMucHJveHksc3BlY2lhbDp7cmVhZHk6e3NldHVwOmMuYmluZFJlYWR5LHRlYXJkb3duOmMubm9vcH0sbGl2ZTp7YWRkOmZ1bmN0aW9uKGEpe2MuZXZlbnQuYWRkKHRoaXMsYS5vcmlnVHlwZSxjLmV4dGVuZCh7fSxhLHtoYW5kbGVyOm9hfSkpfSxyZW1vdmU6ZnVuY3Rpb24oYSl7dmFyIGI9dHJ1ZSxkPWEub3JpZ1R5cGUucmVwbGFjZShPLCIiKTtjLmVhY2goYy5kYXRhKHRoaXMsCiJldmVudHMiKS5saXZlfHxbXSxmdW5jdGlvbigpe2lmKGQ9PT10aGlzLm9yaWdUeXBlLnJlcGxhY2UoTywiIikpcmV0dXJuIGI9ZmFsc2V9KTtiJiZjLmV2ZW50LnJlbW92ZSh0aGlzLGEub3JpZ1R5cGUsb2EpfX0sYmVmb3JldW5sb2FkOntzZXR1cDpmdW5jdGlvbihhLGIsZCl7aWYodGhpcy5zZXRJbnRlcnZhbCl0aGlzLm9uYmVmb3JldW5sb2FkPWQ7cmV0dXJuIGZhbHNlfSx0ZWFyZG93bjpmdW5jdGlvbihhLGIpe2lmKHRoaXMub25iZWZvcmV1bmxvYWQ9PT1iKXRoaXMub25iZWZvcmV1bmxvYWQ9bnVsbH19fX07dmFyIENhPXMucmVtb3ZlRXZlbnRMaXN0ZW5lcj9mdW5jdGlvbihhLGIsZCl7YS5yZW1vdmVFdmVudExpc3RlbmVyKGIsZCxmYWxzZSl9OmZ1bmN0aW9uKGEsYixkKXthLmRldGFjaEV2ZW50KCJvbiIrYixkKX07Yy5FdmVudD1mdW5jdGlvbihhKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdClyZXR1cm4gbmV3IGMuRXZlbnQoYSk7aWYoYSYmYS50eXBlKXt0aGlzLm9yaWdpbmFsRXZlbnQ9CmE7dGhpcy50eXBlPWEudHlwZX1lbHNlIHRoaXMudHlwZT1hO3RoaXMudGltZVN0YW1wPUooKTt0aGlzW0ddPXRydWV9O2MuRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPVo7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKGEpe2EucHJldmVudERlZmF1bHQmJmEucHJldmVudERlZmF1bHQoKTthLnJldHVyblZhbHVlPWZhbHNlfX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1aO3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDtpZihhKXthLnN0b3BQcm9wYWdhdGlvbiYmYS5zdG9wUHJvcGFnYXRpb24oKTthLmNhbmNlbEJ1YmJsZT10cnVlfX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1aO3RoaXMuc3RvcFByb3BhZ2F0aW9uKCl9LGlzRGVmYXVsdFByZXZlbnRlZDpZLGlzUHJvcGFnYXRpb25TdG9wcGVkOlksCmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOll9O3ZhciBEYT1mdW5jdGlvbihhKXt2YXIgYj1hLnJlbGF0ZWRUYXJnZXQ7dHJ5e2Zvcig7YiYmYiE9PXRoaXM7KWI9Yi5wYXJlbnROb2RlO2lmKGIhPT10aGlzKXthLnR5cGU9YS5kYXRhO2MuZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19Y2F0Y2goZCl7fX0sRWE9ZnVuY3Rpb24oYSl7YS50eXBlPWEuZGF0YTtjLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2MuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9LGZ1bmN0aW9uKGEsYil7Yy5ldmVudC5zcGVjaWFsW2FdPXtzZXR1cDpmdW5jdGlvbihkKXtjLmV2ZW50LmFkZCh0aGlzLGIsZCYmZC5zZWxlY3Rvcj9FYTpEYSxhKX0sdGVhcmRvd246ZnVuY3Rpb24oZCl7Yy5ldmVudC5yZW1vdmUodGhpcyxiLGQmJmQuc2VsZWN0b3I/RWE6RGEpfX19KTtpZighYy5zdXBwb3J0LnN1Ym1pdEJ1YmJsZXMpYy5ldmVudC5zcGVjaWFsLnN1Ym1pdD0Ke3NldHVwOmZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09ImZvcm0iKXtjLmV2ZW50LmFkZCh0aGlzLCJjbGljay5zcGVjaWFsU3VibWl0IixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldCxkPWIudHlwZTtpZigoZD09PSJzdWJtaXQifHxkPT09ImltYWdlIikmJmMoYikuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aClyZXR1cm4gbmEoInN1Ym1pdCIsdGhpcyxhcmd1bWVudHMpfSk7Yy5ldmVudC5hZGQodGhpcywia2V5cHJlc3Muc3BlY2lhbFN1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoKGQ9PT0idGV4dCJ8fGQ9PT0icGFzc3dvcmQiKSYmYyhiKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoJiZhLmtleUNvZGU9PT0xMylyZXR1cm4gbmEoInN1Ym1pdCIsdGhpcyxhcmd1bWVudHMpfSl9ZWxzZSByZXR1cm4gZmFsc2V9LHRlYXJkb3duOmZ1bmN0aW9uKCl7Yy5ldmVudC5yZW1vdmUodGhpcywiLnNwZWNpYWxTdWJtaXQiKX19OwppZighYy5zdXBwb3J0LmNoYW5nZUJ1YmJsZXMpe3ZhciBkYT0vdGV4dGFyZWF8aW5wdXR8c2VsZWN0L2ksZWEsRmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS50eXBlLGQ9YS52YWx1ZTtpZihiPT09InJhZGlvInx8Yj09PSJjaGVja2JveCIpZD1hLmNoZWNrZWQ7ZWxzZSBpZihiPT09InNlbGVjdC1tdWx0aXBsZSIpZD1hLnNlbGVjdGVkSW5kZXg+LTE/Yy5tYXAoYS5vcHRpb25zLGZ1bmN0aW9uKGYpe3JldHVybiBmLnNlbGVjdGVkfSkuam9pbigiLSIpOiIiO2Vsc2UgaWYoYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09InNlbGVjdCIpZD1hLnNlbGVjdGVkSW5kZXg7cmV0dXJuIGR9LGZhPWZ1bmN0aW9uKGEsYil7dmFyIGQ9YS50YXJnZXQsZixlO2lmKCEoIWRhLnRlc3QoZC5ub2RlTmFtZSl8fGQucmVhZE9ubHkpKXtmPWMuZGF0YShkLCJfY2hhbmdlX2RhdGEiKTtlPUZhKGQpO2lmKGEudHlwZSE9PSJmb2N1c291dCJ8fGQudHlwZSE9PSJyYWRpbyIpYy5kYXRhKGQsIl9jaGFuZ2VfZGF0YSIsCmUpO2lmKCEoZj09PXd8fGU9PT1mKSlpZihmIT1udWxsfHxlKXthLnR5cGU9ImNoYW5nZSI7cmV0dXJuIGMuZXZlbnQudHJpZ2dlcihhLGIsZCl9fX07Yy5ldmVudC5zcGVjaWFsLmNoYW5nZT17ZmlsdGVyczp7Zm9jdXNvdXQ6ZmEsY2xpY2s6ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoZD09PSJyYWRpbyJ8fGQ9PT0iY2hlY2tib3gifHxiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0ic2VsZWN0IilyZXR1cm4gZmEuY2FsbCh0aGlzLGEpfSxrZXlkb3duOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGQ9Yi50eXBlO2lmKGEua2V5Q29kZT09PTEzJiZiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0idGV4dGFyZWEifHxhLmtleUNvZGU9PT0zMiYmKGQ9PT0iY2hlY2tib3gifHxkPT09InJhZGlvIil8fGQ9PT0ic2VsZWN0LW11bHRpcGxlIilyZXR1cm4gZmEuY2FsbCh0aGlzLGEpfSxiZWZvcmVhY3RpdmF0ZTpmdW5jdGlvbihhKXthPWEudGFyZ2V0O2MuZGF0YShhLAoiX2NoYW5nZV9kYXRhIixGYShhKSl9fSxzZXR1cDpmdW5jdGlvbigpe2lmKHRoaXMudHlwZT09PSJmaWxlIilyZXR1cm4gZmFsc2U7Zm9yKHZhciBhIGluIGVhKWMuZXZlbnQuYWRkKHRoaXMsYSsiLnNwZWNpYWxDaGFuZ2UiLGVhW2FdKTtyZXR1cm4gZGEudGVzdCh0aGlzLm5vZGVOYW1lKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtjLmV2ZW50LnJlbW92ZSh0aGlzLCIuc3BlY2lhbENoYW5nZSIpO3JldHVybiBkYS50ZXN0KHRoaXMubm9kZU5hbWUpfX07ZWE9Yy5ldmVudC5zcGVjaWFsLmNoYW5nZS5maWx0ZXJzfXMuYWRkRXZlbnRMaXN0ZW5lciYmYy5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoZil7Zj1jLmV2ZW50LmZpeChmKTtmLnR5cGU9YjtyZXR1cm4gYy5ldmVudC5oYW5kbGUuY2FsbCh0aGlzLGYpfWMuZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYSwKZCx0cnVlKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxkLHRydWUpfX19KTtjLmVhY2goWyJiaW5kIiwib25lIl0sZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQsZixlKXtpZih0eXBlb2YgZD09PSJvYmplY3QiKXtmb3IodmFyIGogaW4gZCl0aGlzW2JdKGosZixkW2pdLGUpO3JldHVybiB0aGlzfWlmKGMuaXNGdW5jdGlvbihmKSl7ZT1mO2Y9d312YXIgaT1iPT09Im9uZSI/Yy5wcm94eShlLGZ1bmN0aW9uKGspe2ModGhpcykudW5iaW5kKGssaSk7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSk6ZTtpZihkPT09InVubG9hZCImJmIhPT0ib25lIil0aGlzLm9uZShkLGYsZSk7ZWxzZXtqPTA7Zm9yKHZhciBvPXRoaXMubGVuZ3RoO2o8bztqKyspYy5ldmVudC5hZGQodGhpc1tqXSxkLGksZil9cmV0dXJuIHRoaXN9fSk7Yy5mbi5leHRlbmQoe3VuYmluZDpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09Im9iamVjdCImJgohYS5wcmV2ZW50RGVmYXVsdClmb3IodmFyIGQgaW4gYSl0aGlzLnVuYmluZChkLGFbZF0pO2Vsc2V7ZD0wO2Zvcih2YXIgZj10aGlzLmxlbmd0aDtkPGY7ZCsrKWMuZXZlbnQucmVtb3ZlKHRoaXNbZF0sYSxiKX1yZXR1cm4gdGhpc30sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGQsZil7cmV0dXJuIHRoaXMubGl2ZShiLGQsZixhKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0wP3RoaXMudW5iaW5kKCJsaXZlIik6dGhpcy5kaWUoYixudWxsLGQsYSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe2lmKHRoaXNbMF0pe2E9Yy5FdmVudChhKTthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtjLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXNbMF0pO3JldHVybiBhLnJlc3VsdH19LAp0b2dnbGU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWFyZ3VtZW50cyxkPTE7ZDxiLmxlbmd0aDspYy5wcm94eShhLGJbZCsrXSk7cmV0dXJuIHRoaXMuY2xpY2soYy5wcm94eShhLGZ1bmN0aW9uKGYpe3ZhciBlPShjLmRhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkKXx8MCklZDtjLmRhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkLGUrMSk7Zi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBiW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8ZmFsc2V9KSl9LGhvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pO3ZhciBHYT17Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0Iixtb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In07Yy5lYWNoKFsibGl2ZSIsImRpZSJdLGZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkLGYsZSxqKXt2YXIgaSxvPTAsayxuLHI9anx8dGhpcy5zZWxlY3RvciwKdT1qP3RoaXM6Yyh0aGlzLmNvbnRleHQpO2lmKGMuaXNGdW5jdGlvbihmKSl7ZT1mO2Y9d31mb3IoZD0oZHx8IiIpLnNwbGl0KCIgIik7KGk9ZFtvKytdKSE9bnVsbDspe2o9Ty5leGVjKGkpO2s9IiI7aWYoail7az1qWzBdO2k9aS5yZXBsYWNlKE8sIiIpfWlmKGk9PT0iaG92ZXIiKWQucHVzaCgibW91c2VlbnRlciIraywibW91c2VsZWF2ZSIrayk7ZWxzZXtuPWk7aWYoaT09PSJmb2N1cyJ8fGk9PT0iYmx1ciIpe2QucHVzaChHYVtpXStrKTtpKz1rfWVsc2UgaT0oR2FbaV18fGkpK2s7Yj09PSJsaXZlIj91LmVhY2goZnVuY3Rpb24oKXtjLmV2ZW50LmFkZCh0aGlzLHBhKGkscikse2RhdGE6ZixzZWxlY3RvcjpyLGhhbmRsZXI6ZSxvcmlnVHlwZTppLG9yaWdIYW5kbGVyOmUscHJlVHlwZTpufSl9KTp1LnVuYmluZChwYShpLHIpLGUpfX1yZXR1cm4gdGhpc319KTtjLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IiLnNwbGl0KCIgIiksCmZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5jdGlvbihkKXtyZXR1cm4gZD90aGlzLmJpbmQoYixkKTp0aGlzLnRyaWdnZXIoYil9O2lmKGMuYXR0ckZuKWMuYXR0ckZuW2JdPXRydWV9KTtBLmF0dGFjaEV2ZW50JiYhQS5hZGRFdmVudExpc3RlbmVyJiZBLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gYy5jYWNoZSlpZihjLmNhY2hlW2FdLmhhbmRsZSl0cnl7Yy5ldmVudC5yZW1vdmUoYy5jYWNoZVthXS5oYW5kbGUuZWxlbSl9Y2F0Y2goYil7fX0pOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoZyl7Zm9yKHZhciBoPSIiLGwsbT0wO2dbbV07bSsrKXtsPWdbbV07aWYobC5ub2RlVHlwZT09PTN8fGwubm9kZVR5cGU9PT00KWgrPWwubm9kZVZhbHVlO2Vsc2UgaWYobC5ub2RlVHlwZSE9PTgpaCs9YShsLmNoaWxkTm9kZXMpfXJldHVybiBofWZ1bmN0aW9uIGIoZyxoLGwsbSxxLHApe3E9MDtmb3IodmFyIHY9bS5sZW5ndGg7cTx2O3ErKyl7dmFyIHQ9bVtxXTsKaWYodCl7dD10W2ddO2Zvcih2YXIgeT1mYWxzZTt0Oyl7aWYodC5zaXpjYWNoZT09PWwpe3k9bVt0LnNpenNldF07YnJlYWt9aWYodC5ub2RlVHlwZT09PTEmJiFwKXt0LnNpemNhY2hlPWw7dC5zaXpzZXQ9cX1pZih0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oKXt5PXQ7YnJlYWt9dD10W2ddfW1bcV09eX19fWZ1bmN0aW9uIGQoZyxoLGwsbSxxLHApe3E9MDtmb3IodmFyIHY9bS5sZW5ndGg7cTx2O3ErKyl7dmFyIHQ9bVtxXTtpZih0KXt0PXRbZ107Zm9yKHZhciB5PWZhbHNlO3Q7KXtpZih0LnNpemNhY2hlPT09bCl7eT1tW3Quc2l6c2V0XTticmVha31pZih0Lm5vZGVUeXBlPT09MSl7aWYoIXApe3Quc2l6Y2FjaGU9bDt0LnNpenNldD1xfWlmKHR5cGVvZiBoIT09InN0cmluZyIpe2lmKHQ9PT1oKXt5PXRydWU7YnJlYWt9fWVsc2UgaWYoay5maWx0ZXIoaCxbdF0pLmxlbmd0aD4wKXt5PXQ7YnJlYWt9fXQ9dFtnXX1tW3FdPXl9fX12YXIgZj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/KCg/Oi58XHJ8XG4pKikvZywKZT0wLGo9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxpPWZhbHNlLG89dHJ1ZTtbMCwwXS5zb3J0KGZ1bmN0aW9uKCl7bz1mYWxzZTtyZXR1cm4gMH0pO3ZhciBrPWZ1bmN0aW9uKGcsaCxsLG0pe2w9bHx8W107dmFyIHE9aD1ofHxzO2lmKGgubm9kZVR5cGUhPT0xJiZoLm5vZGVUeXBlIT09OSlyZXR1cm5bXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4gbDtmb3IodmFyIHA9W10sdix0LHksUyxIPXRydWUsTT14KGgpLEk9ZzsoZi5leGVjKCIiKSx2PWYuZXhlYyhJKSkhPT1udWxsOyl7ST12WzNdO3AucHVzaCh2WzFdKTtpZih2WzJdKXtTPXZbM107YnJlYWt9fWlmKHAubGVuZ3RoPjEmJnIuZXhlYyhnKSlpZihwLmxlbmd0aD09PTImJm4ucmVsYXRpdmVbcFswXV0pdD1nYShwWzBdK3BbMV0saCk7ZWxzZSBmb3IodD1uLnJlbGF0aXZlW3BbMF1dP1toXTprKHAuc2hpZnQoKSxoKTtwLmxlbmd0aDspe2c9cC5zaGlmdCgpO2lmKG4ucmVsYXRpdmVbZ10pZys9cC5zaGlmdCgpOwp0PWdhKGcsdCl9ZWxzZXtpZighbSYmcC5sZW5ndGg+MSYmaC5ub2RlVHlwZT09PTkmJiFNJiZuLm1hdGNoLklELnRlc3QocFswXSkmJiFuLm1hdGNoLklELnRlc3QocFtwLmxlbmd0aC0xXSkpe3Y9ay5maW5kKHAuc2hpZnQoKSxoLE0pO2g9di5leHByP2suZmlsdGVyKHYuZXhwcix2LnNldClbMF06di5zZXRbMF19aWYoaCl7dj1tP3tleHByOnAucG9wKCksc2V0OnoobSl9OmsuZmluZChwLnBvcCgpLHAubGVuZ3RoPT09MSYmKHBbMF09PT0ifiJ8fHBbMF09PT0iKyIpJiZoLnBhcmVudE5vZGU/aC5wYXJlbnROb2RlOmgsTSk7dD12LmV4cHI/ay5maWx0ZXIodi5leHByLHYuc2V0KTp2LnNldDtpZihwLmxlbmd0aD4wKXk9eih0KTtlbHNlIEg9ZmFsc2U7Zm9yKDtwLmxlbmd0aDspe3ZhciBEPXAucG9wKCk7dj1EO2lmKG4ucmVsYXRpdmVbRF0pdj1wLnBvcCgpO2Vsc2UgRD0iIjtpZih2PT1udWxsKXY9aDtuLnJlbGF0aXZlW0RdKHksdixNKX19ZWxzZSB5PVtdfXl8fCh5PXQpO3l8fGsuZXJyb3IoRHx8CmcpO2lmKGouY2FsbCh5KT09PSJbb2JqZWN0IEFycmF5XSIpaWYoSClpZihoJiZoLm5vZGVUeXBlPT09MSlmb3IoZz0wO3lbZ10hPW51bGw7ZysrKXtpZih5W2ddJiYoeVtnXT09PXRydWV8fHlbZ10ubm9kZVR5cGU9PT0xJiZFKGgseVtnXSkpKWwucHVzaCh0W2ddKX1lbHNlIGZvcihnPTA7eVtnXSE9bnVsbDtnKyspeVtnXSYmeVtnXS5ub2RlVHlwZT09PTEmJmwucHVzaCh0W2ddKTtlbHNlIGwucHVzaC5hcHBseShsLHkpO2Vsc2Ugeih5LGwpO2lmKFMpe2soUyxxLGwsbSk7ay51bmlxdWVTb3J0KGwpfXJldHVybiBsfTtrLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZyl7aWYoQil7aT1vO2cuc29ydChCKTtpZihpKWZvcih2YXIgaD0xO2g8Zy5sZW5ndGg7aCsrKWdbaF09PT1nW2gtMV0mJmcuc3BsaWNlKGgtLSwxKX1yZXR1cm4gZ307ay5tYXRjaGVzPWZ1bmN0aW9uKGcsaCl7cmV0dXJuIGsoZyxudWxsLG51bGwsaCl9O2suZmluZD1mdW5jdGlvbihnLGgsbCl7dmFyIG0scTtpZighZylyZXR1cm5bXTsKZm9yKHZhciBwPTAsdj1uLm9yZGVyLmxlbmd0aDtwPHY7cCsrKXt2YXIgdD1uLm9yZGVyW3BdO2lmKHE9bi5sZWZ0TWF0Y2hbdF0uZXhlYyhnKSl7dmFyIHk9cVsxXTtxLnNwbGljZSgxLDEpO2lmKHkuc3Vic3RyKHkubGVuZ3RoLTEpIT09IlxcIil7cVsxXT0ocVsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO209bi5maW5kW3RdKHEsaCxsKTtpZihtIT1udWxsKXtnPWcucmVwbGFjZShuLm1hdGNoW3RdLCIiKTticmVha319fX1tfHwobT1oLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpO3JldHVybntzZXQ6bSxleHByOmd9fTtrLmZpbHRlcj1mdW5jdGlvbihnLGgsbCxtKXtmb3IodmFyIHE9ZyxwPVtdLHY9aCx0LHksUz1oJiZoWzBdJiZ4KGhbMF0pO2cmJmgubGVuZ3RoOyl7Zm9yKHZhciBIIGluIG4uZmlsdGVyKWlmKCh0PW4ubGVmdE1hdGNoW0hdLmV4ZWMoZykpIT1udWxsJiZ0WzJdKXt2YXIgTT1uLmZpbHRlcltIXSxJLEQ7RD10WzFdO3k9ZmFsc2U7dC5zcGxpY2UoMSwxKTtpZihELnN1YnN0cihELmxlbmd0aC0KMSkhPT0iXFwiKXtpZih2PT09cClwPVtdO2lmKG4ucHJlRmlsdGVyW0hdKWlmKHQ9bi5wcmVGaWx0ZXJbSF0odCx2LGwscCxtLFMpKXtpZih0PT09dHJ1ZSljb250aW51ZX1lbHNlIHk9ST10cnVlO2lmKHQpZm9yKHZhciBVPTA7KEQ9dltVXSkhPW51bGw7VSsrKWlmKEQpe0k9TShELHQsVSx2KTt2YXIgSGE9bV4hIUk7aWYobCYmSSE9bnVsbClpZihIYSl5PXRydWU7ZWxzZSB2W1VdPWZhbHNlO2Vsc2UgaWYoSGEpe3AucHVzaChEKTt5PXRydWV9fWlmKEkhPT13KXtsfHwodj1wKTtnPWcucmVwbGFjZShuLm1hdGNoW0hdLCIiKTtpZigheSlyZXR1cm5bXTticmVha319fWlmKGc9PT1xKWlmKHk9PW51bGwpay5lcnJvcihnKTtlbHNlIGJyZWFrO3E9Z31yZXR1cm4gdn07ay5lcnJvcj1mdW5jdGlvbihnKXt0aHJvdyJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2c7fTt2YXIgbj1rLnNlbGVjdG9ycz17b3JkZXI6WyJJRCIsIk5BTUUiLCJUQUciXSxtYXRjaDp7SUQ6LyMoKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKS8sCkNMQVNTOi9cLigoPzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKVsnIl0qXF0vLEFUVFI6L1xbXHMqKCg/Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKylccyooPzooXFM/PSlccyooWyciXSopKC4qPylcM3wpXHMqXF0vLFRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCotXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKykoPzpcKChbJyJdPykoKD86XChbXlwpXStcKXxbXlwoXCldKikrKVwyXCkpPy99LGxlZnRNYXRjaDp7fSxhdHRyTWFwOnsiY2xhc3MiOiJjbGFzc05hbWUiLCJmb3IiOiJodG1sRm9yIn0sYXR0ckhhbmRsZTp7aHJlZjpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRBdHRyaWJ1dGUoImhyZWYiKX19LApyZWxhdGl2ZTp7IisiOmZ1bmN0aW9uKGcsaCl7dmFyIGw9dHlwZW9mIGg9PT0ic3RyaW5nIixtPWwmJiEvXFcvLnRlc3QoaCk7bD1sJiYhbTtpZihtKWg9aC50b0xvd2VyQ2FzZSgpO209MDtmb3IodmFyIHE9Zy5sZW5ndGgscDttPHE7bSsrKWlmKHA9Z1ttXSl7Zm9yKDsocD1wLnByZXZpb3VzU2libGluZykmJnAubm9kZVR5cGUhPT0xOyk7Z1ttXT1sfHxwJiZwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oP3B8fGZhbHNlOnA9PT1ofWwmJmsuZmlsdGVyKGgsZyx0cnVlKX0sIj4iOmZ1bmN0aW9uKGcsaCl7dmFyIGw9dHlwZW9mIGg9PT0ic3RyaW5nIjtpZihsJiYhL1xXLy50ZXN0KGgpKXtoPWgudG9Mb3dlckNhc2UoKTtmb3IodmFyIG09MCxxPWcubGVuZ3RoO208cTttKyspe3ZhciBwPWdbbV07aWYocCl7bD1wLnBhcmVudE5vZGU7Z1ttXT1sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oP2w6ZmFsc2V9fX1lbHNle209MDtmb3IocT1nLmxlbmd0aDttPHE7bSsrKWlmKHA9Z1ttXSlnW21dPQpsP3AucGFyZW50Tm9kZTpwLnBhcmVudE5vZGU9PT1oO2wmJmsuZmlsdGVyKGgsZyx0cnVlKX19LCIiOmZ1bmN0aW9uKGcsaCxsKXt2YXIgbT1lKysscT1kO2lmKHR5cGVvZiBoPT09InN0cmluZyImJiEvXFcvLnRlc3QoaCkpe3ZhciBwPWg9aC50b0xvd2VyQ2FzZSgpO3E9Yn1xKCJwYXJlbnROb2RlIixoLG0sZyxwLGwpfSwifiI6ZnVuY3Rpb24oZyxoLGwpe3ZhciBtPWUrKyxxPWQ7aWYodHlwZW9mIGg9PT0ic3RyaW5nIiYmIS9cVy8udGVzdChoKSl7dmFyIHA9aD1oLnRvTG93ZXJDYXNlKCk7cT1ifXEoInByZXZpb3VzU2libGluZyIsaCxtLGcscCxsKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKGcsaCxsKXtpZih0eXBlb2YgaC5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhbClyZXR1cm4oZz1oLmdldEVsZW1lbnRCeUlkKGdbMV0pKT9bZ106W119LE5BTUU6ZnVuY3Rpb24oZyxoKXtpZih0eXBlb2YgaC5nZXRFbGVtZW50c0J5TmFtZSE9PSJ1bmRlZmluZWQiKXt2YXIgbD1bXTsKaD1oLmdldEVsZW1lbnRzQnlOYW1lKGdbMV0pO2Zvcih2YXIgbT0wLHE9aC5sZW5ndGg7bTxxO20rKyloW21dLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09Z1sxXSYmbC5wdXNoKGhbbV0pO3JldHVybiBsLmxlbmd0aD09PTA/bnVsbDpsfX0sVEFHOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGguZ2V0RWxlbWVudHNCeVRhZ05hbWUoZ1sxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKGcsaCxsLG0scSxwKXtnPSIgIitnWzFdLnJlcGxhY2UoL1xcL2csIiIpKyIgIjtpZihwKXJldHVybiBnO3A9MDtmb3IodmFyIHY7KHY9aFtwXSkhPW51bGw7cCsrKWlmKHYpaWYocV4odi5jbGFzc05hbWUmJigiICIrdi5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKC9bXHRcbl0vZywiICIpLmluZGV4T2YoZyk+PTApKWx8fG0ucHVzaCh2KTtlbHNlIGlmKGwpaFtwXT1mYWxzZTtyZXR1cm4gZmFsc2V9LElEOmZ1bmN0aW9uKGcpe3JldHVybiBnWzFdLnJlcGxhY2UoL1xcL2csIiIpfSxUQUc6ZnVuY3Rpb24oZyl7cmV0dXJuIGdbMV0udG9Mb3dlckNhc2UoKX0sCkNISUxEOmZ1bmN0aW9uKGcpe2lmKGdbMV09PT0ibnRoIil7dmFyIGg9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhnWzJdPT09ImV2ZW4iJiYiMm4ifHxnWzJdPT09Im9kZCImJiIybisxInx8IS9cRC8udGVzdChnWzJdKSYmIjBuKyIrZ1syXXx8Z1syXSk7Z1syXT1oWzFdKyhoWzJdfHwxKS0wO2dbM109aFszXS0wfWdbMF09ZSsrO3JldHVybiBnfSxBVFRSOmZ1bmN0aW9uKGcsaCxsLG0scSxwKXtoPWdbMV0ucmVwbGFjZSgvXFwvZywiIik7aWYoIXAmJm4uYXR0ck1hcFtoXSlnWzFdPW4uYXR0ck1hcFtoXTtpZihnWzJdPT09In49IilnWzRdPSIgIitnWzRdKyIgIjtyZXR1cm4gZ30sUFNFVURPOmZ1bmN0aW9uKGcsaCxsLG0scSl7aWYoZ1sxXT09PSJub3QiKWlmKChmLmV4ZWMoZ1szXSl8fCIiKS5sZW5ndGg+MXx8L15cdy8udGVzdChnWzNdKSlnWzNdPWsoZ1szXSxudWxsLG51bGwsaCk7ZWxzZXtnPWsuZmlsdGVyKGdbM10saCxsLHRydWVecSk7bHx8bS5wdXNoLmFwcGx5KG0sCmcpO3JldHVybiBmYWxzZX1lbHNlIGlmKG4ubWF0Y2guUE9TLnRlc3QoZ1swXSl8fG4ubWF0Y2guQ0hJTEQudGVzdChnWzBdKSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZ30sUE9TOmZ1bmN0aW9uKGcpe2cudW5zaGlmdCh0cnVlKTtyZXR1cm4gZ319LGZpbHRlcnM6e2VuYWJsZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZGlzYWJsZWQ9PT1mYWxzZSYmZy50eXBlIT09ImhpZGRlbiJ9LGRpc2FibGVkOmZ1bmN0aW9uKGcpe3JldHVybiBnLmRpc2FibGVkPT09dHJ1ZX0sY2hlY2tlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5jaGVja2VkPT09dHJ1ZX0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuc2VsZWN0ZWQ9PT10cnVlfSxwYXJlbnQ6ZnVuY3Rpb24oZyl7cmV0dXJuISFnLmZpcnN0Q2hpbGR9LGVtcHR5OmZ1bmN0aW9uKGcpe3JldHVybiFnLmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihnLGgsbCl7cmV0dXJuISFrKGxbM10sZykubGVuZ3RofSxoZWFkZXI6ZnVuY3Rpb24oZyl7cmV0dXJuL2hcZC9pLnRlc3QoZy5ub2RlTmFtZSl9LAp0ZXh0OmZ1bmN0aW9uKGcpe3JldHVybiJ0ZXh0Ij09PWcudHlwZX0scmFkaW86ZnVuY3Rpb24oZyl7cmV0dXJuInJhZGlvIj09PWcudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oZyl7cmV0dXJuImNoZWNrYm94Ij09PWcudHlwZX0sZmlsZTpmdW5jdGlvbihnKXtyZXR1cm4iZmlsZSI9PT1nLnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKGcpe3JldHVybiJwYXNzd29yZCI9PT1nLnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihnKXtyZXR1cm4ic3VibWl0Ij09PWcudHlwZX0saW1hZ2U6ZnVuY3Rpb24oZyl7cmV0dXJuImltYWdlIj09PWcudHlwZX0scmVzZXQ6ZnVuY3Rpb24oZyl7cmV0dXJuInJlc2V0Ij09PWcudHlwZX0sYnV0dG9uOmZ1bmN0aW9uKGcpe3JldHVybiJidXR0b24iPT09Zy50eXBlfHxnLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iYnV0dG9uIn0saW5wdXQ6ZnVuY3Rpb24oZyl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KGcubm9kZU5hbWUpfX0sCnNldEZpbHRlcnM6e2ZpcnN0OmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGg9PT0wfSxsYXN0OmZ1bmN0aW9uKGcsaCxsLG0pe3JldHVybiBoPT09bS5sZW5ndGgtMX0sZXZlbjpmdW5jdGlvbihnLGgpe3JldHVybiBoJTI9PT0wfSxvZGQ6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaCUyPT09MX0sbHQ6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBoPGxbM10tMH0sZ3Q6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBoPmxbM10tMH0sbnRoOmZ1bmN0aW9uKGcsaCxsKXtyZXR1cm4gbFszXS0wPT09aH0sZXE6ZnVuY3Rpb24oZyxoLGwpe3JldHVybiBsWzNdLTA9PT1ofX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oZyxoLGwsbSl7dmFyIHE9aFsxXSxwPW4uZmlsdGVyc1txXTtpZihwKXJldHVybiBwKGcsbCxoLG0pO2Vsc2UgaWYocT09PSJjb250YWlucyIpcmV0dXJuKGcudGV4dENvbnRlbnR8fGcuaW5uZXJUZXh0fHxhKFtnXSl8fCIiKS5pbmRleE9mKGhbM10pPj0wO2Vsc2UgaWYocT09PSJub3QiKXtoPQpoWzNdO2w9MDtmb3IobT1oLmxlbmd0aDtsPG07bCsrKWlmKGhbbF09PT1nKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZX1lbHNlIGsuZXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrcSl9LENISUxEOmZ1bmN0aW9uKGcsaCl7dmFyIGw9aFsxXSxtPWc7c3dpdGNoKGwpe2Nhc2UgIm9ubHkiOmNhc2UgImZpcnN0Ijpmb3IoO209bS5wcmV2aW91c1NpYmxpbmc7KWlmKG0ubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTtpZihsPT09ImZpcnN0IilyZXR1cm4gdHJ1ZTttPWc7Y2FzZSAibGFzdCI6Zm9yKDttPW0ubmV4dFNpYmxpbmc7KWlmKG0ubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTtyZXR1cm4gdHJ1ZTtjYXNlICJudGgiOmw9aFsyXTt2YXIgcT1oWzNdO2lmKGw9PT0xJiZxPT09MClyZXR1cm4gdHJ1ZTtoPWhbMF07dmFyIHA9Zy5wYXJlbnROb2RlO2lmKHAmJihwLnNpemNhY2hlIT09aHx8IWcubm9kZUluZGV4KSl7dmFyIHY9MDtmb3IobT1wLmZpcnN0Q2hpbGQ7bTttPQptLm5leHRTaWJsaW5nKWlmKG0ubm9kZVR5cGU9PT0xKW0ubm9kZUluZGV4PSsrdjtwLnNpemNhY2hlPWh9Zz1nLm5vZGVJbmRleC1xO3JldHVybiBsPT09MD9nPT09MDpnJWw9PT0wJiZnL2w+PTB9fSxJRDpmdW5jdGlvbihnLGgpe3JldHVybiBnLm5vZGVUeXBlPT09MSYmZy5nZXRBdHRyaWJ1dGUoImlkIik9PT1ofSxUQUc6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaD09PSIqIiYmZy5ub2RlVHlwZT09PTF8fGcubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWh9LENMQVNTOmZ1bmN0aW9uKGcsaCl7cmV0dXJuKCIgIisoZy5jbGFzc05hbWV8fGcuZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSsiICIpLmluZGV4T2YoaCk+LTF9LEFUVFI6ZnVuY3Rpb24oZyxoKXt2YXIgbD1oWzFdO2c9bi5hdHRySGFuZGxlW2xdP24uYXR0ckhhbmRsZVtsXShnKTpnW2xdIT1udWxsP2dbbF06Zy5nZXRBdHRyaWJ1dGUobCk7bD1nKyIiO3ZhciBtPWhbMl07aD1oWzRdO3JldHVybiBnPT1udWxsP209PT0iIT0iOm09PT0KIj0iP2w9PT1oOm09PT0iKj0iP2wuaW5kZXhPZihoKT49MDptPT09In49Ij8oIiAiK2wrIiAiKS5pbmRleE9mKGgpPj0wOiFoP2wmJmchPT1mYWxzZTptPT09IiE9Ij9sIT09aDptPT09Il49Ij9sLmluZGV4T2YoaCk9PT0wOm09PT0iJD0iP2wuc3Vic3RyKGwubGVuZ3RoLWgubGVuZ3RoKT09PWg6bT09PSJ8PSI/bD09PWh8fGwuc3Vic3RyKDAsaC5sZW5ndGgrMSk9PT1oKyItIjpmYWxzZX0sUE9TOmZ1bmN0aW9uKGcsaCxsLG0pe3ZhciBxPW4uc2V0RmlsdGVyc1toWzJdXTtpZihxKXJldHVybiBxKGcsbCxoLG0pfX19LHI9bi5tYXRjaC5QT1M7Zm9yKHZhciB1IGluIG4ubWF0Y2gpe24ubWF0Y2hbdV09bmV3IFJlZ0V4cChuLm1hdGNoW3VdLnNvdXJjZSsvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3VyY2UpO24ubGVmdE1hdGNoW3VdPW5ldyBSZWdFeHAoLyheKD86LnxccnxcbikqPykvLnNvdXJjZStuLm1hdGNoW3VdLnNvdXJjZS5yZXBsYWNlKC9cXChcZCspL2csZnVuY3Rpb24oZywKaCl7cmV0dXJuIlxcIisoaC0wKzEpfSkpfXZhciB6PWZ1bmN0aW9uKGcsaCl7Zz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChnLDApO2lmKGgpe2gucHVzaC5hcHBseShoLGcpO3JldHVybiBofXJldHVybiBnfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocy5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywwKX1jYXRjaChDKXt6PWZ1bmN0aW9uKGcsaCl7aD1ofHxbXTtpZihqLmNhbGwoZyk9PT0iW29iamVjdCBBcnJheV0iKUFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGgsZyk7ZWxzZSBpZih0eXBlb2YgZy5sZW5ndGg9PT0ibnVtYmVyIilmb3IodmFyIGw9MCxtPWcubGVuZ3RoO2w8bTtsKyspaC5wdXNoKGdbbF0pO2Vsc2UgZm9yKGw9MDtnW2xdO2wrKyloLnB1c2goZ1tsXSk7cmV0dXJuIGh9fXZhciBCO2lmKHMuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKUI9ZnVuY3Rpb24oZyxoKXtpZighZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbnx8CiFoLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtpZihnPT1oKWk9dHJ1ZTtyZXR1cm4gZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8tMToxfWc9Zy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihoKSY0Py0xOmc9PT1oPzA6MTtpZihnPT09MClpPXRydWU7cmV0dXJuIGd9O2Vsc2UgaWYoInNvdXJjZUluZGV4ImluIHMuZG9jdW1lbnRFbGVtZW50KUI9ZnVuY3Rpb24oZyxoKXtpZighZy5zb3VyY2VJbmRleHx8IWguc291cmNlSW5kZXgpe2lmKGc9PWgpaT10cnVlO3JldHVybiBnLnNvdXJjZUluZGV4Py0xOjF9Zz1nLnNvdXJjZUluZGV4LWguc291cmNlSW5kZXg7aWYoZz09PTApaT10cnVlO3JldHVybiBnfTtlbHNlIGlmKHMuY3JlYXRlUmFuZ2UpQj1mdW5jdGlvbihnLGgpe2lmKCFnLm93bmVyRG9jdW1lbnR8fCFoLm93bmVyRG9jdW1lbnQpe2lmKGc9PWgpaT10cnVlO3JldHVybiBnLm93bmVyRG9jdW1lbnQ/LTE6MX12YXIgbD1nLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxtPQpoLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtsLnNldFN0YXJ0KGcsMCk7bC5zZXRFbmQoZywwKTttLnNldFN0YXJ0KGgsMCk7bS5zZXRFbmQoaCwwKTtnPWwuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLlNUQVJUX1RPX0VORCxtKTtpZihnPT09MClpPXRydWU7cmV0dXJuIGd9OyhmdW5jdGlvbigpe3ZhciBnPXMuY3JlYXRlRWxlbWVudCgiZGl2IiksaD0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKTtnLmlubmVySFRNTD0iPGEgbmFtZT0nIitoKyInLz4iO3ZhciBsPXMuZG9jdW1lbnRFbGVtZW50O2wuaW5zZXJ0QmVmb3JlKGcsbC5maXJzdENoaWxkKTtpZihzLmdldEVsZW1lbnRCeUlkKGgpKXtuLmZpbmQuSUQ9ZnVuY3Rpb24obSxxLHApe2lmKHR5cGVvZiBxLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFwKXJldHVybihxPXEuZ2V0RWxlbWVudEJ5SWQobVsxXSkpP3EuaWQ9PT1tWzFdfHx0eXBlb2YgcS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJgpxLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09bVsxXT9bcV06dzpbXX07bi5maWx0ZXIuSUQ9ZnVuY3Rpb24obSxxKXt2YXIgcD10eXBlb2YgbS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCImJm0uZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gbS5ub2RlVHlwZT09PTEmJnAmJnAubm9kZVZhbHVlPT09cX19bC5yZW1vdmVDaGlsZChnKTtsPWc9bnVsbH0pKCk7KGZ1bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmFwcGVuZENoaWxkKHMuY3JlYXRlQ29tbWVudCgiIikpO2lmKGcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCluLmZpbmQuVEFHPWZ1bmN0aW9uKGgsbCl7bD1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKGhbMV0pO2lmKGhbMV09PT0iKiIpe2g9W107Zm9yKHZhciBtPTA7bFttXTttKyspbFttXS5ub2RlVHlwZT09PTEmJmgucHVzaChsW21dKTtsPWh9cmV0dXJuIGx9O2cuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IjsKaWYoZy5maXJzdENoaWxkJiZ0eXBlb2YgZy5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSE9PSJ1bmRlZmluZWQiJiZnLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIikhPT0iIyIpbi5hdHRySGFuZGxlLmhyZWY9ZnVuY3Rpb24oaCl7cmV0dXJuIGguZ2V0QXR0cmlidXRlKCJocmVmIiwyKX07Zz1udWxsfSkoKTtzLnF1ZXJ5U2VsZWN0b3JBbGwmJmZ1bmN0aW9uKCl7dmFyIGc9ayxoPXMuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5pbm5lckhUTUw9IjxwIGNsYXNzPSdURVNUJz48L3A+IjtpZighKGgucXVlcnlTZWxlY3RvckFsbCYmaC5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApKXtrPWZ1bmN0aW9uKG0scSxwLHYpe3E9cXx8cztpZighdiYmcS5ub2RlVHlwZT09PTkmJiF4KHEpKXRyeXtyZXR1cm4geihxLnF1ZXJ5U2VsZWN0b3JBbGwobSkscCl9Y2F0Y2godCl7fXJldHVybiBnKG0scSxwLHYpfTtmb3IodmFyIGwgaW4gZylrW2xdPWdbbF07aD1udWxsfX0oKTsKKGZ1bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKCEoIWcuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZXx8Zy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoPT09MCkpe2cubGFzdENoaWxkLmNsYXNzTmFtZT0iZSI7aWYoZy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoIT09MSl7bi5vcmRlci5zcGxpY2UoMSwwLCJDTEFTUyIpO24uZmluZC5DTEFTUz1mdW5jdGlvbihoLGwsbSl7aWYodHlwZW9mIGwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PSJ1bmRlZmluZWQiJiYhbSlyZXR1cm4gbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGhbMV0pfTtnPW51bGx9fX0pKCk7dmFyIEU9cy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlvbihnLGgpe3JldHVybiEhKGcuY29tcGFyZURvY3VtZW50UG9zaXRpb24oaCkmMTYpfToKZnVuY3Rpb24oZyxoKXtyZXR1cm4gZyE9PWgmJihnLmNvbnRhaW5zP2cuY29udGFpbnMoaCk6dHJ1ZSl9LHg9ZnVuY3Rpb24oZyl7cmV0dXJuKGc9KGc/Zy5vd25lckRvY3VtZW50fHxnOjApLmRvY3VtZW50RWxlbWVudCk/Zy5ub2RlTmFtZSE9PSJIVE1MIjpmYWxzZX0sZ2E9ZnVuY3Rpb24oZyxoKXt2YXIgbD1bXSxtPSIiLHE7Zm9yKGg9aC5ub2RlVHlwZT9baF06aDtxPW4ubWF0Y2guUFNFVURPLmV4ZWMoZyk7KXttKz1xWzBdO2c9Zy5yZXBsYWNlKG4ubWF0Y2guUFNFVURPLCIiKX1nPW4ucmVsYXRpdmVbZ10/ZysiKiI6ZztxPTA7Zm9yKHZhciBwPWgubGVuZ3RoO3E8cDtxKyspayhnLGhbcV0sbCk7cmV0dXJuIGsuZmlsdGVyKG0sbCl9O2MuZmluZD1rO2MuZXhwcj1rLnNlbGVjdG9ycztjLmV4cHJbIjoiXT1jLmV4cHIuZmlsdGVycztjLnVuaXF1ZT1rLnVuaXF1ZVNvcnQ7Yy50ZXh0PWE7Yy5pc1hNTERvYz14O2MuY29udGFpbnM9RX0pKCk7dmFyIGViPS9VbnRpbCQvLGZiPS9eKD86cGFyZW50c3xwcmV2VW50aWx8cHJldkFsbCkvLApnYj0vLC87Uj1BcnJheS5wcm90b3R5cGUuc2xpY2U7dmFyIElhPWZ1bmN0aW9uKGEsYixkKXtpZihjLmlzRnVuY3Rpb24oYikpcmV0dXJuIGMuZ3JlcChhLGZ1bmN0aW9uKGUsail7cmV0dXJuISFiLmNhbGwoZSxqLGUpPT09ZH0pO2Vsc2UgaWYoYi5ub2RlVHlwZSlyZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1iPT09ZH0pO2Vsc2UgaWYodHlwZW9mIGI9PT0ic3RyaW5nIil7dmFyIGY9Yy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZVR5cGU9PT0xfSk7aWYoVWEudGVzdChiKSlyZXR1cm4gYy5maWx0ZXIoYixmLCFkKTtlbHNlIGI9Yy5maWx0ZXIoYixmKX1yZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGMuaW5BcnJheShlLGIpPj0wPT09ZH0pfTtjLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcy5wdXNoU3RhY2soIiIsImZpbmQiLGEpLGQ9MCxmPTAsZT10aGlzLmxlbmd0aDtmPGU7ZisrKXtkPWIubGVuZ3RoOwpjLmZpbmQoYSx0aGlzW2ZdLGIpO2lmKGY+MClmb3IodmFyIGo9ZDtqPGIubGVuZ3RoO2orKylmb3IodmFyIGk9MDtpPGQ7aSsrKWlmKGJbaV09PT1iW2pdKXtiLnNwbGljZShqLS0sMSk7YnJlYWt9fXJldHVybiBifSxoYXM6ZnVuY3Rpb24oYSl7dmFyIGI9YyhhKTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGQ9MCxmPWIubGVuZ3RoO2Q8ZjtkKyspaWYoYy5jb250YWlucyh0aGlzLGJbZF0pKXJldHVybiB0cnVlfSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soSWEodGhpcyxhLGZhbHNlKSwibm90IixhKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhJYSh0aGlzLGEsdHJ1ZSksImZpbHRlciIsYSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhYSYmYy5maWx0ZXIoYSx0aGlzKS5sZW5ndGg+MH0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe2lmKGMuaXNBcnJheShhKSl7dmFyIGQ9W10sZj10aGlzWzBdLGUsaj0Ke30saTtpZihmJiZhLmxlbmd0aCl7ZT0wO2Zvcih2YXIgbz1hLmxlbmd0aDtlPG87ZSsrKXtpPWFbZV07altpXXx8KGpbaV09Yy5leHByLm1hdGNoLlBPUy50ZXN0KGkpP2MoaSxifHx0aGlzLmNvbnRleHQpOmkpfWZvcig7ZiYmZi5vd25lckRvY3VtZW50JiZmIT09Yjspe2ZvcihpIGluIGope2U9altpXTtpZihlLmpxdWVyeT9lLmluZGV4KGYpPi0xOmMoZikuaXMoZSkpe2QucHVzaCh7c2VsZWN0b3I6aSxlbGVtOmZ9KTtkZWxldGUgaltpXX19Zj1mLnBhcmVudE5vZGV9fXJldHVybiBkfXZhciBrPWMuZXhwci5tYXRjaC5QT1MudGVzdChhKT9jKGEsYnx8dGhpcy5jb250ZXh0KTpudWxsO3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihuLHIpe2Zvcig7ciYmci5vd25lckRvY3VtZW50JiZyIT09Yjspe2lmKGs/ay5pbmRleChyKT4tMTpjKHIpLmlzKGEpKXJldHVybiByO3I9ci5wYXJlbnROb2RlfXJldHVybiBudWxsfSl9LGluZGV4OmZ1bmN0aW9uKGEpe2lmKCFhfHx0eXBlb2YgYT09PQoic3RyaW5nIilyZXR1cm4gYy5pbkFycmF5KHRoaXNbMF0sYT9jKGEpOnRoaXMucGFyZW50KCkuY2hpbGRyZW4oKSk7cmV0dXJuIGMuaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyl9LGFkZDpmdW5jdGlvbihhLGIpe2E9dHlwZW9mIGE9PT0ic3RyaW5nIj9jKGEsYnx8dGhpcy5jb250ZXh0KTpjLm1ha2VBcnJheShhKTtiPWMubWVyZ2UodGhpcy5nZXQoKSxhKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2socWEoYVswXSl8fHFhKGJbMF0pP2I6Yy51bmlxdWUoYikpfSxhbmRTZWxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCl9fSk7Yy5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5wYXJlbnROb2RlKSYmYS5ub2RlVHlwZSE9PTExP2E6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBjLmRpcihhLCJwYXJlbnROb2RlIiwKZCl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGMubnRoKGEsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gYy5udGgoYSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gYy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGMuZGlyKGEsIm5leHRTaWJsaW5nIixkKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIixkKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhhLnBhcmVudE5vZGUuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYy5ub2RlTmFtZShhLCJpZnJhbWUiKT8KYS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDpjLm1ha2VBcnJheShhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtjLmZuW2FdPWZ1bmN0aW9uKGQsZil7dmFyIGU9Yy5tYXAodGhpcyxiLGQpO2ViLnRlc3QoYSl8fChmPWQpO2lmKGYmJnR5cGVvZiBmPT09InN0cmluZyIpZT1jLmZpbHRlcihmLGUpO2U9dGhpcy5sZW5ndGg+MT9jLnVuaXF1ZShlKTplO2lmKCh0aGlzLmxlbmd0aD4xfHxnYi50ZXN0KGYpKSYmZmIudGVzdChhKSllPWUucmV2ZXJzZSgpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlLGEsUi5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpKX19KTtjLmV4dGVuZCh7ZmlsdGVyOmZ1bmN0aW9uKGEsYixkKXtpZihkKWE9Ijpub3QoIithKyIpIjtyZXR1cm4gYy5maW5kLm1hdGNoZXMoYSxiKX0sZGlyOmZ1bmN0aW9uKGEsYixkKXt2YXIgZj1bXTtmb3IoYT1hW2JdO2EmJmEubm9kZVR5cGUhPT05JiYoZD09PXd8fGEubm9kZVR5cGUhPT0xfHwhYyhhKS5pcyhkKSk7KXthLm5vZGVUeXBlPT09CjEmJmYucHVzaChhKTthPWFbYl19cmV0dXJuIGZ9LG50aDpmdW5jdGlvbihhLGIsZCl7Yj1ifHwxO2Zvcih2YXIgZj0wO2E7YT1hW2RdKWlmKGEubm9kZVR5cGU9PT0xJiYrK2Y9PT1iKWJyZWFrO3JldHVybiBhfSxzaWJsaW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkPVtdO2E7YT1hLm5leHRTaWJsaW5nKWEubm9kZVR5cGU9PT0xJiZhIT09YiYmZC5wdXNoKGEpO3JldHVybiBkfX0pO3ZhciBKYT0vIGpRdWVyeVxkKz0iKD86XGQrfG51bGwpIi9nLFY9L15ccysvLEthPS8oPChbXHc6XSspW14+XSo/KVwvPi9nLGhiPS9eKD86YXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkkL2ksTGE9LzwoW1x3Ol0rKS8saWI9Lzx0Ym9keS9pLGpiPS88fCYjP1x3KzsvLHRhPS88c2NyaXB0fDxvYmplY3R8PGVtYmVkfDxvcHRpb258PHN0eWxlL2ksdWE9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksTWE9ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBoYi50ZXN0KGQpPwphOmIrIj48LyIrZCsiPiJ9LEY9e29wdGlvbjpbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdLGxlZ2VuZDpbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSxhcmVhOlsxLCI8bWFwPiIsIjwvbWFwPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07Ri5vcHRncm91cD1GLm9wdGlvbjtGLnRib2R5PUYudGZvb3Q9Ri5jb2xncm91cD1GLmNhcHRpb249Ri50aGVhZDtGLnRoPUYudGQ7aWYoIWMuc3VwcG9ydC5odG1sU2VyaWFsaXplKUYuX2RlZmF1bHQ9WzEsImRpdjxkaXY+IiwiPC9kaXY+Il07Yy5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7dmFyIGQ9CmModGhpcyk7ZC50ZXh0KGEuY2FsbCh0aGlzLGIsZC50ZXh0KCkpKX0pO2lmKHR5cGVvZiBhIT09Im9iamVjdCImJmEhPT13KXJldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHMpLmNyZWF0ZVRleHROb2RlKGEpKTtyZXR1cm4gYy50ZXh0KHRoaXMpfSx3cmFwQWxsOmZ1bmN0aW9uKGEpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGQpe2ModGhpcykud3JhcEFsbChhLmNhbGwodGhpcyxkKSl9KTtpZih0aGlzWzBdKXt2YXIgYj1jKGEsdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSh0cnVlKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pO2IubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPXRoaXM7ZC5maXJzdENoaWxkJiZkLmZpcnN0Q2hpbGQubm9kZVR5cGU9PT0xOylkPWQuZmlyc3RDaGlsZDtyZXR1cm4gZH0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sCndyYXBJbm5lcjpmdW5jdGlvbihhKXtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtjKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKSxkPWIuY29udGVudHMoKTtkLmxlbmd0aD9kLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS53cmFwQWxsKGEpfSl9LHVud3JhcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKXtjLm5vZGVOYW1lKHRoaXMsImJvZHkiKXx8Yyh0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSkuZW5kKCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKGEpe3RoaXMubm9kZVR5cGU9PT0xJiZ0aGlzLmFwcGVuZENoaWxkKGEpfSl9LApwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLHRydWUsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMuaW5zZXJ0QmVmb3JlKGEsdGhpcy5maXJzdENoaWxkKX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYix0aGlzKX0pO2Vsc2UgaWYoYXJndW1lbnRzLmxlbmd0aCl7dmFyIGE9Yyhhcmd1bWVudHNbMF0pO2EucHVzaC5hcHBseShhLHRoaXMudG9BcnJheSgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYSwiYmVmb3JlIixhcmd1bWVudHMpfX0sYWZ0ZXI6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKGIpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYiwKdGhpcy5uZXh0U2libGluZyl9KTtlbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBhPXRoaXMucHVzaFN0YWNrKHRoaXMsImFmdGVyIixhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLGMoYXJndW1lbnRzWzBdKS50b0FycmF5KCkpO3JldHVybiBhfX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkPTAsZjsoZj10aGlzW2RdKSE9bnVsbDtkKyspaWYoIWF8fGMuZmlsdGVyKGEsW2ZdKS5sZW5ndGgpe2lmKCFiJiZmLm5vZGVUeXBlPT09MSl7Yy5jbGVhbkRhdGEoZi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTtjLmNsZWFuRGF0YShbZl0pfWYucGFyZW50Tm9kZSYmZi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGYpfXJldHVybiB0aGlzfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYT0wLGI7KGI9dGhpc1thXSkhPW51bGw7YSsrKWZvcihiLm5vZGVUeXBlPT09MSYmYy5jbGVhbkRhdGEoYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpKTtiLmZpcnN0Q2hpbGQ7KWIucmVtb3ZlQ2hpbGQoYi5maXJzdENoaWxkKTsKcmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubWFwKGZ1bmN0aW9uKCl7aWYoIWMuc3VwcG9ydC5ub0Nsb25lRXZlbnQmJiFjLmlzWE1MRG9jKHRoaXMpKXt2YXIgZD10aGlzLm91dGVySFRNTCxmPXRoaXMub3duZXJEb2N1bWVudDtpZighZCl7ZD1mLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuYXBwZW5kQ2hpbGQodGhpcy5jbG9uZU5vZGUodHJ1ZSkpO2Q9ZC5pbm5lckhUTUx9cmV0dXJuIGMuY2xlYW4oW2QucmVwbGFjZShKYSwiIikucmVwbGFjZSgvPShbXj0iJz5cc10rXC8pPi9nLCc9IiQxIj4nKS5yZXBsYWNlKFYsIiIpXSxmKVswXX1lbHNlIHJldHVybiB0aGlzLmNsb25lTm9kZSh0cnVlKX0pO2lmKGE9PT10cnVlKXtyYSh0aGlzLGIpO3JhKHRoaXMuZmluZCgiKiIpLGIuZmluZCgiKiIpKX1yZXR1cm4gYn0saHRtbDpmdW5jdGlvbihhKXtpZihhPT09dylyZXR1cm4gdGhpc1swXSYmdGhpc1swXS5ub2RlVHlwZT09PTE/dGhpc1swXS5pbm5lckhUTUwucmVwbGFjZShKYSwKIiIpOm51bGw7ZWxzZSBpZih0eXBlb2YgYT09PSJzdHJpbmciJiYhdGEudGVzdChhKSYmKGMuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZXx8IVYudGVzdChhKSkmJiFGWyhMYS5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7YT1hLnJlcGxhY2UoS2EsTWEpO3RyeXtmb3IodmFyIGI9MCxkPXRoaXMubGVuZ3RoO2I8ZDtiKyspaWYodGhpc1tiXS5ub2RlVHlwZT09PTEpe2MuY2xlYW5EYXRhKHRoaXNbYl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSk7dGhpc1tiXS5pbm5lckhUTUw9YX19Y2F0Y2goZil7dGhpcy5lbXB0eSgpLmFwcGVuZChhKX19ZWxzZSBjLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBqPWModGhpcyksaT1qLmh0bWwoKTtqLmVtcHR5KCkuYXBwZW5kKGZ1bmN0aW9uKCl7cmV0dXJuIGEuY2FsbCh0aGlzLGUsaSl9KX0pOnRoaXMuZW1wdHkoKS5hcHBlbmQoYSk7cmV0dXJuIHRoaXN9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKGEpe2lmKHRoaXNbMF0mJgp0aGlzWzBdLnBhcmVudE5vZGUpe2lmKGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPWModGhpcyksZj1kLmh0bWwoKTtkLnJlcGxhY2VXaXRoKGEuY2FsbCh0aGlzLGIsZikpfSk7aWYodHlwZW9mIGEhPT0ic3RyaW5nIilhPWMoYSkuZGV0YWNoKCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPXRoaXMubmV4dFNpYmxpbmcsZD10aGlzLnBhcmVudE5vZGU7Yyh0aGlzKS5yZW1vdmUoKTtiP2MoYikuYmVmb3JlKGEpOmMoZCkuYXBwZW5kKGEpfSl9ZWxzZSByZXR1cm4gdGhpcy5wdXNoU3RhY2soYyhjLmlzRnVuY3Rpb24oYSk/YSgpOmEpLCJyZXBsYWNlV2l0aCIsYSl9LGRldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yZW1vdmUoYSx0cnVlKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiLGQpe2Z1bmN0aW9uIGYodSl7cmV0dXJuIGMubm9kZU5hbWUodSwidGFibGUiKT91LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHwKdS5hcHBlbmRDaGlsZCh1Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6dX12YXIgZSxqLGk9YVswXSxvPVtdLGs7aWYoIWMuc3VwcG9ydC5jaGVja0Nsb25lJiZhcmd1bWVudHMubGVuZ3RoPT09MyYmdHlwZW9mIGk9PT0ic3RyaW5nIiYmdWEudGVzdChpKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS5kb21NYW5pcChhLGIsZCx0cnVlKX0pO2lmKGMuaXNGdW5jdGlvbihpKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHUpe3ZhciB6PWModGhpcyk7YVswXT1pLmNhbGwodGhpcyx1LGI/ei5odG1sKCk6dyk7ei5kb21NYW5pcChhLGIsZCl9KTtpZih0aGlzWzBdKXtlPWkmJmkucGFyZW50Tm9kZTtlPWMuc3VwcG9ydC5wYXJlbnROb2RlJiZlJiZlLm5vZGVUeXBlPT09MTEmJmUuY2hpbGROb2Rlcy5sZW5ndGg9PT10aGlzLmxlbmd0aD97ZnJhZ21lbnQ6ZX06c2EoYSx0aGlzLG8pO2s9ZS5mcmFnbWVudDtpZihqPWsuY2hpbGROb2Rlcy5sZW5ndGg9PT0KMT8oaz1rLmZpcnN0Q2hpbGQpOmsuZmlyc3RDaGlsZCl7Yj1iJiZjLm5vZGVOYW1lKGosInRyIik7Zm9yKHZhciBuPTAscj10aGlzLmxlbmd0aDtuPHI7bisrKWQuY2FsbChiP2YodGhpc1tuXSxqKTp0aGlzW25dLG4+MHx8ZS5jYWNoZWFibGV8fHRoaXMubGVuZ3RoPjE/ay5jbG9uZU5vZGUodHJ1ZSk6ayl9by5sZW5ndGgmJmMuZWFjaChvLFFhKX1yZXR1cm4gdGhpc319KTtjLmZyYWdtZW50cz17fTtjLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCl7dmFyIGY9W107ZD1jKGQpO3ZhciBlPXRoaXMubGVuZ3RoPT09MSYmdGhpc1swXS5wYXJlbnROb2RlO2lmKGUmJmUubm9kZVR5cGU9PT0xMSYmZS5jaGlsZE5vZGVzLmxlbmd0aD09PTEmJmQubGVuZ3RoPT09MSl7ZFtiXSh0aGlzWzBdKTsKcmV0dXJuIHRoaXN9ZWxzZXtlPTA7Zm9yKHZhciBqPWQubGVuZ3RoO2U8ajtlKyspe3ZhciBpPShlPjA/dGhpcy5jbG9uZSh0cnVlKTp0aGlzKS5nZXQoKTtjLmZuW2JdLmFwcGx5KGMoZFtlXSksaSk7Zj1mLmNvbmNhdChpKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soZixhLGQuc2VsZWN0b3IpfX19KTtjLmV4dGVuZCh7Y2xlYW46ZnVuY3Rpb24oYSxiLGQsZil7Yj1ifHxzO2lmKHR5cGVvZiBiLmNyZWF0ZUVsZW1lbnQ9PT0idW5kZWZpbmVkIiliPWIub3duZXJEb2N1bWVudHx8YlswXSYmYlswXS5vd25lckRvY3VtZW50fHxzO2Zvcih2YXIgZT1bXSxqPTAsaTsoaT1hW2pdKSE9bnVsbDtqKyspe2lmKHR5cGVvZiBpPT09Im51bWJlciIpaSs9IiI7aWYoaSl7aWYodHlwZW9mIGk9PT0ic3RyaW5nIiYmIWpiLnRlc3QoaSkpaT1iLmNyZWF0ZVRleHROb2RlKGkpO2Vsc2UgaWYodHlwZW9mIGk9PT0ic3RyaW5nIil7aT1pLnJlcGxhY2UoS2EsTWEpO3ZhciBvPShMYS5leGVjKGkpfHxbIiIsCiIiXSlbMV0udG9Mb3dlckNhc2UoKSxrPUZbb118fEYuX2RlZmF1bHQsbj1rWzBdLHI9Yi5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3Ioci5pbm5lckhUTUw9a1sxXStpK2tbMl07bi0tOylyPXIubGFzdENoaWxkO2lmKCFjLnN1cHBvcnQudGJvZHkpe249aWIudGVzdChpKTtvPW89PT0idGFibGUiJiYhbj9yLmZpcnN0Q2hpbGQmJnIuZmlyc3RDaGlsZC5jaGlsZE5vZGVzOmtbMV09PT0iPHRhYmxlPiImJiFuP3IuY2hpbGROb2RlczpbXTtmb3Ioaz1vLmxlbmd0aC0xO2s+PTA7LS1rKWMubm9kZU5hbWUob1trXSwidGJvZHkiKSYmIW9ba10uY2hpbGROb2Rlcy5sZW5ndGgmJm9ba10ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvW2tdKX0hYy5zdXBwb3J0LmxlYWRpbmdXaGl0ZXNwYWNlJiZWLnRlc3QoaSkmJnIuaW5zZXJ0QmVmb3JlKGIuY3JlYXRlVGV4dE5vZGUoVi5leGVjKGkpWzBdKSxyLmZpcnN0Q2hpbGQpO2k9ci5jaGlsZE5vZGVzfWlmKGkubm9kZVR5cGUpZS5wdXNoKGkpO2Vsc2UgZT0KYy5tZXJnZShlLGkpfX1pZihkKWZvcihqPTA7ZVtqXTtqKyspaWYoZiYmYy5ub2RlTmFtZShlW2pdLCJzY3JpcHQiKSYmKCFlW2pdLnR5cGV8fGVbal0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKWYucHVzaChlW2pdLnBhcmVudE5vZGU/ZVtqXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVbal0pOmVbal0pO2Vsc2V7ZVtqXS5ub2RlVHlwZT09PTEmJmUuc3BsaWNlLmFwcGx5KGUsW2orMSwwXS5jb25jYXQoYy5tYWtlQXJyYXkoZVtqXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSk7ZC5hcHBlbmRDaGlsZChlW2pdKX1yZXR1cm4gZX0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixkLGY9Yy5jYWNoZSxlPWMuZXZlbnQuc3BlY2lhbCxqPWMuc3VwcG9ydC5kZWxldGVFeHBhbmRvLGk9MCxvOyhvPWFbaV0pIT1udWxsO2krKylpZihkPW9bYy5leHBhbmRvXSl7Yj1mW2RdO2lmKGIuZXZlbnRzKWZvcih2YXIgayBpbiBiLmV2ZW50cyllW2tdPwpjLmV2ZW50LnJlbW92ZShvLGspOkNhKG8sayxiLmhhbmRsZSk7aWYoailkZWxldGUgb1tjLmV4cGFuZG9dO2Vsc2Ugby5yZW1vdmVBdHRyaWJ1dGUmJm8ucmVtb3ZlQXR0cmlidXRlKGMuZXhwYW5kbyk7ZGVsZXRlIGZbZF19fX0pO3ZhciBrYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWlnaHQvaSxOYT0vYWxwaGFcKFteKV0qXCkvLE9hPS9vcGFjaXR5PShbXildKikvLGhhPS9mbG9hdC9pLGlhPS8tKFthLXpdKS9pZyxsYj0vKFtBLVpdKS9nLG1iPS9eLT9cZCsoPzpweCk/JC9pLG5iPS9eLT9cZC8sb2I9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LHBiPVsiTGVmdCIsIlJpZ2h0Il0scWI9WyJUb3AiLCJCb3R0b20iXSxyYj1zLmRlZmF1bHRWaWV3JiZzLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUsUGE9Yy5zdXBwb3J0LmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQiLGphPQpmdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O2MuZm4uY3NzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFgodGhpcyxhLGIsdHJ1ZSxmdW5jdGlvbihkLGYsZSl7aWYoZT09PXcpcmV0dXJuIGMuY3VyQ1NTKGQsZik7aWYodHlwZW9mIGU9PT0ibnVtYmVyIiYmIWtiLnRlc3QoZikpZSs9InB4IjtjLnN0eWxlKGQsZixlKX0pfTtjLmV4dGVuZCh7c3R5bGU6ZnVuY3Rpb24oYSxiLGQpe2lmKCFhfHxhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpcmV0dXJuIHc7aWYoKGI9PT0id2lkdGgifHxiPT09ImhlaWdodCIpJiZwYXJzZUZsb2F0KGQpPDApZD13O3ZhciBmPWEuc3R5bGV8fGEsZT1kIT09dztpZighYy5zdXBwb3J0Lm9wYWNpdHkmJmI9PT0ib3BhY2l0eSIpe2lmKGUpe2Yuem9vbT0xO2I9cGFyc2VJbnQoZCwxMCkrIiI9PT0iTmFOIj8iIjoiYWxwaGEob3BhY2l0eT0iK2QqMTAwKyIpIjthPWYuZmlsdGVyfHxjLmN1ckNTUyhhLCJmaWx0ZXIiKXx8IiI7Zi5maWx0ZXI9Ck5hLnRlc3QoYSk/YS5yZXBsYWNlKE5hLGIpOmJ9cmV0dXJuIGYuZmlsdGVyJiZmLmZpbHRlci5pbmRleE9mKCJvcGFjaXR5PSIpPj0wP3BhcnNlRmxvYXQoT2EuZXhlYyhmLmZpbHRlcilbMV0pLzEwMCsiIjoiIn1pZihoYS50ZXN0KGIpKWI9UGE7Yj1iLnJlcGxhY2UoaWEsamEpO2lmKGUpZltiXT1kO3JldHVybiBmW2JdfSxjc3M6ZnVuY3Rpb24oYSxiLGQsZil7aWYoYj09PSJ3aWR0aCJ8fGI9PT0iaGVpZ2h0Iil7dmFyIGUsaj1iPT09IndpZHRoIj9wYjpxYjtmdW5jdGlvbiBpKCl7ZT1iPT09IndpZHRoIj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0O2YhPT0iYm9yZGVyIiYmYy5lYWNoKGosZnVuY3Rpb24oKXtmfHwoZS09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJwYWRkaW5nIit0aGlzLHRydWUpKXx8MCk7aWYoZj09PSJtYXJnaW4iKWUrPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luIit0aGlzLHRydWUpKXx8MDtlbHNlIGUtPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwKImJvcmRlciIrdGhpcysiV2lkdGgiLHRydWUpKXx8MH0pfWEub2Zmc2V0V2lkdGghPT0wP2koKTpjLnN3YXAoYSxvYixpKTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLnJvdW5kKGUpKX1yZXR1cm4gYy5jdXJDU1MoYSxiLGQpfSxjdXJDU1M6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmLGU9YS5zdHlsZTtpZighYy5zdXBwb3J0Lm9wYWNpdHkmJmI9PT0ib3BhY2l0eSImJmEuY3VycmVudFN0eWxlKXtmPU9hLnRlc3QoYS5jdXJyZW50U3R5bGUuZmlsdGVyfHwiIik/cGFyc2VGbG9hdChSZWdFeHAuJDEpLzEwMCsiIjoiIjtyZXR1cm4gZj09PSIiPyIxIjpmfWlmKGhhLnRlc3QoYikpYj1QYTtpZighZCYmZSYmZVtiXSlmPWVbYl07ZWxzZSBpZihyYil7aWYoaGEudGVzdChiKSliPSJmbG9hdCI7Yj1iLnJlcGxhY2UobGIsIi0kMSIpLnRvTG93ZXJDYXNlKCk7ZT1hLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7aWYoIWUpcmV0dXJuIG51bGw7aWYoYT1lLmdldENvbXB1dGVkU3R5bGUoYSxudWxsKSlmPQphLmdldFByb3BlcnR5VmFsdWUoYik7aWYoYj09PSJvcGFjaXR5IiYmZj09PSIiKWY9IjEifWVsc2UgaWYoYS5jdXJyZW50U3R5bGUpe2Q9Yi5yZXBsYWNlKGlhLGphKTtmPWEuY3VycmVudFN0eWxlW2JdfHxhLmN1cnJlbnRTdHlsZVtkXTtpZighbWIudGVzdChmKSYmbmIudGVzdChmKSl7Yj1lLmxlZnQ7dmFyIGo9YS5ydW50aW1lU3R5bGUubGVmdDthLnJ1bnRpbWVTdHlsZS5sZWZ0PWEuY3VycmVudFN0eWxlLmxlZnQ7ZS5sZWZ0PWQ9PT0iZm9udFNpemUiPyIxZW0iOmZ8fDA7Zj1lLnBpeGVsTGVmdCsicHgiO2UubGVmdD1iO2EucnVudGltZVN0eWxlLmxlZnQ9an19cmV0dXJuIGZ9LHN3YXA6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPXt9O2Zvcih2YXIgZSBpbiBiKXtmW2VdPWEuc3R5bGVbZV07YS5zdHlsZVtlXT1iW2VdfWQuY2FsbChhKTtmb3IoZSBpbiBiKWEuc3R5bGVbZV09ZltlXX19KTtpZihjLmV4cHImJmMuZXhwci5maWx0ZXJzKXtjLmV4cHIuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oYSl7dmFyIGI9CmEub2Zmc2V0V2lkdGgsZD1hLm9mZnNldEhlaWdodCxmPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJ0ciI7cmV0dXJuIGI9PT0wJiZkPT09MCYmIWY/dHJ1ZTpiPjAmJmQ+MCYmIWY/ZmFsc2U6Yy5jdXJDU1MoYSwiZGlzcGxheSIpPT09Im5vbmUifTtjLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFjLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9fXZhciBzYj1KKCksdGI9LzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9naSx1Yj0vc2VsZWN0fHRleHRhcmVhL2ksdmI9L2NvbG9yfGRhdGV8ZGF0ZXRpbWV8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxzZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2Vlay9pLE49Lz1cPygmfCQpLyxrYT0vXD8vLHdiPS8oXD98JilfPS4qPygmfCQpLyx4Yj0vXihcdys6KT9cL1wvKFteXC8/I10rKS8seWI9LyUyMC9nLHpiPWMuZm4ubG9hZDtjLmZuLmV4dGVuZCh7bG9hZDpmdW5jdGlvbihhLGIsZCl7aWYodHlwZW9mIGEhPT0KInN0cmluZyIpcmV0dXJuIHpiLmNhbGwodGhpcyxhKTtlbHNlIGlmKCF0aGlzLmxlbmd0aClyZXR1cm4gdGhpczt2YXIgZj1hLmluZGV4T2YoIiAiKTtpZihmPj0wKXt2YXIgZT1hLnNsaWNlKGYsYS5sZW5ndGgpO2E9YS5zbGljZSgwLGYpfWY9IkdFVCI7aWYoYilpZihjLmlzRnVuY3Rpb24oYikpe2Q9YjtiPW51bGx9ZWxzZSBpZih0eXBlb2YgYj09PSJvYmplY3QiKXtiPWMucGFyYW0oYixjLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCk7Zj0iUE9TVCJ9dmFyIGo9dGhpcztjLmFqYXgoe3VybDphLHR5cGU6ZixkYXRhVHlwZToiaHRtbCIsZGF0YTpiLGNvbXBsZXRlOmZ1bmN0aW9uKGksbyl7aWYobz09PSJzdWNjZXNzInx8bz09PSJub3Rtb2RpZmllZCIpai5odG1sKGU/YygiPGRpdiAvPiIpLmFwcGVuZChpLnJlc3BvbnNlVGV4dC5yZXBsYWNlKHRiLCIiKSkuZmluZChlKTppLnJlc3BvbnNlVGV4dCk7ZCYmai5lYWNoKGQsW2kucmVzcG9uc2VUZXh0LG8saV0pfX0pO3JldHVybiB0aGlzfSwKc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9jLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fHViLnRlc3QodGhpcy5ub2RlTmFtZSl8fHZiLnRlc3QodGhpcy50eXBlKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXthPWModGhpcykudmFsKCk7cmV0dXJuIGE9PW51bGw/bnVsbDpjLmlzQXJyYXkoYSk/Yy5tYXAoYSxmdW5jdGlvbihkKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6ZH19KTp7bmFtZTpiLm5hbWUsdmFsdWU6YX19KS5nZXQoKX19KTtjLmVhY2goImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kIi5zcGxpdCgiICIpLApmdW5jdGlvbihhLGIpe2MuZm5bYl09ZnVuY3Rpb24oZCl7cmV0dXJuIHRoaXMuYmluZChiLGQpfX0pO2MuZXh0ZW5kKHtnZXQ6ZnVuY3Rpb24oYSxiLGQsZil7aWYoYy5pc0Z1bmN0aW9uKGIpKXtmPWZ8fGQ7ZD1iO2I9bnVsbH1yZXR1cm4gYy5hamF4KHt0eXBlOiJHRVQiLHVybDphLGRhdGE6YixzdWNjZXNzOmQsZGF0YVR5cGU6Zn0pfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYy5nZXQoYSxudWxsLGIsInNjcmlwdCIpfSxnZXRKU09OOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5nZXQoYSxiLGQsImpzb24iKX0scG9zdDpmdW5jdGlvbihhLGIsZCxmKXtpZihjLmlzRnVuY3Rpb24oYikpe2Y9Znx8ZDtkPWI7Yj17fX1yZXR1cm4gYy5hamF4KHt0eXBlOiJQT1NUIix1cmw6YSxkYXRhOmIsc3VjY2VzczpkLGRhdGFUeXBlOmZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKGEpe2MuZXh0ZW5kKGMuYWpheFNldHRpbmdzLGEpfSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLApnbG9iYWw6dHJ1ZSx0eXBlOiJHRVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLHByb2Nlc3NEYXRhOnRydWUsYXN5bmM6dHJ1ZSx4aHI6QS5YTUxIdHRwUmVxdWVzdCYmKEEubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToifHwhQS5BY3RpdmVYT2JqZWN0KT9mdW5jdGlvbigpe3JldHVybiBuZXcgQS5YTUxIdHRwUmVxdWVzdH06ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBBLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYSl7fX0sYWNjZXB0czp7eG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIixodG1sOiJ0ZXh0L2h0bWwiLHNjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQiLHRleHQ6InRleHQvcGxhaW4iLF9kZWZhdWx0OiIqLyoifX0sbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheDpmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7ZS5zdWNjZXNzJiYKZS5zdWNjZXNzLmNhbGwoayxvLGkseCk7ZS5nbG9iYWwmJmYoImFqYXhTdWNjZXNzIixbeCxlXSl9ZnVuY3Rpb24gZCgpe2UuY29tcGxldGUmJmUuY29tcGxldGUuY2FsbChrLHgsaSk7ZS5nbG9iYWwmJmYoImFqYXhDb21wbGV0ZSIsW3gsZV0pO2UuZ2xvYmFsJiYhLS1jLmFjdGl2ZSYmYy5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfWZ1bmN0aW9uIGYocSxwKXsoZS5jb250ZXh0P2MoZS5jb250ZXh0KTpjLmV2ZW50KS50cmlnZ2VyKHEscCl9dmFyIGU9Yy5leHRlbmQodHJ1ZSx7fSxjLmFqYXhTZXR0aW5ncyxhKSxqLGksbyxrPWEmJmEuY29udGV4dHx8ZSxuPWUudHlwZS50b1VwcGVyQ2FzZSgpO2lmKGUuZGF0YSYmZS5wcm9jZXNzRGF0YSYmdHlwZW9mIGUuZGF0YSE9PSJzdHJpbmciKWUuZGF0YT1jLnBhcmFtKGUuZGF0YSxlLnRyYWRpdGlvbmFsKTtpZihlLmRhdGFUeXBlPT09Impzb25wIil7aWYobj09PSJHRVQiKU4udGVzdChlLnVybCl8fChlLnVybCs9KGthLnRlc3QoZS51cmwpPwoiJiI6Ij8iKSsoZS5qc29ucHx8ImNhbGxiYWNrIikrIj0/Iik7ZWxzZSBpZighZS5kYXRhfHwhTi50ZXN0KGUuZGF0YSkpZS5kYXRhPShlLmRhdGE/ZS5kYXRhKyImIjoiIikrKGUuanNvbnB8fCJjYWxsYmFjayIpKyI9PyI7ZS5kYXRhVHlwZT0ianNvbiJ9aWYoZS5kYXRhVHlwZT09PSJqc29uIiYmKGUuZGF0YSYmTi50ZXN0KGUuZGF0YSl8fE4udGVzdChlLnVybCkpKXtqPWUuanNvbnBDYWxsYmFja3x8Impzb25wIitzYisrO2lmKGUuZGF0YSllLmRhdGE9KGUuZGF0YSsiIikucmVwbGFjZShOLCI9IitqKyIkMSIpO2UudXJsPWUudXJsLnJlcGxhY2UoTiwiPSIraisiJDEiKTtlLmRhdGFUeXBlPSJzY3JpcHQiO0Fbal09QVtqXXx8ZnVuY3Rpb24ocSl7bz1xO2IoKTtkKCk7QVtqXT13O3RyeXtkZWxldGUgQVtqXX1jYXRjaChwKXt9eiYmei5yZW1vdmVDaGlsZChDKX19aWYoZS5kYXRhVHlwZT09PSJzY3JpcHQiJiZlLmNhY2hlPT09bnVsbCllLmNhY2hlPWZhbHNlO2lmKGUuY2FjaGU9PT0KZmFsc2UmJm49PT0iR0VUIil7dmFyIHI9SigpLHU9ZS51cmwucmVwbGFjZSh3YiwiJDFfPSIrcisiJDIiKTtlLnVybD11Kyh1PT09ZS51cmw/KGthLnRlc3QoZS51cmwpPyImIjoiPyIpKyJfPSIrcjoiIil9aWYoZS5kYXRhJiZuPT09IkdFVCIpZS51cmwrPShrYS50ZXN0KGUudXJsKT8iJiI6Ij8iKStlLmRhdGE7ZS5nbG9iYWwmJiFjLmFjdGl2ZSsrJiZjLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpO3I9KHI9eGIuZXhlYyhlLnVybCkpJiYoclsxXSYmclsxXSE9PWxvY2F0aW9uLnByb3RvY29sfHxyWzJdIT09bG9jYXRpb24uaG9zdCk7aWYoZS5kYXRhVHlwZT09PSJzY3JpcHQiJiZuPT09IkdFVCImJnIpe3ZhciB6PXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8cy5kb2N1bWVudEVsZW1lbnQsQz1zLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0Muc3JjPWUudXJsO2lmKGUuc2NyaXB0Q2hhcnNldClDLmNoYXJzZXQ9ZS5zY3JpcHRDaGFyc2V0O2lmKCFqKXt2YXIgQj0KZmFsc2U7Qy5vbmxvYWQ9Qy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZighQiYmKCF0aGlzLnJlYWR5U3RhdGV8fHRoaXMucmVhZHlTdGF0ZT09PSJsb2FkZWQifHx0aGlzLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKSl7Qj10cnVlO2IoKTtkKCk7Qy5vbmxvYWQ9Qy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDt6JiZDLnBhcmVudE5vZGUmJnoucmVtb3ZlQ2hpbGQoQyl9fX16Lmluc2VydEJlZm9yZShDLHouZmlyc3RDaGlsZCk7cmV0dXJuIHd9dmFyIEU9ZmFsc2UseD1lLnhocigpO2lmKHgpe2UudXNlcm5hbWU/eC5vcGVuKG4sZS51cmwsZS5hc3luYyxlLnVzZXJuYW1lLGUucGFzc3dvcmQpOngub3BlbihuLGUudXJsLGUuYXN5bmMpO3RyeXtpZihlLmRhdGF8fGEmJmEuY29udGVudFR5cGUpeC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGUuY29udGVudFR5cGUpO2lmKGUuaWZNb2RpZmllZCl7Yy5sYXN0TW9kaWZpZWRbZS51cmxdJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIiwKYy5sYXN0TW9kaWZpZWRbZS51cmxdKTtjLmV0YWdbZS51cmxdJiZ4LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLGMuZXRhZ1tlLnVybF0pfXJ8fHguc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0Iik7eC5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLGUuZGF0YVR5cGUmJmUuYWNjZXB0c1tlLmRhdGFUeXBlXT9lLmFjY2VwdHNbZS5kYXRhVHlwZV0rIiwgKi8qIjplLmFjY2VwdHMuX2RlZmF1bHQpfWNhdGNoKGdhKXt9aWYoZS5iZWZvcmVTZW5kJiZlLmJlZm9yZVNlbmQuY2FsbChrLHgsZSk9PT1mYWxzZSl7ZS5nbG9iYWwmJiEtLWMuYWN0aXZlJiZjLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIik7eC5hYm9ydCgpO3JldHVybiBmYWxzZX1lLmdsb2JhbCYmZigiYWpheFNlbmQiLFt4LGVdKTt2YXIgZz14Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihxKXtpZigheHx8eC5yZWFkeVN0YXRlPT09MHx8cT09PSJhYm9ydCIpe0V8fApkKCk7RT10cnVlO2lmKHgpeC5vbnJlYWR5c3RhdGVjaGFuZ2U9Yy5ub29wfWVsc2UgaWYoIUUmJngmJih4LnJlYWR5U3RhdGU9PT00fHxxPT09InRpbWVvdXQiKSl7RT10cnVlO3gub25yZWFkeXN0YXRlY2hhbmdlPWMubm9vcDtpPXE9PT0idGltZW91dCI/InRpbWVvdXQiOiFjLmh0dHBTdWNjZXNzKHgpPyJlcnJvciI6ZS5pZk1vZGlmaWVkJiZjLmh0dHBOb3RNb2RpZmllZCh4LGUudXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjt2YXIgcDtpZihpPT09InN1Y2Nlc3MiKXRyeXtvPWMuaHR0cERhdGEoeCxlLmRhdGFUeXBlLGUpfWNhdGNoKHYpe2k9InBhcnNlcmVycm9yIjtwPXZ9aWYoaT09PSJzdWNjZXNzInx8aT09PSJub3Rtb2RpZmllZCIpanx8YigpO2Vsc2UgYy5oYW5kbGVFcnJvcihlLHgsaSxwKTtkKCk7cT09PSJ0aW1lb3V0IiYmeC5hYm9ydCgpO2lmKGUuYXN5bmMpeD1udWxsfX07dHJ5e3ZhciBoPXguYWJvcnQ7eC5hYm9ydD1mdW5jdGlvbigpe3gmJmguY2FsbCh4KTsKZygiYWJvcnQiKX19Y2F0Y2gobCl7fWUuYXN5bmMmJmUudGltZW91dD4wJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eCYmIUUmJmcoInRpbWVvdXQiKX0sZS50aW1lb3V0KTt0cnl7eC5zZW5kKG49PT0iUE9TVCJ8fG49PT0iUFVUInx8bj09PSJERUxFVEUiP2UuZGF0YTpudWxsKX1jYXRjaChtKXtjLmhhbmRsZUVycm9yKGUseCxudWxsLG0pO2QoKX1lLmFzeW5jfHxnKCk7cmV0dXJuIHh9fSxoYW5kbGVFcnJvcjpmdW5jdGlvbihhLGIsZCxmKXtpZihhLmVycm9yKWEuZXJyb3IuY2FsbChhLmNvbnRleHR8fGEsYixkLGYpO2lmKGEuZ2xvYmFsKShhLmNvbnRleHQ/YyhhLmNvbnRleHQpOmMuZXZlbnQpLnRyaWdnZXIoImFqYXhFcnJvciIsW2IsYSxmXSl9LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4hYS5zdGF0dXMmJmxvY2F0aW9uLnByb3RvY29sPT09ImZpbGU6Inx8YS5zdGF0dXM+PTIwMCYmYS5zdGF0dXM8MzAwfHxhLnN0YXR1cz09PTMwNHx8YS5zdGF0dXM9PT0KMTIyM3x8YS5zdGF0dXM9PT0wfWNhdGNoKGIpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihhLGIpe3ZhciBkPWEuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSxmPWEuZ2V0UmVzcG9uc2VIZWFkZXIoIkV0YWciKTtpZihkKWMubGFzdE1vZGlmaWVkW2JdPWQ7aWYoZiljLmV0YWdbYl09ZjtyZXR1cm4gYS5zdGF0dXM9PT0zMDR8fGEuc3RhdHVzPT09MH0saHR0cERhdGE6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWEuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpfHwiIixlPWI9PT0ieG1sInx8IWImJmYuaW5kZXhPZigieG1sIik+PTA7YT1lP2EucmVzcG9uc2VYTUw6YS5yZXNwb25zZVRleHQ7ZSYmYS5kb2N1bWVudEVsZW1lbnQubm9kZU5hbWU9PT0icGFyc2VyZXJyb3IiJiZjLmVycm9yKCJwYXJzZXJlcnJvciIpO2lmKGQmJmQuZGF0YUZpbHRlcilhPWQuZGF0YUZpbHRlcihhLGIpO2lmKHR5cGVvZiBhPT09InN0cmluZyIpaWYoYj09PQoianNvbiJ8fCFiJiZmLmluZGV4T2YoImpzb24iKT49MClhPWMucGFyc2VKU09OKGEpO2Vsc2UgaWYoYj09PSJzY3JpcHQifHwhYiYmZi5pbmRleE9mKCJqYXZhc2NyaXB0Iik+PTApYy5nbG9iYWxFdmFsKGEpO3JldHVybiBhfSxwYXJhbTpmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoaSxvKXtpZihjLmlzQXJyYXkobykpYy5lYWNoKG8sZnVuY3Rpb24oayxuKXtifHwvXFtcXSQvLnRlc3QoaSk/ZihpLG4pOmQoaSsiWyIrKHR5cGVvZiBuPT09Im9iamVjdCJ8fGMuaXNBcnJheShuKT9rOiIiKSsiXSIsbil9KTtlbHNlIWImJm8hPW51bGwmJnR5cGVvZiBvPT09Im9iamVjdCI/Yy5lYWNoKG8sZnVuY3Rpb24oayxuKXtkKGkrIlsiK2srIl0iLG4pfSk6ZihpLG8pfWZ1bmN0aW9uIGYoaSxvKXtvPWMuaXNGdW5jdGlvbihvKT9vKCk6bztlW2UubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoaSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChvKX12YXIgZT1bXTtpZihiPT09dyliPWMuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsOwppZihjLmlzQXJyYXkoYSl8fGEuanF1ZXJ5KWMuZWFjaChhLGZ1bmN0aW9uKCl7Zih0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcih2YXIgaiBpbiBhKWQoaixhW2pdKTtyZXR1cm4gZS5qb2luKCImIikucmVwbGFjZSh5YiwiKyIpfX0pO3ZhciBsYT17fSxBYj0vdG9nZ2xlfHNob3d8aGlkZS8sQmI9L14oWystXT0pPyhbXGQrLS5dKykoLiopJC8sVyx2YT1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtjLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihhLGIpe2lmKGF8fGE9PT0wKXJldHVybiB0aGlzLmFuaW1hdGUoSygic2hvdyIsMyksYSxiKTtlbHNle2E9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXt2YXIgZD1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpOwp0aGlzW2FdLnN0eWxlLmRpc3BsYXk9ZHx8IiI7aWYoYy5jc3ModGhpc1thXSwiZGlzcGxheSIpPT09Im5vbmUiKXtkPXRoaXNbYV0ubm9kZU5hbWU7dmFyIGY7aWYobGFbZF0pZj1sYVtkXTtlbHNle3ZhciBlPWMoIjwiK2QrIiAvPiIpLmFwcGVuZFRvKCJib2R5Iik7Zj1lLmNzcygiZGlzcGxheSIpO2lmKGY9PT0ibm9uZSIpZj0iYmxvY2siO2UucmVtb3ZlKCk7bGFbZF09Zn1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIsZil9fWE9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXRoaXNbYV0uc3R5bGUuZGlzcGxheT1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpfHwiIjtyZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oYSxiKXtpZihhfHxhPT09MClyZXR1cm4gdGhpcy5hbmltYXRlKEsoImhpZGUiLDMpLGEsYik7ZWxzZXthPTA7Zm9yKGI9dGhpcy5sZW5ndGg7YTxiO2ErKyl7dmFyIGQ9Yy5kYXRhKHRoaXNbYV0sIm9sZGRpc3BsYXkiKTshZCYmZCE9PSJub25lIiYmYy5kYXRhKHRoaXNbYV0sCiJvbGRkaXNwbGF5IixjLmNzcyh0aGlzW2FdLCJkaXNwbGF5IikpfWE9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXRoaXNbYV0uc3R5bGUuZGlzcGxheT0ibm9uZSI7cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOmMuZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhPT09ImJvb2xlYW4iO2lmKGMuaXNGdW5jdGlvbihhKSYmYy5pc0Z1bmN0aW9uKGIpKXRoaXMuX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZWxzZSBhPT1udWxsfHxkP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPWQ/YTpjKHRoaXMpLmlzKCI6aGlkZGVuIik7Yyh0aGlzKVtmPyJzaG93IjoiaGlkZSJdKCl9KTp0aGlzLmFuaW1hdGUoSygidG9nZ2xlIiwzKSxhLGIpO3JldHVybiB0aGlzfSxmYWRlVG86ZnVuY3Rpb24oYSxiLGQpe3JldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxkKX0sCmFuaW1hdGU6ZnVuY3Rpb24oYSxiLGQsZil7dmFyIGU9Yy5zcGVlZChiLGQsZik7aWYoYy5pc0VtcHR5T2JqZWN0KGEpKXJldHVybiB0aGlzLmVhY2goZS5jb21wbGV0ZSk7cmV0dXJuIHRoaXNbZS5xdWV1ZT09PWZhbHNlPyJlYWNoIjoicXVldWUiXShmdW5jdGlvbigpe3ZhciBqPWMuZXh0ZW5kKHt9LGUpLGksbz10aGlzLm5vZGVUeXBlPT09MSYmYyh0aGlzKS5pcygiOmhpZGRlbiIpLGs9dGhpcztmb3IoaSBpbiBhKXt2YXIgbj1pLnJlcGxhY2UoaWEsamEpO2lmKGkhPT1uKXthW25dPWFbaV07ZGVsZXRlIGFbaV07aT1ufWlmKGFbaV09PT0iaGlkZSImJm98fGFbaV09PT0ic2hvdyImJiFvKXJldHVybiBqLmNvbXBsZXRlLmNhbGwodGhpcyk7aWYoKGk9PT0iaGVpZ2h0Inx8aT09PSJ3aWR0aCIpJiZ0aGlzLnN0eWxlKXtqLmRpc3BsYXk9Yy5jc3ModGhpcywiZGlzcGxheSIpO2oub3ZlcmZsb3c9dGhpcy5zdHlsZS5vdmVyZmxvd31pZihjLmlzQXJyYXkoYVtpXSkpeyhqLnNwZWNpYWxFYXNpbmc9Cmouc3BlY2lhbEVhc2luZ3x8e30pW2ldPWFbaV1bMV07YVtpXT1hW2ldWzBdfX1pZihqLm92ZXJmbG93IT1udWxsKXRoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7ai5jdXJBbmltPWMuZXh0ZW5kKHt9LGEpO2MuZWFjaChhLGZ1bmN0aW9uKHIsdSl7dmFyIHo9bmV3IGMuZngoayxqLHIpO2lmKEFiLnRlc3QodSkpelt1PT09InRvZ2dsZSI/bz8ic2hvdyI6ImhpZGUiOnVdKGEpO2Vsc2V7dmFyIEM9QmIuZXhlYyh1KSxCPXouY3VyKHRydWUpfHwwO2lmKEMpe3U9cGFyc2VGbG9hdChDWzJdKTt2YXIgRT1DWzNdfHwicHgiO2lmKEUhPT0icHgiKXtrLnN0eWxlW3JdPSh1fHwxKStFO0I9KHV8fDEpL3ouY3VyKHRydWUpKkI7ay5zdHlsZVtyXT1CK0V9aWYoQ1sxXSl1PShDWzFdPT09Ii09Ij8tMToxKSp1K0I7ei5jdXN0b20oQix1LEUpfWVsc2Ugei5jdXN0b20oQix1LCIiKX19KTtyZXR1cm4gdHJ1ZX0pfSxzdG9wOmZ1bmN0aW9uKGEsYil7dmFyIGQ9Yy50aW1lcnM7YSYmdGhpcy5xdWV1ZShbXSk7CnRoaXMuZWFjaChmdW5jdGlvbigpe2Zvcih2YXIgZj1kLmxlbmd0aC0xO2Y+PTA7Zi0tKWlmKGRbZl0uZWxlbT09PXRoaXMpe2ImJmRbZl0odHJ1ZSk7ZC5zcGxpY2UoZiwxKX19KTtifHx0aGlzLmRlcXVldWUoKTtyZXR1cm4gdGhpc319KTtjLmVhY2goe3NsaWRlRG93bjpLKCJzaG93IiwxKSxzbGlkZVVwOksoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOksoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCxmKXtyZXR1cm4gdGhpcy5hbmltYXRlKGIsZCxmKX19KTtjLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmPWEmJnR5cGVvZiBhPT09Im9iamVjdCI/YTp7Y29tcGxldGU6ZHx8IWQmJmJ8fGMuaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpkJiZifHxiJiYhYy5pc0Z1bmN0aW9uKGIpJiZifTtmLmR1cmF0aW9uPWMuZngub2ZmPzA6dHlwZW9mIGYuZHVyYXRpb249PT0KIm51bWJlciI/Zi5kdXJhdGlvbjpjLmZ4LnNwZWVkc1tmLmR1cmF0aW9uXXx8Yy5meC5zcGVlZHMuX2RlZmF1bHQ7Zi5vbGQ9Zi5jb21wbGV0ZTtmLmNvbXBsZXRlPWZ1bmN0aW9uKCl7Zi5xdWV1ZSE9PWZhbHNlJiZjKHRoaXMpLmRlcXVldWUoKTtjLmlzRnVuY3Rpb24oZi5vbGQpJiZmLm9sZC5jYWxsKHRoaXMpfTtyZXR1cm4gZn0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oYSxiLGQsZil7cmV0dXJuIGQrZiphfSxzd2luZzpmdW5jdGlvbihhLGIsZCxmKXtyZXR1cm4oLU1hdGguY29zKGEqTWF0aC5QSSkvMiswLjUpKmYrZH19LHRpbWVyczpbXSxmeDpmdW5jdGlvbihhLGIsZCl7dGhpcy5vcHRpb25zPWI7dGhpcy5lbGVtPWE7dGhpcy5wcm9wPWQ7aWYoIWIub3JpZyliLm9yaWc9e319fSk7Yy5meC5wcm90b3R5cGU9e3VwZGF0ZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKTsoYy5meC5zdGVwW3RoaXMucHJvcF18fApjLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpO2lmKCh0aGlzLnByb3A9PT0iaGVpZ2h0Inx8dGhpcy5wcm9wPT09IndpZHRoIikmJnRoaXMuZWxlbS5zdHlsZSl0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT0iYmxvY2sifSxjdXI6ZnVuY3Rpb24oYSl7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpcmV0dXJuIHRoaXMuZWxlbVt0aGlzLnByb3BdO3JldHVybihhPXBhcnNlRmxvYXQoYy5jc3ModGhpcy5lbGVtLHRoaXMucHJvcCxhKSkpJiZhPi0xMDAwMD9hOnBhcnNlRmxvYXQoYy5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oYSxiLGQpe2Z1bmN0aW9uIGYoail7cmV0dXJuIGUuc3RlcChqKX10aGlzLnN0YXJ0VGltZT1KKCk7dGhpcy5zdGFydD1hO3RoaXMuZW5kPWI7dGhpcy51bml0PWR8fHRoaXMudW5pdHx8InB4Ijt0aGlzLm5vdz10aGlzLnN0YXJ0Owp0aGlzLnBvcz10aGlzLnN0YXRlPTA7dmFyIGU9dGhpcztmLmVsZW09dGhpcy5lbGVtO2lmKGYoKSYmYy50aW1lcnMucHVzaChmKSYmIVcpVz1zZXRJbnRlcnZhbChjLmZ4LnRpY2ssMTMpfSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1jLnN0eWxlKHRoaXMuZWxlbSx0aGlzLnByb3ApO3RoaXMub3B0aW9ucy5zaG93PXRydWU7dGhpcy5jdXN0b20odGhpcy5wcm9wPT09IndpZHRoInx8dGhpcy5wcm9wPT09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO2ModGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5bGUodGhpcy5lbGVtLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLmhpZGU9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLmN1cigpLDApfSxzdGVwOmZ1bmN0aW9uKGEpe3ZhciBiPUooKSxkPXRydWU7aWYoYXx8Yj49dGhpcy5vcHRpb25zLmR1cmF0aW9uK3RoaXMuc3RhcnRUaW1lKXt0aGlzLm5vdz0KdGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO2Zvcih2YXIgZiBpbiB0aGlzLm9wdGlvbnMuY3VyQW5pbSlpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtmXSE9PXRydWUpZD1mYWxzZTtpZihkKXtpZih0aGlzLm9wdGlvbnMuZGlzcGxheSE9bnVsbCl7dGhpcy5lbGVtLnN0eWxlLm92ZXJmbG93PXRoaXMub3B0aW9ucy5vdmVyZmxvdzthPWMuZGF0YSh0aGlzLmVsZW0sIm9sZGRpc3BsYXkiKTt0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT1hP2E6dGhpcy5vcHRpb25zLmRpc3BsYXk7aWYoYy5jc3ModGhpcy5lbGVtLCJkaXNwbGF5Iik9PT0ibm9uZSIpdGhpcy5lbGVtLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn10aGlzLm9wdGlvbnMuaGlkZSYmYyh0aGlzLmVsZW0pLmhpZGUoKTtpZih0aGlzLm9wdGlvbnMuaGlkZXx8dGhpcy5vcHRpb25zLnNob3cpZm9yKHZhciBlIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKWMuc3R5bGUodGhpcy5lbGVtLAplLHRoaXMub3B0aW9ucy5vcmlnW2VdKTt0aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle2U9Yi10aGlzLnN0YXJ0VGltZTt0aGlzLnN0YXRlPWUvdGhpcy5vcHRpb25zLmR1cmF0aW9uO2E9dGhpcy5vcHRpb25zLmVhc2luZ3x8KGMuZWFzaW5nLnN3aW5nPyJzd2luZyI6ImxpbmVhciIpO3RoaXMucG9zPWMuZWFzaW5nW3RoaXMub3B0aW9ucy5zcGVjaWFsRWFzaW5nJiZ0aGlzLm9wdGlvbnMuc3BlY2lhbEVhc2luZ1t0aGlzLnByb3BdfHxhXSh0aGlzLnN0YXRlLGUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik7dGhpcy5ub3c9dGhpcy5zdGFydCsodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3M7dGhpcy51cGRhdGUoKX1yZXR1cm4gdHJ1ZX19O2MuZXh0ZW5kKGMuZngse3RpY2s6ZnVuY3Rpb24oKXtmb3IodmFyIGE9Yy50aW1lcnMsYj0wO2I8YS5sZW5ndGg7YisrKWFbYl0oKXx8YS5zcGxpY2UoYi0tLDEpO2EubGVuZ3RofHwKYy5meC5zdG9wKCl9LHN0b3A6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKFcpO1c9bnVsbH0sc3BlZWRzOntzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LHN0ZXA6e29wYWNpdHk6ZnVuY3Rpb24oYSl7Yy5zdHlsZShhLmVsZW0sIm9wYWNpdHkiLGEubm93KX0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7aWYoYS5lbGVtLnN0eWxlJiZhLmVsZW0uc3R5bGVbYS5wcm9wXSE9bnVsbClhLmVsZW0uc3R5bGVbYS5wcm9wXT0oYS5wcm9wPT09IndpZHRoInx8YS5wcm9wPT09ImhlaWdodCI/TWF0aC5tYXgoMCxhLm5vdyk6YS5ub3cpK2EudW5pdDtlbHNlIGEuZWxlbVthLnByb3BdPWEubm93fX19KTtpZihjLmV4cHImJmMuZXhwci5maWx0ZXJzKWMuZXhwci5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKGEpe3JldHVybiBjLmdyZXAoYy50aW1lcnMsZnVuY3Rpb24oYil7cmV0dXJuIGE9PT1iLmVsZW19KS5sZW5ndGh9O2MuZm4ub2Zmc2V0PSJnZXRCb3VuZGluZ0NsaWVudFJlY3QiaW4gcy5kb2N1bWVudEVsZW1lbnQ/CmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF07aWYoYSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsZSl9KTtpZighYnx8IWIub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtpZihiPT09Yi5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGMub2Zmc2V0LmJvZHlPZmZzZXQoYik7dmFyIGQ9Yi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWIub3duZXJEb2N1bWVudDtiPWYuYm9keTtmPWYuZG9jdW1lbnRFbGVtZW50O3JldHVybnt0b3A6ZC50b3ArKHNlbGYucGFnZVlPZmZzZXR8fGMuc3VwcG9ydC5ib3hNb2RlbCYmZi5zY3JvbGxUb3B8fGIuc2Nyb2xsVG9wKS0oZi5jbGllbnRUb3B8fGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoc2VsZi5wYWdlWE9mZnNldHx8Yy5zdXBwb3J0LmJveE1vZGVsJiZmLnNjcm9sbExlZnR8fGIuc2Nyb2xsTGVmdCktKGYuY2xpZW50TGVmdHx8Yi5jbGllbnRMZWZ0fHwwKX19OmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzWzBdO2lmKGEpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihyKXtjLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLHIpfSk7aWYoIWJ8fCFiLm93bmVyRG9jdW1lbnQpcmV0dXJuIG51bGw7aWYoYj09PWIub3duZXJEb2N1bWVudC5ib2R5KXJldHVybiBjLm9mZnNldC5ib2R5T2Zmc2V0KGIpO2Mub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgZD1iLm9mZnNldFBhcmVudCxmPWIsZT1iLm93bmVyRG9jdW1lbnQsaixpPWUuZG9jdW1lbnRFbGVtZW50LG89ZS5ib2R5O2Y9KGU9ZS5kZWZhdWx0Vmlldyk/ZS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCk6Yi5jdXJyZW50U3R5bGU7Zm9yKHZhciBrPWIub2Zmc2V0VG9wLG49Yi5vZmZzZXRMZWZ0OyhiPWIucGFyZW50Tm9kZSkmJmIhPT1vJiZiIT09aTspe2lmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmZi5wb3NpdGlvbj09PSJmaXhlZCIpYnJlYWs7aj1lP2UuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlOwprLT1iLnNjcm9sbFRvcDtuLT1iLnNjcm9sbExlZnQ7aWYoYj09PWQpe2srPWIub2Zmc2V0VG9wO24rPWIub2Zmc2V0TGVmdDtpZihjLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKGMub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoYi5ub2RlTmFtZSkpKXtrKz1wYXJzZUZsb2F0KGouYm9yZGVyVG9wV2lkdGgpfHwwO24rPXBhcnNlRmxvYXQoai5ib3JkZXJMZWZ0V2lkdGgpfHwwfWY9ZDtkPWIub2Zmc2V0UGFyZW50fWlmKGMub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSYmai5vdmVyZmxvdyE9PSJ2aXNpYmxlIil7ays9cGFyc2VGbG9hdChqLmJvcmRlclRvcFdpZHRoKXx8MDtuKz1wYXJzZUZsb2F0KGouYm9yZGVyTGVmdFdpZHRoKXx8MH1mPWp9aWYoZi5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fGYucG9zaXRpb249PT0ic3RhdGljIil7ays9by5vZmZzZXRUb3A7bis9by5vZmZzZXRMZWZ0fWlmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmCmYucG9zaXRpb249PT0iZml4ZWQiKXtrKz1NYXRoLm1heChpLnNjcm9sbFRvcCxvLnNjcm9sbFRvcCk7bis9TWF0aC5tYXgoaS5zY3JvbGxMZWZ0LG8uc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDprLGxlZnQ6bn19O2Mub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIGE9cy5ib2R5LGI9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxkLGYsZSxqPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luVG9wIix0cnVlKSl8fDA7Yy5leHRlbmQoYi5zdHlsZSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtiLmlubmVySFRNTD0iPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+IjsKYS5pbnNlcnRCZWZvcmUoYixhLmZpcnN0Q2hpbGQpO2Q9Yi5maXJzdENoaWxkO2Y9ZC5maXJzdENoaWxkO2U9ZC5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7dGhpcy5kb2VzTm90QWRkQm9yZGVyPWYub2Zmc2V0VG9wIT09NTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPWUub2Zmc2V0VG9wPT09NTtmLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCI7Zi5zdHlsZS50b3A9IjIwcHgiO3RoaXMuc3VwcG9ydHNGaXhlZFBvc2l0aW9uPWYub2Zmc2V0VG9wPT09MjB8fGYub2Zmc2V0VG9wPT09MTU7Zi5zdHlsZS5wb3NpdGlvbj1mLnN0eWxlLnRvcD0iIjtkLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2Quc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt0aGlzLnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZT1mLm9mZnNldFRvcD09PS01O3RoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQ9YS5vZmZzZXRUb3AhPT1qO2EucmVtb3ZlQ2hpbGQoYik7CmMub2Zmc2V0LmluaXRpYWxpemU9Yy5ub29wfSxib2R5T2Zmc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEub2Zmc2V0VG9wLGQ9YS5vZmZzZXRMZWZ0O2Mub2Zmc2V0LmluaXRpYWxpemUoKTtpZihjLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Yis9cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtkKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEsIm1hcmdpbkxlZnQiLHRydWUpKXx8MH1yZXR1cm57dG9wOmIsbGVmdDpkfX0sc2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixkKXtpZigvc3RhdGljLy50ZXN0KGMuY3VyQ1NTKGEsInBvc2l0aW9uIikpKWEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt2YXIgZj1jKGEpLGU9Zi5vZmZzZXQoKSxqPXBhcnNlSW50KGMuY3VyQ1NTKGEsInRvcCIsdHJ1ZSksMTApfHwwLGk9cGFyc2VJbnQoYy5jdXJDU1MoYSwibGVmdCIsdHJ1ZSksMTApfHwwO2lmKGMuaXNGdW5jdGlvbihiKSliPWIuY2FsbChhLApkLGUpO2Q9e3RvcDpiLnRvcC1lLnRvcCtqLGxlZnQ6Yi5sZWZ0LWUubGVmdCtpfTsidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxkKTpmLmNzcyhkKX19O2MuZm4uZXh0ZW5kKHtwb3NpdGlvbjpmdW5jdGlvbigpe2lmKCF0aGlzWzBdKXJldHVybiBudWxsO3ZhciBhPXRoaXNbMF0sYj10aGlzLm9mZnNldFBhcmVudCgpLGQ9dGhpcy5vZmZzZXQoKSxmPS9eYm9keXxodG1sJC9pLnRlc3QoYlswXS5ub2RlTmFtZSk/e3RvcDowLGxlZnQ6MH06Yi5vZmZzZXQoKTtkLnRvcC09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtkLmxlZnQtPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luTGVmdCIsdHJ1ZSkpfHwwO2YudG9wKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGJbMF0sImJvcmRlclRvcFdpZHRoIix0cnVlKSl8fDA7Zi5sZWZ0Kz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGJbMF0sImJvcmRlckxlZnRXaWR0aCIsdHJ1ZSkpfHwwO3JldHVybnt0b3A6ZC50b3AtCmYudG9wLGxlZnQ6ZC5sZWZ0LWYubGVmdH19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLm9mZnNldFBhcmVudHx8cy5ib2R5O2EmJiEvXmJvZHl8aHRtbCQvaS50ZXN0KGEubm9kZU5hbWUpJiZjLmNzcyhhLCJwb3NpdGlvbiIpPT09InN0YXRpYyI7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF9KX19KTtjLmVhY2goWyJMZWZ0IiwiVG9wIl0sZnVuY3Rpb24oYSxiKXt2YXIgZD0ic2Nyb2xsIitiO2MuZm5bZF09ZnVuY3Rpb24oZil7dmFyIGU9dGhpc1swXSxqO2lmKCFlKXJldHVybiBudWxsO2lmKGYhPT13KXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihqPXdhKHRoaXMpKWouc2Nyb2xsVG8oIWE/ZjpjKGopLnNjcm9sbExlZnQoKSxhP2Y6YyhqKS5zY3JvbGxUb3AoKSk7ZWxzZSB0aGlzW2RdPWZ9KTtlbHNlIHJldHVybihqPXdhKGUpKT8icGFnZVhPZmZzZXQiaW4gaj9qW2E/InBhZ2VZT2Zmc2V0IjoKInBhZ2VYT2Zmc2V0Il06Yy5zdXBwb3J0LmJveE1vZGVsJiZqLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXXx8ai5kb2N1bWVudC5ib2R5W2RdOmVbZF19fSk7Yy5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihhLGIpe3ZhciBkPWIudG9Mb3dlckNhc2UoKTtjLmZuWyJpbm5lciIrYl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1swXT9jLmNzcyh0aGlzWzBdLGQsZmFsc2UsInBhZGRpbmciKTpudWxsfTtjLmZuWyJvdXRlciIrYl09ZnVuY3Rpb24oZil7cmV0dXJuIHRoaXNbMF0/Yy5jc3ModGhpc1swXSxkLGZhbHNlLGY/Im1hcmdpbiI6ImJvcmRlciIpOm51bGx9O2MuZm5bZF09ZnVuY3Rpb24oZil7dmFyIGU9dGhpc1swXTtpZighZSlyZXR1cm4gZj09bnVsbD9udWxsOnRoaXM7aWYoYy5pc0Z1bmN0aW9uKGYpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oail7dmFyIGk9Yyh0aGlzKTtpW2RdKGYuY2FsbCh0aGlzLGosaVtkXSgpKSl9KTtyZXR1cm4ic2Nyb2xsVG8iaW4KZSYmZS5kb2N1bWVudD9lLmRvY3VtZW50LmNvbXBhdE1vZGU9PT0iQ1NTMUNvbXBhdCImJmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2JdfHxlLmRvY3VtZW50LmJvZHlbImNsaWVudCIrYl06ZS5ub2RlVHlwZT09PTk/TWF0aC5tYXgoZS5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYl0sZS5ib2R5WyJzY3JvbGwiK2JdLGUuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK2JdLGUuYm9keVsib2Zmc2V0IitiXSxlLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IitiXSk6Zj09PXc/Yy5jc3MoZSxkKTp0aGlzLmNzcyhkLHR5cGVvZiBmPT09InN0cmluZyI/ZjpmKyJweCIpfX0pO0EualF1ZXJ5PUEuJD1jfSkod2luZG93KTtqUXVlcnkubm9Db25mbGljdCgpOwoKCg==]]></data>
	</file>
	<file>
	  <filename>/includes/jquery.tablednd.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFRhYmxlRG5EIHBsdWctaW4gZm9yIEpRdWVyeSwgYWxsb3dzIHlvdSB0byBkcmFnIGFuZCBkcm9wIHRhYmxlIHJvd3MKICogWW91IGNhbiBzZXQgdXAgdmFyaW91cyBvcHRpb25zIHRvIGNvbnRyb2wgaG93IHRoZSBzeXN0ZW0gd2lsbCB3b3JrCiAqIENvcHlyaWdodCAoYykgRGVuaXMgSG93bGV0dCA8ZGVuaXNoQGlzb2NyYS5jb20+CiAqIExpY2Vuc2VkIGxpa2UgalF1ZXJ5LCBzZWUgaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9MaWNlbnNlLgogKgogKiBDb25maWd1cmF0aW9uIG9wdGlvbnM6CiAqIAogKiBvbkRyYWdTdHlsZQogKiAgICAgVGhpcyBpcyB0aGUgc3R5bGUgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGUgcm93IGR1cmluZyBkcmFnLiBUaGVyZSBhcmUgbGltaXRhdGlvbnMgdG8gdGhlIHN0eWxlcyB0aGF0IGNhbiBiZQogKiAgICAgYXNzb2NpYXRlZCB3aXRoIGEgcm93IChzdWNoIGFzIHlvdSBjYW4ndCBhc3NpZ24gYSBib3JkZXItLXdlbGwgeW91IGNhbiwgYnV0IGl0IHdvbid0IGJlCiAqICAgICBkaXNwbGF5ZWQpLiAoU28gaW5zdGVhZCBjb25zaWRlciB1c2luZyBvbkRyYWdDbGFzcy4pIFRoZSBDU1Mgc3R5bGUgdG8gYXBwbHkgaXMgc3BlY2lmaWVkIGFzCiAqICAgICBhIG1hcCAoYXMgdXNlZCBpbiB0aGUgalF1ZXJ5IGNzcyguLi4pIGZ1bmN0aW9uKS4KICogb25Ecm9wU3R5bGUKICogICAgIFRoaXMgaXMgdGhlIHN0eWxlIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhlIHJvdyB3aGVuIGl0IGlzIGRyb3BwZWQuIEFzIGZvciBvbkRyYWdTdHlsZSwgdGhlcmUgYXJlIGxpbWl0YXRpb25zCiAqICAgICB0byB3aGF0IHlvdSBjYW4gZG8uIEFsc28gdGhpcyByZXBsYWNlcyB0aGUgb3JpZ2luYWwgc3R5bGUsIHNvIGFnYWluIGNvbnNpZGVyIHVzaW5nIG9uRHJhZ0NsYXNzIHdoaWNoCiAqICAgICBpcyBzaW1wbHkgYWRkZWQgYW5kIHRoZW4gcmVtb3ZlZCBvbiBkcm9wLgogKiBvbkRyYWdDbGFzcwogKiAgICAgVGhpcyBjbGFzcyBpcyBhZGRlZCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBkcmFnIGFuZCB0aGVuIHJlbW92ZWQgd2hlbiB0aGUgcm93IGlzIGRyb3BwZWQuIEl0IGlzIG1vcmUKICogICAgIGZsZXhpYmxlIHRoYW4gdXNpbmcgb25EcmFnU3R5bGUgc2luY2UgaXQgY2FuIGJlIGluaGVyaXRlZCBieSB0aGUgcm93IGNlbGxzIGFuZCBvdGhlciBjb250ZW50LiBUaGUgZGVmYXVsdAogKiAgICAgaXMgY2xhc3MgaXMgdERuRF93aGlsZURyYWcuIFNvIHRvIHVzZSB0aGUgZGVmYXVsdCwgc2ltcGx5IGN1c3RvbWlzZSB0aGlzIENTUyBjbGFzcyBpbiB5b3VyCiAqICAgICBzdHlsZXNoZWV0LgogKiBvbkRyb3AKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHJvdyBpcyBkcm9wcGVkLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgdGFibGUKICogICAgIGFuZCB0aGUgcm93IHRoYXQgd2FzIGRyb3BwZWQuIFlvdSBjYW4gd29yayBvdXQgdGhlIG5ldyBvcmRlciBvZiB0aGUgcm93cyBieSB1c2luZwogKiAgICAgdGFibGUucm93cy4KICogb25EcmFnU3RhcnQKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHVzZXIgc3RhcnRzIGRyYWdnaW5nLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUKICogICAgIHRhYmxlIGFuZCB0aGUgcm93IHdoaWNoIHRoZSB1c2VyIGhhcyBzdGFydGVkIHRvIGRyYWcuCiAqIG9uQWxsb3dEcm9wCiAqICAgICBQYXNzIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBhcyBhIHJvdyBpcyBvdmVyIGFub3RoZXIgcm93LiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlLCBhbGxvdyAKICogICAgIGRyb3BwaW5nIG9uIHRoYXQgcm93LCBvdGhlcndpc2Ugbm90LiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgZHJhZ2dlZCByb3cgYW5kIHRoZSByb3cgdW5kZXIKICogICAgIHRoZSBjdXJzb3IuIEl0IHJldHVybnMgYSBib29sZWFuOiB0cnVlIGFsbG93cyB0aGUgZHJvcCwgZmFsc2UgZG9lc24ndCBhbGxvdyBpdC4KICogc2Nyb2xsQW1vdW50CiAqICAgICBUaGlzIGlzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHNjcm9sbCBpZiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZQogKiAgICAgd2luZG93LiBUaGUgcGFnZSBzaG91bGQgYXV0b21hdGljYWxseSBzY3JvbGwgdXAgb3IgZG93biBhcyBhcHByb3ByaWF0ZSAodGVzdGVkIGluIElFNiwgSUU3LCBTYWZhcmksIEZGMiwKICogICAgIEZGMyBiZXRhCiAqIGRyYWdIYW5kbGUKICogICAgIFRoaXMgaXMgdGhlIG5hbWUgb2YgYSBjbGFzcyB0aGF0IHlvdSBhc3NpZ24gdG8gb25lIG9yIG1vcmUgY2VsbHMgaW4gZWFjaCByb3cgdGhhdCBpcyBkcmFnZ2FibGUuIElmIHlvdQogKiAgICAgc3BlY2lmeSB0aGlzIGNsYXNzLCB0aGVuIHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgY3Vyc29yOiBtb3ZlIGluIHRoZSBDU1MgYW5kIG9ubHkgdGhlc2UgY2VsbHMKICogICAgIHdpbGwgaGF2ZSB0aGUgZHJhZyBiZWhhdmlvdXIuIElmIHlvdSBkbyBub3Qgc3BlY2lmeSBhIGRyYWdIYW5kbGUsIHRoZW4geW91IGdldCB0aGUgb2xkIGJlaGF2aW91ciB3aGVyZQogKiAgICAgdGhlIHdob2xlIHJvdyBpcyBkcmFnZ2FibGUuCiAqIAogKiBPdGhlciB3YXlzIHRvIGNvbnRyb2wgYmVoYXZpb3VyOgogKgogKiBBZGQgY2xhc3M9Im5vZHJvcCIgdG8gYW55IHJvd3MgZm9yIHdoaWNoIHlvdSBkb24ndCB3YW50IHRvIGFsbG93IGRyb3BwaW5nLCBhbmQgY2xhc3M9Im5vZHJhZyIgdG8gYW55IHJvd3MKICogdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byBiZSBkcmFnZ2FibGUuCiAqCiAqIEluc2lkZSB0aGUgb25Ecm9wIG1ldGhvZCB5b3UgY2FuIGFsc28gY2FsbCAkLnRhYmxlRG5ELnNlcmlhbGl6ZSgpIHRoaXMgcmV0dXJucyBhIHN0cmluZyBvZiB0aGUgZm9ybQogKiA8dGFibGVJRD5bXT08cm93SUQxPiY8dGFibGVJRD5bXT08cm93SUQyPiBzbyB0aGF0IHlvdSBjYW4gc2VuZCB0aGlzIGJhY2sgdG8gdGhlIHNlcnZlci4gVGhlIHRhYmxlIG11c3QgaGF2ZQogKiBhbiBJRCBhcyBtdXN0IGFsbCB0aGUgcm93cy4KICoKICogT3RoZXIgbWV0aG9kczoKICoKICogJCgiLi4uIikudGFibGVEbkRVcGRhdGUoKSAKICogV2lsbCB1cGRhdGUgYWxsIHRoZSBtYXRjaGluZyB0YWJsZXMsIHRoYXQgaXMgaXQgd2lsbCByZWFwcGx5IHRoZSBtb3VzZWRvd24gbWV0aG9kIHRvIHRoZSByb3dzIChvciBoYW5kbGUgY2VsbHMpLgogKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSB1cGRhdGVkIHRoZSB0YWJsZSByb3dzIHVzaW5nIEFqYXggYW5kIHlvdSB3YW50IHRvIG1ha2UgdGhlIHRhYmxlIGRyYWdnYWJsZSBhZ2Fpbi4KICogVGhlIHRhYmxlIG1haW50YWlucyB0aGUgb3JpZ2luYWwgY29uZmlndXJhdGlvbiAoc28geW91IGRvbid0IGhhdmUgdG8gc3BlY2lmeSBpdCBhZ2FpbikuCiAqCiAqICQoIi4uLiIpLnRhYmxlRG5EU2VyaWFsaXplKCkKICogV2lsbCBzZXJpYWxpemUgYW5kIHJldHVybiB0aGUgc2VyaWFsaXplZCBzdHJpbmcgYXMgYWJvdmUsIGJ1dCBmb3IgZWFjaCBvZiB0aGUgbWF0Y2hpbmcgdGFibGVzLS1zbyBpdCBjYW4gYmUKICogY2FsbGVkIGZyb20gYW55d2hlcmUgYW5kIGlzbid0IGRlcGVuZGVudCBvbiB0aGUgY3VycmVudFRhYmxlIGJlaW5nIHNldCB1cCBjb3JyZWN0bHkgYmVmb3JlIGNhbGxpbmcKICoKICogS25vd24gcHJvYmxlbXM6CiAqIC0gQXV0by1zY29sbCBoYXMgc29tZSBwcm9ibGVtcyB3aXRoIElFNyAgKGl0IHNjcm9sbHMgZXZlbiB3aGVuIGl0IHNob3VsZG4ndCksIHdvcmstYXJvdW5kOiBzZXQgc2Nyb2xsQW1vdW50IHRvIDAKICogCiAqIFZlcnNpb24gMC4yOiAyMDA4LTAyLTIwIEZpcnN0IHB1YmxpYyB2ZXJzaW9uCiAqIFZlcnNpb24gMC4zOiAyMDA4LTAyLTA3IEFkZGVkIG9uRHJhZ1N0YXJ0IG9wdGlvbgogKiAgICAgICAgICAgICAgICAgICAgICAgICBNYWRlIHRoZSBzY3JvbGwgYW1vdW50IGNvbmZpZ3VyYWJsZSAoZGVmYXVsdCBpcyA1IGFzIGJlZm9yZSkKICogVmVyc2lvbiAwLjQ6IDIwMDgtMDMtMTUgQ2hhbmdlZCB0aGUgbm9EcmFnL25vRHJvcCBhdHRyaWJ1dGVzIHRvIG5vZHJhZy9ub2Ryb3AgY2xhc3NlcwogKiAgICAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBvbkFsbG93RHJvcCB0byBjb250cm9sIGRyb3BwaW5nCiAqICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkIGEgYnVnIHdoaWNoIG1lYW50IHRoYXQgeW91IGNvdWxkbid0IHNldCB0aGUgc2Nyb2xsIGFtb3VudCBpbiBib3RoIGRpcmVjdGlvbnMKICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgc2VyaWFsaXplIG1ldGhvZAogKiBWZXJzaW9uIDAuNTogMjAwOC0wNS0xNiBDaGFuZ2VkIHNvIHRoYXQgaWYgeW91IHNwZWNpZnkgYSBkcmFnSGFuZGxlIGNsYXNzIGl0IGRvZXNuJ3QgbWFrZSB0aGUgd2hvbGUgcm93CiAqICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnYWJsZQogKiAgICAgICAgICAgICAgICAgICAgICAgICBJbXByb3ZlZCB0aGUgc2VyaWFsaXplIG1ldGhvZCB0byB1c2UgYSBkZWZhdWx0IChhbmQgc2V0dGFibGUpIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgdGFibGVEbkR1cGF0ZSgpIGFuZCB0YWJsZURuRFNlcmlhbGl6ZSgpIHRvIGJlIGNhbGxlZCB3aGVuIHlvdSBhcmUgb3V0c2lkZSB0aGUgdGFibGUKICovCmpRdWVyeS50YWJsZURuRCA9IHsKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgdGFibGUgYmVpbmcgZHJhZ2dlZCAqLwogICAgY3VycmVudFRhYmxlIDogbnVsbCwKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgZHJhZyBvYmplY3QgaWYgYW55ICovCiAgICBkcmFnT2JqZWN0OiBudWxsLAogICAgLyoqIFRoZSBjdXJyZW50IG1vdXNlIG9mZnNldCAqLwogICAgbW91c2VPZmZzZXQ6IG51bGwsCiAgICAvKiogUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZSBvZiBZIHNvIHRoYXQgd2UgZG9uJ3QgZG8gdG9vIG11Y2ggcHJvY2Vzc2luZyAqLwogICAgb2xkWTogMCwKCiAgICAvKiogQWN0dWFsbHkgYnVpbGQgdGhlIHN0cnVjdHVyZSAqLwogICAgYnVpbGQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgICAgICAvLyBTZXQgdXAgdGhlIGRlZmF1bHRzIGlmIGFueQoKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIFRoaXMgaXMgYm91bmQgdG8gZWFjaCBtYXRjaGluZyB0YWJsZSwgc2V0IHVwIHRoZSBkZWZhdWx0cyBhbmQgb3ZlcnJpZGUgd2l0aCB1c2VyIG9wdGlvbnMKICAgICAgICAgICAgdGhpcy50YWJsZURuRENvbmZpZyA9IGpRdWVyeS5leHRlbmQoewogICAgICAgICAgICAgICAgb25EcmFnU3R5bGU6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyb3BTdHlsZTogbnVsbCwKCQkJCS8vIEFkZCBpbiB0aGUgZGVmYXVsdCBjbGFzcyBmb3Igd2hpbGVEcmFnZ2luZwoJCQkJb25EcmFnQ2xhc3M6ICJ0RG5EX3doaWxlRHJhZyIsCiAgICAgICAgICAgICAgICBvbkRyb3A6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyYWdTdGFydDogbnVsbCwKICAgICAgICAgICAgICAgIHNjcm9sbEFtb3VudDogNSwKCQkJCXNlcmlhbGl6ZVJlZ2V4cDogL1teXC1dKiQvLCAvLyBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIHVzZSB0byB0cmltIHJvdyBJRHMKCQkJCXNlcmlhbGl6ZVBhcmFtTmFtZTogbnVsbCwgLy8gSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhbm90aGVyIHBhcmFtZXRlciBuYW1lIGluc3RlYWQgb2YgdGhlIHRhYmxlIElECiAgICAgICAgICAgICAgICBkcmFnSGFuZGxlOiBudWxsIC8vIElmIHlvdSBnaXZlIHRoZSBuYW1lIG9mIGEgY2xhc3MgaGVyZSwgdGhlbiBvbmx5IENlbGxzIHdpdGggdGhpcyBjbGFzcyB3aWxsIGJlIGRyYWdnYWJsZQogICAgICAgICAgICB9LCBvcHRpb25zIHx8IHt9KTsKICAgICAgICAgICAgLy8gTm93IG1ha2UgdGhlIHJvd3MgZHJhZ2dhYmxlCiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBOb3cgd2UgbmVlZCB0byBjYXB0dXJlIHRoZSBtb3VzZSB1cCBhbmQgbW91c2UgbW92ZSBldmVudAogICAgICAgIC8vIFdlIGNhbiB1c2UgYmluZCBzbyB0aGF0IHdlIGRvbid0IGludGVyZmVyZSB3aXRoIG90aGVyIGV2ZW50IGhhbmRsZXJzCiAgICAgICAgalF1ZXJ5KGRvY3VtZW50KQogICAgICAgICAgICAuYmluZCgnbW91c2Vtb3ZlJywgalF1ZXJ5LnRhYmxlRG5ELm1vdXNlbW92ZSkKICAgICAgICAgICAgLmJpbmQoJ21vdXNldXAnLCBqUXVlcnkudGFibGVEbkQubW91c2V1cCk7CgogICAgICAgIC8vIERvbid0IGJyZWFrIHRoZSBjaGFpbgogICAgICAgIHJldHVybiB0aGlzOwogICAgfSwKCiAgICAvKiogVGhpcyBmdW5jdGlvbiBtYWtlcyBhbGwgdGhlIHJvd3Mgb24gdGhlIHRhYmxlIGRyYWdnYWJsZSBhcGFydCBmcm9tIHRob3NlIG1hcmtlZCBhcyAiTm9EcmFnIiAqLwogICAgbWFrZURyYWdnYWJsZTogZnVuY3Rpb24odGFibGUpIHsKICAgICAgICB2YXIgY29uZmlnID0gdGFibGUudGFibGVEbkRDb25maWc7CgkJaWYgKHRhYmxlLnRhYmxlRG5EQ29uZmlnLmRyYWdIYW5kbGUpIHsKCQkJLy8gV2Ugb25seSBuZWVkIHRvIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHNwZWNpZmllZCBjZWxscwoJCQl2YXIgY2VsbHMgPSBqUXVlcnkoInRkLiIrdGFibGUudGFibGVEbkRDb25maWcuZHJhZ0hhbmRsZSwgdGFibGUpOwoJCQljZWxscy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJLy8gVGhlIGNlbGwgaXMgYm91bmQgdG8gInRoaXMiCiAgICAgICAgICAgICAgICBqUXVlcnkodGhpcykubW91c2Vkb3duKGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPSB0aGlzLnBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IHRhYmxlOwogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5vbkRyYWdTdGFydCkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxsIHRoZSBvbkRyb3AgbWV0aG9kIGlmIHRoZXJlIGlzIG9uZQogICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCQkJfSkKCQl9IGVsc2UgewoJCQkvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHdob2xlIHJvdwoJICAgICAgICB2YXIgcm93cyA9IGpRdWVyeSgidHIiLCB0YWJsZSk7IC8vIGdldCBhbGwgdGhlIHJvd3MgYXMgYSB3cmFwcGVkIHNldAoJICAgICAgICByb3dzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCByb3csIHRoZSByb3cgaXMgYm91bmQgdG8gInRoaXMiCgkJCQl2YXIgcm93ID0galF1ZXJ5KHRoaXMpOwoJCQkJaWYgKCEgcm93Lmhhc0NsYXNzKCJub2RyYWciKSkgewoJICAgICAgICAgICAgICAgIHJvdy5tb3VzZWRvd24oZnVuY3Rpb24oZXYpIHsKCSAgICAgICAgICAgICAgICAgICAgaWYgKGV2LnRhcmdldC50YWdOYW1lID09ICJURCIpIHsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ID0gdGhpczsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgPSB0YWJsZTsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CgkgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJhZ1N0YXJ0KSB7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwoJICAgICAgICAgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoJICAgICAgICAgICAgICAgICAgICB9CgkgICAgICAgICAgICAgICAgfSkuY3NzKCJjdXJzb3IiLCAibW92ZSIpOyAvLyBTdG9yZSB0aGUgdGFibGVEbkQgb2JqZWN0CgkJCQl9CgkJCX0pOwoJCX0KCX0sCgoJdXBkYXRlVGFibGVzOiBmdW5jdGlvbigpIHsKCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJaWYgKHRoaXMudGFibGVEbkRDb25maWcpIHsKCQkJCWpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwoJCQl9CgkJfSkKCX0sCgogICAgLyoqIEdldCB0aGUgbW91c2UgY29vcmRpbmF0ZXMgZnJvbSB0aGUgZXZlbnQgKGFsbG93aW5nIGZvciBicm93c2VyIGRpZmZlcmVuY2VzKSAqLwogICAgbW91c2VDb29yZHM6IGZ1bmN0aW9uKGV2KXsKICAgICAgICBpZihldi5wYWdlWCB8fCBldi5wYWdlWSl7CiAgICAgICAgICAgIHJldHVybiB7eDpldi5wYWdlWCwgeTpldi5wYWdlWX07CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHg6ZXYuY2xpZW50WCArIGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCAtIGRvY3VtZW50LmJvZHkuY2xpZW50TGVmdCwKICAgICAgICAgICAgeTpldi5jbGllbnRZICsgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgIC0gZG9jdW1lbnQuYm9keS5jbGllbnRUb3AKICAgICAgICB9OwogICAgfSwKCiAgICAvKiogR2l2ZW4gYSB0YXJnZXQgZWxlbWVudCBhbmQgYSBtb3VzZSBldmVudCwgZ2V0IHRoZSBtb3VzZSBvZmZzZXQgZnJvbSB0aGF0IGVsZW1lbnQuCiAgICAgICAgVG8gZG8gdGhpcyB3ZSBuZWVkIHRoZSBlbGVtZW50J3MgcG9zaXRpb24gYW5kIHRoZSBtb3VzZSBwb3NpdGlvbiAqLwogICAgZ2V0TW91c2VPZmZzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgZXYpIHsKICAgICAgICBldiA9IGV2IHx8IHdpbmRvdy5ldmVudDsKCiAgICAgICAgdmFyIGRvY1BvcyAgICA9IHRoaXMuZ2V0UG9zaXRpb24odGFyZ2V0KTsKICAgICAgICB2YXIgbW91c2VQb3MgID0gdGhpcy5tb3VzZUNvb3Jkcyhldik7CiAgICAgICAgcmV0dXJuIHt4Om1vdXNlUG9zLnggLSBkb2NQb3MueCwgeTptb3VzZVBvcy55IC0gZG9jUG9zLnl9OwogICAgfSwKCiAgICAvKiogR2V0IHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IGJ5IGdvaW5nIHVwIHRoZSBET00gdHJlZSBhbmQgYWRkaW5nIHVwIGFsbCB0aGUgb2Zmc2V0cyAqLwogICAgZ2V0UG9zaXRpb246IGZ1bmN0aW9uKGUpewogICAgICAgIHZhciBsZWZ0ID0gMDsKICAgICAgICB2YXIgdG9wICA9IDA7CiAgICAgICAgLyoqIFNhZmFyaSBmaXggLS0gdGhhbmtzIHRvIEx1aXMgQ2hhdG8gZm9yIHRoaXMhICovCiAgICAgICAgaWYgKGUub2Zmc2V0SGVpZ2h0ID09IDApIHsKICAgICAgICAgICAgLyoqIFNhZmFyaSAyIGRvZXNuJ3QgY29ycmVjdGx5IGdyYWIgdGhlIG9mZnNldFRvcCBvZiBhIHRhYmxlIHJvdwogICAgICAgICAgICB0aGlzIGlzIGRldGFpbGVkIGhlcmU6CiAgICAgICAgICAgIGh0dHA6Ly9qYWNvYi5wZWFyZ3JvdmUuY29tL2Jsb2cvMjAwNi90ZWNobmljYWwvdGFibGUtcm93LW9mZnNldHRvcC1idWctaW4tc2FmYXJpLwogICAgICAgICAgICB0aGUgc29sdXRpb24gaXMgbGlrZXdpc2Ugbm90ZWQgdGhlcmUsIGdyYWIgdGhlIG9mZnNldCBvZiBhIHRhYmxlIGNlbGwgaW4gdGhlIHJvdyAtIHRoZSBmaXJzdENoaWxkLgogICAgICAgICAgICBub3RlIHRoYXQgZmlyZWZveCB3aWxsIHJldHVybiBhIHRleHQgbm9kZSBhcyBhIGZpcnN0IGNoaWxkLCBzbyBkZXNpZ25pbmcgYSBtb3JlIHRob3JvdWdoCiAgICAgICAgICAgIHNvbHV0aW9uIG1heSBuZWVkIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnQsIGZvciBub3cgdGhpcyBzZWVtcyB0byB3b3JrIGluIGZpcmVmb3gsIHNhZmFyaSwgaWUgKi8KICAgICAgICAgICAgZSA9IGUuZmlyc3RDaGlsZDsgLy8gYSB0YWJsZSBjZWxsCiAgICAgICAgfQoJCWlmIChlICYmIGUub2Zmc2V0UGFyZW50KSB7CiAgICAgICAgCXdoaWxlIChlLm9mZnNldFBhcmVudCl7CiAgICAgICAgICAgIAlsZWZ0ICs9IGUub2Zmc2V0TGVmdDsKICAgICAgICAgICAgCXRvcCAgKz0gZS5vZmZzZXRUb3A7CiAgICAgICAgICAgIAllICAgICA9IGUub2Zmc2V0UGFyZW50OwogICAgICAgIAl9CgogICAgICAgIAlsZWZ0ICs9IGUub2Zmc2V0TGVmdDsKICAgICAgICAJdG9wICArPSBlLm9mZnNldFRvcDsKICAgICAgICB9CgogICAgICAgIHJldHVybiB7eDpsZWZ0LCB5OnRvcH07CiAgICB9LAoKICAgIG1vdXNlbW92ZTogZnVuY3Rpb24oZXYpIHsKICAgICAgICBpZiAoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgZHJhZ09iaiA9IGpRdWVyeShqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCk7CiAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgdmFyIG1vdXNlUG9zID0galF1ZXJ5LnRhYmxlRG5ELm1vdXNlQ29vcmRzKGV2KTsKICAgICAgICB2YXIgeSA9IG1vdXNlUG9zLnkgLSBqUXVlcnkudGFibGVEbkQubW91c2VPZmZzZXQueTsKICAgICAgICAvL2F1dG8gc2Nyb2xsIHRoZSB3aW5kb3cKCSAgICB2YXIgeU9mZnNldCA9IHdpbmRvdy5wYWdlWU9mZnNldDsKCSAJaWYgKGRvY3VtZW50LmFsbCkgewoJICAgICAgICAvLyBXaW5kb3dzIHZlcnNpb24KCSAgICAgICAgLy95T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50LmNvbXBhdE1vZGUgIT0gJ3VuZGVmaW5lZCcgJiYKCSAgICAgICAgICAgICBkb2N1bWVudC5jb21wYXRNb2RlICE9ICdCYWNrQ29tcGF0JykgewoJICAgICAgICAgICB5T2Zmc2V0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKCSAgICAgICAgfQoJICAgICAgICBlbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQuYm9keSAhPSAndW5kZWZpbmVkJykgewoJICAgICAgICAgICB5T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICB9CgoJICAgIH0KCQkgICAgCgkJaWYgKG1vdXNlUG9zLnkteU9mZnNldCA8IGNvbmZpZy5zY3JvbGxBbW91bnQpIHsKCSAgICAJd2luZG93LnNjcm9sbEJ5KDAsIC1jb25maWcuc2Nyb2xsQW1vdW50KTsKCSAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ID8gd2luZG93LmlubmVySGVpZ2h0CiAgICAgICAgICAgICAgICAgICAgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCA6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OwogICAgICAgICAgICBpZiAod2luZG93SGVpZ2h0LShtb3VzZVBvcy55LXlPZmZzZXQpIDwgY29uZmlnLnNjcm9sbEFtb3VudCkgewogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDAsIGNvbmZpZy5zY3JvbGxBbW91bnQpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKCiAgICAgICAgaWYgKHkgIT0galF1ZXJ5LnRhYmxlRG5ELm9sZFkpIHsKICAgICAgICAgICAgLy8gd29yayBvdXQgaWYgd2UncmUgZ29pbmcgdXAgb3IgZG93bi4uLgogICAgICAgICAgICB2YXIgbW92aW5nRG93biA9IHkgPiBqUXVlcnkudGFibGVEbkQub2xkWTsKICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBvbGQgdmFsdWUKICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELm9sZFkgPSB5OwogICAgICAgICAgICAvLyB1cGRhdGUgdGhlIHN0eWxlIHRvIHNob3cgd2UncmUgZHJhZ2dpbmcKCQkJaWYgKGNvbmZpZy5vbkRyYWdDbGFzcykgewoJCQkJZHJhZ09iai5hZGRDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgZHJhZ09iai5jc3MoY29uZmlnLm9uRHJhZ1N0eWxlKTsKCQkJfQogICAgICAgICAgICAvLyBJZiB3ZSdyZSBvdmVyIGEgcm93IHRoZW4gbW92ZSB0aGUgZHJhZ2dlZCByb3cgdG8gdGhlcmUgc28gdGhhdCB0aGUgdXNlciBzZWVzIHRoZQogICAgICAgICAgICAvLyBlZmZlY3QgZHluYW1pY2FsbHkKICAgICAgICAgICAgdmFyIGN1cnJlbnRSb3cgPSBqUXVlcnkudGFibGVEbkQuZmluZERyb3BUYXJnZXRSb3coZHJhZ09iaiwgeSk7CiAgICAgICAgICAgIGlmIChjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAvLyBUT0RPIHdvcnJ5IGFib3V0IHdoYXQgaGFwcGVucyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBUQk9ESUVTCiAgICAgICAgICAgICAgICBpZiAobW92aW5nRG93biAmJiBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCAhPSBjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QsIGN1cnJlbnRSb3cubmV4dFNpYmxpbmcpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghIG1vdmluZ0Rvd24gJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgIT0gY3VycmVudFJvdykgewogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LCBjdXJyZW50Um93KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKCiAgICAvKiogV2UncmUgb25seSB3b3JyaWVkIGFib3V0IHRoZSB5IHBvc2l0aW9uIHJlYWxseSwgYmVjYXVzZSB3ZSBjYW4gb25seSBtb3ZlIHJvd3MgdXAgYW5kIGRvd24gKi8KICAgIGZpbmREcm9wVGFyZ2V0Um93OiBmdW5jdGlvbihkcmFnZ2VkUm93LCB5KSB7CiAgICAgICAgdmFyIHJvd3MgPSBqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlLnJvd3M7CiAgICAgICAgZm9yICh2YXIgaT0wOyBpPHJvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHJvdyA9IHJvd3NbaV07CiAgICAgICAgICAgIHZhciByb3dZICAgID0gdGhpcy5nZXRQb3NpdGlvbihyb3cpLnk7CiAgICAgICAgICAgIHZhciByb3dIZWlnaHQgPSBwYXJzZUludChyb3cub2Zmc2V0SGVpZ2h0KS8yOwogICAgICAgICAgICBpZiAocm93Lm9mZnNldEhlaWdodCA9PSAwKSB7CiAgICAgICAgICAgICAgICByb3dZID0gdGhpcy5nZXRQb3NpdGlvbihyb3cuZmlyc3RDaGlsZCkueTsKICAgICAgICAgICAgICAgIHJvd0hlaWdodCA9IHBhcnNlSW50KHJvdy5maXJzdENoaWxkLm9mZnNldEhlaWdodCkvMjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBCZWNhdXNlIHdlIGFsd2F5cyBoYXZlIHRvIGluc2VydCBiZWZvcmUsIHdlIG5lZWQgdG8gb2Zmc2V0IHRoZSBoZWlnaHQgYSBiaXQKICAgICAgICAgICAgaWYgKCh5ID4gcm93WSAtIHJvd0hlaWdodCkgJiYgKHkgPCAocm93WSArIHJvd0hlaWdodCkpKSB7CiAgICAgICAgICAgICAgICAvLyB0aGF0J3MgdGhlIHJvdyB3ZSdyZSBvdmVyCgkJCQkvLyBJZiBpdCdzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHJvdywgaWdub3JlIGl0CgkJCQlpZiAocm93ID09IGRyYWdnZWRSb3cpIHtyZXR1cm4gbnVsbDt9CiAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0galF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZS50YWJsZURuRENvbmZpZzsKICAgICAgICAgICAgICAgIGlmIChjb25maWcub25BbGxvd0Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uQWxsb3dEcm9wKGRyYWdnZWRSb3csIHJvdykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewoJCQkJCS8vIElmIGEgcm93IGhhcyBub2Ryb3AgY2xhc3MsIHRoZW4gZG9uJ3QgYWxsb3cgZHJvcHBpbmcgKGluc3BpcmVkIGJ5IEpvaG4gVGFyciBhbmQgRmFtaWMpCiAgICAgICAgICAgICAgICAgICAgdmFyIG5vZHJvcCA9IGpRdWVyeShyb3cpLmhhc0NsYXNzKCJub2Ryb3AiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoISBub2Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcm93OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfSwKCiAgICBtb3VzZXVwOiBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYgKGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QpIHsKICAgICAgICAgICAgdmFyIGRyb3BwZWRSb3cgPSBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdDsKICAgICAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBkcmFnT2JqZWN0LCB0aGVuIHdlIG5lZWQgdG8gcmVsZWFzZSBpdCwKICAgICAgICAgICAgLy8gVGhlIHJvdyB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIG1vdmVkIHRvIHRoZSByaWdodCBwbGFjZSBzbyB3ZSBqdXN0IHJlc2V0IHN0dWZmCgkJCWlmIChjb25maWcub25EcmFnQ2xhc3MpIHsKCSAgICAgICAgICAgIGpRdWVyeShkcm9wcGVkUm93KS5yZW1vdmVDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgalF1ZXJ5KGRyb3BwZWRSb3cpLmNzcyhjb25maWcub25Ecm9wU3R5bGUpOwoJCQl9CiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ICAgPSBudWxsOwogICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJvcCkgewogICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKICAgICAgICAgICAgICAgIGNvbmZpZy5vbkRyb3AoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSwgZHJvcHBlZFJvdyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IG51bGw7IC8vIGxldCBnbyBvZiB0aGUgdGFibGUgdG9vCiAgICAgICAgfQogICAgfSwKCiAgICBzZXJpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgICAgIGlmIChqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlKSB7CiAgICAgICAgICAgIHJldHVybiBqUXVlcnkudGFibGVEbkQuc2VyaWFsaXplVGFibGUoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICJFcnJvcjogTm8gVGFibGUgaWQgc2V0LCB5b3UgbmVlZCB0byBzZXQgYW4gaWQgb24geW91ciB0YWJsZSBhbmQgZXZlcnkgcm93IjsKICAgICAgICB9CiAgICB9LAoKCXNlcmlhbGl6ZVRhYmxlOiBmdW5jdGlvbih0YWJsZSkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB2YXIgdGFibGVJZCA9IHRhYmxlLmlkOwogICAgICAgIHZhciByb3dzID0gdGFibGUucm93czsKICAgICAgICBmb3IgKHZhciBpPTA7IGk8cm93cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHJlc3VsdCArPSAiJiI7CiAgICAgICAgICAgIHZhciByb3dJZCA9IHJvd3NbaV0uaWQ7CiAgICAgICAgICAgIGlmIChyb3dJZCAmJiByb3dJZCAmJiB0YWJsZS50YWJsZURuRENvbmZpZyAmJiB0YWJsZS50YWJsZURuRENvbmZpZy5zZXJpYWxpemVSZWdleHApIHsKICAgICAgICAgICAgICAgIHJvd0lkID0gcm93SWQubWF0Y2godGFibGUudGFibGVEbkRDb25maWcuc2VyaWFsaXplUmVnZXhwKVswXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVzdWx0ICs9IHRhYmxlSWQgKyAnW109JyArIHJvd0lkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwoJfSwKCglzZXJpYWxpemVUYWJsZXM6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJcmVzdWx0ICs9IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZSh0aGlzKTsKCQl9KTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQoKfQoKalF1ZXJ5LmZuLmV4dGVuZCgKCXsKCQl0YWJsZURuRCA6IGpRdWVyeS50YWJsZURuRC5idWlsZCwKCQl0YWJsZURuRFVwZGF0ZSA6IGpRdWVyeS50YWJsZURuRC51cGRhdGVUYWJsZXMsCgkJdGFibGVEbkRTZXJpYWxpemU6IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZXMKCX0KKTs=]]></data>
	</file>
	<file>
	  <filename>/includes/new_form_footer.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CXskZmJfZm9ybV9lbmR9CnsvaWZ9CnskZmJfZm9ybV9mb290ZXJ9]]></data>
	</file>
	<file>
	  <filename>/includes/new_form_header.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmYl9mb3JtX2hlYWRlcn0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0KCXsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQoJe2lmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4KCQl7aWYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPgoJCTx1bD4KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0KCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCXsvZm9yZWFjaH0KCQk8L3VsPgoJCTwvZGl2PgoJey9pZn0KCXtpZiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/includes/Sample_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjQiCglhbGlhcz0ic2FtcGxlX2Zvcm0iPgoJCTxmb3JtX25hbWU+PCFbQ0RBVEFbU2FtcGxlIEZvcm1dXT48L2Zvcm1fbmFtZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2FjdGlvbiI+PCFbQ0RBVEFbdGV4dF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVzZV9jYXRjaGEiPjwhW0NEQVRBW11dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ0aXRsZV91c2VyX2NhcHRjaGEiPjwhW0NEQVRBW1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InByZXZfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0JhY2suLi5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iaW5saW5lIj48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9qYXZhc2NyaXB0Ij48IVtDREFUQVtdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV90ZW1wbGF0ZSI+PCFbQ0RBVEFbeyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+CgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8ZGl2IGNsYXNzPSJlcnJvciI+CgkJCTx1bD4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQkJey9mb3JlYWNofQoJCQk8L3VsPgoJCTwvZGl2PgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4KCQk8dWw+CgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9CgkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQl7L2ZvcmVhY2h9CgkJPC91bD4KCQk8L2Rpdj4KCXsvaWZ9Cgl7aWYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4KCTxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08c3Bhbj57JHRpdGxlX3BhZ2VfeF9vZl95fTwvc3Bhbj57L2lmfQoJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQogICAgICAgIAl7c3RyaXB9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTxkaXYKICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSIKICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CiAgICAgICAgICAgICAgICAJCXJlcXVpcmVkCiAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30KICAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+Y3NzX2NsYXNzfQogICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAJCSIKICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQogICAgICAgICAgICAgICAJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk8L2xhYmVsPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAgICAgICAgIAl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAJCXtlbHNlfQogICAgICAgICAgICAgICAJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXsvaWZ9CiAgICAgICAgICAgIAl7L3NlY3Rpb259CiAgICAgICAgIAl7ZWxzZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPC9kaXY+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJey9zdHJpcH0KICAgICAJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2PgoJPC9kaXY+Cgl7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ0aXRsZV9wb3NpdGlvbiI+PCFbQ0RBVEFbbGVmdF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJsaXN0X2RlbGltaXRlciI+PCFbQ0RBVEFbIC0gXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlcXVpcmVkX2ZpZWxkX3N5bWJvbCI+PCFbQ0RBVEFbKl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ1bnNwZWNpZmllZCI+PCFbQ0RBVEFbW3Vuc3BlY2lmaWVkXV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJuZXh0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtDb250aW51ZS4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW1NlbmQgRmVlZGJhY2tdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV9kaXNwbGF5dHlwZSI+PCFbQ0RBVEFbdGFiXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNzc19jbGFzcyI+PCFbQ0RBVEFbZm9ybWJ1aWxkZXJmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNhcHRjaGFfd3JvbmciPjwhW0NEQVRBW0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Ll1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfcmVzcG9uc2UiPjwhW0NEQVRBWzxoMT5UaGFua3MhPC9oMT4KCjxwPllvdXIgZmVlZGJhY2sgaGVscHMgbWUgbWFrZSB0aGlzIGEgYmV0dGVyIG1vZHVsZS48L3A+Cgo8cD5JZiB5b3UnZCBsaWtlIHRvIGNvbnRyaWJ1dGUgdG8gdGhlIGZ1dHVyZSBkZXZlbG9wbWVudCBvZiBGb3JtQnVpbGRlciwgeW91IGNhbiBtYWtlIGEgZG9uYXRpb24gYmVsb3cuIEkgd2lsbCBiZSBoYXBweSB0byBnaXZlIGRvbm9ycyBjcmVkaXQgYXMgYSBzcG9uc29yIGluIHRoZSBGb3JtQnVpbGRlciBoZWxwLiBFdmVyeSBiaXQgaGVscHMhPC9wPgoKPGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRfYnV0dG9uX2lkIiB2YWx1ZT0iMjA1NzIzMSI+CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfU00uZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSIiPgo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8L2Zvcm0+Cl1dPjwvYXR0cmlidXRlPgoJPGZpZWxkIGlkPSIyNiIKCQl0eXBlPSJGaWVsZHNldFN0YXJ0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0ZpZWxkc2V0IFN0YXJ0XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJsZWdlbmQiPjwhW0NEQVRBW0hlbHAgSW1wcm92ZSBGb3JtIEJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIyNyIKCQl0eXBlPSJEaXNwb3NpdGlvbkVtYWlsIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIzIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1NlbmQgSXRdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb25zPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3N1YmplY3QiPjwhW0NEQVRBW0Zvcm1CdWlsZGVyIFNhbXBsZSBGb3JtIFN1Ym1pc3Npb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlciBJbnN0YWxsYXRpb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX2FkZHJlc3MiPjwhW0NEQVRBW3lvdUB5b3VyaG9zdC5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZXN0aW5hdGlvbl9hZGRyZXNzIj48IVtDREFUQVtzamdAY21zbW9kdWxlcy5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbPGgxPlNvbWVvbmUncyBUZXN0aW5nIGEgRm9ybUJ1aWxkZXIgU3VibWlzc2lvbiE8L2gxPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPkRhdGUgb2YgU3VibWlzc2lvbjwvc3Ryb25nPjogeyRzdWJfZGF0ZX08YnIgLz4KPHN0cm9uZz5Zb3VyIHNlcnZlcjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5JUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9PGJyIC8+CjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+Cgo8aHIgLz4KPHN0cm9uZz5Nb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlcjwvc3Ryb25nPjogeyRtb2R1bGVzX3lvdV9sbF9iZV91c2luZ308YnIgLz4KPHN0cm9uZz5XaGF0IHdpbGwgeW91IHBlcnNvbmFsbHkgYmUgZG9pbmcgb24geW91ciBDTVMgTVMgc2l0ZT88L3N0cm9uZz46IHskd2hhdF93aWxsX3lvdX08YnIgLz4KPHN0cm9uZz5XaGVyZSBhcmUgeW91IGZyb20/PC9zdHJvbmc+OiB7JHdoZXJlX2FyZV95b3VfZnJvbV99PGJyIC8+CjxzdHJvbmc+RG8geW91IGhhdmUgYW55IGNvbW1lbnRzIC8gZmVlZGJhY2sgZm9yIG1lPzwvc3Ryb25nPjogeyRkb195b3VfaGF2ZV9hbnl9PGJyIC8+Cl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2VuY29kaW5nIj48IVtDREFUQVt1dGYtOF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9Imh0bWxfZW1haWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMjgiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI0IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1dlbGNvbWUhXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJ0ZXh0Ij48IVtDREFUQVtUaGFua3MgZm9yIHRyeWluZyBvdXQgRm9ybUJ1aWxkZXIuIFlvdSBjYW4gdXNlIHRoaXMgZm9ybSB0byBwcm92aWRlIG1lIHdpdGggZmVlZGJhY2sgYWJvdXQgaG93IHlvdSB3aWxsIGJlIHVzaW5nIEZvcm0gQnVpbGRlciwgc28gSSBjYW4gYmVzdCBhbGxvY2F0ZSByZXNvdXJjZXMgZm9yIGZ1dHVyZSBkZXZlbG9wbWVudC4gVGhhbmtzLCBfX19TYW11ZWxfX19dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW21lc3NhZ2VdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJmaWVsZF9hbGlhcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjI5IgoJCXR5cGU9IkNoZWNrYm94R3JvdXBGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWFsaWFzPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtNb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlcl1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0ibm9fZW1wdHkiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGb3JtQnVpbGRlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGb3JtQnJvd3Nlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGcm9udCBFbmQgVXNlcnNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbTmV3c2xldHRlciBNYWRlIFNpbXBsZSAoTk1TKV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtDYXRhbG9nZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbT3RoZXIocyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRm9ybUJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRm9ybUJyb3dzZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRkVVXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW05NU11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtDYXRhbG9nZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbT3RoZXIocyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVsobm90IEZvcm1CdWlsZGVyKV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBWyhub3QgRm9ybUJyb3dzZXIpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBGRVUpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBOTVMpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBDYXRhbG9nZXIpXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vIE90aGVycyldXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVt5XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMzAiCgkJdHlwZT0iQ2hlY2tib3hHcm91cEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI2IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiCgkJYWxpYXM9IiI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1doYXQgd2lsbCB5b3UgcGVyc29uYWxseSBiZSBkb2luZyBvbiB5b3VyIENNUyBNUyBzaXRlP11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbnM+CgkJCTxvcHRpb24gbmFtZT0ibm9fZW1wdHkiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbR3JhcGhpY2FsIERlc2lnbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtIVE1MIGFuZCBDU1NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbV3JpdGUgLyBNYWludGFpbiBDb250ZW50XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0VkaXQgU21hcnR5IFRlbXBsYXRlc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtXcml0ZSBNb2R1bGVzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW1dyaXRlIENvcmUgQ01TIGNvZGVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbRG9uYXRlIHRvIENvcmUvTW9kdWxlIERldmVsb3Blc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtHcmFwaGljYWwgRGVzaWduXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW0hUTUwvQ1NTXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW0NvbnRlbnRdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbU21hcnR5XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW01vZHVsZXNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbQ29yZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtkb25hdGUhXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTx2YWx1ZT48L3ZhbHVlPgoJCQk8L29wdGlvbnM+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjMxIgoJCXR5cGU9IkNvdW50cnlQaWNrZXJGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWFsaWFzPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtXaGVyZSBhcmUgeW91IGZyb20/XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJkZWZhdWx0Ij48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJzZWxlY3Rfb25lIj48IVtDREFUQVtTZWxlY3QgT25lXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMzIiCgkJdHlwZT0iVGV4dEFyZWFGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iOCIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIgoJCWFsaWFzPSIiPgoJCQk8ZmllbGRfbmFtZT48IVtDREFUQVtEbyB5b3UgaGF2ZSBhbnkgY29tbWVudHMgLyBmZWVkYmFjayBmb3IgbWU/XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InJvd3MiPjwhW0NEQVRBWzEwXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY29scyI+PCFbQ0RBVEFbNjBdXT48L29wdGlvbj4KCQkJPHZhbHVlPjwvdmFsdWU+CgkJCTwvb3B0aW9ucz4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMzMiCgkJdHlwZT0iRmllbGRzZXRFbmQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjkiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCIKCQlhbGlhcz0iIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbRmllbGRzZXQgRW5kXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9ucz4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8dmFsdWU+PC92YWx1ZT4KCQkJPC9vcHRpb25zPgo8L2ZpZWxkPgo8L2Zvcm0+Cg==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRW5nbGlzaF9VUyBMb2NhbGl6YXRpb24gRmlsZQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRm9ybSBCdWlsZGVyJzsKCi8vIGZpZWxkIHR5cGVzCiRsYW5nWydmaWVsZF90eXBlXyddPSdGaWVsZCBUeXBlIE5vdCBTZXQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU2VsZWN0IG9uZSAob3IgbW9yZSkgY2F0YWxvZ2VyIGl0ZW1zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmllbGRzZXQgRW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddPSctRmllbGRzZXQgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXT0nVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXT0nSFRNTDUgTnVtYmVyIElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVFbWFpbEZpZWxkJ109J0hUTUw1IEVtYWlsIElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddPSdIVE1MNSBVUkwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ109J1Bhc3N3b3JkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ109J1Bhc3N3b3JkIEFnYWluICh2ZXJpZnkpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddPSdUZXh0IElucHV0IChNdWx0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ109J1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ109J0J1dHRvbic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXT0nQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ109J0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXT0nUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddPSdZZWFyIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddPSdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXT0nVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ109J0NhbmFkaWFuIFByb3ZpbmNlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddPSdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddPSdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddPSdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddPSdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ109JypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ109JypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddPScqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ109JypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ109JypFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddPScqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXT0nKldyaXRlIFJlc3VsdHMgdG8gYSBVbmlxdWUgRmxhdCBGaWxlIGZvciBlYWNoIHN1Ym1pc3Npb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ109JypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddPScqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMC4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ109JypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXT0nKkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXT0nKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXT0nKkVtYWlsIHJlc3VsdHMgYmFzZWQgb24gZnJvbnRlbmQgZmllbGRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXT0nLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXT0nRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXT0nRW1haWwgIkZyb20gQWRkcmVzcyIgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsICJGcm9tIEFkZHJlc3MiIEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ109J0VtYWlsICJGcm9tIE5hbWUiIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ109J0VtYWlsICJTdWJqZWN0IiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddPSctU3RhdGljIFRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXT0nLVN0YXRpYyBMaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ109J0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ109Jy1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy1Vc2VyIERlZmluZWQgVGFnIENhbGwnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDb21wYW55IERpcmVjdG9yeSBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLU1vZHVsZSBJbnRlcmZhY2UgRmllbGQnOwoKLy8gdmFsaWRhdGlvbiB0eXBlcwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ109J05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ109J051bWVyaWMnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ109J0ludGVnZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ109J0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ109J1Bob25lIE51bWJlciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddPSdNdXN0IEJlIENoZWNrZWQnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddPSdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ109J0RvZXNuXCd0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CgovLyB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzIGFuZCBvdGhlciBhbGVydHMKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdBIHZhbHVlIHdhcyBub3Qgc3VwcGxpZWQgZm9yIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXT0nUGxlYXNlIGVudGVyIGEgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ109J1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbnRyeSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddPSdQbGVhc2UgZW50ZXIgYW4gaW50ZWdlciB2YWx1ZSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXT0nUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyBmb3IgIiVzIic7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ109J0VtYWlsIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggdmFsdWUgaW4gIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddPSdQbGVhc2UgZW50ZXIgYSB2YWxpZCBwaG9uZSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnUGxlYXNlIGxvZyBpbiB0byB1c2UgdGhpcyBmb3JtJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddPSciJXMiIGRvZXMgbm90IGFwcGVhciB0byBiZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXT0nUGxlYXNlIGVudGVyIGEgdmFsdWUgdGhhdCBpcyBubyBsb25nZXIgdGhhbiAlcyBjaGFyYWN0ZXJzJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hdF9sZWFzdCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgYXQgbGVhc3QgJXMgY2hhcmFjdGVycyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ109J1lvdSBuZWVkIHRoZSAiJXMiIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXT0nU29ycnkhIFlvdSBkb25cJ3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXT0nRmllbGQgb3JkZXIgdXBkYXRlZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ109J0Zvcm0gZGVsZXRlZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddPSdGaWVsZCBkZWxldGVkLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXT0nQ29uZmlndXJhdGlvbiBVcGRhdGVkLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddPSdZb3UgbXVzdCBjaGVjayAiJXMiIGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ109J1lvdSBuZWVkIHRvIHNwZWNpZnkgYXQgbGVhc3Qgb25lIGRlc3RpbmF0aW9uIGFkZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddPSdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ109J0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXT0nQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ109J1RoZSBmaWVsZCBuYW1lICIlcyIgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGaWVsZHMgbXVzdCBiZSBuYW1lZCwgdW5sZXNzIHlvdSBkaXNhYmxlIHRoaXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydub19maWVsZF9hc3NpZ25lZCddID0gJ05vIGZpZWxkIGFzc2lnbmVkIGZvciAlcyc7CgovLyBhYmJyZXZpYXRpb25zLCB2ZXJicywgYW5kIG90aGVyIGdlbmVyYWwgdGVybXMKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW91cyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ109J0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXT0nJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddPSclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ109JyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddPSdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddPSdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ109J2FkZGVkJzsKJGxhbmdbJ3VwZGF0ZWQnXT0ndXBkYXRlZCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXT0nU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddPSdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddPSdUbyc7CiRsYW5nWyd5ZXMnXT0nWWVzJzsKJGxhbmdbJ25vJ109J05vJzsKJGxhbmdbJ3JlY2lwaWVudHMnXT0ncmVjaXBpZW50cyc7CiRsYW5nWydmaWVsZHMnXT0nZmllbGRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ109J1NhdmUnOwokbGFuZ1snYWRkJ109J0FkZCc7CiRsYW5nWyd1cGRhdGUnXT0nVXBkYXRlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ109J1NhdmUgYW5kIENvbnRpbnVlIEVkaXRpbmcnOwokbGFuZ1snaW5mb3JtYXRpb24nXT0nSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ109J0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddPSdGb3Jtcyc7CiRsYW5nWydmb3JtJ109J0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddPSdDb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGaWVsZCByZXF1aXJlZCBzdGF0ZSB1cGRhdGVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXT0nTWF4LiBTaXplJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ109J0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddPSdBbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXT0nVXBsb2FkZWQgZmlsZSBpcyB0b28gbGFyZ2UhIE1heGltdW0gc2l6ZSBpczonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXT0nVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcm93cyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29scyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgSG91ciBDbG9jayc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgSG91ciBDbG9jayc7CiRsYW5nWydob3VyJ10gPSAnSG91cic7CiRsYW5nWydtaW4nXSA9ICdNaW51dGUnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RheSddID0gJ0RheSc7CiRsYW5nWydtb24nXSA9ICdNb250aCc7CiRsYW5nWyd5ZWFyJ10gPSAnWWVhcic7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7Ci8vJGxhbmdbJ3llYXJfc3RhcnQnXSA9ICdTdGFydCB5ZWFyJzsKCiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CgokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnQmFjay4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU3VibWl0IEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnQ29udGludWUuLi4nOwoKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CgokbGFuZ1sndGFiX21haW4nXT0nTWFpbic7CiRsYW5nWyd0YWJfc3ltYm9sJ109J0Zvcm0gRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfc3VibWl0J109J0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddPSdDYXB0Y2hhIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddPSdBZHZhbmNlZCBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgSW50ZWdyYXRpb24nOwoKCiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKCi8vIEZpZWxkIEF0dHJpYnV0ZSBUaXRsZXMKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9IDw8PEVPVApCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHtcJGZsZF9pZH08YnIvPgo8YnIvPgpFT1Q7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmllbGQgSGVpZ2h0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGUnXSA9ICdBbGxvdyB1cGxvYWQgdG8gb3ZlcndyaXRlIHByZXZpb3VzbHkgZmlsZXM/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAnU2hvdWxkIHVwbG9hZGVkIGZpbGUgb3ZlcndyaXRlIHByZXZpb3VzbHkgdXBsb2FkZWQgZmlsZSBpZiBpdCBoYXMgdGhlIHNhbWUgbmFtZT8nOwokbGFuZ1snb3ZlcndyaXRlJ109J0FsbG93cyBPdmVyd3JpdGluZyc7CiRsYW5nWydub292ZXJ3cml0ZSddPSdObyBPdmVyd3JpdGUnOwokbGFuZ1snZmlsZV9hbHJlYWR5X2V4aXN0cyddPSdGaWxlICVzIGFscmVhZHkgZXhpc3RzLCBhbmQgY2Fubm90IGJlIG92ZXJ3cml0dGVuLic7CiRsYW5nWyd0aXRsZV9maWxlX3JlbmFtZSddPSdGaWxlbmFtZSB0ZW1wbGF0ZSc7CiRsYW5nWydvcmlnaW5hbF9maWxlX2V4dGVuc2lvbiddPSdPcmlnaW5hbCBmaWxlIGV4dGVuc2lvbiAoaW5jbHVkZXMgdGhlICIuIiknOwokbGFuZ1sndGl0bGVfc3VwcHJlc3NfZmlsZW5hbWUnXT0nU3VwcHJlc3MgZmlsZW5hbWUgaW4gZW1haWxzIGFuZCBmb3JtcyB0aGUgZW5kIHVzZXIgd2lsbCBzZWUnOwokbGFuZ1snZmlsZV9yZW5hbWVfaGVscCddPSdUbyByZW5hbWUgYSBmaWxlIHVwb24gdXBsb2FkaW5nLCBjcmVhdGUgdGhlIHRlbXBsYXRlIGhlcmUuIExlYXZlIGJsYW5rIHRvIHByZXNlcnZlIG9yaWdpbmFsIGZpbGVuYW1lJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddPSdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddPSdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddPSdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddPSdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ109J1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXT0nQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddPSciU2VsZWN0IE9uZSIgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddPSdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J109J0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ109J0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ109J0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ109Ik9wdGlvbiBOYW1lIjsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddPSJWYWx1ZSBTdWJtaXR0ZWQiOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddPSdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXT0nTXVsdGlzZWxlY3QgT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ109J0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ109JyJGcm9tIG5hbWUiIGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J109J1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ109J1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgInhAeSIgaW5zdGVhZCBvZiByZXF1aXJpbmcgInhAeS50bGQiKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXT0nIkZyb20gYWRkcmVzcyIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ109J0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddPSdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ109J0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J109J0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXT0nRm9ybSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ109J0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J109J1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXT0nTm90IFJlYWR5JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXT0nUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddPSdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlclwncyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXT0ndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddPSdGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J109J0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ109J0Zvcm0gRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ109J0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ109J1Nob3cgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ109J0NsaWNraW5nIHRoaXMgd2lsbCBkaXNwbGF5IGZpZWxkIGFsaWFzZXMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddPSdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ109J0ZpZWxkIEFsaWFzIGFuZCBET00gaWQgKENTUyBpZCkgYXR0cmlidXRlJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddPSdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ109J0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddPSd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ109J0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ109J0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXT0nU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXT0nVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXT0nQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXT0nRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXT0nQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXT0nQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ109J0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXT0nRm9ybSAiTmV4dCIgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gIlByZXZpb3VzIiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ109J0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdGaWVsZCB0byBWYWxpZGF0ZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXT0nQ1NTIGlkIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ109J0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddPSdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgdGhlIGZpcnN0IHRpbWUgKG9ubHkgY2FsbGVkIG9uY2UpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgKGNhbGxlZCBvbiBldmVyeSBwYWdlIG9mIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgZHVyaW5nIGZvcm0gdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddPSdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXT0nUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddPSdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddPSdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddPSdIaWRlIHRoaXMgZmllbGRcJ3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCddPSdNYXhpbXVtIGxlbmd0aCBvZiBmaWVsZCBjb250ZW50ICgwIG9yIGJsYW5rIG1lYW5zIG5vIGxpbWl0KSc7CiRsYW5nWyd0aXRsZV90ZXh0J109J1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXT0nVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnUmVhZCBPbmx5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXT0nTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddPSdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXT0nVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgInZhbGlkYXRpb24gdHlwZSIgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgIi9pbWFnZVwuKFxkKykvaSIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddPSdSZXFcJ2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXT0nSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXT0nUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXT0nRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ109J01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZXMgaW50byc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddPSdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ109J0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAianBnLGdpZixqcGVnIikuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddPSdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ109J0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ109J1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXT0nRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXT0nVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ109J0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ109J0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddPSdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ109J0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ109J0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXT0nVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXT0nR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXT0nQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddPSdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXT0nRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXT0nRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddPSdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiJDYXB0Y2hhIjwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddPSdDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvblwndCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ109J0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddPSdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddPSdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXT0nVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXT0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXT0nRGVmYXVsdCB0byBibGFuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXT0nRGVmYXVsdCB0byBibGFuayAodW5jaGVjayB0byBkZWZhdWx0IHRvIHRvZGF5XCdzIGRhdGUpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXT0nRGlzcGxheSBVc2VyXCdzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddPSdEaXNwbGF5IFVzZXJcJ3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXT0nRGlzcGxheSBVc2VyXCdzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXT0nUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdFbmNyeXB0IGRhdGEgc3RvcmVkIGluIGRhdGFiYXNlJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2F0ZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1Bhc3NwaHJhc2Ugb3IgcGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgcGFzc3BocmFzZS4gKElmIHVzaW5nIE9wZW5TU0wsIHRoaXMgaXMgdGhlIHBhc3NwaHJhc2UgZm9yIHRoZSBwcml2YXRlIGtleSknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCBzb3J0IGZpZWxkcz8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRlIEtleSB0byB1c2UgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1RoaXMgaGFzaGVzIHRoZSBzb3J0IGZpZWxkcywgYnV0IGxlYXZlcyB0aGUgZmlyc3QgZmV3IGxldHRlcnMgdW5lbmNyeXB0ZWQuIENyeXB0b2dyYXBoaWNhbGx5LCB0aGlzIGNyZWF0ZXMgYSB2dWxuZXJhYmlsaXR5LCBidXQgZm9yIG1vc3QgdXNlcnMgaXQgaXMgYW4gYWNjZXB0YWJsZSB0cmFkZW9mZiBiZXR3ZWVuIHNlY3VyaXR5IGFuZCB0aGUgYWJpbGl0eSB0byBzb3J0IHJlY29yZHMuIFNvcnRpbmcgYmVjb21lcyBhcHByb3hpbWF0ZSwgYnV0IHdpbGwgcmVtYWluIHByZXR0eSBnb29kLiBJZiB5b3UgZG8gbm90IHVzZSB0aGlzIG9wdGlvbiwgc29ydCBmaWVsZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU3RvcmFnZSBFbmNyeXB0aW9uIFVuYXZhaWxhYmxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIE9wZW5TU0wgbW9kdWxlIG9yIG1jcnlwdCBzdXBwb3J0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBkYXRhYmFzZSBlbmNyeXB0aW9uLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdQbGVhc2UgbWFrZSBzdXJlIHlvdSBoYXZlIENVUkwgc3VwcG9ydCBhY3RpdmUgaW4geW91ciBQSFAgaW5zdGFsbC4gU2VlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ1J1biBpbiBNTEUgTW9kZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXT0nRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdPcGVuU1NMIExpYnJhcnknOwokbGFuZ1snbWNyeXB0J10gPSAnUEhQIG1jcnlwdCBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kaW5nJ10gPSAnRnJvbnRlbmQgVXNlciBiaW5kaW5nJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIEZyb250ZW5kIFVzZXIgbW9kdWxlIHRvIGNvbm5lY3QgYSBmb3JtIGFuZCBpdHMgZGF0YSB0byBhIHNwZWNpZmljIHVzZXInOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gbG9jayBmcm9udC1lbmQgYWNjZXNzIHRvIHRoaXMgZm9ybVwncyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aW9uJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1tcJ0ZPUk1cJ10/IChkbyBub3QgZG8gdGhpcyBpZiB5b3UgYXJlIGdvaW5nIHRvIHByaW50X3IoJHBhcmFtcykgKSc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ0VudGlyZSBVUkwsIGluY2x1ZGluZyBwcm90b2NvbCBhbmQgcGF0aCAoZS5nLiwgaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnRm9ybSBzdWJtaXNzaW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdGb3JtIG1ldGhvZCc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnTWFwIGZpZWxkICIlcyIgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgInVzZXI9c3RldmUram9icyZlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXT0nRGF0ZSBjb21wb25lbnQgZmllbGQgb3JkZXIgKGZvciBpbnB1dCknOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhbiBYTUwgZm9ybWF0IGluIHRoZSBbUFJFRklYXV9tb2R1bGVfZmJfZm9ybWJyb3dzZXIgZGF0YWJhc2UgdGFibGUuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0Vycm9yISBFaXRoZXIgdGhlIGZvcm0gaGFzIG5vIEZvcm0gQnJvd3NlciBEaXNwb3NpdGlvbiwgb3IgaXQgZmFpbGVkIHRvIGluc3RhbnRpYXRlIChkdWUgdG8gbWVtb3J5IGlzc3Vlcz8pJzsKJGxhbmdbJ2hlbHBfZGF0ZV9vcmRlciddPSdVc2UgIm0iIGZvciBNb250aCwgImQiIGZvciBEYXksIGFuZCAieSIgZm9yIFllYXIuIFNlcGFyYXRlIHRoZSBpdGVtcyBieSBoeXBoZW5zLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXInOwokbGFuZ1sndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InXSA9ICdVc2UgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaW5zdGVhZCBvZiBzdGF0aWMnOwokbGFuZ1sndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZSddID0gJ0hvdyBtYW55IG51bWJlcnMgdG8gZ2VuZXJhdGUgaW4gcHJvY2Vzcyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddPSdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddPSdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXT0nRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXT0nWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ109J0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ109J1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXT0nRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddPSdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfaWdub3JlZF9pZl91cGxvYWQnXT0nKFRoaXMgZmllbGQgaWdub3JlZCBpZiB5b3UgdXNlIHRoZSBVcGxvYWRzIG1vZHVsZSB0byBtYW5hZ2UgZmlsZXMpJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ109J0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddPSdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmc6PGJyIC8+PHRhYmxlPgo8dHI+PHRkIGNsYXNzPSJvZGQiPm5hbWU8L3RkPjx0ZCBjbGFzcz0ib2RkIj5GaWVsZCBOYW1lPC90ZD48L3RyPgo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSJvZGQiPmlkPC90ZD48dGQgY2xhc3M9Im9kZCI+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0ib2RkIj52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9Im9kZCI+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICJ7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXT0nU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXT0nVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ109J0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2hlbHBfcnRmX2ZpbGVfdGVtcGxhdGUnXT0nU3BlY2lmeSBhIGZpbGUgbG9jYXRlZCBpbiB0aGUgRm9ybUJ1aWxkZXIvdGVtcGxhdGVzLyBmb2xkZXIuIFRoaXMgZmllbGQgaXMgaWdub3JlZCBpZiB5b3UgdXNlIFRYVCBhcyB5b3VyIGZpbGUgdHlwZS4nOwokbGFuZ1snaGVscF9ydGZfdGVtcGxhdGVfdHlwZSddPSdCYXNpYzogVXNlIHRoZSB0ZXh0YXJlYSBiZWxvdyB0byBsYXlvdXQgdGhlIGZpZWxkIG5hbWVzL3ZhbHVlcyBpbiBhIHNpbmdsZSBibG9jay48YnIgLz4KQWR2YW5jZWQ6IFNwZWNpZnkgU21hcnR5IHZhcmlhYmxlcyBpbiB0aGUgUlRGIFRlbXBsYXRlIEZpbGUgYXMgeW91IHdvdWxkIGJlbG93LCBidXQgYXJyYW5nZSB0aGVtIGhvd2V2ZXIgeW91IGxpa2UgYW5kIGFkZCBmb3JtYXR0aW5nLjxiciAvPgombmJzcDtZb3UgY2FuIHN0aWxsIHVzZSB0aGUgJSVIRUFERVIlJSBhbmQgJSVGT09URVIlJSBzZWN0aW9ucyBpbiB0aGUgUlRGIGZpbGUuJzsKJGxhbmdbJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXT0nRm9yIFRYVCwgdGhpcyB3aWxsIGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBIZWFkZXIgVGVtcGxhdGUuPGJyIC8+CkZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZJRUxEUyUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZSBpZiBSVEYgVGVtcGxhdGUgVHlwZSBpcyBzZXQgdG8gIkJhc2ljIi48YnIgLz4KVGhpcyBmaWVsZCB3aWxsIGJlIGlnbm9yZWQgaWYgdXNpbmcgIlJURiIgYXMgRmlsZSBUeXBlIGFuZCAiQWR2YW5jZWQiIGFzIFJURiBUZW1wbGF0ZSBUeXBlLic7CiRsYW5nWydoZWxwX2ZpbGVfaGVhZGVyX3RlbXBsYXRlJ109J0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlSEVBREVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydoZWxwX2ZpbGVfZm9vdGVyX3RlbXBsYXRlJ109J0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlRk9PVEVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddPScmIzE3MTsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXT0nQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXT0nQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgRm9vdGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ109J0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddPSdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddPSdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXT0nVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXT0nVGVtcGxhdGUgZm9yIHRoZSBmb290ZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfcnRmX2ZpbGVfdGVtcGxhdGUnXT0nVGVtcGxhdGUgUlRGIGZpbGUgdG8gdXNlJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ109J1RlbXBsYXRlIGZvciBvdXRwdXQnOwokbGFuZ1sndGl0bGVfZmlsZV90eXBlJ109J0Nob29zZSBhIGZpbGUgdHlwZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfcnRmX3RlbXBsYXRlX3R5cGUnXT0nQ2hvb3NlIGFuIFJURiB0ZW1wbGF0ZSB0eXBlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXT0nVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J109J0RhdGUgRm9ybWF0IGZvciBkaXNwbGF5IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXT0nVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJ3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAiRGlzcG9zaXRpb24iIGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9kYXRlJ109J0RhdGUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXT0nRGF0ZSBBcHByb3ZlZCAoYnkgYWRtaW4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXT0nRGF0ZSBBcHByb3ZlZCAoYnkgc3VibWl0dGVyKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgImFkdmFuY2VkIiB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdIZWxwLXRleHQgdG8gZGlzcGxheSB3aXRoIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXT0nSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddPSdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdTdHJpbmcgKG5vIHNwYWNlcyBiZXR3ZWVuIGZpZWxkcyk/JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGUnXSA9ICdDb21wdXRlZC9QSFAnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge0Zvcm1CdWlsZGVyfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSJ5b3VyZm4oKSInOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0ieW91cmZuKCkiLjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICJzYWZldHkgc2NyaXB0IiBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ109J0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ109J05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddPSdUb28gbWFueSBjb25mdXNpbmcgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddPSdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddPSdTd2l0Y2ggdG8gU2ltcGxlIE1vZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J109J0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz4KQ2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz4KQWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLjxiciAvPgpJZiBsZWZ0IGJsYW5rLCB0aGlzIHdpbGwgZGVmYXVsdCB0byB5b3VyIGRlZmF1bHQgdXBsb2FkcyBkaXJlY3RvcnkgKCRjb25maWdbXCd1cGxvYWRzX3BhdGhcJ10pLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J109J05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXT0nTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgXCdFbWFpbCAiU3ViamVjdCIgRmllbGRzXCcgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdEaXNwbGF5IGxlbmd0aCc7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ01pbmltdW0gcmVzcG9uc2UgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdIaWRlIGlucHV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1Nob3cgc3ltYm9scyByYXRoZXIgcGxhaW4gdGV4dCB3aGVuIHVzZXIgZW50ZXJzIHBhc3N3b3JkPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ1Bhc3N3b3JkIGRvZXMgbm90IG1hdGNoICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnQmFjayB0byBGb3JtQnVpbGRlciBNYWluIFBhZ2UnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXaGljaCBlbWFpbCBoZWFkZXJzIHNob3VsZCB0aGlzIGlucHV0IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnRG8gbm90IGFjY2VwdCBibGFuayBzcGFjZSBhcyB2YWxpZCByZXNwb25zZSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ1lvdSBtdXN0IGNsaWNrIG9uZSBvZiB0aGUgInNhdmUiIGJ1dHRvbnMgdG8gbWFrZSB5b3VyIG5ldyBmaWVsZCBvcmRlciBwZXJtYW5lbnQuJzsKJGxhbmdbJ3RpdGxlX2h0bWw1J10gPSAnVXNlIEhUTUw1IHBsYWNlaG9sZGVyIHRleHQgaW5zdGVhZCBvZiBKYXZhc2NyaXB0JzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyJGcm9tIiBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyJSZXBseS1UbyIgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ0JvdGggIkZyb20iIGFuZCAiUmVwbHktVG8iIGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXT0nRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ109J1NlbGVjdCBMaXN0IChzaW5nbGUpJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ109J1NlbGVjdCBMaXN0IChtdWx0aXBsZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXT0nUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ109J05vdGU6IE91dHB1dCB3aWxsIGJlIGluIHRoZSBmb3JtIG9mPGJyLz4iY29tcGFueSBuYW1lIj0+InZhbHVlIic7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXT0nUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddPSdQdWxsIGEgZmllbGQgRGVmaW5pdGlvblwncyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddPSdDaG9vc2UgVXNlciBpbnB1dCc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXT0nKEFsc28gdGFrZSBhIGxvb2sgYXQgdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIgaWYgeW91IHdhbnQgdG8gc2V0IGEgVURUIGZvciBmb3JtIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXT0nRW5kIHllYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXT0nU21hcnR5IGRhdGEgb3IgbG9naWMgdGhhdCBpcyBtZWFudCB0byBiZSBzZW50IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ109J0NhbiBiZSBzbWFydHkgZGF0YSwgamF2YXNjcmlwdCwgb3Igc29tZSBvdGhlciBkYXRhIHlvdSB3YW50IHRvIHNlbnQgYWxvbmcgd2l0aCB0aGlzIGZpZWxkLjxiciAvPkdvZXMgdGhyb3VnaCB0aGUgU21hcnR5IGNvbXBpbGVyLCBzbyByZW1lbWJlciB1c2Uge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdzIHdpdGggJmx0O3NjcmlwdCZndDsmbHQ7L3NjcmlwdCZndDsnOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddPSdJbmNsdWRlIGxhYmVscyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXT0nRW5hYmxpbmcgdGhpcyBpbmNsdWRlcyBsYWJlbHMgdG8gb3V0cHV0LiBleGFtcGxlIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ109J0xpbmsgdGhpcyBmaWVsZCB0byBpdFwncyBzaWJsaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzX2hlbHAnXT0nRHJvcGRvd24gbGlzdHMgYWxsIHNpYmxpbmdzIG9mIHRoaXMgZmllbGQgYW5kIGFsbG93cyB5b3UgdG8gbGluayB0aGlzIGZpZWxkIHRvIG9uZSBvZiBpdFwncyBzaWJsaW5nLiBNYWtlcyBwb3NzaWJsZSBjb250cm9sbGluZyB0aGlzIGZpZWxkIHdpdGggc2VsZWN0ZWQgc2libGluZyBjb250cm9scy4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXT0nSGlkZSBjb250cm9sIGJ1dHRvbnMnOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddPSdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddPSdOb3RlJzsKJGxhbmdbJ3RpdGxlX2NoYW5naW5nX3RyaWdnZXJzX3JlaW5kZXgnXT0nQ2hhbmdpbmcgYW55IG9mIHRoZSBhYm92ZSBmaWVsZHMgd2lsbCB0cmlnZ2VyIGEgcmVpbmRleCBvZiAqYWxsKiBzYXZlZCByZWNvcmRzLCBzbyBpdCBjb3VsZCB0YWtlIGEgd2hpbGUuJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZSddPSdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ109J01ha2UgcmVjb3JkcyBhY2Nlc3NpYmxlIHRvIFNlYXJjaCBNb2R1bGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZV9oZWxwJ109J0NoZWNraW5nIHRoaXMgd2lsbCBtYWtlIGFsbCBzdWJtaXR0ZWQgZGF0YSBhY2Nlc3NpYmxlIHRvIHRoZSBTZWFyY2ggTW9kdWxlLiBETyBOT1QgdXNlIHRoaXMgaWYgeW91IGVuY3J5cHQgeW91ciBkYXRhIC0tIHRoZSBpbmZvcm1hdGlvbiBnZXRzIGV4cG9zZWQgdG8gc2VhcmNoIHdoZXRoZXIgb3Igbm90IGl0IGlzIGVuY3J5cHRlZCEnOwokbGFuZ1sndXBsb2FkZWRfb3V0c2lkZV93ZWJyb290J109JyVzIChvdXRzaWRlIHdlYiByb290KSc7CiRsYW5nWyd0aXRsZV9mYnJfZWRpdCddPSdFZGl0YWJsZSBpbiBGb3JtQnJvd3NlciBBZG1pbj8nOwoKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdVc2VyIGRlZmluZWQgdGFnIHJldHVybmVkIGFuIGVycm9yJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdVc2VyIGRlZmluZWQgdGFnICVzIHJldHVybmVkIGFuIGVycm9yLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXT0nPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddPSdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAiJXMiLic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ109J05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXT0nVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ109J1ZhbGlkYXRpb24gUmVzcG9uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ109J1ZhbGlkYXRpb24gUmVzcG9uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdVwncmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICJkZWZhdWx0IiB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddPSdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CgokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLiBJZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuIElmIHlvdSB1c2UgQ29tcHV0ZWQvUEhQIGV2YWx1YXRpb24sIHlvdSBjYW4KdXNlIGFueSBmdW5jdGlvbiB5b3Ugd2FudCwgYnV0IHlvdSBuZWVkIHRvIHF1b3RlIHRoaW5ncyAoc3Vic3RpdHV0aW9uIG9jY3VycyBiZWZvcmUgZXZhbHVhdGlvbiksIGUuZy4sIHN1YnN0cihcJyRmbGRfMjJcJywwLDIpLlwnJGZsZF8yM1wnLic7IAokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ109J1VzaW5nIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXT0nPGI+VGhpcyBmaWVsZCBpcyB1c2VkIGFzIGEgZ2F0ZXdheSB0byBvdGhlciBtb2R1bGVzITwvYj4KVXNlIGl0IGJ5IGNyZWF0aW5nIHlvdXIgZm9ybSBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGVzIG9mIHRoZSBvdGhlciBtb2R1bGUocykgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUsIGFuZCB1c2luZyB0aGUgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHRvIHRpZSBpdCBiYWNrIHRvIEZvcm1CdWlsZGVyLiBGb3IgZXhhbXBsZSwgdG8gaW5jbHVkZSBmb3JtIG9wdGlvbnMgYmFzZWQgb24gdGhlIFByb2R1Y3RzIG1vZHVsZSwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgaW4gUHJvZHVjdHM6PGJyLz4KPHByZT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPVwnXCd9Cgl7YXNzaWduIHZhcj1DZCB2YWx1ZT1cJ1wnfQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9XCc6OlwnfGV4cGxvZGU6JE1EYXRhfQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9XCcgY2hlY2tlZD0iY2hlY2tlZCJcJ30KCQkJey9pZn0KCQl7L2ZvcmVhY2h9CgkmbHQ7ZGl2IGNsYXNzPSJQcm9kdWN0RGlyZWN0b3J5SXRlbSI+CgkJJmx0O2lucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ieyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0iIG5hbWU9InskRkJpZH1bXSIgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIAoJJmx0Oy9kaXY+CnsvZm9yZWFjaH0KPC9wcmU+Cjxici8+CndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSJjYXQiIHN1bW1hcnl0ZW1wbGF0ZT0iWW91cl9GQl90ZW1wbGF0ZSJ9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdBZGQgeW91ciB0YWcnOwoKJGxhbmdbJ2RhdGVfamFudWFyeSddPSdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXT0nRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddPSdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ109J0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J109J01heSc7CiRsYW5nWydkYXRlX2p1bmUnXT0nSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXT0nSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddPSdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXT0nU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddPSdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXT0nTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddPSdEZWNlbWJlcic7CgokbGFuZ1snQUYnXT0nQWZnaGFuaXN0YW4nOwokbGFuZ1snQVgnXT0nQWxhbmQgSXNsYW5kcyc7CiRsYW5nWydBTCddPSdBbGJhbmlhJzsKJGxhbmdbJ0RaJ109J0FsZ2VyaWEnOwokbGFuZ1snQVMnXT0nQW1lcmljYW4gU2Ftb2EnOwokbGFuZ1snQUQnXT0nQW5kb3JyYSc7CiRsYW5nWydBTyddPSdBbmdvbGEnOwokbGFuZ1snQUknXT0nQW5ndWlsbGEnOwokbGFuZ1snQVEnXT0nQW50YXJjdGljYSc7CiRsYW5nWydBRyddPSdBbnRpZ3VhIGFuZCBCYXJidWRhJzsKJGxhbmdbJ0FSJ109J0FyZ2VudGluYSc7CiRsYW5nWydBTSddPSdBcm1lbmlhJzsKJGxhbmdbJ0FXJ109J0FydWJhJzsKJGxhbmdbJ0FVJ109J0F1c3RyYWxpYSc7CiRsYW5nWydBVCddPSdBdXN0cmlhJzsKJGxhbmdbJ0FaJ109J0F6ZXJiYWlqYW4nOwokbGFuZ1snQlMnXT0nQmFoYW1hcyc7CiRsYW5nWydCSCddPSdCYWhyYWluJzsKJGxhbmdbJ0JCJ109J0JhcmJhZG9zJzsKJGxhbmdbJ0JEJ109J0JhbmdsYWRlc2gnOwokbGFuZ1snQlknXT0nQmVsYXJ1cyc7CiRsYW5nWydCRSddPSdCZWxnaXVtJzsKJGxhbmdbJ0JaJ109J0JlbGl6ZSc7CiRsYW5nWydCSiddPSdCZW5pbic7CiRsYW5nWydCTSddPSdCZXJtdWRhJzsKJGxhbmdbJ0JUJ109J0JodXRhbic7CiRsYW5nWydCVyddPSdCb3Rzd2FuYSc7CiRsYW5nWydCTyddPSdCb2xpdmlhJzsKJGxhbmdbJ0JBJ109J0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnOwokbGFuZ1snQlYnXT0nQm91dmV0IElzbGFuZCc7CiRsYW5nWydCUiddPSdCcmF6aWwnOwokbGFuZ1snSU8nXT0nQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5JzsKJGxhbmdbJ0JOJ109J0JydW5laSBEYXJ1c3NhbGFtJzsKJGxhbmdbJ0JHJ109J0J1bGdhcmlhJzsKJGxhbmdbJ0JGJ109J0J1cmtpbmEgRmFzbyc7CiRsYW5nWydCSSddPSdCdXJ1bmRpJzsKJGxhbmdbJ0tIJ109J0NhbWJvZGlhJzsKJGxhbmdbJ0NNJ109J0NhbWVyb29uJzsKJGxhbmdbJ0NBJ109J0NhbmFkYSc7CiRsYW5nWydDViddPSdDYXBlIFZlcmRlJzsKJGxhbmdbJ0tZJ109J0NheW1hbiBJc2xhbmRzJzsKJGxhbmdbJ0NGJ109J0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyc7CiRsYW5nWydURCddPSdDaGFkJzsKJGxhbmdbJ0NMJ109J0NoaWxlJzsKJGxhbmdbJ0NOJ109J0NoaW5hJzsKJGxhbmdbJ0NYJ109J0NocmlzdG1hcyBJc2xhbmQnOwokbGFuZ1snQ0MnXT0nQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnOwokbGFuZ1snQ08nXT0nQ29sb21iaWEnOwokbGFuZ1snS00nXT0nQ29tb3Jvcyc7CiRsYW5nWydDRyddPSdDb25nbyc7CiRsYW5nWydDRCddPSdDb25nbywgIERlbW9jcmF0aWMgUmVwdWJsaWMnOwokbGFuZ1snQ0snXT0nQ29vayBJc2xhbmRzJzsKJGxhbmdbJ0NSJ109J0Nvc3RhIFJpY2EnOwokbGFuZ1snQ0knXT0nSXZvaXJlIChJdm9yeSBDb2FzdCknOwokbGFuZ1snSFInXT0nQ3JvYXRpYSAoSHJ2YXRza2EpJzsKJGxhbmdbJ0NVJ109J0N1YmEnOwokbGFuZ1snQ1knXT0nQ3lwcnVzJzsKJGxhbmdbJ0NaJ109J0N6ZWNoIFJlcHVibGljJzsKJGxhbmdbJ0RLJ109J0Rlbm1hcmsnOwokbGFuZ1snREonXT0nRGppYm91dGknOwokbGFuZ1snRE0nXT0nRG9taW5pY2EnOwokbGFuZ1snRE8nXT0nRG9taW5pY2FuIFJlcHVibGljJzsKJGxhbmdbJ1RQJ109J0Vhc3QgVGltb3InOwokbGFuZ1snRUMnXT0nRWN1YWRvcic7CiRsYW5nWydFRyddPSdFZ3lwdCc7CiRsYW5nWydTViddPSdFbCBTYWx2YWRvcic7CiRsYW5nWydHUSddPSdFcXVhdG9yaWFsIEd1aW5lYSc7CiRsYW5nWydFUiddPSdFcml0cmVhJzsKJGxhbmdbJ0VFJ109J0VzdG9uaWEnOwokbGFuZ1snRVQnXT0nRXRoaW9waWEnOwokbGFuZ1snRksnXT0nRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpJzsKJGxhbmdbJ0ZPJ109J0Zhcm9lIElzbGFuZHMnOwokbGFuZ1snRkonXT0nRmlqaSc7CiRsYW5nWydGSSddPSdGaW5sYW5kJzsKJGxhbmdbJ0ZSJ109J0ZyYW5jZSc7CiRsYW5nWydGWCddPSdGcmFuY2UsICBNZXRyb3BvbGl0YW4nOwokbGFuZ1snR0YnXT0nRnJlbmNoIEd1aWFuYSc7CiRsYW5nWydQRiddPSdGcmVuY2ggUG9seW5lc2lhJzsKJGxhbmdbJ1RGJ109J0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyc7CiRsYW5nWydNSyddPSdGLlkuUi5PLk0uIChNYWNlZG9uaWEpJzsKJGxhbmdbJ0dBJ109J0dhYm9uJzsKJGxhbmdbJ0dNJ109J0dhbWJpYSc7CiRsYW5nWydHRSddPSdHZW9yZ2lhJzsKJGxhbmdbJ0RFJ109J0dlcm1hbnknOwokbGFuZ1snR0gnXT0nR2hhbmEnOwokbGFuZ1snR0knXT0nR2licmFsdGFyJzsKJGxhbmdbJ0dCJ109J0dyZWF0IEJyaXRhaW4gKFVLKSc7CiRsYW5nWydHUiddPSdHcmVlY2UnOwokbGFuZ1snR0wnXT0nR3JlZW5sYW5kJzsKJGxhbmdbJ0dEJ109J0dyZW5hZGEnOwokbGFuZ1snR1AnXT0nR3VhZGVsb3VwZSc7CiRsYW5nWydHVSddPSdHdWFtJzsKJGxhbmdbJ0dUJ109J0d1YXRlbWFsYSc7CiRsYW5nWydHRiddPSdHdWVybnNleSc7CiRsYW5nWydHTiddPSdHdWluZWEnOwokbGFuZ1snR1cnXT0nR3VpbmVhLUJpc3NhdSc7CiRsYW5nWydHWSddPSdHdXlhbmEnOwokbGFuZ1snSFQnXT0nSGFpdGknOwokbGFuZ1snSE0nXT0nSGVhcmQgYW5kIE1jRG9uYWxkIElzbGFuZHMnOwokbGFuZ1snSE4nXT0nSG9uZHVyYXMnOwokbGFuZ1snSEsnXT0nSG9uZyBLb25nJzsKJGxhbmdbJ0hVJ109J0h1bmdhcnknOwokbGFuZ1snSVMnXT0nSWNlbGFuZCc7CiRsYW5nWydJTiddPSdJbmRpYSc7CiRsYW5nWydJRCddPSdJbmRvbmVzaWEnOwokbGFuZ1snSVInXT0nSXJhbic7CiRsYW5nWydJUSddPSdJcmFxJzsKJGxhbmdbJ0lFJ109J0lyZWxhbmQnOwokbGFuZ1snSUwnXT0nSXNyYWVsJzsKJGxhbmdbJ0lNJ109J0lzbGUgb2YgTWFuJzsKJGxhbmdbJ0lUJ109J0l0YWx5JzsKJGxhbmdbJ0pFJ109J0plcnNleSc7CiRsYW5nWydKTSddPSdKYW1haWNhJzsKJGxhbmdbJ0pQJ109J0phcGFuJzsKJGxhbmdbJ0pPJ109J0pvcmRhbic7CiRsYW5nWydLWiddPSdLYXpha2hzdGFuJzsKJGxhbmdbJ0tFJ109J0tlbnlhJzsKJGxhbmdbJ0tJJ109J0tpcmliYXRpJzsKJGxhbmdbJ0tQJ109J0tvcmVhIChOb3J0aCknOwokbGFuZ1snS1InXT0nS29yZWEgKFNvdXRoKSc7CiRsYW5nWydLVyddPSdLdXdhaXQnOwokbGFuZ1snS0cnXT0nS3lyZ3l6c3Rhbic7CiRsYW5nWydMQSddPSdMYW9zJzsKJGxhbmdbJ0xWJ109J0xhdHZpYSc7CiRsYW5nWydMQiddPSdMZWJhbm9uJzsKJGxhbmdbJ0xJJ109J0xpZWNodGVuc3RlaW4nOwokbGFuZ1snTFInXT0nTGliZXJpYSc7CiRsYW5nWydMWSddPSdMaWJ5YSc7CiRsYW5nWydMUyddPSdMZXNvdGhvJzsKJGxhbmdbJ0xUJ109J0xpdGh1YW5pYSc7CiRsYW5nWydMVSddPSdMdXhlbWJvdXJnJzsKJGxhbmdbJ01PJ109J01hY2F1JzsKJGxhbmdbJ01HJ109J01hZGFnYXNjYXInOwokbGFuZ1snTVcnXT0nTWFsYXdpJzsKJGxhbmdbJ01ZJ109J01hbGF5c2lhJzsKJGxhbmdbJ01WJ109J01hbGRpdmVzJzsKJGxhbmdbJ01MJ109J01hbGknOwokbGFuZ1snTVQnXT0nTWFsdGEnOwokbGFuZ1snTUgnXT0nTWFyc2hhbGwgSXNsYW5kcyc7CiRsYW5nWydNUSddPSdNYXJ0aW5pcXVlJzsKJGxhbmdbJ01SJ109J01hdXJpdGFuaWEnOwokbGFuZ1snTVUnXT0nTWF1cml0aXVzJzsKJGxhbmdbJ1lUJ109J01heW90dGUnOwokbGFuZ1snTVgnXT0nTWV4aWNvJzsKJGxhbmdbJ0ZNJ109J01pY3JvbmVzaWEnOwokbGFuZ1snTUMnXT0nTW9uYWNvJzsKJGxhbmdbJ01EJ109J01vbGRvdmEnOwokbGFuZ1snTUEnXT0nTW9yb2Njbyc7CiRsYW5nWydNTiddPSdNb25nb2xpYSc7CiRsYW5nWydNUyddPSdNb250c2VycmF0JzsKJGxhbmdbJ01aJ109J01vemFtYmlxdWUnOwokbGFuZ1snTU0nXT0nTXlhbm1hcic7CiRsYW5nWydOQSddPSdOYW1pYmlhJzsKJGxhbmdbJ05SJ109J05hdXJ1JzsKJGxhbmdbJ05QJ109J05lcGFsJzsKJGxhbmdbJ05MJ109J05ldGhlcmxhbmRzJzsKJGxhbmdbJ0FOJ109J05ldGhlcmxhbmRzIEFudGlsbGVzJzsKJGxhbmdbJ05UJ109J05ldXRyYWwgWm9uZSc7CiRsYW5nWydOQyddPSdOZXcgQ2FsZWRvbmlhJzsKJGxhbmdbJ05aJ109J05ldyBaZWFsYW5kIChBb3RlYXJvYSknOwokbGFuZ1snTkknXT0nTmljYXJhZ3VhJzsKJGxhbmdbJ05FJ109J05pZ2VyJzsKJGxhbmdbJ05HJ109J05pZ2VyaWEnOwokbGFuZ1snTlUnXT0nTml1ZSc7CiRsYW5nWydORiddPSdOb3Jmb2xrIElzbGFuZCc7CiRsYW5nWydNUCddPSdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnOwokbGFuZ1snTk8nXT0nTm9yd2F5JzsKJGxhbmdbJ09NJ109J09tYW4nOwokbGFuZ1snUEsnXT0nUGFraXN0YW4nOwokbGFuZ1snUFcnXT0nUGFsYXUnOwokbGFuZ1snUFMnXT0nUGFsZXN0aW5pYW4gVGVycml0b3J5JzsKJGxhbmdbJ1BBJ109J1BhbmFtYSc7CiRsYW5nWydQRyddPSdQYXB1YSBOZXcgR3VpbmVhJzsKJGxhbmdbJ1BZJ109J1BhcmFndWF5JzsKJGxhbmdbJ1BFJ109J1BlcnUnOwokbGFuZ1snUEgnXT0nUGhpbGlwcGluZXMnOwokbGFuZ1snUE4nXT0nUGl0Y2Fpcm4nOwokbGFuZ1snUEwnXT0nUG9sYW5kJzsKJGxhbmdbJ1BUJ109J1BvcnR1Z2FsJzsKJGxhbmdbJ1BSJ109J1B1ZXJ0byBSaWNvJzsKJGxhbmdbJ1FBJ109J1FhdGFyJzsKJGxhbmdbJ1JFJ109J1JldW5pb24nOwokbGFuZ1snUk8nXT0nUm9tYW5pYSc7CiRsYW5nWydSVSddPSdSdXNzaWFuIEZlZGVyYXRpb24nOwokbGFuZ1snUlcnXT0nUndhbmRhJzsKJGxhbmdbJ0dTJ109J1MuIEdlb3JnaWEgYW5kIFMuIFNhbmR3aWNoIElzbHMuJzsKJGxhbmdbJ0tOJ109J1NhaW50IEtpdHRzIGFuZCBOZXZpcyc7CiRsYW5nWydMQyddPSdTYWludCBMdWNpYSc7CiRsYW5nWydWQyddPSdTYWludCBWaW5jZW50ICZhbXA7IHRoZSBHcmVuYWRpbmVzJzsKJGxhbmdbJ1dTJ109J1NhbW9hJzsKJGxhbmdbJ1NNJ109J1NhbiBNYXJpbm8nOwokbGFuZ1snU1QnXT0nU2FvIFRvbWUgYW5kIFByaW5jaXBlJzsKJGxhbmdbJ1NBJ109J1NhdWRpIEFyYWJpYSc7CiRsYW5nWydTTiddPSdTZW5lZ2FsJzsKJGxhbmdbJ1NDJ109J1NleWNoZWxsZXMnOwokbGFuZ1snU0wnXT0nU2llcnJhIExlb25lJzsKJGxhbmdbJ1NHJ109J1NpbmdhcG9yZSc7CiRsYW5nWydTSSddPSdTbG92ZW5pYSc7CiRsYW5nWydTSyddPSdTbG92YWsgUmVwdWJsaWMnOwokbGFuZ1snU0InXT0nU29sb21vbiBJc2xhbmRzJzsKJGxhbmdbJ1NPJ109J1NvbWFsaWEnOwokbGFuZ1snWkEnXT0nU291dGggQWZyaWNhJzsKJGxhbmdbJ0VTJ109J1NwYWluJzsKJGxhbmdbJ0xLJ109J1NyaSBMYW5rYSc7CiRsYW5nWydTSCddPSdTdC4gSGVsZW5hJzsKJGxhbmdbJ1BNJ109J1N0LiBQaWVycmUgYW5kIE1pcXVlbG9uICc7CiRsYW5nWydTRCddPSdTdWRhbic7CiRsYW5nWydTUiddPSdTdXJpbmFtZSc7CiRsYW5nWydTSiddPSdTdmFsYmFyZCAmYW1wOyBKYW4gTWF5ZW4gSXNsYW5kcyc7CiRsYW5nWydTWiddPSdTd2F6aWxhbmQnOwokbGFuZ1snU0UnXT0nU3dlZGVuJzsKJGxhbmdbJ0NIJ109J1N3aXR6ZXJsYW5kJzsKJGxhbmdbJ1NZJ109J1N5cmlhJzsKJGxhbmdbJ1RXJ109J1RhaXdhbic7CiRsYW5nWydUSiddPSdUYWppa2lzdGFuJzsKJGxhbmdbJ1RaJ109J1RhbnphbmlhJzsKJGxhbmdbJ1RIJ109J1RoYWlsYW5kJzsKJGxhbmdbJ1RHJ109J1RvZ28nOwokbGFuZ1snVEsnXT0nVG9rZWxhdSc7CiRsYW5nWydUTyddPSdUb25nYSc7CiRsYW5nWydUVCddPSdUcmluaWRhZCBhbmQgVG9iYWdvJzsKJGxhbmdbJ1ROJ109J1R1bmlzaWEnOwokbGFuZ1snVFInXT0nVHVya2V5JzsKJGxhbmdbJ1RNJ109J1R1cmttZW5pc3Rhbic7CiRsYW5nWydUQyddPSdUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMnOwokbGFuZ1snVFYnXT0nVHV2YWx1JzsKJGxhbmdbJ1VHJ109J1VnYW5kYSc7CiRsYW5nWydVQSddPSdVa3JhaW5lJzsKJGxhbmdbJ0FFJ109J1VuaXRlZCBBcmFiIEVtaXJhdGVzJzsKJGxhbmdbJ1VLJ109J1VuaXRlZCBLaW5nZG9tJzsKJGxhbmdbJ1VTJ109J1VuaXRlZCBTdGF0ZXMnOwokbGFuZ1snVU0nXT0nVVMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyc7CiRsYW5nWydVWSddPSdVcnVndWF5JzsKJGxhbmdbJ1VaJ109J1V6YmVraXN0YW4nOwokbGFuZ1snVlUnXT0nVmFudWF0dSc7CiRsYW5nWydWQSddPSdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSc7CiRsYW5nWydWRSddPSdWZW5lenVlbGEnOwokbGFuZ1snVk4nXT0nVmlldCBOYW0nOwokbGFuZ1snVkcnXT0nVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpJzsKJGxhbmdbJ1ZJJ109J1ZpcmdpbiBJc2xhbmRzIChVLlMuKSc7CiRsYW5nWydXRiddPSdXYWxsaXMgYW5kIEZ1dHVuYSBJc2xhbmRzJzsKJGxhbmdbJ0VIJ109J1dlc3Rlcm4gU2FoYXJhJzsKJGxhbmdbJ1lFJ109J1llbWVuJzsKJGxhbmdbJ1lVJ109J1l1Z29zbGF2aWEnOwokbGFuZ1snWk0nXT0nWmFtYmlhJzsKJGxhbmdbJ1pXJ109J1ppbWJhYndlJzsKCiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ109J0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J109J0RlZmF1bHQ6IHVuY2hlY2tlZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXT0nRGVmYXVsdDogY2hlY2tlZCc7CgokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gIkZvcm1CdWlsZGVyIFN1Ym1pc3Npb24iOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsgICAgICAKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7ICAJCQokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ109J1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKCiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J109J0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ109J0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXT0nRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CgokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddPSc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfJmx0O25hbWUmZ3Q7PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddPSc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXT0nPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CgokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwoKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICIKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91J2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJiMxMjM7XCRmYl9oaWRkZW59IGFuZCAmIzEyMztcJHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgXCRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJiMxMjM7XCRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0J3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJ3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGQncyBoZWxwIHRleHQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQncyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9XCJmb29cIik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+dGhlIGFsaWFzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5CmFyZSBpbiB0aGUgXCRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgJiMxMjM7XCRteWZpZWxkLT52YWx1ZX0gKS4KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyBcInBhZ2UgeCBvZiB5XCIgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+aW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5SZXNwb25zZSBJRCBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD5cIkJhY2tcIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD5cIkNvbnRpbnVlXCIgb3IgXCJTdWJtaXRcIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91J2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgoiOwoKLy8gcG9zdC1pbnN0YWxsIG1lc3NhZ2UKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddPSJGb3JtQnVpbGRlciBpbnN0YWxsZWQuIFBsZWFzZSBjb25zdWx0IHRoZSBtb2R1bGUncyBIZWxwIHBhZ2UgZm9yIGRvY3VtZW50YXRpb24uIjsKCiRsYW5nWydoZWxwJ10gPSAiPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZvcm1zIChpbiBmYWN0LCBpdCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aAp0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSdyZQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtGb3JtQnVpbGRlciBmb3JtPSdzYW1wbGVfZm9ybSd9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoXCIpIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKCcpIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSdzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPgo8aDQ+TWFpbjwvaDQ+CjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91J2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+CjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSBcImZhc3QgZmllbGQgYWRkZXJcIiBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXIncyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zIChcIlByZXZpb3VzXCIsIFwibmV4dFwiLCBcInN1Ym1pdFwiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0ncyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+CjxwPlVubGVzcyB5b3UncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAnRGlzcGxheSBcIlN1Ym1pc3Npb24gVGVtcGxhdGVcIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91J3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91J3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lgo8L3A+Cgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0J3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCBcIlJlcXVpcmVkXCIsIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+CjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cKY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvIFwidmlldyBzb3VyY2VcIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+QnV0dG9uLiBUaGlzIGRvZW5zJ3QgZG8gYW55dGhpbmcsIGJ1dCB5b3UgY2FuIGhvb2sgaXQgaW50byBzb21lIEphdmFzY3JpcHQuPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0J3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPgo8bGk+UGFzc3dvcmQgQWdhaW4gKHZlcmlmeSkuIFRoaXMgaXMgYSBmaWVsZCB0aGF0IG11c3QgbWF0Y2ggYSBQYXNzd29yZCBmaWVsZCBmb3Igc3VibWlzc2lvbgp0byBzdWNjZWVkLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsIFwiRnJvbSBBZGRyZXNzXCIgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlIFwiRnJvbVwiIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBcIkZyb20gTmFtZVwiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSBcIkZyb21cIiBmaWVsZC48L2xpPgo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlIFwiU3ViamVjdFwiIGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91J3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91J3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+CjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+CjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPgo8bGk+LVVzZXIgVGFnLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVXNlciBEZWZpbmVkIFRhZywgYW5kIGRpc3BsYXlzIGFueXRoaW5nIGl0IHJldHVybnMuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgYW55IHRpbWUgdGhlIGZpZWxkIHdvdWxkIGJlIHZpc2libGUuPC9saT4KPC91bD48L2xpPgo8bGk+LU1vZHVsZSBJbmNsdWRlIFRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIG90aGVyIG1vZHVsZSBvdXRwdXQgaW50byB5b3VyIGZvcm0sIGUuZy4sIGEgbGlzdCBvZiBwcm9kdWN0cyBmcm9tIHRoZSBQcm9kdWN0cyBtb2R1bGUuPC9saT4KCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzIFwkcGFyYW1zWydmaWVsZF9uYW1lJ10sIGFuZCBhcyBcJHBhcmFtc1snZmllbGRfYWxpYXMnXSAoaWYgZGVmaW5lZCkuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgXCJEaXJlY3RvclwiIHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgXCJGcm9tIEFkZHJlc3NcIiBGaWVsZCwgYW5kIHNlbmQgY29weS4gVGhpcyB3b3JrcyBsaWtlIHRoZSBFbWFpbCBcIkZyb20gQWRkcmVzc1wiIEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCByZXN1bHRzIGJhc2VkIG9uIGZyb250ZW5kIGZpZWxkcy4gVGhpcyBmaWVsZCBpcyBhbiBlbWFpbCBkaXNwb3NpdGlvbiB0aGF0IGFsbG93cyBmb3JtIGZpZWxkcycgdXNlciBpbnB1dCB0byBzcGVjaWZ5IHRoZSBFbWFpbCBTdWJqZWN0LCBcIkZyb20gTmFtZVwiLCBcIkZyb20gQWRkcmVzc1wiLCBhbmQgRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcy48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIDxzdHJvbmc+RGVwcmVjYXRlZC48L3N0cm9uZz4gVXNlIFN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSBpbnN0ZWFkISBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCBcImFwcHJvdmVkLFwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIFwib3V0cHV0XCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KldyaXRlIFJlc3VsdHMgdG8gYSBVbmlxdWUgRmxhdCBGaWxlIGZvciBlYWNoIHN1Ym1pc3Npb24uIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gdG8gYSB1bmlxdWUgdGV4dCBmaWxlIGZvciBlYWNoIGZvcm0gc3VibWlzc2lvbi4KWW91IGNhbiBzcGVjaWZ5IGEgZmlsZW5hbWUgcGF0dGVybiB1c2luZyB2YWx1ZXMgZnJvbSBmb3JtIGZpZWxkcywgc2V0IGl0cyBmb3JtYXQsIGFuZCBzZXQgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgZmlsZXMgd2lsbCBiZSBzdG9yZWQuPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMC4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyBpcyB0aGUgb25seSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyLiBTZWUgc2VjdGlvbiBiZWxvdy48L2xpPgo8bGk+KlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24uIENyYWZ0IGFuIEhUVFAgR0VUIG9yIFBPU1QsIGFuZCB0cmFuc21pdCBpdCB1c2luZyBjVVJMIHRvIHRoZSBzcGVjaWZpZWQgVVJMLiBUaGlzIGxldHMgeW91IHVzZSBGb3JtQnVpbGRlciBhcyBhIGZyb250LWVuZCB0byBhbnkgQ0dJIG9yIEZvcm0gSGFuZGxpbmcgc2NyaXB0IG91dCB0aGVyZS48L2xpPgoKPC91bD48L2xpPjwvbGk+PC91bD4KCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUKYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4KPHA+e0Zvcm1CdWlsZGVyIGZvcm09J215X2Zvcm0nIHZhbHVlXzxpPkZJRUxETkFNRTwvaT49J2RlZmF1bHRfdmFsdWUnfTwvcD4KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICdkZWZhdWx0X3ZhbHVlJy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2llbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbid0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4KPHA+e0Zvcm1CdWlsZGVyIGZvcm09J215X2Zvcm0nIHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49J2RlZmF1bHRfdmFsdWUnfTwvcD4KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwKYW5kIGNoZWNrIFwiU2hvdyBGaWVsZCBJRHNcIjwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdHMgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgXCJDcmVhdGUgU2FtcGxlIFRlbXBsYXRlXCIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UnbGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLiBBcyBvZiB2ZXJzaW9uIDAuNSwgdmFyaWFibGVzIGFsc28gaGF2ZSBhbGlhc2VzLCB3aGljaCB5b3UgY2FuIHVzZS48L3A+CjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91J3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCdzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPgo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhIFwiQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlXCIgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+Cgo8aDM+VXNlIHdpdGggRm9ybUJyb3dzZXIgdjM8L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBzcGVjaWFsIGZlYXR1cmVzIHdoZW4gdXNpbmcgRm9ybUJ1aWxkZXIgd2l0aCBGb3JtQnJvd3Nlci4gVGhlIG5ldyBhcHByb2FjaCBzdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBYTUwsIHNvIHRoYXQgZmFyIGZld2VyCnF1ZXJpZXMgYXJlIG5lZWRlZCB0byByZXRyaWV2ZSByZWNvcmRzLiBUaGlzIG1lYW5zIHlvdSBjYW4gdXNlIEZvcm1Ccm93c2VyIHdpdGggaHVuZHJlZHMgb3IgZXZlbiB0aG91c2FuZHMgb2YgcmVjb3Jkcy4gSXQgYWxzbyBtZWFucyB5b3UKd2lsbCBoYXZlIHRvIGNob29zZSB1cCBmcm9udCB3aGljaCBmaWVsZHMgeW91IHdpbGwgd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgYnkuIFlvdSBjYW4gY2hvb3NlIHVwIHRvIGZpdmUuIENoYW5naW5nIHRoZXNlIGFmdGVyIHRoZXJlIGFyZSBzdWJtaXR0ZWQgcmVjb3JkcyB3aWxsIHJlc3VsdCBpbiBpbXByb3BlciBzb3J0aW5nISBBIHJlLWluZGV4IGZ1bmN0aW9uIHdpbGwgYmUgYWRkZWQgdG8gYSBmdXR1cmUgdmVyc2lvbi48L3A+CjxwPkluIGFkdmFuY2VkIG9wdGlvbnMsIHlvdSBjYW4gdGllIGEgZm9ybSB0byBGcm9udGVuZCBVc2Vycy4gVGhhdCBtZWFucyBlYWNoIHVzZXIgZ2V0cyBvbmUgcmVjb3JkIGZvciB0aGUgZm9ybTsgdGhleSBjYW4gY3JlYXRlIGl0CmEgc2luZ2xlIHRpbWUsIHN1YnNlcXVlbnQgdGltZXMgdGhleSB3aWxsIGJlIGVkaXRpbmcgdGhlaXIgcmVjb3JkLiBUaGUgcmVjb3JkIHdpbGwgbm90IGJlIHZpc2libGUgdG8gYW55IG90aGVyIHVzZXJzIChleGNsdWRpbmcgYWRtaW5zKS4KVGhpcyBmb3JtIHNob3VsZCBiZSBhZGRlZCB0byB5b3VyIHBhZ2UgdXNpbmcgdGhlIHN5bnRheCB7Rm9ybUJ1aWxkZXIgYWN0aW9uPSdmZXVzZXJmb3JtJyBmb3JtPSdmb3JtX25hbWUnfS48L3A+CjxwPkZvciBncmVhdGVyIGRhdGEgc2FmZXR5LCB5b3UgY2FuIGVuY3J5cHQgdGhlIHN0b3JlZCBmb3JtcyBpbiB0aGUgZGF0YWJhc2UuIFlvdSBjYW4gdXNlIHRoZSBidWlsdC1pbiBteWNyeXB0IGxpYnJhcnkgb3IgdGhlIE9wZW5TU0wgbW9kdWxlLgpJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0CmZpbGUgd2lsbCBiZSB1c2VkIGFzIHRoZSBwYXNzcGhyYXNlIGZvciBlbmNyeXB0aW5nLjwvcD4KPHA+SWYgeW91IGVuY3J5cHQsIGJlIGF3YXJlIHRoYXQgdGhlIGZpZWxkcyB5b3UgdXNlIGZvciBzb3J0aW5nIGFyZSA8c3Ryb25nPm5vdDwvc3Ryb25nPiBlbmNyeXB0ZWQuIFlvdSBjYW4gY2hvb3NlIHRvIGhhc2ggdGhlbTsgdGhlIGNoZWF0IGhlcmUKaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdApleHBvc2VzIHNvbWUgY2xlYXJ0ZXh0LCBidXQgaXQgaXMgYmV0dGVyIHRoYW4gbm90aGluZy48L3A+CjxwPjxzdHJvbmc+RElTQ0xBSU1FUjwvc3Ryb25nPi4gVGhlIGVuY3J5cHRpb24gb2ZmZXJlZCBoZXJlIHNob3VsZCBiZSBjb25zaWRlcmVkIGp1c3Qgb25lIG1vcmUgaHVyZGxlIGZvciBhIGhhY2tlciwgbm90IGFzIGEgZ3VhcmFudGVlIHRoYXQKeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQKdGhlIG1vZHVsZSBzb3VyY2UgY29kZSwgYW5kIGZpbmQgdGhlaXIgd2F5IHRvIHRoZSBwYXNzcGhyYXNlLiBUaGlzIHdpbGwgbm90IHByb3RlY3QgeW91IGFnYWluc3QgYW4gZW5lbXkgd2hvIGhhcyBmdWxsIGFjY2VzcyB0byB5b3VyCnNlcnZlciwgc29tZSBmYW1pbGlhcml0eSB3aXRoIFBIUCwgYW5kIHRoZSB0aW1lIHRvIHBva2UgYXJvdW5kLiA8ZW0+PHN0cm9uZz5EbyBub3Q8L3N0cm9uZz4gdXNlIHRoaXMgdG8gcHJvdGVjdCBoaWdoLXZhbHVlIGluZm9ybWF0aW9uIHN1Y2ggYXMgZmluYW5jaWFsIGRhdGEsCnNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lCmNhcnRlbC48L2VtPjwvcD4KPGgzPlVzaW5nIHdpdGggVXNlciBEZWZpbmVkIFRhZ3MgKFVEVHMpPC9oMz4KPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPgoKPHVsPjxsaT5DYWxsIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIGZpZWxkIHR5cGUgc3VibWl0cyB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQKVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgXCRwYXJhbXNbJ2ZpZWxkX25hbWUnXSwgYW5kCmFzIFwkcGFyYW1zWydmaWVsZF9hbGlhcyddIChpZiBkZWZpbmVkKS4gQXMgcGVyIGEgc3VnZ2VzdGlvbiwgaXQgYWxzbyBwb3B1bGF0ZXMgYWxsIG9mIHRoZSBTbWFydHkgdmFsdWVzIHRoYXQgd291bGQgYmUgdmlzaWJsZSB0byB0aGUgU3VibWlzc2lvbiBUZW1wbGF0ZSB0b28hPC9saT4KPGxpPlVzZXIgVGFnIEZpZWxkLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVURULCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cJ3MgaHVtYW4tcmVhZGFibGUgcmVzdWx0cy4gVGhlIFVEVCBzaG91bGQgZG8gd2hhdGV2ZXIKdmFsaWRhdGlvbiBpdCB3YW50cywgYW5kIHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBmaXJzdCB2YWx1ZSBiZWluZyB0cnVlIG9yIGZhbHNlIChpbmRpY2F0aW9uIHdoZXRoZXIgdGhlIGZvcm0gdmFsaWRhdGVzKSwgYW5kIHRoZSBzZWNvbmQKdmFsdWUgYmVpbmcgZXJyb3IgbWVzc2FnZXMgKGlmIGFueSkuPC9saT4KPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgdGhlIGZpcnN0IHRpbWUgKG9ubHkgY2FsbGVkIG9uY2UpLiBUaGlzCmlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZCBvbiB0aGUgZmlyc3QgZGlzcGxheQpvZiB0aGUgZm9ybS48L2xpPgo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCAoY2FsbGVkIG9uIGV2ZXJ5IHBhZ2Ugb2YgbXVsdGlwYWdlCmZvcm1zKS4gVGhpcyBpcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQKZXZlcnkgdGltZSBhbnkgcGFnZSBvZiB0aGUgZm9ybSBpcyBkaXNwbGF5ZWQgKGluY2x1ZGluZyB3aGVuIHZhbGlkYXRpb24gZmFpbHMpLjwvbGk+CjwvdWw+CjxoMz5Db25maWd1cmF0aW9uPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPgo8dWw+CjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPgo8bGk+UnVuIGluIE1MRSBNb2RlLiBUaGlzIGNoYW5nZXMgc29tZSBxdWVyaWVzIGFnYWluc3QgdGhlIGNvbnRlbnQgdGFibGUgdG8gdHJ5IHRvIHByZXZlbnQgdWdseSBjcmFzaGVzIHVuZGVyIHRoZSBNTEUgZm9yay4gQ2hlY2tpbmcgdGhpcyB3aWxsIGNhdXNlIHVnbHkgY3Jhc2hlcyBpZiB5b3UgYXJlIE5PVCBydW5uaW5nIHRoZSBNTEUgZm9yay48L2xpPgo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgbm8gbG9uZ2VyIHNldCBieSBkZWZhdWx0LiBDaGVja2luZyBpdCB3aWxsIGhpZGUgdGhlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRoYXQgd291bGQgYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPgo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+CjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSdyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5BZnRlciBhIGJpdCBvZiBuYWdnaW5nIG9uIHRoZSBwYXJ0IG9mIHBlb3BsZSB3aG8gYWN0dWFsbHkgcmVzcGVjdCBzdGFuZGFyZHMsIEZvcm1CdWlsZGVyIG5vIGxvbmdlciBlbmNvdXJhZ2VzIHRyaWNrcyBsaWtlIGVtYmVkZGluZyBDU1MgaW4gCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkIFwiRm9ybUJ1aWxkZXIgRGVmYXVsdFwiIHRoYXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGFjaCB0byB0aGUgcGFnZSB0ZW1wbGF0ZQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+CgoiLiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10uIgo8aDM+Q3JlZGl0czwvaDM+CjxwPk1hbnkgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQgY29kZSwgYnVnIHJlcG9ydHMsIGNhc2gsIGFuZCBpZGVhcyB0byBGb3JtQnVpbGRlci4gQW1vbmcgdGhlbSAoYWxwaGFiZXRpY2FsbHkpOgo8dWw+CjxsaT48YSBocmVmPVwiaHR0cDovL3d3dy5icHRpLmV1XCI+QmFsdGljIGluc3RpdHV0ZSBvZiBhZHZhbmNlZCB0ZWNobm9sb2d5PC9hPiAtIGNvZGUsIGZ1bmRpbmcgPC9saT4KPGxpPkplcmVteSBCYXNzIC0gY29kZSBhbmQgc3VnZ2VzdGlvbnM8L2xpPgo8bGk+QWxiZXJ0byBCZW5hdGkgLSBjb2RlPC9saT4KPGxpPlR5bGVyIEJvZXNwZmx1ZyAtIGZ1bmRpbmcgYW5kIGlkZWFzPC9saT4KPGxpPkplZmYgQm9zY2ggLSBVRFQgVmFsaWRhdGlvbjwvbGk+CjxsaT5Sb2JlcnQgQ2FtcGJlbGwgLSBudW1lcm91cyBjb2RlIGNvbnRyaWJ1dGlvbnM8L2xpPgo8bGk+UGlvdHJhcyBDaW1tcGVybWFuIC0gY29kZTwvbGk+CjxsaT5OdW5vIENvc3RhIC0gc3VnZ2VzdGlvbnM8L2xpPgo8bGk+UnlhbiBGb3N0ZXIgLSBjb2RlPC9saT4KPGxpPk1hcmMgR2VsZG9uIC0gY29kZTwvbGk+CjxsaT5LZXZpbiBHcmFuZG9uIC0gY29kZTwvbGk+CjxsaT5Sb25ueSBLcmlqdCAtIGNvZGU8L2xpPgo8bGk+UGF1bCBOb29uZSAtIENTUyBhbmQgaWRlYXM8L2xpPgo8bGk+TW9ydGVuIFBvdWxzZW4gLSBjb2RlPC9saT4KPGxpPlBydWUgUm93bGFuZCAtIGJ1ZyBmaXhlczwvbGk+CjxsaT5TaW1vbiBTY2hhdWZlbGJlcmdlciAtIGNvZGU8L2xpPgo8bGk+QWRhbSBTaGF3LVZhcmRpIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPgo8L3VsPgo8cD5JIGFwb2xvZ2l6ZSBmb3IgYW55IG9taXNzaW9ucyAtIG5vdGlmeSBtZSwgYW5kIEknbGwgY29ycmVjdCB0aGUgb21pc3Npb24hPC9wPgo8aDM+TWlzY2VsbGFuZW91cyBOb3RlczwvaDM+Cjx1bD4KPGxpPkFueSBmaWVsZHMgdGhhdCBzZW5kcyBlbWFpbCB0byBhIHNwZWNpZmllZCBlbWFpbCBhZGRyZXNzIHdpbGwgYWxzbyBhY2NlcHQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMuPC9saT4KPC91bD4KPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSBVUkxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPgo8bGk+Rm9ybUJ1aWxkZXIvRm9ybUJyb3dzZXIgPHN0cm9uZz5yZXF1aXJlczwvc3Ryb25nPiBQSFAgNSBvciBsYXRlciB0byBmdW5jdGlvbiBjb3JyZWN0bHkuPC9saT4KPGxpPkZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91J3JlIHJ1bm5pbmcgQ01TIDEuNiBvciBsYXRlci48L2xpPgo8bGk+U2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdSdyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQncyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UncmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCdzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSBcIkhpZGUgRXJyb3JzXCIgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0J3Mgc2ltcGx5IGFtYXppbmcgaG93IG1hbnkgcHJvYmxlbXMgYm9pbCBkb3duIHRvIGEgbWlzY29uZmlndXJlZCBDTVNNYWlsZXIuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJ3ZlIGRvbmUgYWxsIEkgY2FuCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwphdGUgdGhlIG5laWdoYm9yJ3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj1cImh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmdcIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9XCJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tXCI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmdcIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXNcIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+CjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4KPC91bD4KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IDxlbT5odW5kcmVkcyBhbmQgaHVuZHJlZHMgb2YgaG91cnM8L2VtPiBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4KUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciBzZW5kIHlvdXIgcXVlc3Rpb25zIHdyaXR0ZW4gb24KZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzCmV2ZW4ga25vdyB3aGF0IGEgYnJva2VuIHJlY29yZCBpcz8gSSB3b3VsZCBzYXkgc2tpcHBpbmcgQ0QsIGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgd2hhdCB0aGF0IGlzIGVpdGhlci4gTGlrZSBhCnNhbXBsZSB0aGF0IGdvdCBzdHVjayBvbiBsb29wPyBEYW1uLCBJIGFtIGdldHRpbmcgb2xkLiBTbyBpcyB0aGlzIHBhcmFncmFwaC4gVGltZSB0byBtb3ZlIG9uLCBoZXJlLjwvcD4iLgonPGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siPgo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlQ0NfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPgo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJlbmNyeXB0ZWQiIHZhbHVlPSItLS0tLUJFR0lOIFBLQ1M3LS0tLS1NSUlIVHdZSktvWklodmNOQVFjRW9JSUhRRENDQnp3Q0FRRXhnZ0V3TUlJQkxBSUJBRENCbERDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwQ0FRQXdEUVlKS29aSWh2Y05BUUVCQlFBRWdZQUlObkJXYi9YTTRsbXZMR0hsOVJkMWN2TDV0cnFSaGM3K0ZvR0g1THRvZlFpVnJnRlN2aDdoMW9qZzVTelR4Ymd0aTMyWkYwL3VjdXEvT1FTRCtWenV1QUYxdjZ3VnJ0eU9lQ1BFQXc4ajgxREpPWFZqSkhzSVkybXZpb3JQam9sTFFrRm52MTJ5UlRwdUZXRm40WlhlNSt2bkNqWHFCeTBFRS9haHpFTU1uekVMTUFrR0JTc09Bd0lhQlFBd2djd0dDU3FHU0liM0RRRUhBVEFVQmdncWhraUc5dzBEQndRSWNLTk53T1BGb3d1QWdhaXZTN3YwajJYRnlROWRyOG5pOUc5NWVFN1lxb2dHbEs5d3VTcGxsT2c5bG5ydXZuRVFxc21SbVFudGhRcVdDVGJaekcyK0lFdGVNNElVc3hFdUdUcnc4cFpDVTI0VE5EY2tuS1V4OVV6M3ZTeE9oM2d1OTV5SnlEd29lTXZhRUEyNGJzMTRRRWJKYmhOalk2V3hIejkraS9sVkFEQmp5QU9EWU11emFsRGt2ZHV2d2VHTlprOWxZTFJSQ29QUE5pbEcxUGY2dzg3Qkhwa1NNOFdRMUxDOStSV2RYZlpjbStlZ2dnT0hNSUlEZ3pDQ0F1eWdBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQURDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd0hoY05NRFF3TWpFek1UQXhNekUxV2hjTk16VXdNakV6TVRBeE16RTFXakNCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQU1GSFR0MzhSTXhMWEp5TzJTbVMrTmRsNzJUN29LSjR1NHV3KzZhd250QUxXaDAzUGV3bUlKdXpiQUxTY3NUUzRzWm9TMWZLY2lCR29oMTFnSWZIenlsdmtkTmUvaEpsNjYvUkdxcmo1ckZiMDhzQUFCTlR6RFRpcXFOcEplQnNZcy9jMmFpR296cHRYMlJsbkJrdEgrU1VOcEFhalc3MjROdjJXdmhpZjZzRkFnTUJBQUdqZ2U0d2dlc3dIUVlEVlIwT0JCWUVGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyTUlHN0JnTlZIU01FZ2JNd2diQ0FGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyb1lHVXBJR1JNSUdPTVFzd0NRWURWUVFHRXdKVlV6RUxNQWtHQTFVRUNCTUNRMEV4RmpBVUJnTlZCQWNURFUxdmRXNTBZV2x1SUZacFpYY3hGREFTQmdOVkJBb1RDMUJoZVZCaGJDQkpibU11TVJNd0VRWURWUVFMRkFwc2FYWmxYMk5sY25Sek1SRXdEd1lEVlFRREZBaHNhWFpsWDJGd2FURWNNQm9HQ1NxR1NJYjNEUUVKQVJZTmNtVkFjR0Y1Y0dGc0xtTnZiWUlCQURBTUJnTlZIUk1FQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQlFVQUE0R0JBSUZmT2xhYWdGcmw3MStqcTZPS2lkYldGU0UrUTRGcVJPdmRnSU9OdGgrOGtTSy8vWS80aWh1RTRZbXZ6bjVjZUUzUy9pQlNRUU1qeXZiK3MyVFdiUVlEd2NwMTI5T1BJYkQ5ZXBkcjR0Sk9VTmlTb2p3N0JId1lSaVBoNThTMXhHbEZnSEZYd3JFQmIzZGdOYk1VYSt1NHFlY3RzTUFYcFZIbkQ5d0l5Zm1ITVlJQm1qQ0NBWllDQVFFd2daUXdnWTR4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSUV3SkRRVEVXTUJRR0ExVUVCeE1OVFc5MWJuUmhhVzRnVm1sbGR6RVVNQklHQTFVRUNoTUxVR0Y1VUdGc0lFbHVZeTR4RXpBUkJnTlZCQXNVQ214cGRtVmZZMlZ5ZEhNeEVUQVBCZ05WQkFNVUNHeHBkbVZmWVhCcE1Sd3dHZ1lKS29aSWh2Y05BUWtCRmcxeVpVQndZWGx3WVd3dVkyOXRBZ0VBTUFrR0JTc09Bd0lhQlFDZ1hUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncwd09EQTNNREV3TXpVNU16bGFNQ01HQ1NxR1NJYjNEUUVKQkRFV0JCUU0wTFYzMGZMWGNIOU01ZE1tdVRCTG5zRlE0akFOQmdrcWhraUc5dzBCQVFFRkFBU0JnQkV6MlhxTU1xRmJ1VWhqK0wxMjhDdzJ1OFNoT0tRdHRyS3IvaGkwV1JlZW5IRFlCaUhPU3RsNjNSdjc2UTJtcGQ0NTNSdkNqNW1xN2RSdHVSQjZwZkhHUkRrVVg2TjErT09Jb0lmcm9CWklBVE5oejlDRUh3RUZrTmpZZzBFR01BRytqY2JBajFESmpSNzNjeGJhTnJYV1B4QStoaVFoSGxBcnJaQTdyRlY1LS0tLS1FTkQgUEtDUzctLS0tLQoiPgo8L2Zvcm0+Jy4KIjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj1cIm1haWx0bzpzamdAY21zbW9kdWxlcy5jb21cIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9XCJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUExcIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPiI7CgoKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1R2xa9yY2UgZm9ybXVsJmFhY3V0ZTvFmcWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnVHlwIHBvbGUgbmVieWwgbmFzdGF2ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVnliZXJ0ZSBqZWRudSAobmVibyB2JmlhY3V0ZTtjZSkgcG9sb8W+ZWsgbW9kdWx1IENhdGFsb2dlcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUtvbmVjIHNrdXBpbnkgcG9sJmlhY3V0ZTvEjWVrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1aYcSNJmFhY3V0ZTt0ZWsgc2t1cGlueSBwb2wmaWFjdXRlO8SNZWsnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0b3YmZWFjdXRlOyB2c3R1cG4maWFjdXRlOyBwb2xlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHRvdiZlYWN1dGU7IHZzdHVwbiZpYWN1dGU7IHBvbGUgKHYmaWFjdXRlO2NlbiZhYWN1dGU7c29ibiZlYWN1dGU7KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0b3YmeWFjdXRlOyByJmFhY3V0ZTttZcSNZWsnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnWmEmc2Nhcm9uO2tydCZhYWN1dGU7dmFjJmlhY3V0ZTsgcG9sJmlhY3V0ZTvEjWtvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnU2t1cGluYSB6YSZzY2Fyb247a3J0JmFhY3V0ZTt2YWMmaWFjdXRlO2NoIHBvbCZpYWN1dGU7xI1layc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdSb3piYWxvdmFjJmlhY3V0ZTsgbmFiJmlhY3V0ZTtka2EnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciB2JmlhY3V0ZTtjZSBtb8W+bm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1YmeWFjdXRlO2LEm3Igc3QmYWFjdXRlO3TFryBVU0EnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBrYW5hZHNrJnlhY3V0ZTtjaCBwcm92aW5jaSZpYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBzdCZhYWN1dGU7dMWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBkYXRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciDEjWFzdSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1NrdXBpbmEgcMWZZXAmaWFjdXRlO25hxI3Fryc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqWmFwc2F0IHYmeWFjdXRlO3NsZWRreSBkbyB0ZXh0b3YmZWFjdXRlO2hvIHNvdWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlVsb8W+aXQgdiZ5YWN1dGU7c2xlZGt5IGRvIGRhdGFiJmFhY3V0ZTt6ZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqVWxvxb5pdCB2JnlhY3V0ZTtzbGVka3kgcHJvIG1vZHVsIFByb2hsJmlhY3V0ZTvFvmXEjSBmb3JtdWwmYWFjdXRlO8WZxa8gdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdOYWhyJmFhY3V0ZTtuJmlhY3V0ZTsgc291Ym9ydSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWNrJnlhY3V0ZTsgdGV4dCAoU3RhdGljIFRleHQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpY2smeWFjdXRlOyBvZGtheiAoU3RhdGljIExpbmspJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnT2RrYXogKHZsb8W+ZW4meWFjdXRlOyB1xb5pdmF0ZWxlbSkgW0xpbmsgKFVzZXItZW50ZXJlZCldJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctU2Nob3ZhbiZlYWN1dGU7IHBvbGUgKEhpZGRlbiBGaWVsZCknOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLVZ5cG/EjSZpYWN1dGU7dGFuJmVhY3V0ZTsgcG9sZSAoQ29tcHV0ZWQgRmllbGQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0JleiBvdmXFmWVuJmlhY3V0ZTsgcGxhdG5vc3RpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzZWxuJmFhY3V0ZTsgaG9kbm90YSAoTnVtZXJpYyknOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnQ2Vsb8SNJmlhY3V0ZTtzZWxuJmFhY3V0ZTsgaG9kbm90YSAoSW50ZWdlciknOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWxvdiZhYWN1dGU7IGFkcmVzYSAoRW1haWwgQWRkcmVzcyknOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvbiZpYWN1dGU7IMSNJmlhY3V0ZTtzbG8gKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNdXMmaWFjdXRlOyBiJnlhY3V0ZTt0IHphJnNjYXJvbjtrcnRudXRvIChNdXN0IEJlIENoZWNrZWQpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdPZHBvdiZpYWN1dGU7ZCZhYWN1dGU7IHJlZ3VsJmFhY3V0ZTtybiZpYWN1dGU7bXUgdiZ5YWN1dGU7cmF6dSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdOZW9kcG92JmlhY3V0ZTtkJmFhY3V0ZTsgcmVndWwmYWFjdXRlO3JuJmlhY3V0ZTttdSB2JnlhY3V0ZTtyYXp1JzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdWZSB2ecW+YWRvdmFuJmVhY3V0ZTttIHBvbGkgbmVieWxhIHZsb8W+ZW5hIGhvZG5vdGEnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIHBvbGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUHJvcyZpYWN1dGU7bSB2eXBsxYh0ZSDEjSZpYWN1dGU7c2Vsbm91IGhvZG5vdHUgdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgcGxhdG4meWFjdXRlOyAmdWFjdXRlO2RhaiB2IHBvbGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIGNlbG/EjSZpYWN1dGU7c2Vsbm91IGhvZG5vdHUgdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgcGxhdG5vdSBlbWFpbG92b3UgYWRyZXN1IHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsb3YmYWFjdXRlOyBhZHJlc2EgbmVvZHBvdiZpYWN1dGU7ZCZhYWN1dGU7IGhvZG5vdMSbIHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1Byb3MmaWFjdXRlO20gdmxvxb50ZSBwbGF0biZlYWN1dGU7IHRlbGVmb24maWFjdXRlOyDEjSZpYWN1dGU7c2xvIGRvIHBvbGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmV2eXBhZCZhYWN1dGU7IGpha28gcGxhdG4mYWFjdXRlOyBlbWFpbG92JmFhY3V0ZTsgYWRyZXNhISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUHJvcyZpYWN1dGU7bSB2bG/FvnRlIGhvZG5vdHUga3JhdCZzY2Fyb247JmlhY3V0ZTsgbmXFviAlcyB6bmFrxa8nOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrLCBrdGVyJnlhY3V0ZTsgYnVkZSBwb3XFvml0IGpha28gb2RkxJtsb3ZhxI0gdmUgdiZ5YWN1dGU7c2xlZGMmaWFjdXRlO2NoLCBrdGVyJmVhY3V0ZTsgdnJhY2VqJmlhY3V0ZTsgdiZpYWN1dGU7Y2UgbmXFviAxIGhvZG5vdHUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnUG/FmWFkJmlhY3V0ZTsgcG9sJmlhY3V0ZTsgYWt0dWFsaXpvdiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bCZhYWN1dGU7xZkgc21heiZhYWN1dGU7bi4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1BvbGUgc21heiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYWNlIGFrdHVhbGl6b3YmYWFjdXRlO25hLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1BybyBwb2tyYcSNb3YmYWFjdXRlO24maWFjdXRlOyBtdXMmaWFjdXRlO3RlIHphJnNjYXJvbjtrcnRub3V0ICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnTXVzJmlhY3V0ZTt0ZSB1csSNaXQgYWxlc3BvxYggamVkbnUgYWRyZXN1ISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdKc3RlIHNpIGppc3QgdnltYXomYWFjdXRlO24maWFjdXRlO20gZm9ybXVsJmFhY3V0ZTvFmWUgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdKc3RlIHNpIGppc3Qgc21heiZhYWN1dGU7biZpYWN1dGU7bSBwb2xlICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdQb2tyb8SNaWwmZWFjdXRlOyBtb8W+bm9zdGkgbmVqc291IGRvc3R1cG4mZWFjdXRlOywgZG9rdWQgbmVuJmlhY3V0ZTsgbmFzdGF2ZW4gdHlwIHBvbGUuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdQb2xlIG11c2VqJmlhY3V0ZTsgYiZ5YWN1dGU7dCBwb2ptZW5vdiZhYWN1dGU7bmEsIHBva3VkIHRvdG8gbmV2eXBuZXRlIHYgbmFzdGF2ZW4maWFjdXRlOyBUdsWvcmNlIGZvcm11bCZhYWN1dGU7xZnFry4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltbiZpYWN1dGU7JzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdEJmVhY3V0ZTtsa2E6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG1vxb5ub3N0JmlhY3V0ZTsnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyB6bmFrxa8uJzsKJGxhbmdbJ29yZGVyJ10gPSAnUG/FmWFkJmlhY3V0ZTsnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbbmV1csSNZW5vXSc7CiRsYW5nWydhZGRlZCddID0gJ3DFmWlkJmFhY3V0ZTtubyc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWt0dWFsaXpvdiZhYWN1dGU7bm8nOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnVMWZJmlhY3V0ZTtkaXQgdmxhc3Rub3N0aSBuYSB2JnlhY3V0ZTtzdHVwdSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnUHJvJzsKJGxhbmdbJ3llcyddID0gJ0Fubyc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdwxZkmaWFjdXRlO2plbWPFryc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbW/Fvm4meWFjdXRlO2NoIHNvdWJvcsWvJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdVbG/Fvml0JzsKJGxhbmdbJ2FkZCddID0gJ1DFmWlkYXQnOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXpvdmF0JzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnVWxvxb5pdCBhIHBva3JhxI1vdmF0IHYgJnVhY3V0ZTtwcmF2JmFhY3V0ZTtjaCc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFjZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWNrJmVhY3V0ZTsnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsJmFhY3V0ZTvFmSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnTmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnVnnFvmFkb3Zhbm9zdCBwb2wmaWFjdXRlO8SNa2EgYnlsYSB1cHJhdmVuYS4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiB2ZWxpa29zdCc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTvFmWVuJmlhY3V0ZTsnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1Bvdm9sZW4mZWFjdXRlOyB0eXB5IHNvdWJvcsWvJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTmFocmFuJnlhY3V0ZTsgc291Ym9yIGplIHDFmSZpYWN1dGU7bGkmc2Nhcm9uOyB2ZWxpayZ5YWN1dGU7LiBQb3ZvbGVuJmFhY3V0ZTsgdmVsaWtvc3QgamU6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGVudG8gdHlwIHNvdWJvcnUgbmVtxa/FvmUgYiZ5YWN1dGU7dCBuYWhyJmFhY3V0ZTtuLiBQcm9zJmlhY3V0ZTttIHprb250cm9sdWp0ZSwgxb5lIHNvdWJvciBtJmFhY3V0ZTsgc3ByJmFhY3V0ZTt2bm91IHDFmSZpYWN1dGU7cG9udS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTmFociZhYWN1dGU7dCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTvFmSBieWwgaW1wb3J0b3YmYWFjdXRlO24uJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBmb3JtdWwmYWFjdXRlO8WZZSBzZWxoYWwhIFhNTCBzb3Vib3IgbmVuJmlhY3V0ZTsgdmUgc3ByJmFhY3V0ZTt2biZlYWN1dGU7bSB0dmFydS4nOwokbGFuZ1sncm93cyddID0gJyVzIMWZJmFhY3V0ZTtka8WvJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBzbG91cGPFryc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWydob3VyJ10gPSAnSG9kaW5hJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0YSc7CiRsYW5nWydtZXJpZCddID0gJ1BvbGVkbiZpYWN1dGU7ayc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUm96c2FoOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0TEm2t1amVtZSEgViZhYWN1dGU7JnNjYXJvbjsgcMWZJmlhY3V0ZTtzcMSbdmVrIGJ5bCB6YXpuYW1lbiZhYWN1dGU7bi4nOwokbGFuZ1snZWRpdCddID0gJ1VwcmF2aXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnU21hemF0JzsKJGxhbmdbJ2RheSddID0gJ0Rlbic7CiRsYW5nWydtb24nXSA9ICdNxJtzJmlhY3V0ZTtjJzsKJGxhbmdbJ3llYXInXSA9ICdSb2snOwokbGFuZ1snbm9uZSddID0gJyhuaWMpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIG9kaW5zdGFsb3YmYWFjdXRlO24uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnplICVzIGJ5bCBuYWluc3RhbG92JmFhY3V0ZTtuLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGJ5bCB1cGdyYWRvdiZhYWN1dGU7biBuYSB2ZXJ6aSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnWnDEm3QuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1Vsb8W+aXQgZm9ybXVsJmFhY3V0ZTvFmSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdQb2tyYcSNb3ZhdC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnWmEmc2Nhcm9uO2tydG51dG8nOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmV6YSZzY2Fyb247a3J0bnV0byc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hsYXZuJmlhY3V0ZTsnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ05hc3RhdmVuJmlhY3V0ZTsgem9icmF6ZW4maWFjdXRlOyBmb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnVWtsJmFhY3V0ZTtkJmFhY3V0ZTtuJmlhY3V0ZTsgZm9ybXVsJmFhY3V0ZTvFmWUnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdOYXN0YXZlbiZpYWN1dGU7IENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnUG9rcm/EjWlsJmFhY3V0ZTsgbmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICcmU2Nhcm9uO2FibG9uYSBmb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmxvbmEgenByJmFhY3V0ZTt2eSBwbyB2bG/FvmVuJmlhY3V0ZTsgZGF0JzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+ViB0b210byBwb2xpIGx6ZSBwb3XFviZpYWN1dGU7dCBwcm9txJtubiZlYWN1dGU7IFNtYXJ0eS48ZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnUMWZaWRhdCB2JmlhY3V0ZTtjZSBtb8W+bm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU21hemF0IG96bmHEjWVuJmVhY3V0ZTsgbW/Fvm5vc3RpJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnUMWZaWRhdCB2JmlhY3V0ZTtjZSB6YSZzY2Fyb247a3J0JmFhY3V0ZTt2YWMmaWFjdXRlO2NoIHBvbCZpYWN1dGU7xI1layc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NtYXphdCBvem5hxI1lbiZhYWN1dGU7IHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhYyZpYWN1dGU7IHBvbCZpYWN1dGU7xI1rYSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1DFmWlkYXQgZGFsJnNjYXJvbjsmaWFjdXRlOyBhZHJlc3UnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdTbWF6YXQgb3puYcSNZW4mZWFjdXRlOyBhZHJlc3knOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnUMWZaWRhdCBkYWwmc2Nhcm9uOyZpYWN1dGU7IGMmaWFjdXRlO2wnOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU21hemF0IG96bmHEjWVuJmVhY3V0ZTsgYyZpYWN1dGU7bGUnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdCeWxvIHZ5dHZvxZllbm8gcMWZJmlhY3V0ZTtsaSZzY2Fyb247IG1ub2hvIGUtbWFpbMWvIHBybyBWYSZzY2Fyb247aSBJUCBhZHJlc3UuIEFudGlzcGFtIHphYnImYWFjdXRlO25pbCBkb3J1xI1lbiZpYWN1dGU7Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTdXNwZWN0ZWQgc3BhbSBmcm9tIElQICVzIHN0b3BwZWQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdTZcWZYWRpdCBwb2wmaWFjdXRlO8SNa2EnOwokbGFuZ1snY2FuY2VsJ10gPSAnU3Ryb25vJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1NhZGEgaG9kbm90OiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPgo8YnIvPgo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPgpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4KPGJyLz4KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPgo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdSZWd1bCZhYWN1dGU7cm4maWFjdXRlOyB2JnlhY3V0ZTtyYXosIHVtb8W+xYh1aiZpYWN1dGU7YyZpYWN1dGU7IGZpbHRyb3YmYWFjdXRlO24maWFjdXRlOyBwb2wmaWFjdXRlO8SNZWsgbW9kdWx1IENhdGFsb2dlciBwb2RsZSBqbSZlYWN1dGU7bmEnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdWJnlhY3V0ZTsmc2Nhcm9uO2thIHBvbCZpYWN1dGU7xI1rYSB0eXB1IHNlbGVjdCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSBwb2wmaWFjdXRlO8SNa2EnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnQWRyZXMmYWFjdXRlO8WZLCBrYW0gYnVkb3UgdWtsJmFhY3V0ZTtkJmFhY3V0ZTtueSBvdWJvcnknOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVxb5pdmF0ZWxlbSBkZWZpbm92YW4meWFjdXRlOyB0YWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmV0dXJuIHRvIHdpdGggdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU3VibWl0dGVkIHdpdGggZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMgY2F0ZWdvcnknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlvIEJ1dHRvbiBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0RlbGV0ZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7U2VsZWN0IE9uZSZxdW90OyBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1NlbGVjdGlvbiBWYWx1ZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ09wdGlvbiBOYW1lJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbHVlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnUHVsbGRvd24gT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGlzZWxlY3QgT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcm9tIG5hbWUmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgJnF1b3Q7eEB5JnF1b3Q7IGluc3RlYWQgb2YgcmVxdWlyaW5nICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0Zyb20gYWRkcmVzcyZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFbWFpbCBTdWJqZWN0IExpbmUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybSBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTm90IFJlYWR5JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXImIzAzOTtzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzZSB0aGlzIHNob3J0Y3V0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsZCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1Nob3cgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZpZWxkIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGaWVsZCBUeXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBZGQgTmV3IEZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FkZCBOZXcgRmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZGQgSmF2YXNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnRmllbGQgdG8gVmFsaWRhdGUnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIGlkIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxJiMwMzk7ZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ09waSZzY2Fyb247dGUgc3ByJmFhY3V0ZTt2bsSbIHpuYWt5IHogb2JyJmFhY3V0ZTt6a3UuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb24mIzAzOTt0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0ZpZWxkcyB0aGF0IGhhdmUgbXVsdGlwbGUgdmFsdWVzIG1heSBhbHNvIGJlIGFjY2Vzc2VkIHZpYSB0aGUgc21hcnR5IHZhbHVlIG9mICRmaWVsZG5hbWVfYXJyYXkgb3IgJGZsZF8jX2FycmF5Lic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEZXN0aW5hdGlvbiBQYWdlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgYSBuYW1lPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgVW5pcXVlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTG9hZCB0ZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtjbXNfbW9kdWxlfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdOZWVkIG1vcmUgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdUb28gbWFueSBjb25mdXNpbmcgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1N3aXRjaCB0byBBZHZhbmNlZCBNb2RlJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnU3dpdGNoIHRvIFNpbXBsZSBNb2RlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZSBhIGNvcHkgb2YgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOZXZlcic7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdHaXZlIHVzZXIgYSBjaG9pY2UgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWx3YXlzJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdVc2VyIGRlZmluZWQgdGFnIHJldHVybmVkIGFuIGVycm9yJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQVJOSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ2xlZG5hJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICcmdWFjdXRlO25vcmEnOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ2LFmWV6bmEnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ2R1Ym5hJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAna3bEm3RuYSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICfEjWVydm5hJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ8SNZXJ2ZW5jZSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ3NycG5hJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAneiZhYWN1dGU7xZkmaWFjdXRlOyc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICfFmSZpYWN1dGU7am5hJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdsaXN0b3BhZHUnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ3Byb3NpbmNlJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IHVuY2hlY2tlZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiBjaGVja2VkJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+CjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+CjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0Cm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+CjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4KCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcKaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPgo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPC91bD48L2xpPjwvbGk+PC91bD4KCgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPgo8cHJlPgoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCglmb3JtIHttYXJnaW4tdG9wOjB9Cglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0KCWZpZWxkc2V0IGRpdiB7CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW07Cgl9CglmaWVsZHNldCBkaXYgZGl2IHsKCQltYXJnaW4tdG9wOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbQoJfQoJZmllbGRzZXQgewoJCW1hcmdpbi1ib3R0b206MWVtOwoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsKCQlwYWRkaW5nOjAuNWVtCgl9CglmaWVsZHNldCBsYWJlbCB7CgkJd2lkdGg6YXV0bzsKCX0KCWxlZ2VuZCB7CgkJY29sb3I6I0ZGRjsKCQliYWNrZ3JvdW5kOiNGNjA7CgkJZm9udC1zdHlsZTppdGFsaWM7CgkJZm9udC1zaXplOjEuMmVtOwoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJcGFkZGluZzowLjJlbTsKCQl3aWR0aDphdXRvOwoJCWJvcmRlcjoxcHggc29saWQgI0NDQwoJfQoJdGV4dGFyZWEgewoJCW1hcmdpbjogMC41ZW0gMDsKCQl3aWR0aDo5OCU7CgkJaGVpZ2h0OiA2ZW0KCX0KCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0KCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLwoJLmNhcHRjaGEgewoJCW1hcmdpbjowLjVlbSAwOwoJCXdpZHRoOjIwMHB4OwoJCXRleHQtYWxpZ246Y2VudGVyCgl9CgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0KCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19CjwvcHJlPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODEyNDQ2OTI3LjEyMDEyNTAyMzAuMTI0NzU4Njg1Ni4xMjQ3Nzc4ODIzLjExOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNDcxNTEyOTAuMTE3LjU0LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj16c3ByYWtzaWNlLnprZWR1LmN6fHV0bWNjdD0vc2tvbGNhL2FkbWluL2ltYWdlZmlsZXMucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFyIEdlbmVyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZlbHQtdHlwZSBpa2tlIHNhdCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdWJmFlbGlnO2xnIGVuIChlbGxlciBmbGVyZSkga2F0YWxvZyBlbW5lcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZlbHRzJmFlbGlnO3Qgc2x1dCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmVsdHMmYWVsaWc7dCBiZWd5bmQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEFnYWluRmllbGQnXSA9ICdTa3JpdiBQYXNzd29yZCAoa29uZmlybWF0aW9uKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZWtzdGZlbHQgKGZsZXJlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdGZlbHQsIGZsZXJlIGxpbmllcic7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnS25hcCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdBZmtyeWRzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3J1cHBlIGFmIGFma3J5ZHNuaW5nc2Jva3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duLW1lbnUnOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJ1B1bGxkb3duICgmYXJpbmc7ciknOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGktdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIHYmYWVsaWc7bGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlzayBwcm9pbnMgdiZhZWxpZztsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZGUgdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdG8gVmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHN2YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8ga25hcCBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIHJlc3VsdGF0ZXQgYmFzZXJldCBwJmFyaW5nOyBwdWxsZG93bi12YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqR2VtIHJlc3VsdGF0ZXIgaSBlbiBmaWwgYmFzZXJldCBwJmFyaW5nOyBtZW51JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypHZW0gcmVzdWx0YXRlciBpIGVuIGZpbCBiYXNlcmV0IHAmYXJpbmc7IGZsZXJlIHZhbGd0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypWaWRlcmVzdGlsIHRpbCBzaWRlIGJhc2VyZXQgcCZhcmluZzsgcHVsbGRvd24tdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgcmVzdWx0YXRldCB0aWwgYW5naXZuZSBhZHJlc3NlKHIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZCZlYWN1dGU7ciB2aWEgZW1haWwgYWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTa3JpdiByZXN1bHRhdGVyIHRpbCBhbG0uIHRla3N0LWZpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqR2VtIHJlc3VsdGF0ZXIgaSBkYXRhYmFzZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKkdlbSByZXN1bHRhdGVyIHRpbCBGb3JtQnJvd3NlciBtb2R1bCB2ZXJzaW9uIDMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqS2FsZCBlbiBicnVnZXJkZWZpbmVyZXQgdGFnIGluZGUgaSBmb3JtdWxhcmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRpbCBicnVnZXItYW5naXZlbiBlbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0aWwgZW4gQ01TIGFkbWluIGJydWdlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNpZGVza2lmdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbC11cGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgQWdhaW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcmEgbmF2biZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RW1uZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2sgdGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGlzayBsaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnLUxpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1Ta2p1bHQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQmVyZWduZXQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlrdCB0YWwgKHNlcmllbHQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLVVzZXIgRGVmaW5lZCBUYWcgQ2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxlIEludGVyZmFjZSBGaWVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2YWxpZGVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0hlbHRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb24gbnVtbWVyIChVU0EpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ1NrYWwgdiZhZWxpZztyZSB2YWxndCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnU2thbCBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTSZhcmluZzsgaWtrZSBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0VuIHYmYWVsaWc7cmRpIGJsZXYgaWtrZSBhbmdpdmV0IGkgZXQgcCZhcmluZztrciZhZWxpZzt2ZXQgZmVsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0FuZ2l2IGVuIHYmYWVsaWc7cmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdBbmdpdiBldCB0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2l2IGVuIGd5bGRpZyB2JmFlbGlnO3JkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdBbmdpdiBldCBoZWx0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0FuZ2l2IGVuIGd5bGRpZyBlbWFpbCBhZHJlc3NlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRW1haWwgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBpbiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnViZhZWxpZztyIHZlbmxpZyBhdCBsb2dnZSBpbmQgZm9yIGF0IGJydWdlIGRlbm5lIGZvcm11bGFyJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGVyIGlra2UgZW4gZ3lsZGlnIGVtYWlsIGFkcmVzc2UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdBbmdpdiBlbiB2JmFlbGlnO3JkaSBkZXIgaWtrZSBlciBsJmFlbGlnO25nZXJlIGVuZCAlcyB0ZWduJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hdF9sZWFzdCddID0gJ1YmYWVsaWc7ciB2ZW5saWcgYXQgdGFzdGUgZW4gdiZhZWxpZztyZGkgZGVyIGhhciBtaW5kc3QgJXMgdGVnbic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1RlZ24gZGVyIGthbiBiZW55dHRlcyB0aWwgYXQgYWRza2lsbGUgZmxlcmUgdiZhZWxpZztyZGllcic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnRHUgc2thbCBoYXZlICZxdW90OyVzJnF1b3Q7IHRpbGxhZGVsc2VuIGZvciBhdCBrdW5uZSB1ZGYmb3NsYXNoO3JlIGRlbiBvcGVyYXRpb24nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdCZWtsYWdlciEgRHUgaGFyIGlra2UgZGUgbiZvc2xhc2g7ZHZlbmRpZ2UgdGlsbGFkZWxzZXIgZm9yIGF0IHRpbGcmYXJpbmc7IGRlbiBzZWt0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsdC1yJmFlbGlnO2trZWYmb3NsYXNoO2xnZW4gYmxldiBvcGRhdGVyZXQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGFyZW0gYmxldiBzbGV0dGV0JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGZWx0ZXQgYmxldiBzbGV0dGV0JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRpb25lbiBibGV2IG9wZGF0ZXJldCc7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0R1IHNrYWwgcyZhZWxpZzt0dGUga3J5ZHMgaSAmcXVvdDslcyZxdW90OyBmb3IgYXQgZm9ydHMmYWVsaWc7dHRlJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBza2FsIGFuZ2l2ZSBtaW5kc3QgZW4gbW9kdGFnZXItYWRyZXNzZSc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIHNsZXR0ZSBmb3JtdWxhcmVuICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdVZHZpZGVkZSBpbmRzdGlsbGluZ2VyIGthbiBmJm9zbGFzaDtyc3Qgc2VzLCBuJmFyaW5nO3IgZGVyIGVyIHZhbGd0IGZlbHR0eXBlJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRmVsdG5hdm5ldCAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWcuIEJlbnl0IHZlbmxpZ3N0IHVuaWtrZSBmZWx0bmF2bmUnOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZlbHRlciBza2FsIG5hdm5naXZlcyBtZWQgbWluZHJlIGR1IHNsJmFyaW5nOyBkZXR0ZSBmcmEgaSBGb3JtdWxhciBHZW5lcmF0b3JlbnMgaW5kc3RpbGxpbmdlcic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYWVsaWc7bmdkZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZ211bGlnaGVkZXInOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycyc7CiRsYW5nWydvcmRlciddID0gJ1ImYWVsaWc7a2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW2lra2UgYW5naXZldF0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxmJm9zbGFzaDtqZXQnOwokbGFuZ1sndXBkYXRlZCddID0gJ29wZGF0ZXJldCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0JmVhY3V0ZTtyIHZhbGdtdWxpZ2hlZGVyIHZlZCBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYWVsaWc7bGcgZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdWJmFlbGlnO2xnIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdUaWwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vZHRhZ2VyZSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbXVsaWdlIGZpbGVyJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25lcic7CiRsYW5nWydzYXZlJ10gPSAnR2VtJzsKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BkYXQmZWFjdXRlO3InOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdHZW0gb2cgZm9ydHMmYWVsaWc7dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyZXInOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWx0ZXRzIHAmYXJpbmc7a3ImYWVsaWc7dmV0LXN0YXR1cyBvcGRhdGVyZXQnOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWFrcy4gc3Qmb3NsYXNoO3JyZWxzZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1VkdmlkZWxzZXInOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1RpbGxhZHRlIGZpbHR5cGVyJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRGVuIHVwbG9hZCYjMDM5O2VkZSBmaWwgZXIgZm9yIHN0b3IhIE1ha3NpbWFsIHN0Jm9zbGFzaDtycmVsc2UgZXI6ICc7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIG0mYXJpbmc7IGlra2UgdXBsb2FkZXMuIEtvbnRyb2xsJmVhY3V0ZTtyIHZlbmxpZ3N0IGF0IGZpbHR5cGVuIGVyIGtvcnJla3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXIgaW1wb3J0ZXJldCc7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgYWYgZm9ybXVsYXIgZmVqbGVkZS4gRGVyIHZhciBldCBwcm9ibGVtIG1lZCBmb3JtYXRldCBhZiBYTUwtZmlsZW4nOwokbGFuZ1sncm93cyddID0gJyVzIHImYWVsaWc7a2tlcic7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sb25uZXInOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXRpbWVycyB0aWQnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXRpbWVycyB0aWQnOwokbGFuZ1snaG91ciddID0gJ1RpbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnT21yJmFyaW5nO2RlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RhayEgRGluIGFmc2VuZGVsc2UgZXIgbW9kdGFnZXQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZyZlYWN1dGU7cic7CiRsYW5nWydkZWxldGUnXSA9ICdTbGV0JzsKJGxhbmdbJ2RheSddID0gJ0RhZyc7CiRsYW5nWydtb24nXSA9ICdNJmFyaW5nO25lZCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm9uZSddID0gJyhpbmdlbiknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxldCBibGV2IGFmaW5zdGFsbGVyZXQnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2lvbiAlcyBpbnN0YWxsZXJldC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGV0IGJsZXYgb3BncmFkZXJldCB0aWwgdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVGlsYmFnZS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2VuZCBmb3JtdWxhcic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdWaWRlcmUuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1ZhbGd0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0lra2UgdmFsZ3QnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtdWxhciBmcmVtdmlzbmluZ3MgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybXVsYXIgYWZzZW5kZWxzZSc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBdmFuY2VyZWRlIGluZHN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0Fmc2VuZGVsc2VzIHNrYWJlbG9uJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgSW50ZWdyYXRpb24nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVyIGthbiBiZW55dHRlcyBpIGRldHRlIGZlbHQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdUaWxmJm9zbGFzaDtqIGZsZXJlIHZhbGdtdWxpZ2hlZGVyJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2xldCBtYXJrZXJlZGUgdmFsZ211bGlnaGVkZXInOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdUaWxmJm9zbGFzaDtqIGZsZXJlIGNoZWNrYm94ZSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NsZXQgbWFya2VyZWRlIGNoZWNrYm94ZSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1RpbGYmb3NsYXNoO2ogZW5kbnUgZW4gYWRyZXNzZSc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1NsZXQgZGVuIG1hcmtlcmVkZSBhZHJlc3NlJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ1RpbGYmb3NsYXNoO2ogZW5kbnUgZW4gZGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU2xldCBkZSBtYXJrZXJlZGUgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnRGVyIGVyIGdlbmVyZXJldCBmb3IgbWFuZ2UgZS1tYWlscyBmcmEgZGVubmUgSVAgYWRyZXNzZS4gQW50aS1TcGFtIGZ1bmt0aW9uZW4gaGFyIGZvcmhpbmRyZXQgYWZzZW5kZWxzZS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnTWFpbCBmcmEgSVAgJXMsIG1pc3QmYWVsaWc7bmt0IGZvciBhdCB2JmFlbGlnO3JlIHNwYW0sIGVyIHN0b3BwZXQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdPbWFycmFuZyZlYWN1dGU7ciBmZWx0ZXInOwokbGFuZ1snY2FuY2VsJ10gPSAnRm9ydHJ5ZCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+Cjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0EgcmVndWxhciBleHByZXNzaW9uIHRvIGFsbG93IGZpbHRlcmluZyBjYXRhbG9nZXIgaXRlbXMgYnkgbmFtZSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ0gmb3NsYXNoO2pkZW4gcCZhcmluZzsgbXVsdGktdiZhZWxpZztsZyBmZWx0JzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGZWx0aCZvc2xhc2g7amRlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uc21hcHBlIGZvciBvdXRwdXQgZmlsZXInOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdCcnVnZXJkZWZpbmVyZXQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaWRlIGF0IHZlbmRlIHRpbGJhZ2UgdGlsIG1lZCB1cGxvYWQtbCZhZWxpZztua2VuJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnSW5kc2VuZHQgbWVkIGZvcm11bGFyZ2VuZXJhdG9yJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWQga2F0ZWdvcmknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIGRlbm5lIGZpbCB0aWwgdXBsb2FkLW1vZHVsZXQnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnSGlzdG9yaWUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIGwmYWVsaWc7bmdkZSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ05hdm4gcCZhcmluZzsgY2hlY2tib2tzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnTmF2biBwJmFyaW5nOyBrbmFwJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWJmFlbGlnO3JkaSBuJmFyaW5nO3IgbWFya2VyZXQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnViZhZWxpZztyZGkgdWRlbiBtYXJrZXJpbmcnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0dydXBwZWRldGFsamVyIGZvciBDaGVja2Jva3MnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnU2xldD8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7ViZhZWxpZztsZyBlbiZxdW90OyBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1ZhbGd0IHYmYWVsaWc7cmRpJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcnQgdWR2YWxnJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhcnQgdWR2YWxnJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnU3RhbmRhcnQgdWR2YWxnJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsZ211bGlnaGVkZW5zIG5hdm4nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnSW5kc2VuZHQgdiZhZWxpZztyZGknOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIG11bGlnaGVkZXInOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpdmFsZyBtdWxpZ2hlZGVyJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGlhbnRpb24gZm9yIEZpbC1uYXZuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0ZyYSBuYXZuJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnQnJ1ZyBibCZvc2xhc2g7ZCBlbWFpbCB2YWxpZGVyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0Jlbnl0IGFmc2xhcHBldCBlbWFpbC12YWxpZGVyaW5nIChmLmVrcy4sIHRpbGxhZCAmcXVvdDt4QHkmcXVvdDsgaSBzdGVkZXQgZm9yIGF0IGtyJmFlbGlnO3ZlICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0ZyYSBhZHJlc3NlJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIHRlZ25zJmFlbGlnO3Qga29kbmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbCBuYXZuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFbW5lbGluaWUgaSBlLW1haWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsYXIgbmF2bic7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGFyIHN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0tsYXIgdGlsIGJydWcnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0lra2Uga2xhcic7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2lkZSBkZXIgc2thbCB2aWRlcmVzdGlsbGVzIHRpbCBlZnRlciBhZnNlbmRlbHNlIGFmIGZvcm11bGFyJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlclwmIzAzOTtzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2Jlbnl0IGRlbm5lIGdlbnZlaic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybXVsYXIgZmVsdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmVsdCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1ZpcyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdLbGlrIGhlciBmb3IgYXQgZm9yIGF0IHNlIGRpc3BsYXkgYWxpYXNlciBuJmFyaW5nO3IgZGVyIHRpbGYmb3NsYXNoO3JlcyBlbGxlciByZWRpZ2VyZXMgaSBlbiBmb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmVsdCBOYXZuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZlbHR0eXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdmb3IgYXQgc2thYmUgZXQgZm9ybXVsYXItc3R5cmVuZGUgZmVsdCc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdUaWxmJm9zbGFzaDtqIG55IGZvcm11bGFyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZpcyBmb3JtdWxhciBnZW5lcmF0b3IgdmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdEZXR0ZSB2aWwgaW5kcyZhZWxpZzt0dGUgZm9ybXVsYXJnZW5lcmF0b3JlbnMgdmVyc2lvbnNudW1tZXIgaSBlbiBrb21tZW50YXIgZm9yIGF0IGJpZHJhZ2UgdGlsIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnVGlsZiZvc2xhc2g7ciBueXQgZmVsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZWtzdCB0aWwgZm9ybXVsYXJlbnMgJnF1b3Q7SW5kc2VuZCZxdW90OyBrbmFwJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnS25hcC10ZWtzdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ1RpbGYmb3NsYXNoO2ogSmF2YXNjcmlwdCB0aWwgZW5kZWxpZyAmcXVvdDtJbmRzZW5kJnF1b3Q7LWtuYXAsIGRlciB2aWwgZm9yaGluZHJlIG11bHRpcGxlIGluZHNlbmRlbHNlcj8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ1RpbGYmb3NsYXNoO2ogc2lra2VyaGVkcy1zY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmVsdCB2YWxpZGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnRmVsdCBkZXIgc2thbCB2YWxpZGVyZXMnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIGlkIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdCcnVnZXJkZWZpbmVyZXQgdGFnIGRlciBza2FsIGthbGRlcyBmJm9zbGFzaDtyIGZvcm11bGFyZW4gdmlzZXMgZiZvc2xhc2g7cnN0ZSBnYW5nIChrYWxkZXMga3VuICZlYWN1dGU7biBnYW5nKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdCcnVnZXJkZWZpbmVyZXQgdGFnIGRlciBza2FsIGthbGRlcyBmJm9zbGFzaDtyIGZvcm11bGFyZW4gdmlzZXMgKGthbGRlcyBwJmFyaW5nOyBodmVyIHNpZGUgYWYgZmxlcnNpZGlnZSBmb3JtdWxhcmVyKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ0JydWdlcmRlZmluZXJldCB0YWcgZGVyIHNrYWwga2FsZGVzIHVuZGVyIGZvcm11bGFydmFsaWRlcmluZyc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCBkZXIgYnJ1Z2VzIHRpbCBhdCBtYXJrZXJlICZxdW90O0tyJmFlbGlnO3ZldCBmZWx0JnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUCZhcmluZztrciZhZWxpZzt2ZXQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ0tyJmFlbGlnO3YgZW4gbWFya2VyaW5nIGZvciBkZXR0ZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdTa2p1bCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdTa2p1bCBmZWx0ZXRzIG5hdm4gcCZhcmluZzsgZm9ybXVsYXJlbic7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGlzayB0ZWtzdCBkZXIgc2thbCB2aXNlcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FudGFsIGxpbmllciBhdCB2aXNlJzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ0t1biBsJmFlbGlnO3NlcmV0dGlnaGVkJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdJbnRldCBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgXCZxdW90O3ZhbGlkYXRpb24gdHlwZVwmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgXCZxdW90Oy9pbWFnZVwuKFxkKykvaVwmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1AmYXJpbmc7a3ImYWVsaWc7dmV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnU2tqdWwgZmVqbCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0RlYnVnLSAvIGZlamxtZWRkZWxlbHNlciBmb3JoaW5kcmVzIGkgYXQgYmxpdmUgc2V0IGFmIGJydWdlcmUuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgc2thYmVsb24nOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWRzdCZvc2xhc2g7cnJlbHNlIGZvciBmaWxlciAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0Rlbm5lIGJlZ3ImYWVsaWc7bnNuaW5nIGVyIGVuIHRpbGYmb3NsYXNoO2plbHNlICB0aWwgZXZlbnR1ZWxsZSBiZWdyJmFlbGlnO25zbmluZ2VyIHNhdCBhZiBwaHAgZWxsZXIgd2Vic2VydmVyLWtvbmZpZ3VyYXRpb25lbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1RpbGxhZHRlIGVuZGVsc2VyJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgXCZxdW90O2pwZyxnaWYsanBlZ1wmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdWaXMgcmVzdHJpa3Rpb25lcj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2lkZSBudW1tZXIgJXMgYWYgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZlbHRldCBoYXIgaW5kZW4gYXZhbmNlcmVkIHZhbGdtdWxpZ2hlZGVyJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdSZXNwb25zdGVrc3QgdmVkIHVzcGVjaWZlcmVkZSBmZWx0diZhZWxpZztyZGllcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnS2xpayBoZXIgZm9yIGF0IHMmYWVsaWc7dHRlIGVuIGdyJmFlbGlnO25zZSBwJmFyaW5nOyB0aSAoMTApIG1haWxzIHRpbGxhZHQgZnJhIGRlbiBnaXZuZSBJUCBhZHJlc3NlIHBlciB0aW1lLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdJdiZhZWxpZztya3MmYWVsaWc7dCBzaW1wbGUgYW50aS1zcGFtIGZvcmhvbGRzcmVnbGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVmlzIEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdUaWxsYWQgdmlzbmluZyBhZiBmZWx0IElEIG4mYXJpbmc7ciBkZXIgdGlsZiZvc2xhc2g7amVzIGVsbGVyIHJlZGlnZXJlcyBpIGVuIGZvcm11bGFyIGh2aXMgZGVyIGtsaWtrZXMgaGVyJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybXVsYXIgZnJhIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdCcnVnIGRldHRlIGZvcm11bGFybmF2bic7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIGZvcm11bGFyIGltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0JydWcgZGV0dGUgZm9ybXVsYXIgYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyJmVhY3V0ZTtyIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnRnVsZGYmb3NsYXNoO3IgYXV0b21hdGlzaz8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0luZHMmYWVsaWc7dCBhdXRvbWF0aXNrIFVSTCBmcmEgc2lkZW4sIGRlciBpbmRlaG9sZGVyIGZvcm11bGFyZW4/CihEZXR0ZSB0YWdlciBwcmVjZWRlbnMgZnJhIHNpZGVsJmFlbGlnO25rZSBtdWxpZ2hlZGVuIG5lZGVudW5kZXIpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYXJ0IGwmYWVsaWc7bmtlIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFydCBsJmFlbGlnO25rZSB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTCZhZWxpZztua2UgdGlsIHNpZGUnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj1cImh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGFcIiB0YXJnZXQ9XCJfbmV3XCI+XCZxdW90O0NhcHRjaGFcJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj1cImh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS9cIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdCcnVnIENhcHRjaGEgZm9yIGF0IGJlc2t5dHRlIGZvcm11bGFyaW5kbCZhZWxpZztnPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3XCI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0tvbmZpcm0mZWFjdXRlO3IgdmVubGlnc3QgYXQgZHUgaWtrZSBlciBldCBzY3JpcHQgdmVkIGF0IGwmYWVsaWc7c2Ugb2cgaW5kcyZhZWxpZzt0dGUgdGVnbmVuZSBmcmEgYmlsbGVkZXQnOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRm9ya2VydCB0ZWtzdCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB2YXIgaWtrZSBpZGVudGlzayc7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIaiZhZWxpZztscGV0ZWtzdCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb24mIzAzOTt0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ0RlZmF1bHQgdG8gYmxhbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnRGVmYXVsdCB0byBibGFuayAodW5jaGVjayB0byBkZWZhdWx0IHRvIHRvZGF5JiMwMzk7cyBkYXRlKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdFbmNyeXB0IGRhdGEgc3RvcmVkIGluIGRhdGFiYXNlJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2F0ZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1Bhc3NwaHJhc2Ugb3IgcGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgcGFzc3BocmFzZS4gKElmIHVzaW5nIE9wZW5TU0wsIHRoaXMgaXMgdGhlIHBhc3NwaHJhc2UgZm9yIHRoZSBwcml2YXRlIGtleSknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCBzb3J0IGZpZWxkcz8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRlIEtleSB0byB1c2UgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1RoaXMgaGFzaGVzIHRoZSBzb3J0IGZpZWxkcywgYnV0IGxlYXZlcyB0aGUgZmlyc3QgZmV3IGxldHRlcnMgdW5lbmNyeXB0ZWQuIENyeXB0b2dyYXBoaWNhbGx5LCB0aGlzIGNyZWF0ZXMgYSB2dWxuZXJhYmlsaXR5LCBidXQgZm9yIG1vc3QgdXNlcnMgaXQgaXMgYW4gYWNjZXB0YWJsZSB0cmFkZW9mZiBiZXR3ZWVuIHNlY3VyaXR5IGFuZCB0aGUgYWJpbGl0eSB0byBzb3J0IHJlY29yZHMuIFNvcnRpbmcgYmVjb21lcyBhcHByb3hpbWF0ZSwgYnV0IHdpbGwgcmVtYWluIHByZXR0eSBnb29kLiBJZiB5b3UgZG8gbm90IHVzZSB0aGlzIG9wdGlvbiwgc29ydCBmaWVsZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU3RvcmFnZSBFbmNyeXB0aW9uIFVuYXZhaWxhYmxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIE9wZW5TU0wgbW9kdWxlIG9yIG1jcnlwdCBzdXBwb3J0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBkYXRhYmFzZSBlbmNyeXB0aW9uLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdQbGVhc2UgbWFrZSBzdXJlIHlvdSBoYXZlIENVUkwgc3VwcG9ydCBhY3RpdmUgaW4geW91ciBQSFAgaW5zdGFsbC4gU2VlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ1J1biBpbiBNTEUgTW9kZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aW9uJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8gKGRvIG5vdCBkbyB0aGlzIGlmIHlvdSBhcmUgZ29pbmcgdG8gcHJpbnRfcigkcGFyYW1zKSApJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnRW50aXJlIFVSTCwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBwYXRoIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtIHN1Ym1pc3Npb24gVVJMJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ0Zvcm0gbWV0aG9kJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdNYXAgZmllbGQgJnF1b3Q7JXMmcXVvdDsgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgJnF1b3Q7dXNlcj1zdGV2ZStqb2JzJmFtcDtlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0RhdGEgd2lsbCBiZSBzdG9yZWQgaW4gYW4gWE1MIGZvcm1hdCBpbiB0aGUgW1BSRUZJWF1fbW9kdWxlX2ZiX2Zyb21icm93c2VyIGRhdGFiYXNlIHRhYmxlLic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICdFcnJvciEgRWl0aGVyIHRoZSBmb3JtIGhhcyBubyBmb3JtX2J1aWxkZXIgZGlzcG9zaXRpb24sIG9yIGl0IGZhaWxlZCB0byBpbnN0YW50aWF0ZSAoZHVlIHRvIG1lbW9yeSBpc3N1ZXM/KSc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXI/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRvIGZvciBhZnNlbmRlbHNlJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnT3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPgo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBUaWxiYWdlIHRpbCBmb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgRm9vdGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgZm9vdGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj1cImh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHBcIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzblwmIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgXCZxdW90O0Rpc3Bvc2l0aW9uXCZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0RhdGUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdEYXRlIEFwcHJvdmVkIChieSBhZG1pbiknOwokbGFuZ1sndGl0bGVfdXNlcl9hcHByb3ZlZCddID0gJ0RhdGUgQXBwcm92ZWQgKGJ5IHN1Ym1pdHRlciknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnVmlzICZxdW90O2Fmc2VuZGVsc2VzIHNrYWJlbG9uJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSBcJnF1b3Q7YWR2YW5jZWRcJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hlbHAtdGV4dCB0byBkaXNwbGF5IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJlbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ0JydWcgZm9yIGZsZXJlIGZlbHR0eXBlcj8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ0ZvciBtYW5nZSBmb3J2aXJyZW5kZSBmZWx0dHlwZXI/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnU2tpZnQgdGlsIGF2YW5jZXJldCB2aXNuaW5nJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnU2tpZnQgdGlsIHNpbXBsZSB2aXNuaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZSBhIGNvcHkgb2YgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0Rpc3BsYXkgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdCYWNrIHRvIEZvcm1CdWlsZGVyIE1haW4gUGFnZSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ1doaWNoIGVtYWlsIGhlYWRlcnMgc2hvdWxkIHRoaXMgaW5wdXQgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWQnXSA9ICdEbyBub3QgYWNjZXB0IGJsYW5rIHNwYWNlIGFzIHZhbGlkIHJlc3BvbnNlJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ0lmIGEgZmllbGQgaXMgcmVxdWlyZWQsIGNoZWNraW5nIHRoaXMgd2lsbCByZXF1aXJlIHRoYXQgcGVvcGxlIHB1dCBpbiBzb21lIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBub3QganVzdCBzcGFjZXMnOwokbGFuZ1snZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdBbGRyaWcnOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0FsdGlkJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnJnF1b3Q7RnJvbSZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdCb3RoICZxdW90O0Zyb20mcXVvdDsgYW5kICZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9zaW5nbGUnXSA9ICdTZWxlY3QgTGlzdCAoc2luZ2xlKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ1NlbGVjdCBMaXN0IChtdWx0aXBsZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpbyBHcm91cCc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdOb3RlOiBPdXRwdXQgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZjxici8+JnF1b3Q7Y29tcGFueSBuYW1lJnF1b3Q7PT4mcXVvdDt2YWx1ZSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdQaWNrIGEgY2F0ZWdvcnkgKG11bHRpcGxlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnUHVsbCBhIGZpZWxkIERlZmluaXRpb24mIzAzOTtzIHZhbHVlIChzaW5nbGUpIDxlbT5vcHRpb25hbDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnQ2hvb3NlIFVzZXIgaW5wdXQnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKEFsc28gdGFrZSBhIGxvb2sgYXQgdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIgaWYgeW91IHdhbnQgdG8gc2V0IGEgVURUIGZvciBmb3JtIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdFbmQgeWVhcic7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnVXNlciBkZWZpbmVkIHRhZyAlcyByZXR1cm5lZCBhbiBlcnJvci4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ0FkdmFyc2VsJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnVXNpbmcgTW9kdWxlIEludGVyZmFjZSc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPlRoaXMgZmllbGQgaXMgdXNlZCBhcyBhIGdhdGV3YXkgdG8gb3RoZXIgbW9kdWxlcyE8L2I+ClVzZSBpdCBieSBjcmVhdGluZyB5b3VyIGZvcm0gZWxlbWVudHMgaW4gdGhlIHRlbXBsYXRlcyBvZiB0aGUgb3RoZXIgbW9kdWxlKHMpIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlLCBhbmQgdXNpbmcgdGhlIDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiB0byB0aWUgaXQgYmFjayB0byBGb3JtQnVpbGRlci4gRm9yIGV4YW1wbGUsIHRvIGluY2x1ZGUgZm9ybSBvcHRpb25zIGJhc2VkIG9uIHRoZSBQcm9kdWN0cyBtb2R1bGUsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGluIFByb2R1Y3RzOjxici8+CjxwcmU+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTsmIzAzOTt9Cgl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsmIzAzOTt9CgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTs6OiYjMDM5O3xleHBsb2RlOiRNRGF0YX0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyBjaGVja2VkPSZxdW90O2NoZWNrZWQmcXVvdDsmIzAzOTt9CgkJCXsvaWZ9CgkJey9mb3JlYWNofQoJPGRpdiBjbGFzcz0mcXVvdDtQcm9kdWN0RGlyZWN0b3J5SXRlbSZxdW90Oz4KCQk8aW5wdXQgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyB2YWx1ZT0mcXVvdDt7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSZxdW90OyBuYW1lPSZxdW90O3skRkJpZH1bXSZxdW90OyB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgCgk8L2Rpdj4Key9mb3JlYWNofQo8L3ByZT4KPGJyLz4Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9JnF1b3Q7Y2F0JnF1b3Q7IHN1bW1hcnl0ZW1wbGF0ZT0mcXVvdDtZb3VyX0ZCX3RlbXBsYXRlJnF1b3Q7fTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnQWRkIHlvdXIgdGFnJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFydHMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFqJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmknOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVsaSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIEFmc2VuZGVsc2UnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91XCYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZFwmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPVwmcXVvdDtcJnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzIFwmcXVvdDtwYWdlIHggb2YgeVwmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPlwmcXVvdDtCYWNrXCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD5cJnF1b3Q7Q29udGludWVcJnF1b3Q7IG9yIFwmcXVvdDtTdWJtaXRcJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3VcJiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+Cic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSBcJnF1b3Q7TW9kaWZ5IEZvcm1zXCZxdW90OyBwZXJtaXNzaW9ucwpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3VcJiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUKeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUKY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQKb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJ2gzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdFwmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdVwmIzAzOTtyZQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT1cJiMwMzk7Rm9ybUJ1aWxkZXJcJiMwMzk7IGZvcm09XCYjMDM5O3NhbXBsZV9mb3JtXCYjMDM5O308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlXCYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzIChcJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7YW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoXCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm1cJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KPGg0Pk1haW48L2g0Pgo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgXCZxdW90O2Zhc3QgZmllbGQgYWRkZXJcJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlclwmIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKFwmcXVvdDtQcmV2aW91c1wmcXVvdDssIFwmcXVvdDtuZXh0XCZxdW90OywgXCZxdW90O3N1Ym1pdFwmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybVwmIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdVwmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb25cJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkIFwmIzAzOTtEaXNwbGF5IFwmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlXCZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91XCYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91XCYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lgo8L3A+CjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+CjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgo8L3VsPgo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLApidXQgaW4gdGhlIGRhdGEgd2hlbiBpdFwmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbgppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXRcJiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkIFwmcXVvdDtSZXF1aXJlZFwmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+CjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cKY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvIFwmcXVvdDt2aWV3IHNvdXJjZVwmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbgp3cml0ZSB5b3VyIENTUy48L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0cwo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPgo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPgo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdFwmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0XCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlIFwmcXVvdDtGcm9tXCZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSBcJnF1b3Q7RnJvbVwmcXVvdDsgZmllbGQuPC9saT4KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSBcJnF1b3Q7U3ViamVjdFwmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3VcJiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPC91bD48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSBcJnF1b3Q7RGlyZWN0b3JcJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCBcJnF1b3Q7YXBwcm92ZWQsXCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPgo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkKc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSBcJnF1b3Q7b3V0cHV0XCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlCm1vZHVsZVwmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CjwvdWw+PC9saT48L2xpPjwvdWw+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRcJiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSBcJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZVwmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3VcJiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3VcJiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0XCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgXCZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZVwmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+Cgo8aDM+Q29uZmlndXJhdGlvbjwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4KPHVsPgo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPgo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+CjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdVwmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8L3VsPgo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4KPHByZT4KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLwoJZm9ybSB7bWFyZ2luLXRvcDowfQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9CglmaWVsZHNldCBkaXYgewoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJbWFyZ2luLWxlZnQ6MWVtOwoJfQoJZmllbGRzZXQgZGl2IGRpdiB7CgkJbWFyZ2luLXRvcDowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW0KCX0KCWZpZWxkc2V0IHsKCQltYXJnaW4tYm90dG9tOjFlbTsKCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7CgkJcGFkZGluZzowLjVlbQoJfQoJZmllbGRzZXQgbGFiZWwgewoJCXdpZHRoOmF1dG87Cgl9CglsZWdlbmQgewoJCWNvbG9yOiNGRkY7CgkJYmFja2dyb3VuZDojRjYwOwoJCWZvbnQtc3R5bGU6aXRhbGljOwoJCWZvbnQtc2l6ZToxLjJlbTsKCQltYXJnaW4tYm90dG9tOjAuNWVtOwoJCXBhZGRpbmc6MC4yZW07CgkJd2lkdGg6YXV0bzsKCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MKCX0KCXRleHRhcmVhIHsKCQltYXJnaW46IDAuNWVtIDA7CgkJd2lkdGg6OTglOwoJCWhlaWdodDogNmVtCgl9CgoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscwoJCXRvIGhlbHAgYWxpZ25tZW50ICovCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19Cgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LCAKCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQoKCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovCgkuY2FwdGNoYSB7CgkJbWFyZ2luOjAuNWVtIDA7CgkJd2lkdGg6MjAwcHg7CgkJdGV4dC1hbGlnbjpjZW50ZXIKCX0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQoKCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLwoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0KPC9wcmU+Cgo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91XCYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZFwmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPVwmcXVvdDtcJnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzIFwmcXVvdDtwYWdlIHggb2YgeVwmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPlwmcXVvdDtCYWNrXCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD5cJnF1b3Q7Q29udGludWVcJnF1b3Q7IG9yIFwmcXVvdDtTdWJtaXRcJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3VcJiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+CgoKPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkblwmIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdVwmIzAzOTtyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+CjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdVwmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGRcJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3VcJiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdFwmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSBcJnF1b3Q7SGlkZSBFcnJvcnNcJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+CjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4KPC9vbD4gCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSVwmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbgp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28KYXRlIHRoZSBuZWlnaGJvclwmIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9XCJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnXCI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPVwibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbVwiPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmdcIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXNcIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+CjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9XCJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tXCI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9XCJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUExcIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE5NTQzMjMwNzUuMTI2Njg3NDY5OC4xMjcwNjY2MjQ4LjEyNzExMDEyNjQuMyc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzExMDEyNjQuMy4zLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1jbXNtcy5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTExNDcyNTg3NTUtMTI2Njg3NDY5ODA1MCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1CdWlsZGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnRmVsZHR5cCB3dXJkZSBuaWNodCBkZWZpbmllcnQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVyZhdW1sO2hsZW4gU2llIGVpbmVuIChvZGVyIG1laHJlcmUpIENhdGFsb2dlci1FaW50ciZhdW1sO2dlIGF1cyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLSBGZWxkZWluc3RlbGx1bmdlbiBFbmRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy0gRmVsZGVpbnN0ZWxsdW5nZW4gU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0ZmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdIVE1MNSBaYWhsZW5laW5nYWJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVFbWFpbEZpZWxkJ10gPSAnSFRNTDUgRW1haWwtRWluZ2FiZSc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVUkwtRWluZ2FiZSc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICdQYXNzd29ydCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ1Bhc3N3b3J0IChub2NobWFscyB6dXIgJlV1bWw7YmVycHImdXVtbDtmdW5nKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0ZmVsZCAoTWVocmZhY2gpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHRiZXJlaWNoJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQnV0dG9uRmllbGQnXSA9ICdCdXR0b24gJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0tvbnRyb2xsayZhdW1sO3N0Y2hlbic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0tvbnRyb2xsayZhdW1sO3N0Y2hlbi1HcnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTGlzdGVuZmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnTGlzdGVuZmVsZG1lbiZ1dW1sOyBKYWhyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ01laHJmYWNoYXVzd2FobCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGVpbmVzIFUuUy4tU3RhYXRlcyc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGVpbmVyIGthbmFkaXNjaGVuIFByb3ZpbnonOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGRlcyBMYW5kZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGRlcyBEYXR1bXMnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGRlciBaZWl0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnT3B0aW9uc2ZlbGQtR3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFcmdlYm5pc3NlIHBlciBFbWFpbCBhbiBBdXN3YWhsIGF1cyBkZW0gTGlzdGVuZmVsZCBzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypFcmdlYm5pc3NlIGluIGVpbmUgRGF0ZWkgYXVzIGRlciBMaXN0ZW5mZWxkYXVzd2FobCBzcGVpY2hlcm4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKkRpZSBFcmdlYm5pc3NlIGluIERhdGVpKGVuKSBhdXMgZGVyIE1laHJmYWNobGlzdGVuLUF1c3dhaGwgc3BlaWNoZXJuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypBdWYgZGllIFNlaXRlIGF1cyBkZW0gTGlzdGVuZmVsZCB3ZWl0ZXJsZWl0ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVyZ2Vibmlzc2UgcGVyIEVtYWlsIGFuIHZvcmdlZ2ViZW5lIEFkcmVzc2Uobikgc2VuZGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJyomVXVtbDtiZXJwciZ1dW1sO2Z1bmcgJnV1bWw7YmVyIGRpZSBFbWFpbC1BZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqcGVyIEVtYWlsIGFuIGRhcyAmYmRxdW87RnJvbSBBZGRyZXNzJmxkcXVvOy1GZWxkIGVpbmUgS29waWUgc2VuZGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKkVyZ2Vibmlzc2UgaW4gZWluZSBEYXRlaSBzY2hyZWliZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXSA9ICcqRXJnZWJuaXNzZSBmJnV1bWw7ciBqZWRlIEVpbmdhYmUgaW4gZWluZSBlaWdlbmUgRGF0ZWkgc2NocmVpYmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypFcmdlYm5pc3NlIGluIGRlciBEYXRlbmJhbmsgc3BlaWNoZXJuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypFcmdlYm5pc3NlIGYmdXVtbDtyIGRhcyBGb3JtQnJvd3Nlci1Nb2R1bCBWZXJzaW9uIDAuMyBzcGVpY2hlcm4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqRWluZW4gYmVudXR6ZXJkZWZpbmllcnRlbiBUYWcgbWl0IGRlbiBFcmdlYm5pc3NlbiBhbHMgUGFyYW1ldGVyIGF1ZnJ1ZmVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKkVyZ2Vibmlzc2UgYW4gZWluZSBmZXN0Z2VsZWd0ZSBGb3JtdWxhci1Ba3Rpb25zIGVuZGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFcmdlYm5pc3NlIHBlciBFbWFpbCBhbiBlaW5lIGJlbnV0emVyZGVmaW5pZXJ0ZSBFbWFpbC1BZHJlc3NlIHZlcnNlbmRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRW1haWwgYW4gZGVuIENNUy1BZG1pbmlzdHJhdG9yJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqRW1haWwgcmVzdWx0cyBiYXNlZCBvbiBmcm9udGVuZCBmaWVsZHMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy0gU2VpdGVudW1icnVjaCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0hvY2hsYWRlbiB2b24gRGF0ZWllbic7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsLUZlbGQgJmJkcXVvO1ZvbiAoRW1haWwpJmxkcXVvOyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwtRmVsZCAmYmRxdW87Vm9uIChFbWFpbCkmbGRxdW87IHdpZWRlcmhvbGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwtRmVsZCAmYmRxdW87Vm9uIChOYW1lKSZsZHF1bzsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbWFpbC1GZWxkICZiZHF1bztCZXRyZWZmJmxkcXVvOyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy0gU3RhdGlzY2hlciBUZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLSBTdGF0aXNjaGVyIExpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICctIExpbmsgKHZvbSBCZW51dHplciBlaW5nZWdlYmVuKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLSBWZXJib3JnZW5lcyBGZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gQmVyZWNobmV0ZXMgRmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy0gRWluZGV1dGlnZSBHYW56emFobCAoU2VyaWVsbCknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctIEF1ZnJ1ZiBlaW5lcyBiZW51dHplcmRlZmluaWVydGVuIFRhZ3MnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICctIEZlbGQgZGVzIENvbXBhbnlEaXJlY3RvcnktTW9kdWxzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctIEZlbGQgenVyIE1vZHVsc2Nobml0dHN0ZWxsZSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdLZWluZSAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtbWVyaXNjaCc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdHYW56emFobCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbC1BZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdQZmxpY2h0ZmVsZCAnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ0VudHNwcmljaHQgZGVtIHJlZ3VsJmF1bWw7cmVuIEF1c2RydWNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0VudHNwcmljaHQgbmljaHQgZGVtIHJlZ3VsJmF1bWw7cmVuIEF1c2RydWNrJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdGJnV1bWw7ciBlaW4gUGZsaWNodGZlbGQgd3VyZGUga2VpbiBXZXJ0IGVpbmdlZ2ViZW4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgYmVpICZiZHF1bzslcyZsZHF1bzsgZWluZW4gV2VydCBlaW4uJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBiZWkgJmJkcXVvOyVzJmxkcXVvOyBlaW5lIFphaGwgZWluLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgYmVpICZiZHF1bzslcyZsZHF1bzsgZWluZW4gZyZ1dW1sO2x0aWdlbiBFaW50cmFnIGVpbi4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdCaXR0ZSBnZWJlbiBTaWUgYmVpICZiZHF1bzslcyZsZHF1bzsgZWluZW4gZ2FuenphaGxpZ2VuIFdlcnQgZWluLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJmJkcXVvOyVzJmxkcXVvOyBlaW5lIGcmdXVtbDtsdGlnZSBFbWFpbC1BZHJlc3NlIGVpbi4nOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0RpZSBFbWFpbC1BZHJlc3NlIHN0aW1tdCBuaWNodCBtaXQgZGVyIEVpbmdhYmUgaW4gJmJkcXVvOyVzJmxkcXVvOyAmdXVtbDtiZXJlaW4uJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnQml0dGUgZ2ViZW4gU2llIGJlaSAmYmRxdW87JXMmbGRxdW87IGVpbmUgZyZ1dW1sO2x0aWdlIFRlbGVmb25udW1tZXIgZWluLic7CiRsYW5nWydwbGVhc2VfbG9naW4nXSA9ICdCaXR0ZSBtZWxkZW4gU2llIHNpY2ggYW4sIHVtIGRpZXNlcyBGb3JtdWxhciB6dSB2ZXJ3ZW5kZW4hJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZiZHF1bzslcyZsZHF1bzsgc2NoZWludCBrZWluZSBnJnV1bWw7bHRpZ2UgRW1haWwtQWRyZXNzZSB6dSBzZWluLic7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnQml0dGUgZ2ViZW4gU2llIGVpbmVuIFdlcnQgZWluLCBkZXIgbmljaHQgbCZhdW1sO25nZXIgYWxzICVzIFplaWNoZW4gaXN0Lic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gV2VydCBlaW4sIGRlciBtaW5kZXN0ZW5zICVzIFplaWNoZW4gaGF0Lic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1plaWNoZW4sIGRhcyBhbHMgVHJlbm5lciB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwsIHdlbm4gbWVociBhbHMgZWluIFdlcnQgYWxzIEVyZ2VibmlzIHp1ciZ1dW1sO2NrZ2VnZWJlbiB3aXJkJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdTaWUgYmVuJm91bWw7dGlnZW4gZGllIEJlcmVjaHRpZ3VuZyAmYmRxdW87JXMmbGRxdW87LCB1bSBkaWVzZSBBa3Rpb24gYXVzenVmJnV1bWw7aHJlbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTaWUgaGFiZW4gbmljaHQgZGllIGVyZm9yZGVybGljaGUgQmVyZWNodGlndW5nLCB1bSBhdWYgZGllc2VuIEJlcmVpY2ggenV6dWdyZWlmZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGZWxkcmVpaGVuZm9sZ2UgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxhciBnZWwmb3VtbDtzY2h0Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmVsZCBnZWwmb3VtbDtzY2h0Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmF0aW9uZW4gYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0Jldm9yIFNpZSB3ZWl0ZXJtYWNoZW4gayZvdW1sO25uZW4sIG0mdXVtbDtzc2VuIFNpZSAmYmRxdW87JXMmbGRxdW87ICZ1dW1sO2JlcnByJnV1bWw7ZmVuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnU2llIG0mdXVtbDtzc2VuIGhpZXIgbWluZGVzdGVucyBlaW5lIFppZWxhZHJlc3NlIGFuZ2ViZW4hJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ1dvbGxlbiBTaWUgZGFzIEZvcm11bGFyICZiZHF1bzslcyZsZHF1bzsgd2lya2xpY2ggbCZvdW1sO3NjaGVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnV29sbGVuIFNpZSBkYXMgRmVsZCAmYmRxdW87JXMmbGRxdW87IHdpcmtsaWNoIGwmb3VtbDtzY2hlbj8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnRGllIGVyd2VpdGVydGVuIE9wdGlvbmVuIHNpbmQgZXJzdCB2ZXJmJnV1bWw7Z2Jhciwgd2VubiBkZXIgRmVsZHR5cCBmZXN0Z2VsZWd0IHd1cmRlLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0RlciBGZWxkbmFtZSAmYmRxdW87JXMmbGRxdW87IHdpcmQgYmVyZWl0cyB2ZXJ3ZW5kZXQuIEJpdHRlIHZlcndlbmRlbiBTaWUgZWluZGV1dGlnZSBGZWxkbmFtZW4gb2RlciBkZWFrdGl2aWVyZW4gZGllIFZlcndlbmR1bmcgZWluZGV1dGlnZXIgRmVsZG5hbWVuIGluIGRlciBGb3JtQnVpbGRlci1Lb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRGllIEZlbGRlciBtJnV1bWw7c3NlbiBlaW5lbiBOYW1lbiBlcmhhbHRlbiwgb2RlciBTaWUgZGVha3RpdmllcmVuIGRpZXMgaW4gZGVyIEZvcm1CdWlsZGVyLUtvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ25vX2ZpZWxkX2Fzc2lnbmVkJ10gPSAnS2VpbiBGZWxkIHp1Z2V3aWVzZW4gZiZ1dW1sO3IgJXMnOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMJmF1bWw7bmdlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIEtvbnRyb2xsayZhdW1sO3N0Y2hlbic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgT3B0aW9uZW4nOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBaZWljaGVuJzsKJGxhbmdbJ29yZGVyJ10gPSAnUmVpaGVuZm9sZ2UnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICcobmljaHQgYW5nZWdlYmVuKSc7CiRsYW5nWydhZGRlZCddID0gJ2hpbnp1Z2VmJnV1bWw7Z3QnOwokbGFuZ1sndXBkYXRlZCddID0gJ2FrdHVhbGlzaWVydCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcHRpb25lbiB6dXIgU29ydGllcnVuZyBiZWkgZGVyIEF1c2dhYmUnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0JpdHRlIGVpbmVuIGF1c3cmYXVtbDtobGVuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnRWluZW4gVHlwIGF1c3cmYXVtbDtobGVuJzsKJGxhbmdbJ3RvJ10gPSAnQW4nOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWluJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdFbXBmJmF1bWw7bmdlcic7CiRsYW5nWydmaWVsZHMnXSA9ICdGZWxkZXInOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG0mb3VtbDtnbGljaGUgRGF0ZWllbic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIFppZWxlJzsKJGxhbmdbJ3NhdmUnXSA9ICdTcGVpY2hlcm4nOwokbGFuZ1snYWRkJ10gPSAnSGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGlzaWVyZW4nOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTcGVpY2hlcm4gdW5kIEJlYXJiZWl0dW5nIGZvcnRzZXR6ZW4nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbiAnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzY2gnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcmUnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWxkc3RhdHVzIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBHciZvdW1sOyZzemxpZztlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRGF0ZWllcndlaXRlcnVuZ2VuJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdFcmxhdWJ0ZSBEYXRlaXR5cGVuJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRGllIGhvY2hnZWxhZGVuZSBEYXRlaSBpc3QgenUgZ3JvJnN6bGlnOyEgRGllIG1heGltYWxlIEdyJm91bWw7JnN6bGlnO2UgaXN0Oic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0RpZXNlciBEYXRlaXR5cCBkYXJmIG5pY2h0IGhvY2hnZWxhZGVuIHdlcmRlbi4gQml0dGUgcHImdXVtbDtmZW4gU2llLCBvYiBkaWUgRGF0ZWllcndlaXRlcnVuZyBrb3JyZWt0IGlzdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnSG9jaGxhZGVuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhciBpbXBvcnRpZXJ0Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtdWxhci1JbXBvcnQgZmVobGdlc2NobGFnZW4hIEVzIGlzdCBlaW4gUHJvYmxlbSBtaXQgZGVtIEZvcm1hdCBkZXIgWE1MLURhdGVpIGF1ZmdldHJldGVuLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgWmVpbGVuJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBTcGFsdGVuJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMi1TdHVuZGVuLUFuemVpZ2UnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LVN0dW5kZW4tQW56ZWlnZSc7CiRsYW5nWydob3VyJ10gPSAnU3R1bmRlJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0ZSAnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbiAnOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0JlcmVpY2g6ICVzICZuZGFzaDsgJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVmllbGVuIERhbmshIElocmUgRWluZ2FiZW4gd3VyZGVuIGVyZm9sZ3JlaWNoIHZlcnNhbmR0Lic7CiRsYW5nWydlZGl0J10gPSAnQmVhcmJlaXRlbic7CiRsYW5nWydkZWxldGUnXSA9ICdMJm91bWw7c2NoZW4nOwokbGFuZ1snZGF5J10gPSAnVGFnJzsKJGxhbmdbJ21vbiddID0gJ01vbmF0JzsKJGxhbmdbJ3llYXInXSA9ICdKYWhyJzsKJGxhbmdbJ25vbmUnXSA9ICcoa2VpbmUgQW5nYWJlKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MgJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgZGVpbnN0YWxsaWVydC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWx2ZXJzaW9uICVzIGluc3RhbGxpZXJ0Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGF1ZiBWZXJzaW9uICVzIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnPCB6dXImdXVtbDtjayc7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnRm9ybXVsYXIgYWJzZW5kZW4nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnd2VpdGVyID4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0dlcHImdXVtbDtmdCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmdlcHImdXVtbDtmdCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hhdXB0c2VpdGUnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0VpbnN0ZWxsdW5nZW4gZiZ1dW1sO3IgZGllIEZvcm11bGFyYW56ZWlnZSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybXVsYXItVmVyc2FuZCc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEtRWluc3RlbGx1bmdlbic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdFcndlaXRlcnRlIEVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybXVsYXItVGVtcGxhdGUnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0Jlc3QmYXVtbDt0aWd1bmdzLVRlbXBsYXRlJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdJbnRlZ3JhdGlvbiB2b24gYmVudXR6ZXJkZWZpbmllcnRlbiBUYWdzJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+SW4gZGllc2VtIEZlbGQgc2luZCBhdWNoIFNtYXJ0eS1WYXJpYWJsZW4gZyZ1dW1sO2x0aWdlIFdlcnRlLjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdXZWl0ZXJlIE9wdGlvbmVuIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ01hcmtpZXJ0ZSBPcHRpb25lbiBsJm91bWw7c2NoZW4nOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdXZWl0ZXJlIEtvbnRyb2xsayZhdW1sO3N0Y2hlbiBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdNYXJraWVydGUgS29udHJvbGxrJmF1bWw7c3RjaGVuIGwmb3VtbDtzY2hlbic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0VpbmUgd2VpdGVyZSBBZHJlc3NlIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ01hcmtpZXJ0ZSBBZHJlc3NlbiBsJm91bWw7c2NoZW4nOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnRWluIHdlaXRlcmVzIFppZWwgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ01hcmtpZXJ0ZSBaaWVsZSBsJm91bWw7c2NoZW4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdWb24gSWhyZXIgSVAtQWRyZXNzZSB3dXJkZW4genUgdmllbGUgRW1haWxzIHZlcnNhbmR0LiBFcyB3dXJkZSBkYWhlciB2b3JiZXVnZW5kIGVpbiBBbnRpLVNwYW0tQ29kZSBhdXNnZWdlYmVuLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdWZXJkJmF1bWw7Y2h0aWdlciBTcGFtIHZvbiBkZXIgSVAgJXMgd3VyZGUgZ2VzdG9wcHQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdGZWxkZXIgbmV1IG9yZG5lbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnRmVzdGdlbGVndGVyIFdlcnQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdJbSBmb2xnZW5kZW4gZmluZGVuIFNpZSBlaW5lIExpc3RlIHZvbiBBdHRyaWJ1dGVuLCBkaWUgdm9tIENhdGFsb2dlci1Nb2R1bCB2ZXJmJnV1bWw7Z2JhciBzaW5kLjxici8+T3B0aW9uYWwgayZvdW1sO25uZW4gU2llIGcmdXVtbDtsdGlnZSBCZXJlaWNoZSwgV2VydGUgb2RlciBtZWhyZXJlIFdlcnRlIGZlc3RsZWdlbiwgZGllIHp1ciBGaWx0ZXJ1bmcgZGVyIEVpbnRyJmF1bWw7Z2UgdmVyd2VuZGV0IHdlcmRlbiBrJm91bWw7bm5lbiwgZGllIGRlbiBCZXN1Y2hlcm4gYW5nZXplaWd0IHdlcmRlbi48YnIvPgo8YnIvPgo8c3Ryb25nPkJlcmVpY2hlOjwvc3Ryb25nPjxici8+ClZlcndlbmRlbiBTaWUgZGVuIFN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbldlcnQgdG8gbWF4V2VydCZxdW90OywgdW0gZWluZW4gbWluaW1hbGVuIHVuZCBlaW5lbiBtYXhpbWFsZW4gV2VydCBmZXN0enVsZWdlbi48YnIvPgo8YnIvPgo8c3Ryb25nPk1laHJlcmUgV2VydGU6PC9zdHJvbmc+PGJyLz4KIFZlcndlbmRlbiBTaWUgZGVuIFN5bnRheCAmcXVvdDttdWx0aTogV2VydDF8V2VydDJ8V2VydDMmcXVvdDssIHVtIG1laHJlcmUgV2VydGUgZiZ1dW1sO3IgZWluIEF0dHJpYnV0IGZlc3R6dWxlZ2VuLjxici8+Cjxici8+CjxzdHJvbmc+V2VydGUgZGVyIHZlcmJvcmdlbmVuIEZlbGRlcjwvc3Ryb25nPjxici8+ClZlcndlbmRlbiBTaWUgZGVuIFN5bnRheCB7JGZsZF9pZH0sIHVtIGVpbmVuIFdlcnQgZiZ1dW1sO3IgZWluIHZlcmJvcmdlbmVzIEZlbGQgZmVzdHp1bGVnZW4uPGJyLz4KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnRWluIHJlZ3VsJmF1bWw7cmVyIEF1c2RydWNrLCBkZXIgZXMgZXJtJm91bWw7Z2xpY2h0LCBDYXRhbG9nZXItRWludHImYXVtbDtnZSBuYWNoIGRlbSBOYW1lbiB6dSBmaWx0ZXJuJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnRGllIEgmb3VtbDtoZSBkZXMgRmVsZGVzIHp1ciBNZWhyZmFjaGF1c3dhaGwnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ1JlZ3VsJmF1bWw7cmVyIEF1c2RydWNrIGYmdXVtbDtyIGRpZSBOYW1lbiB2b24gQ2F0YWxvZ2VyLUVpbnRyJmF1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0ZlbGQtSCZvdW1sO2hlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ1ppZWx2ZXJ6ZWljaG5pcyBmJnV1bWw7ciBkaWUgYXVzZ2VnZWJlbmVuIERhdGVpZW4nOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdCZW51dHplcmRlZmluaWVydGVyIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnU2VpdGUsIGF1ZiBkZXIgZGVyIFVwbG9hZHMtTGluayBkYXJnZXN0ZWxsdCB3ZXJkZW4gc29sbCc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ01pdCBkZW0gRm9ybUJ1aWxkZXItTW9kdWwgdmVyc2FuZHQgJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzLUthdGVnb3JpZSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ0RpZXNlIERhdGVpIGFuIGRhcyBVcGxvYWRzLU1vZHVsICZ1dW1sO2JlcmdlYmVuJzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZSddID0gJ0FsbG93IHVwbG9hZCB0byBvdmVyd3JpdGUgcHJldmlvdXNseSBmaWxlcz8nOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlX2xvbmcnXSA9ICdTaG91bGQgdXBsb2FkZWQgZmlsZSBvdmVyd3JpdGUgcHJldmlvdXNseSB1cGxvYWRlZCBmaWxlIGlmIGl0IGhhcyB0aGUgc2FtZSBuYW1lPyc7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdFcm0mb3VtbDtnbGljaHQgJlV1bWw7YmVyc2NocmVpYmVuJzsKJGxhbmdbJ25vb3ZlcndyaXRlJ10gPSAnS2VpbiAmVXVtbDtiZXJzY2hyZWliZW4nOwokbGFuZ1snZmlsZV9hbHJlYWR5X2V4aXN0cyddID0gJ0RhdGVpICVzIGV4aXN0aWVydCBiZXJlaXRzIHVuZCBrYW5uIG5pY2h0ICZ1dW1sO2JlcnNjaHJpZWJlbiB3ZXJkZW4uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcmVuYW1lJ10gPSAnRmlsZW5hbWUgdGVtcGxhdGUnOwokbGFuZ1snb3JpZ2luYWxfZmlsZV9leHRlbnNpb24nXSA9ICdPcmlnaW5hbCBEYXRlaWVyd2VpdGVydW5nICh1bWZhc3N0IGRlbiAmcXVvdDsuJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19maWxlbmFtZSddID0gJ1VudGVyZHImdXVtbDtja3QgRGF0ZWluYW1lbiBpbiBFLU1haWxzIHVuZCBGb3JtdWxhcmVuIGRpZSBkZXIgRW5kYmVudXR6ZXIgc2llaHQnOwokbGFuZ1snZmlsZV9yZW5hbWVfaGVscCddID0gJ1RvIHJlbmFtZSBhIGZpbGUgdXBvbiB1cGxvYWRpbmcsIGNyZWF0ZSB0aGUgdGVtcGxhdGUgaGVyZS4gTGVhdmUgYmxhbmsgdG8gcHJlc2VydmUgb3JpZ2luYWwgZmlsZW5hbWUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltYWxlIEwmYXVtbDtuZ2UnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgZGVzIEtvbnRyb2xsayZhdW1sO3N0Y2hlbnMnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgZGVzIE9wdGlvbnNmZWxkZXMnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1dlcnQgbmFjaCBlcmZvbGd0ZXIgQWt0aXZpZXJ1bmcnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2VydCBvaG5lIGVyZm9sZ3RlIEFrdGl2aWVydW5nJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhaWxzIHp1ciBLb250cm9sbGsmYXVtbDtzdGNoZW4tR3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0wmb3VtbDtzY2hlbj8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGV4dCBmJnV1bWw7ciAmYmRxdW87Qml0dGUgYXVzdyZhdW1sO2hsZW4mbGRxdW87JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ0F1c3dhaGwgV2VydCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdBdXN3YWhsIGRlcyBhbmdlemVpZ3RlbiBOYW1lbnMnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdBdXN3YWhsIGRlcyAmYmRxdW87QmV0cmVmZnMmbGRxdW87JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTdGFuZGFyZGF1c3dhaGwnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTdGFuZGFyZGF1c3dhaGwnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTdGFuZGFyZGF1c3dhaGwnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOYW1lIGRlciBPcHRpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnJlV1bWw7YmVybWl0dGVsdGVyIFdlcnQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ0xpc3RlbmZlbGQtT3B0aW9uZW4nOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wdGlvbmVuIHp1ciBNZWhyZmFjaGF1c3dhaGwnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ1ppZWwtRW1haWwtQWRyZXNzZSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ05hbWUgZGVyIFppZWxkYXRlaSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmYmRxdW87Vm9uIChOYW1lKSZsZHF1bzsgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdMb2NrZXJlIEVtYWlsLSZVdW1sO2JlcnByJnV1bWw7ZnVuZyB2ZXJ3ZW5kZW4nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVmVyd2VuZGV0IGVpbmUgbG9ja2VyZSAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcgZGVyIEVtYWlsIChlcmxhdWJ0IHouIEJzcC4gJmJkcXVvO3hAeSZsZHF1bzsgYW5zdGF0dCBkZXMgZXJmb3JkZXJsaWNoZW4gJmJkcXVvO3hAeS5kZSZsZHF1bzspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZiZHF1bztWb24gKEVtYWlsLUFkcmVzc2UpJmxkcXVvOyBkZXIgRW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdaZWljaGVua29kaWVydW5nIGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnTGlzdGVuZmVsZGJhc2llcnRlIEVtYWlsLURldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRGF0ZWluYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdCZXRyZWZmLVplaWxlIGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtdWxhcm5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtdWxhcnN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0VpbnNhdHpiZXJlaXQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pY2h0IGVpbnNhdHpiZXJlaXQnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NlaXRlLCBhdWYgZGllIG5hY2ggZGVtIFZlcnNhbmQgZ2VzcHJ1bmdlbiB3ZXJkZW4gc29sbCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnQml0dGUgZiZ1dW1sO2dlbiBTaWUgZWluIEZlbGQgaGluenUsIG1pdCBkZW0gZGllIEJlbnV0emVyZWluZ2FiZW4gdmVyYXJiZWl0ZXQgd2VyZGVuLiBTaWUgayZvdW1sO25uZW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdkaWVzZSBUYXN0ZW5rb21iaW5hdGlvbiB2ZXJ3ZW5kZW4sJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtdWxhci1BbGlhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzICc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm11bGFyZmVsZGVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmVsZC1JRCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ0ZlbGQtQWxpYXNlIGFuemVpZ2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdBa3RpdmllcmVuIFNpZSBkaWVzLCB3ZW5uIGJlaW0gQmVhcmJlaXRlbiBkZXMgRm9ybXVsYXJzIGRlciBGZWxkLUFsaWFzIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbCc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmVsZG5hbWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdGZWxkLUFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFpbHMgenVyIE9wdGlvbnNmZWxkLUdydXBwZSc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmVsZHR5cCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndW0gZWluIEZlbGQgenVyIEZvcm11bGFydmVyYXJiZWl0dW5nIHp1IGVyc3RlbGxlbi4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTmV1ZXMgRm9ybXVsYXIgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZlcnNpb24gZGVzIEZvcm1CdWlsZGVyLU1vZHVscyBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdBbHMgSGlsZmUgenVyIEZlaGxlcmJlc2VpdGlndW5nIHdpcmQgZGllIFZlcnNpb25zbnVtbWVyIGRlcyBGb3JtQnVpbGRlci1Nb2R1bHMgaW4gZWluZW0gS29tbWVudGFyIGVpbmdlYmV0dGV0Lic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnTmV1ZXMgRmVsZCBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVGV4dCBmJnV1bWw7ciBkZW4gJnF1b3Q7QWJzZW5kZW4mcXVvdDstQnV0dG9uJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnQnV0dG9uLVRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdTb2xsIGRlbSBWZXJzZW5kZW4tS25vcGYgZWluIEphdmFzY3JpcHQgaGluenVnZWYmdXVtbDtndCB3ZXJkZW4sIHVtIGRlbiBtZWhyZmFjaGVuIFZlcnNhbmQgZGVzIEZvcm11bGFycyB6dSB2ZXJoaW5kZXJuPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnU2ljaGVyaGVpdHNzY3JpcHQgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdUZXh0IGYmdXVtbDtyIGRlbiAmcXVvdDtXZWl0ZXImcXVvdDstQnV0dG9uIChmJnV1bWw7ciBtZWhyc2VpdGlnZSBGb3JtdWxhcmUpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdUZXh0IGYmdXVtbDtyIGRlbiAmcXVvdDtadXImdXVtbDtjayZxdW90Oy1CdXR0b24gKGYmdXVtbDtyIG1laHJzZWl0aWdlIEZvcm11bGFyZSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbGQtJlV1bWw7YmVycHImdXVtbDtmdW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnWnUgJnV1bWw7YmVycHImdXVtbDtmZW5kZXMgRmVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MtSUQgZiZ1dW1sO3IgZGllc2VzIEZlbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MtS2xhc3NlIGYmdXVtbDtyIGRpZXNlcyBGb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MtS2xhc3NlIGYmdXVtbDtyIGRpZXNlcyBGZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdCZW51dHplcmRlZmluaWVydGVyIFRhZywgZGVyIHZvciBkZXIgQW56ZWlnZSBkZXMgRm9ybXVsYXJzIGF1c2dlZiZ1dW1sO2hydCB3ZXJkZW4gc29sbCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdCZW51dHplcmRlZmluaWVydGVyIFRhZywgZGVyIHZvciBkZXIgQW56ZWlnZSBkZXMgRm9ybXVsYXJzIGF1ZmdlcnVmZW4gd2lyZCAoYmVpIG1laHJzZWl0aWdlbiBGb3JtdWxhcmVuIHdpcmQgZXIgYmVpIGplZGVyIGVpbnplbG5lbiBTZWl0ZSBkZXMgRm9ybXVsYXJzIGF1ZmdlcnVmZW4pJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAnQmVudXR6ZXJkZWZpbmllcnRlciBUYWcsIGRlciB3JmF1bWw7aHJlbmQgZGVyIEZvcm11bGFycHImdXVtbDtmdW5nIGF1ZmdlcnVmZW4gd2lyZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB6dXIgS2VubnplaWNobnVuZyBkZXIgUGZsaWNodGZlbGRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1BmbGljaHRmZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdFcmZvcmRlcnQgendpbmdlbmQgZWluZSBBbnR3b3J0IGluIGRpZXNlbSBGZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0RpZXNlbiBGZWxkbmFtZW4gaW0gRm9ybXVsYXIgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCddID0gJ01heGltYWxlIEwmYXVtbDtuZ2UgZGVzIEZlbGRpbmhhbHRzICgwIG9kZXIgbGVlciBiZWRldXRldCBvaG5lIExpbWl0KSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnQW56dXplaWdlbmRlciBzdGF0aXNjaGVyIFRleHQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWdleC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FuemFobCBkZXIgYW56dXplaWdlbmRlbiBaZWlsZW4nOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnTnVyIGxlc2VuJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdLZWluZSBWb3JlaW5zdGVsbHVuZyc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1NlaXRlLCBhdWYgZGllIG5hY2ggJlV1bWw7YmVycHImdXVtbDtmdW5nIHdlaXRlcmdlbGVpdGV0IHdpcmQnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzICh6LiBCc3AuICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUGZsaWNodGZlbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdGZWhsZXIgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdBbnplaWdldHlwIGRlcyBGb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0ZlaGxlci1NZWxkdW5nZW4gdm9yIGRlbiBCZW51dHplcm4gdmVyYmVyZ2VuLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsLVRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWxlIEdyJm91bWw7JnN6bGlnO2UgZiZ1dW1sO3IgaG9jaHp1bGFkZW5kZSBEYXRlaWVuIChraWxvYnl0ZSknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEaWVzZXMgTGltaXQgaXN0IGVpbmUgRXJnJmF1bWw7bnp1bmcgZGVyIFZvcmdhYmVuIGF1cyBkZXIgUEhQLSBvZGVyIFNlcnZlci1Lb25maWd1cmF0aW9uLic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnRGFzIFZlcnplaWNobmlzLCBpbiBkYXMgZGllIERhdGVpZW4gZ2VzcGVpY2hlcnQgd2VyZGVuIHNvbGxlbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1p1Z2VsYXNzZW5lIERhdGVpLUVuZHVuZ2VuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdHZWJlbiBTaWUgaGllciBlaW5lIEF1ZnomYXVtbDtobHVuZyBkZXIgenVnZWxhc3NlbmVuIERhdGVpLUVuZHVuZ2VuIGpld2VpbHMgZ2V0cmVubnQgZHVjaCBlaW4gS29tbWEgZWluIChvaG5lIFB1bmt0IC0gei5CLiAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBMZWVyemVpY2hlbiB3ZXJkZW4gaWdub3JpZXJ0LiBPaG5lIEVpbnRyYWcgZ2VsdGVuIGtlaW5lIEJlc2NociZhdW1sO25rdW5nZW4uJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdCZXNjaHImYXVtbDtua3VuZ2VuIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdCZXNjaHImYXVtbDtua3VuZ2VuIGRlciBHciZvdW1sOyZzemxpZztlIHVuZCBkZXIgRGF0ZWktRW5kdW5nZW4gbWl0IGRlbSBVcGxvYWQtRmVsZCBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGYmdXVtbDtyIGRpZSBGb3JtdWxhcmFuemVpZ2UnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTZWl0ZSAlcyB2b24gJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0RhcyBGZWxkIGhhdCBrZWluZSBlcndlaXRlcnRlbiBPcHRpb25lbi4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQsIGRlciBiZWkgdW5nZW5hdWVuIEVpbmdhYmVuIHp1ciZ1dW1sO2NrZ2VnZWJlbiB3aXJkJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdEYXMgTGlzdGVuZmVsZCBmJnV1bWw7ciBzY2huZWxsZXMgSGluenVmJnV1bWw7Z2VuIHZvbiBGZWxkZXJuIGluIEZvcm11bGFyZW4gYWt0aXZpZXJlbj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdEYXMgTGlzdGVuZmVsZCBmJnV1bWw7ciBzY2huZWxsZXMgSGluenVmJnV1bWw7Z2VuIHZvbiBGZWxkZXJuIGFrdGl2aWVyZW4/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTY2huZWxsZSBGZWxkZXJzdGVsbHVuZyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ1dlbm4gU2llIGRpZXMgYWt0aXZpZXJlbiwgayZvdW1sO25uZW4gcHJvIElQLUFkcmVzc2UgbWF4aW1hbCAxMCBFbWFpbHMgdmVyc2FuZHQgd2VyZGVuIChwcm8gU3R1bmRlKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRWluZmFjaGVuIEFudGktU3BhbS1TY2h1dHogYWt0aXZpZXJlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ0ZlbGQtSURzIGFuemVpZ2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ1dlbm4gU2llIGRpZXNlcyBGZWxkIGFrdGl2aWVyZW4sIHdlcmRlbiBkaWUgRmVsZC1JRHMgYmVpbSBCZWFyYmVpdGVuIGRlcyBGb3JtdWxhcnMgYW5nZXplaWd0JzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdFaW4gRm9ybXVsYXIgYWxzIFhNTC1EYXRlaSBob2NobGFkZW4nOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ0RpZXNlbiBGb3JtdWxhcm5hbWVuIHZlcndlbmRlbic7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MLUZvcm11bGFyLUltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0RpZXNlbiBGb3JtdWxhci1BbGlhcyB2ZXJ3ZW5kZW4nOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0VpbmUgSFRNTC1FbWFpbCBlcnpldWdlbj8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aXNjaCB2ZXImb3VtbDtmZmVudGxpY2hlbj8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpc2NoIG1pdCBkZXIgVVJMIGRlciBGb3JtdWxhcnNlaXRlIHZlciZvdW1sO2ZmZW50bGljaGVuPyAoZGllcyAmdXVtbDtiZXJzY2hyZWlidCBkaWUgd2VpdGVyIHVudGVuIGJlbmFubnRlIFNlaXRlbi1MaW5rLU9wdGlvbiknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnU3RhbmRhcmQtTGluay1VUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnU3RhbmRhcmQtTGluay1UZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIGF1ZiBkaWUgU2VpdGUnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnV2VubiBTaWUgZGFzIENhcHRjaGEtTW9kdWwgaW5zdGFsbGllcmVuLCBrJm91bWw7bm5lbiBTaWUgJnV1bWw7YmVyIGVpbiA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IElociBGb3JtdWxhciB2b3IgU3BhbSBzY2gmdXVtbDt0emVuLiBXZWl0ZXJlIEluZm9ybWF0aW9uZW4gZmluZGVuIFNpZSBpbSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5DYXB0Y2hhLVByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0NhcHRjaGEgdmVyd2VuZGVuLCB1bSBkZW4gRm9ybXVsYXJ2ZXJzYW5kIHp1IHNjaCZ1dW1sO3R6ZW4/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdBa3RpdmllcmVuIFNpZSBkaWVzZXMgRmVsZCwgdW0gSWhyIEZvcm11bGFyIG1pdHRlbHMgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfYmxhbmsiPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHZvciBTcGFtIHp1IHNjaCZ1dW1sO3R6ZW4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0JpdHRlIGJlc3QmYXVtbDt0aWdlbiBTaWUsIGRhc3MgU2llIGtlaW4gbWFzY2hpbmVsbGVzIFNjcmlwdCBzaW5kLCBpbmRlbSBTaWUgZGllIEJ1Y2hzdGFiZW4gYXVzIGRlbSBCaWxkIGVpbmdlYmVuLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdUZXh0IGJlaSBmYWxzY2ggZWluZ2VnZWJlbmVtIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0RlciBlaW5nZWdlYmVuZSBDYXB0Y2hhLVRleHQgd2FyIGZhbHNjaC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGlsZmV0ZXh0IGYmdXVtbDtyIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRiZ1dW1sO3IgbmljaHQgYWt0aXZpZXJ0ZSBLb250cm9sbGsmYXVtbDtzdGNoZW4ga2VpbmUgV2VydGUgJnV1bWw7YmVybWl0dGVsbic7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0FrdGl2aWVyZW4gU2llIGRpZXMsIHdlbm4gbnVyIGJlaSBha3RpdmllcnRlbSBLb250cm9sbGsmYXVtbDtzdGNoZW4gV2VydGUgenVyJnV1bWw7Y2tnZWdlYmVuIHdlcmRlbiBzb2xsZW4uJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgZGVzIExpbmtzJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdaaWVsLVVSTCBkZXMgTGlua3MnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdIJmF1bWw7a2NoZW4gdm9yZWluZ2VzdGVsbHQgc2V0emVuPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnMjQtU3R1bmRlbi1BbnplaWdlIHZlcndlbmRlbj8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBLk0uJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQLk0uJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnU21hcnR5LVRhZ3MgaW4gZGVuIEZlbGRlcm4gdmVyYXJiZWl0ZW4/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdaZWlsZW4gKEhpbndlaXM6IERpZXMga2FubiBkdXJjaCBDU1MgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbiknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ1NwYWx0ZW4gKEhpbndlaXM6IERpZXMga2FubiBkdXJjaCBDU1MgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbiknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWlscyBkZXMgSGF1cHRmb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ1ZvcmVpbmdlc3RlbGx0IGxlZXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnVm9yZWluZ2VzdGVsbHQgbGVlciAoZGVha3RpdmllcnQgZGllIFZvcmVpbnN0ZWxsdW5nIGYmdXVtbDtyIGRhcyBoZXV0aWdlIERhdHVtKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGVuIEFubWVsZGUtTmFtZW4gZGVzIEJlbnV0emVycyBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGVuIFZvcm5hbWVuIGRlcyBCZW51dHplcnMgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGVuIE5hY2huYW1lbiBkZXMgQmVudXR6ZXJzIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0RpZSBCZW51dHplcmxpc3RlIGF1ZiBCZW51dHplciBkZXIgc3BlemlmaXppZXJ0ZW4gR3J1cHBlIGJlc2NociZhdW1sO25rZW4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJ10gPSAnVmVyc2NobCZ1dW1sO3NzZWxuIHZvbiBpbiBkZXIgRGF0ZW5iYW5rIGdlc3BlaWNoZXJ0ZW4gRGF0ZW4nOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ1plcnRpZmlrYXQgZiZ1dW1sO3IgZGllIFZlcnNjaGwmdXVtbDtzc2VsdW5nIHZvbiBEYXRlbic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdQYXNzcGhyYXNlIG9yIHBhdGggdG8gZmlsZSBjb250YWluaW5nIHBhc3NwaHJhc2UuIChJZiB1c2luZyBPcGVuU1NMLCB0aGlzIGlzIHRoZSBwYXNzcGhyYXNlIGZvciB0aGUgcHJpdmF0ZSBrZXkpJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0hhc2ggc29ydCBmaWVsZHM/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnUHJpdmF0ZSBLZXkgdG8gdXNlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGVvZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgdGhlIGFiaWxpdHkgdG8gc29ydCByZWNvcmRzLiBTb3J0aW5nIGJlY29tZXMgYXBwcm94aW1hdGUsIGJ1dCB3aWxsIHJlbWFpbiBwcmV0dHkgZ29vZC4gSWYgeW91IGRvIG5vdCB1c2UgdGhpcyBvcHRpb24sIHNvcnQgZmllbGRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ1N0b3JhZ2UgRW5jcnlwdGlvbiBVbmF2YWlsYWJsZSc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBPcGVuU1NMIG1vZHVsZSBvciBtY3J5cHQgc3VwcG9ydCBpZiB5b3Ugd291bGQgbGlrZSB0byBlbmFibGUgZGF0YWJhc2UgZW5jcnlwdGlvbi4nOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jdXJsJ10gPSAnUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBDVVJMIHN1cHBvcnQgYWN0aXZlIGluIHlvdXIgUEhQIGluc3RhbGwuIFNlZSBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHAnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb24nXSA9ICdJbSBNTEUtTW9kdXMgc3RhcnRlbic7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aW9uJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8nOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdFbnRpcmUgVVJMLCBpbmNsdWRpbmcgcHJvdG9jb2wgYW5kIHBhdGggKGUuZy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0Zvcm0gc3VibWlzc2lvbiBVUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnRm9ybSBtZXRob2QnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcCBmaWVsZCAmcXVvdDslcyZxdW90OyB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0FkZGl0aW9uYWwgc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdWRlIGZpZWxkIGluIFN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfZGF0ZV9vcmRlciddID0gJ0RhdGUgY29tcG9uZW50IGZpZWxkIG9yZGVyIChmb3IgaW5wdXQpJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0RhdGEgd2lsbCBiZSBzdG9yZWQgaW4gYW4gWE1MIGZvcm1hdCBpbiB0aGUgW1BSRUZJWF1fbW9kdWxlX2ZiX2Zyb21icm93c2VyIGRhdGFiYXNlIHRhYmxlLic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICdFcnJvciEgRWl0aGVyIHRoZSBmb3JtIGhhcyBubyBmb3JtX2J1aWxkZXIgZGlzcG9zaXRpb24sIG9yIGl0IGZhaWxlZCB0byBpbnN0YW50aWF0ZSAoZHVlIHRvIG1lbW9yeSBpc3N1ZXM/KSc7CiRsYW5nWydoZWxwX2RhdGVfb3JkZXInXSA9ICdVc2UgJnF1b3Q7bSZxdW90OyBmb3IgTW9udGgsICZxdW90O2QmcXVvdDsgZm9yIERheSwgYW5kICZxdW90O3kmcXVvdDsgZm9yIFllYXIuIFNlcGFyYXRlIHRoZSBpdGVtcyBieSBoeXBoZW5zLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnTnVyIGluIEdydXBwZSAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEZW0gQmVudXR6ZXIgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX3VzZV9yYW5kb21fZ2VuZXJhdG9yJ10gPSAnVXNlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIGluc3RlYWQgb2Ygc3RhdGljJzsKJGxhbmdbJ3RpdGxlX251bWJlcnNfdG9fZ2VuZXJhdGUnXSA9ICdIb3cgbWFueSBudW1iZXJzIHRvIGdlbmVyYXRlIGluIHByb2Nlc3MnOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRGllc2VzIEZlbGQga2FubiBsZWVyIGdlbGFzc2VuIHdlcmRlbic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZW4gZiZ1dW1sO3IgZGFzIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZlcmYmdXVtbDtnYmFyZSBWYXJpYWJsZW4nOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUC1WYXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ1ZlcnNhbmRkYXR1bSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnSWhyIFNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUC1BZHJlc3NlIGRlcyBGb3JtdWxhcmFic2VuZGVycyc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgZGVyIEZvcm11bGFyc2VpdGUnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXItVmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYi1aZWljaGVuJzsKJGxhbmdbJ2hlbHBfaWdub3JlZF9pZl91cGxvYWQnXSA9ICcoVGhpcyBmaWVsZCBpZ25vcmVkIGlmIHlvdSB1c2UgdGhlIFVwbG9hZHMgbW9kdWxlIHRvIG1hbmFnZSBmaWxlcyknOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGl2ZSBGZWxkbmFtZW4gayZvdW1sO25uZW4gd2VjaHNlbHdlaXNlIHZlcndlbmRldCB3ZXJkZW4gKGRpZXMgaXN0IGluc2Jlc29uZGVyZSBkYW5uIG4mdXVtbDt0emxpY2gsIHdlbm4gU21hcnR5IFByb2JsZW1lIG1pdCBaZWljaGVuIGF1JnN6bGlnO2VyaGFsYiB2b24gQVNDSUkgMzItMTI2IGhhdCkuIDxiciAvPldlbm4gU2llIGRpZXNlIGRlbSBGb3JtdWxhciBoaW56dWYmdXVtbDtnZW4sIHNpbmQgd2VpdGVyZSBGZWxkZXIgdmVyZiZ1dW1sO2diYXIuJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnRGllcyBpc3QgZWluZSB3ZWl0ZXJlIE9wdGlvbiwgdW0gdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqIG9kZXIgJGZsZF8jX29iaiBkaWUgRmVsZHdlcnRlIGFienVmcmFnZW4gKGplZGVzIEZlbGQgZW50aCZhdW1sO2x0IGVpbiBPYmpla3QpOjxiciAvPgo8dGFibGU+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmVsZC1uYW1lPC90ZD48L3RyPgo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GZWxkdHlwPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5lIEZlbGQtSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5NZW5zY2hlbi1sZXNiYXJlciBXZXJ0PC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkFycmF5IGRlciBGZWxkd2VydGU8L3RkPjwvdHI+PC90YWJsZT4KPGVtPkJlaXNwaWVsOjwvZW0+eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnSW5mb3JtYXRpb25lbiB6dXIgRm9ybWF0aWVydW5nIGZpbmRlbiBTaWUgPGEgaHJlZj0iaHR0cDovL2RlLnBocC5uZXQvbWFudWFsL2RlL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9Il9ibGFuayI+aW4gZGVyIFBIUC1CZXNjaHJlaWJ1bmc8L2E+Lic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSAnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRGllc2VzIEZlbGQgZW50aCZhdW1sO2x0JzsKJGxhbmdbJ2hlbHBfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgZmlsZSBsb2NhdGVkIGluIHRoZSBGb3JtQnVpbGRlci90ZW1wbGF0ZXMvIGZvbGRlci4gVGhpcyBmaWVsZCBpcyBpZ25vcmVkIGlmIHlvdSB1c2UgVFhUIGFzIHlvdXIgZmlsZSB0eXBlLic7CiRsYW5nWydoZWxwX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQmFzaWM6IFVzZSB0aGUgdGV4dGFyZWEgYmVsb3cgdG8gbGF5b3V0IHRoZSBmaWVsZCBuYW1lcy92YWx1ZXMgaW4gYSBzaW5nbGUgYmxvY2suPGJyIC8+CkFkdmFuY2VkOiBTcGVjaWZ5IFNtYXJ0eSB2YXJpYWJsZXMgaW4gdGhlIFJURiBUZW1wbGF0ZSBGaWxlIGFzIHlvdSB3b3VsZCBiZWxvdywgYnV0IGFycmFuZ2UgdGhlbSBob3dldmVyIHlvdSBsaWtlIGFuZCBhZGQgZm9ybWF0dGluZy48YnIgLz4KJm5ic3A7WW91IGNhbiBzdGlsbCB1c2UgdGhlICUlSEVBREVSJSUgYW5kICUlRk9PVEVSJSUgc2VjdGlvbnMgaW4gdGhlIFJURiBmaWxlLic7CiRsYW5nWydoZWxwX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBIZWFkZXIgVGVtcGxhdGUuPGJyIC8+CkZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZJRUxEUyUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZSBpZiBSVEYgVGVtcGxhdGUgVHlwZSBpcyBzZXQgdG8gJnF1b3Q7QmFzaWMmcXVvdDsuPGJyIC8+ClRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIGlmIHVzaW5nICZxdW90O1JURiZxdW90OyBhcyBGaWxlIFR5cGUgYW5kICZxdW90O0FkdmFuY2VkJnF1b3Q7IGFzIFJURiBUZW1wbGF0ZSBUeXBlLic7CiRsYW5nWydoZWxwX2ZpbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVIRUFERVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSBib3R0b20gb2YgdGhlIGZpbGUuIEZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZPT1RFUiUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZS4nOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICc8PCBadXImdXVtbDtjayB6dW0gRm9ybXVsYXInOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0VpbiBCZWlzcGllbC1UZW1wbGF0ZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnRWluIEJlaXNwaWVsLUhUTUwtVGVtcGxhdGUgZXJzdGVsbGVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnRWluIEJlaXNwaWVsLUhlYWRlci1UZW1wbGF0ZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdFaW4gQmVpc3BpZWwtRm9vdGVyLVRlbXBsYXRlIGVyc3RlbGxlbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0VpbmVuIEJlaXNwaWVsLUhlYWRlciBlcnN0ZWxsZW4nOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZWluIFRhYnVsYXRvci1aZWljaGVuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmJnV1bWw7ciBlaW5lIFplaWxlIGRlciBhdXNnZWdlYmVuZW4gRGF0ZWknOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmJnV1bWw7ciBkZW4gSGVhZGVyIGRlciBhdXNnZWdlYmVuZW4gRGF0ZWknOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXSA9ICdUZW1wbGF0ZSBmJnV1bWw7ciBkZW4gRm9vdGVyIGRlciBhdXNnZWdlYmVuZW4gRGF0ZWknOwokbGFuZ1sndGl0bGVfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBSVEYgZmlsZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdHlwZSddID0gJ0Nob29zZSBhIGZpbGUgdHlwZSB0byB1c2UnOwokbGFuZ1sndGl0bGVfcnRmX3RlbXBsYXRlX3R5cGUnXSA9ICdDaG9vc2UgYW4gUlRGIHRlbXBsYXRlIHR5cGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB6dXIgQmVzdCZhdW1sO3RpZ3VuZyBkZXMgRm9ybXVsYXJzJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnV2VydCAoc2llaGUgUmVnaXN0ZXJrYXJ0ZSBFcndlaXRlcnVuZ2VuLCB3ZW5uIFNpZSBTbWFydHktVGFncyB2ZXJ3ZW5kZW4pJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0dW1zLUZvcm1hdCAoc2llaGUgPGEgaHJlZj0iaHR0cDovL2RlLnBocC5uZXQvbWFudWFsL2RlL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9Il9ibGFuayI+UEhQLURhdHVtc2Zvcm1hdDwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnV1lTSVdZRy1FZGl0b3IgZiZ1dW1sO3IgZGVuIFRleHRiZXJlaWNoIHZlcndlbmRlbiAobnVyIGluIGRlciBBZG1pbmlzdHJhdGlvbik/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnVmVyaGFsdGVuIG5hY2ggZGVtIEZvcm11bGFyLVZlcnNhbmQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ0Jlc2NocmlmdHVuZyBkZXIgVmVyc2FuZC1CdXR0b24nOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0aWVyYmFyZXMgRmVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdBdWYgZGllc2VyIFNlaXRlIGsmb3VtbDtubmVuIFNpZSBkZW4gRm9ybXVsYXJ2ZXJzYW5kIGFucGFzc2VuLiBFcyB3aXJkIGplZG9jaCBOSUNIVCBmZXN0Z2VsZWd0LCB3aWUgZGllIHZlcnNhbmR0ZW4gRGF0ZW4gdmVyYXJiZWl0ZXQgd2VyZGVuLiBEYWYmdXVtbDtyIG0mdXVtbDtzc2VuIFNpZSBJaHJlbSBGb3JtdWxhciBlaW4gc2VwYXJhdGVzIEZlbGQgaGluenVmJnV1bWw7Z2VuLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnSmFocmVzYmVyZWljaCBCZWdpbm4nOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdKYWhyZXNiZXJlaWNoIEVuZGUnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnVm9yZWluZ2VzdGVsbHRlcyBKYWhyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKE1pdCAtMSB3aXJkIGRhcyBha3R1ZWxsZSBKYWhyIGFscyBWb3JlaW5zdGVsbHVuZyB2ZXJ3ZW5kZXQpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdOYWNoZGVtIGRhcyBGb3JtdWxhciB2ZXJzYW5kdCB3dXJkZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdBbnp1emVpZ2VuZGUgQW50d29ydCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0RhdHVtICZ1dW1sO2Jlcm1pdHRlbHQnOwokbGFuZ1sndGl0bGVfYXBwcm92YWxfZGF0ZSddID0gJ0RhdHVtIGdlcHImdXVtbDtmdCAoZHVyY2ggZGVuIEFkbWluaXN0cmF0b3IpJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdEYXR1bSBnZXByJnV1bWw7ZnQgKGR1cmNoIGRlbiBWZXJzZW5kZXIpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJyZiZHF1bztWZXJzYW5kLVRlbXBsYXRlJmxkcXVvOyBhbnplaWdlbic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnV2VpdGVybGVpdGVuIGF1ZiBkaWUgU2VpdGUnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdEaWVzZXMgVGVtcGxhdGUgd2lyZCBhbmdlemVpZ3QsIG5hY2hkZW0gZGFzIEZvcm11bGFyIHZlcnNhbmR0IHd1cmRlLiBEaWVzZXMgVGVtcGxhdGUgd2lyZCBuaWNodCB2ZXJ3ZW5kZXQsIHVtIEVtYWlscyB6dSBlcnpldWdlbiBvZGVyIGFuZGVyZSBGb3JtdWxhci1PcHRpb25lbiBhdXN6dWYmdXVtbDtocmVuLiBGYWxscyBlcncmdXVtbDtuc2NodCwgayZvdW1sO25uZW4gU2llIGRpZXNlIFRlbXBsYXRlcyBpbiBkZXIgJmJkcXVvO2Vyd2VpdGVydGVuJmxkcXVvOyBSZWdpc3RlcmthcnRlIGYmdXVtbDtyIGRpZXNlIEZlbGRlciBmZXN0bGVnZW4uJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdaaWVsc2VpdGUnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnRXJmb3JkZXJ0IEZlbGRuYW1lbic7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1NvbGwgZiZ1dW1sO3IgZGllIEZlbGRlciBlaW4gTmFtZSBmZXN0Z2VsZWd0IHdlcmRlbj8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdFcmZvcmRlcnQgZWluZGV1dGlnZSBGZWxkbmFtZW4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1NvbGwgZiZ1dW1sO3IgZGllIEZlbGRlciBlaW4gZWluZGV1dGlnZXIgTmFtZSBmZXN0Z2VsZWd0IHdlcmRlbj8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnRmVsZGVyIG5ldSBvcmRuZW4nOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGxhZGVuJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0VpbmVuIEJ1dHRvbi1UZXh0IGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZW4gQnV0dG9uLVRleHQgbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnSGlsZmV0ZXh0LCBkZXIgZiZ1dW1sO3IgZGllc2VzIEZlbGQgYW5nZXplaWd0IHdpcmQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnVmFyaWFibGVuIGFscyBaYWhsIG9kZXIgU3RyaW5nIGludGVycHJldGllcmVuJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb25zLVJlaWhlbmZvbGdlJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdXZW5uIG1laHIgYWxzIGVpbiBGZWxkIGJlcmVjaG5ldCB3ZXJkZW4gbXVzcywgd2VyZGVuIGRpZSBCZXJlY2hudW5nIHZvbiBkZXIgbmllZHJpZ3N0ZW4genVyIGgmb3VtbDtjaHN0ZW4gT3JkbnVuZ3NudW1tZXIgaGluIGR1cmNoZ2VmJnV1bWw7aHJ0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ191bnNwYWNlZCddID0gJ1N0cmluZyAoa2VpbmUgTGVlcnplaWNoZW4gendpc2NoZW4gZGVuIEZlbGRlcm4pPyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnWnUgYmVyZWNobmVuZGVyIFdlcnQnOwokbGFuZ1sndGl0bGVfY29tcHV0ZSddID0gJ0JlcmVjaG5ldC9QSFAnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnWmVpY2hlbmtldHRlJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdaYWhsJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGFzIEZvcm11bGFyIGlubGluZSBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBiZWRldXRldCwgZGFzcyBkYXMgRm9ybXVsYXIgZGVuIHtjbXNfbW9kdWxlfS1UYWcgZXJzZXR6dCwgYW5kZXJlbmZhbGxzIHdpcmQgZGVyIHtjb250ZW50fS1UYWcgZXJzZXR6dC4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1N0YW5kYXJkd2VydCBmJnV1bWw7ciBkYXMgRmVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQmVpIEtsaWNrIGF1ZiBkYXMgRmVsZCBkaWUgdm9yZWluZ2VzdGVsbHRlbiBXZXJ0ZSBlbnRmZXJuZW4/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0FrdGl2aWVyZW4gU2llIGRpZXNlcyBGZWxkLCB3ZW5uIGRlciB2b3JlaW5nZXN0ZWxsdGUgV2VydCBiZWkgS2xpY2sgYXVmIGRhcyBGZWxkIGVudGZlcm50IHdlcmRlbiBzb2xsLiBTZWl0IGRhZiZ1dW1sO3IgZWluIEphdmFzY3JpcHQgdmVyd2VuZGV0IHdpcmQsIHRyaXR0IGVpbiBGZWhsZXIgYXVmLCB3ZW5uIFNpZSBpbiBkZW0gdm9yZ2VnZWJlbmVuIFRleHQgZWluZmFjaGUgQW5mJnV1bWw7aHJ1bmdzemVpY2hlbiB2ZXJ3ZW5kZW4uIERpZXNlciBGZWhsZXIga2FubiBhdWNoIGJlaSBhbmRlcmVuIEphdmFzY3JpcHQtdW5mcmV1bmRsaWNoZW4gWmVpY2hlbiBhdWZ0cmV0ZW4uJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRWluZSBob2NoZ2VsYWRlbmUgRGF0ZWkgbmFjaCBkZXIgVmVyYXJiZWl0dW5nIChFbWFpbC1WZXJzYW5kKSB2b20gU2VydmVyIGwmb3VtbDtzY2hlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmJnV1bWw7ciBkYXMgRmVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdFcnN0ZWxsdCBlaW5lbiB2b2xsc3QmYXVtbDtuZGlnZW4gSmF2YXNjcmlwdC1BdWZydWYsIGVpbnNjaGxpZSZzemxpZztsaWNoIGRlcyBFcmVpZ25pc3NlcywgYXVmIGRhcyByZWFnaWVydCB3ZXJkZW4gc29sbCwgei5Cc3AuIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGYmdXVtbDtyIGRlbiBGb3JtdWxhcnZlcnNhbmQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ0Vyc3RlbGx0IGVpbmVuIHZvbGxzdCZhdW1sO25kaWdlbiBKYXZhc2NyaXB0LUF1ZnJ1ZiwgZWluc2NobGllJnN6bGlnO2xpY2ggZGVzIEVyZWlnbmlzc2VzLCBhdWYgZGFzIHJlYWdpZXJ0IHdlcmRlbiBzb2xsLCB6LkJzcC4gb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5EaWVzIGZ1bmt0aW9uaWVydCBtJm91bWw7Z2xpY2hlcndlaXNlIG5pY2h0IHJpY2h0aWcsIHdlbm4gU2llIGRpZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7LU9wdGlvbiB2ZXJ3ZW5kZW4uJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnVyZhdW1sO2hsZW4gU2llIGhpZXIga2VpbmUgenVmJmF1bWw7bGxpZ2UgQWRyZXNzZSAtLSBlaW5pZ2UgUHJvdmlkZXIgdmVyc2VuZGVuPGJyIC8+a2VpbmUgRW1haWxzLCB3ZW5uIGRlciBEb21haW5uYW1lIG5pY2h0IG1pdCBkZW0gYWt0dWVsbGVuPGJyIC8+SG9zdG5hbWVuICZ1dW1sO2JlcmVpbnN0aW1tdCAodmVyd2VuZGVuIFNpZSB6dW0gQmVpc3BpZWwgZXR3YXMgd2llIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ0JlbiZvdW1sO3RpZ2VuIFNpZSBub2NoIG1laHIgRmVsZHR5cGVuPyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdadSB2aWVsZSB2ZXJ3aXJyZW5kZSBGZWxkdHlwZW4/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnSW4gZGVuIGVyd2VpdGVydGVuIE1vZHVzIHdlY2hzZWxuJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnSW4gZGVuIGVpbmZhY2hlbiBNb2R1cyB3ZWNoc2Vsbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEYXRlaSBpbiBmb2xnZW5kZW0gVmVyemVpY2huaXMgc3BlaWNoZXJuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnRiZ1dW1sO3IgZGllc2VzIFZlcnplaWNobmlzIG11c3MgSWhyIFdlYnNlcnZlciBkaWUgU2NocmVpYmJlcmVjaHRpZ3VuZyBoYWJlbjxiciAvPiBTZXR6ZW4gU2llIGRpZXNlIGJlaSBCZWRhcmYgdmlhIGNobW9kIDc3Ny48YnIgLz5BdSZzemxpZztlcmRlbSBzb2xsdGVuIFNpZSBkYXJhdWYgYWNodGVuLCBkYXNzIGtlaW5lIFBIUC1WZXJ6ZWljaG5pcy1CZXNjaHImYXVtbDtua3VuZ2VuIGJlc3RlaGVuLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnWmVpY2hlbiwgd2VsY2hlcyBkaWUgWmVpbGVudW1iciZ1dW1sO2NoZSBlcnNldHplbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xhc3NlbiBTaWUgZGllc2VzIEZlbGQgbGVlciwgd2VubiBhbGxlIFplaWxlbnVtYnImdXVtbDtjaGUgbWl0IGF1c2dlZ2ViZW4gd2VyZGVuIHNvbGxlbic7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnRGVtIEJlbnV0emVyIGVpbmUgS29waWUgZGVzIEZvcm11bGFycyBzY2hpY2tlbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0Jlc2NocmlmdHVuZyBmJnV1bWw7ciBkYXMgS29udHJvbGxrJmF1bWw7c3RjaGVuIChmYWxscyBkdXJjaCBkZW4gQmVudXR6ZXIgYXVzZ2V3JmF1bWw7aGx0KSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ01pciBlaW5lIEtvcGllIGRlcyBGb3JtdWxhcnMgc2NoaWNrZW4nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0RhcyAmVXVtbDtiZXJzY2hyZWliZW4gZGVzIEJldHJlZmZzIGVybGF1YmVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdEYW1pdCBlcmxhdWJlbiBTaWUsIGRhc3MgZGVyIGltIExpc3RlbmZlbGQgZmVzdGdlbGVndGUgQmV0cmVmZiBkZXIgRW1haWwgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbiBrYW5uLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0FuemVpZ2VsJmF1bWw7bmdlJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW1hbGUgQW50d29ydGwmYXVtbDtuZ2UnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0VpbmdhYmUgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1NvbGxlbiBiZWkgZGVyIFBhc3N3b3J0ZWluZ2FiZSBTeW1ib2xlIGFuc3RhdHQgZWluZmFjaGVtIFRleHQgYW5nZXplaWd0IHdlcmRlbj8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICdEYXMgUGFzc3dvcmQgc3RpbW10IG5pY2h0IG1pdCAlcyAmdXVtbDtiZXJlaW4hJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnWnVyJnV1bWw7Y2sgenVyIEZvcm1CdWlsZGVyLUhhdXB0c2VpdGUnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXZWxjaGUgRW1haWwtSGVhZGVyIHNvbGxlbiBkaWVzZSBFaW5nYWJlIGVyaGFsdGVuPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnTGVlcnplaWNoZW4gbmljaHQgYWxzIGcmdXVtbDtsdGlnZW4gRWludHJhZyBha3plcHRpZXJlbic7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ1lvdSBtdXN0IGNsaWNrIG9uZSBvZiB0aGUgJnF1b3Q7c2F2ZSZxdW90OyBidXR0b25zIHRvIG1ha2UgeW91ciBuZXcgZmllbGQgb3JkZXIgcGVybWFuZW50Lic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ0ltIFRleHQgSFRNTDUtUGxhdHpoYWx0ZXIgYW5zdGF0dCBKYXZhc2NyaXB0IHZlcndlbmRlbic7CiRsYW5nWydlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnRGFzIENvbXBhbnlEaXJlY3RvcnktTW9kdWwgaXN0IG5pY2h0IHZlcmYmdXVtbDtnYmFyISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOaWVtYWxzJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0RlbSBCZW51dHplciBlaW5lIEF1c3dhaGwgYW5iaWV0ZW4gKEtvbnRyb2xsayZhdW1sO3N0Y2hlbiknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0ltbWVyJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnJnF1b3Q7RnJvbSZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdCb3RoICZxdW90O0Zyb20mcXVvdDsgYW5kICZxdW90O1JlcGx5LVRvJnF1b3Q7IGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9zaW5nbGUnXSA9ICdTZWxlY3QgTGlzdCAoc2luZ2xlKSc7CiRsYW5nWydvcHRpb25fc2VsZWN0bGlzdF9tdWx0aXBsZSddID0gJ1NlbGVjdCBMaXN0IChtdWx0aXBsZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpbyBHcm91cCc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdOb3RlOiBPdXRwdXQgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZjxici8+JnF1b3Q7Y29tcGFueSBuYW1lJnF1b3Q7PT4mcXVvdDt2YWx1ZSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdQaWNrIGEgY2F0ZWdvcnkgKG11bHRpcGxlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnUHVsbCBhIGZpZWxkIERlZmluaXRpb24mIzAzOTtzIHZhbHVlIChzaW5nbGUpIDxlbT5vcHRpb25hbDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnQ2hvb3NlIFVzZXIgaW5wdXQnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKEFsc28gdGFrZSBhIGxvb2sgYXQgdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIgaWYgeW91IHdhbnQgdG8gc2V0IGEgVURUIGZvciBmb3JtIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdFbmQgeWVhcic7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ1NtYXJ0eSBkYXRhIG9yIGxvZ2ljIHRoYXQgaXMgbWVhbnQgdG8gYmUgc2VudCB3aXRoIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWNfbG9uZyddID0gJ0NhbiBiZSBzbWFydHkgZGF0YSwgamF2YXNjcmlwdCwgb3Igc29tZSBvdGhlciBkYXRhIHlvdSB3YW4mIzAzOTt0IHRvIHNlbnQgYWxvbmcgd2l0aCB0aGlzIGZpZWxkLjxiciAvPkdvZXMgdGhyb3VnaCB0aGUgU21hcnR5IGNvbXBpbGVyLCBzbyByZW1lbWJlciB1c2Uge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdzIHdpdGggPHNjcmlwdD48L3NjcmlwdD4nOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddID0gJ0luY2x1ZGUgbGFiZWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHNfaGVscCddID0gJ0VuYWJsaW5nIHRoaXMgaW5jbHVkZXMgbGFiZWxzIHRvIG91dHB1dC4gZXhhbXBsZSAtIGxhYmVsOiB2YWx1ZSxsYWJlbDI6IHZhbHVlMic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5ncyddID0gJ0xpbmsgdGhpcyBmaWVsZCB0byBpdCYjMDM5O3Mgc2libGluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJ10gPSAnRHJvcGRvd24gbGlzdHMgYWxsIHNpYmxpbmdzIG9mIHRoaXMgZmllbGQgYW5kIGFsbG93cyB5b3UgdG8gbGluayB0aGlzIGZpZWxkIHRvIG9uZSBvZiBpdCYjMDM5O3Mgc2libGluZy4gTWFrZXMgcG9zc2libGUgY29udHJvbGxpbmcgdGhpcyBmaWVsZCB3aXRoIHNlbGVjdGVkIHNpYmxpbmcgY29udHJvbHMuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zJ10gPSAnSGlkZSBjb250cm9sIGJ1dHRvbnMnOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddID0gJ0hpZGVzIGZyb250ZW5kIGNvbnRyb2wgYnV0dG9ucyBvZiB0aGlzIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9ub3RlJ10gPSAnSGlud2Vpcyc7CiRsYW5nWyd0aXRsZV9jaGFuZ2luZ190cmlnZ2Vyc19yZWluZGV4J10gPSAnQ2hhbmdpbmcgYW55IG9mIHRoZSBhYm92ZSBmaWVsZHMgd2lsbCB0cmlnZ2VyIGEgcmVpbmRleCBvZiAqYWxsKiBzYXZlZCByZWNvcmRzLCBzbyBpdCBjb3VsZCB0YWtlIGEgd2hpbGUuJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZSddID0gJ0F0dGVtcHRlZCB1cGxvYWQgb2YgaWxsZWdhbCBmaWxlIHR5cGUgKCVzKSBmcm9tICVzJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGUnXSA9ICdNYWtlIHJlY29yZHMgYWNjZXNzaWJsZSB0byBTZWFyY2ggTW9kdWxlJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGVfaGVscCddID0gJ0NoZWNraW5nIHRoaXMgd2lsbCBtYWtlIGFsbCBzdWJtaXR0ZWQgZGF0YSBhY2Nlc3NpYmxlIHRvIHRoZSBTZWFyY2ggTW9kdWxlLiBETyBOT1QgdXNlIHRoaXMgaWYgeW91IGVuY3J5cHQgeW91ciBkYXRhIC0tIHRoZSBpbmZvcm1hdGlvbiBnZXRzIGV4cG9zZWQgdG8gc2VhcmNoIHdoZXRoZXIgb3Igbm90IGl0IGlzIGVuY3J5cHRlZCEnOwokbGFuZ1sndXBsb2FkZWRfb3V0c2lkZV93ZWJyb290J10gPSAnJXMgKG91dHNpZGUgd2ViIHJvb3QpJzsKJGxhbmdbJ3RpdGxlX2Zicl9lZGl0J10gPSAnRWRpdGFibGUgaW4gRm9ybUJyb3dzZXIgQWRtaW4/JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdEZXIgYmVudXR6ZXJkZWZpbmllcnRlIFRhZyBoYXQgZWluZW4gRmVobGVyIHp1ciZ1dW1sO2NrZ2VnZWJlbic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnRGVyIGJlbnV0emVyZGVmaW5pZXJ0ZSBUYWcgJXMgaGF0IGVpbmVuIEZlaGxlciB6dXImdXVtbDtja2dlZ2ViZW4uJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+RGFzIENhdGFsb2dlci1Nb2R1bCBzY2hlaW50IG5pY2h0IGluc3RhbGxpZXJ0IG9kZXIgYWt0aXYgenUgc2Vpbi48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5VTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFyZC1UZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxsZW4tVGVtcGxhdGUsIFRpdGVsIGxpbmtzJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsbGVuLVRlbXBsYXRlLCBUaXRlbCBvYmVuJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIHZvbiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIElociBUZW1wbGF0ZSBtaXQgZGVtIGF1c2dldyZhdW1sO2hsdGVuIFRlbXBsYXRlICZ1dW1sO2JlcnNjaHJlaWJlbj8gKEF1Y2gsIHdlbm4gU2llIGRpZXMgYmVzdCZhdW1sO3RpZ2VuLCBtJnV1bWw7c3NlbiBTaWUgZGllICZBdW1sO25kZXJ1bmcgc3BlaWNoZXJuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGZWhsZXIgYmVpbSBCZXJlY2huZW4gdm9uICZiZHF1bzslcyZsZHF1bzsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdLZWluZSBJbmZvcm1hdGlvbmVuICZ1dW1sO2JlciBkZW4gSFRUUF9SRUZFUkVSIHZlcmYmdXVtbDtnYmFyICh3YWhyc2NoZWlubGljaCBhdWZncnVuZCBkZXIgdmVyd2VuZGV0ZW4gRW1haWwtUHImdXVtbDtmdW5nKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnRmVobGVyIGJlaW0gJlV1bWw7YmVycHImdXVtbDtmZW4gZGVyIFBhcmFtZXRlci4gQml0dGUgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZSBVUkwgYXVzIElocmVyIEVtYWlsIGtvcnJla3Qga29waWVydCB3dXJkZSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyICZVdW1sO2JlcnByJnV1bWw7ZnVuZy4gQml0dGUgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZSBVUkwgYXVzIElocmVyIEVtYWlsIGtvcnJla3Qga29waWVydCB3dXJkZSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyICZVdW1sO2JlcnByJnV1bWw7ZnVuZy4gRGllc2VzIEZvcm11bGFyIGVudGgmYXVtbDtsdCBrZWluIEZlbGQgenVyICZVdW1sO2JlcnByJnV1bWw7ZnVuZyBkZXIgRW1haWwhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdIaW56dWYmdXVtbDtnZW4sIEJlYXJiZWl0ZW4gdW5kIFZlcndhbHRlbiB2b24gaW50ZXJha3RpdmVuIEZvcm11bGFyZW4nOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLiBJZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuIElmIHlvdSB1c2UgQ29tcHV0ZWQvUEhQIGV2YWx1YXRpb24sIHlvdSBjYW4KdXNlIGFueSBmdW5jdGlvbiB5b3Ugd2FudCwgYnV0IHlvdSBuZWVkIHRvIHF1b3RlIHRoaW5ncyAoc3Vic3RpdHV0aW9uIG9jY3VycyBiZWZvcmUgZXZhbHVhdGlvbiksIGUuZy4sIHN1YnN0cigmIzAzOTskZmxkXzIyJiMwMzk7LDAsMikuJiMwMzk7JGZsZF8yMyYjMDM5Oy4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnTW9kdWwtU2Nobml0dHN0ZWxsZSB2ZXJ3ZW5kZW4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPgpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPgo8cHJlPgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7JiMwMzk7fQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7JiMwMzk7fQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7OjomIzAzOTt8ZXhwbG9kZTokTURhdGF9CgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9CgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsgY2hlY2tlZD0mcXVvdDtjaGVja2VkJnF1b3Q7JiMwMzk7fQoJCQl7L2lmfQoJCXsvZm9yZWFjaH0KCTxkaXYgY2xhc3M9JnF1b3Q7UHJvZHVjdERpcmVjdG9yeUl0ZW0mcXVvdDs+CgkJPGlucHV0IHR5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgdmFsdWU9JnF1b3Q7eyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0mcXVvdDsgbmFtZT0mcXVvdDt7JEZCaWR9W10mcXVvdDsgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIAoJPC9kaXY+CnsvZm9yZWFjaH0KPC9wcmU+Cjxici8+CndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSZxdW90O2NhdCZxdW90OyBzdW1tYXJ5dGVtcGxhdGU9JnF1b3Q7WW91cl9GQl90ZW1wbGF0ZSZxdW90O308L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ0locmVuIFRhZyBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNJmF1bWw7cnonOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsICc7CiRsYW5nWydkYXRlX21heSddID0gJ01haSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QgJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyICc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlciAnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlemVtYmVyJzsKJGxhbmdbJ0FGJ10gPSAnQWZnaGFuaXN0YW4gJzsKJGxhbmdbJ0FYJ10gPSAnQWxhbmQgSW5zZWxuJzsKJGxhbmdbJ0FMJ10gPSAnQWxiYW5pZW4nOwokbGFuZ1snRFonXSA9ICdBbGdlcmllbic7CiRsYW5nWydBUyddID0gJ0FtZXJpa2FuaXNjaCBTYW1vYSc7CiRsYW5nWydBRCddID0gJ0FuZG9ycmEgJzsKJGxhbmdbJ0FPJ10gPSAnQW5nb2xhICc7CiRsYW5nWydBSSddID0gJ0FuZ3VpbGxhICc7CiRsYW5nWydBUSddID0gJ0FudGFya3Rpcyc7CiRsYW5nWydBRyddID0gJ0FudGlndWEgdW5kIEJhcmJ1ZGEnOwokbGFuZ1snQVInXSA9ICdBcmdlbnRpbmllbic7CiRsYW5nWydBTSddID0gJ0FybWVuaWVuJzsKJGxhbmdbJ0FXJ10gPSAnQXJ1YmEnOwokbGFuZ1snQVUnXSA9ICdBdXN0cmFsaWVuJzsKJGxhbmdbJ0FUJ10gPSAnJk91bWw7c3RlcnJlaWNoJzsKJGxhbmdbJ0FaJ10gPSAnQXNlcmJhaWRzY2hhbic7CiRsYW5nWydCUyddID0gJ0JhaGFtYXMgJzsKJGxhbmdbJ0JIJ10gPSAnQmFocmFpbiAnOwokbGFuZ1snQkInXSA9ICdCYXJiYWRvcyAnOwokbGFuZ1snQkQnXSA9ICdCYW5nbGFkZXNjaCc7CiRsYW5nWydCWSddID0gJ1dlaSZzemxpZztydXNzbGFuZCc7CiRsYW5nWydCRSddID0gJ0JlbGdpZW4nOwokbGFuZ1snQlonXSA9ICdCZWxpemUgJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4gJzsKJGxhbmdbJ0JNJ10gPSAnQmVybXVkYSAnOwokbGFuZ1snQlQnXSA9ICdCaHV0YW4gJzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEgJzsKJGxhbmdbJ0JPJ10gPSAnQm9saXZpZW4nOwokbGFuZ1snQkEnXSA9ICdCb3NuaWVuIHVuZCBIZXJ6ZWdvd2luYSc7CiRsYW5nWydCViddID0gJ0JvdXZldC1JbnNlbCc7CiRsYW5nWydCUiddID0gJ0JyYXNpbGllbic7CiRsYW5nWydJTyddID0gJ0JyaXRpc2NoZXMgVGVycml0b3JpdW0gaW0gSW5kaXNjaGVuIE96ZWFuJzsKJGxhbmdbJ0JOJ10gPSAnQnJ1bmVpIERhcnVzc2FsYW0gJzsKJGxhbmdbJ0JHJ10gPSAnQnVsZ2FyaWVuJzsKJGxhbmdbJ0JGJ10gPSAnQnVya2luYSBGYXNvICc7CiRsYW5nWydCSSddID0gJ0J1cnVuZGkgJzsKJGxhbmdbJ0tIJ10gPSAnS2FtYm9kc2NoYSc7CiRsYW5nWydDTSddID0gJ0thbWVydW4nOwokbGFuZ1snQ0EnXSA9ICdLYW5hZGEnOwokbGFuZ1snQ1YnXSA9ICdLYXAgVmVyZGUnOwokbGFuZ1snS1knXSA9ICdDYXltYW4tSW5zZWxuJzsKJGxhbmdbJ0NGJ10gPSAnWmVudHJhbGFmcmlrYW5pc2NoZSBSZXB1Ymxpayc7CiRsYW5nWydURCddID0gJ1RzY2hhZCc7CiRsYW5nWydDTCddID0gJ0NoaWxlICc7CiRsYW5nWydDTiddID0gJ0NoaW5hICc7CiRsYW5nWydDWCddID0gJ1dlaWhuYWNodHNpbnNlbG4nOwokbGFuZ1snQ0MnXSA9ICdDb2NvcyAoS2VlbGluZykgSW5zZWxuJzsKJGxhbmdbJ0NPJ10gPSAnS29sdW1iaWVuJzsKJGxhbmdbJ0tNJ10gPSAnQ29tb3JvcyAnOwokbGFuZ1snQ0cnXSA9ICdLb25nbyc7CiRsYW5nWydDRCddID0gJ0tvbmdvLCBEZW1va3JhdGlzY2hlIFJlcHVibGlrJzsKJGxhbmdbJ0NLJ10gPSAnT3N0ZXJpbnNlbG4nOwokbGFuZ1snQ1InXSA9ICdDb3N0YSBSaWNhICc7CiRsYW5nWydDSSddID0gJ0l2b2lyZSAoRWxmZW5iZWluayZ1dW1sO3N0ZSknOwokbGFuZ1snSFInXSA9ICdLcm9hdGllbiAoSHJ2YXRza2EpJzsKJGxhbmdbJ0NVJ10gPSAnS3ViYSc7CiRsYW5nWydDWSddID0gJ1p5cGVybic7CiRsYW5nWydDWiddID0gJ1RzY2hlY2hpc2NoZSBSZXB1Ymxpayc7CiRsYW5nWydESyddID0gJ0QmYXVtbDtuZW1hcmsnOwokbGFuZ1snREonXSA9ICdEamlib3V0aSAnOwokbGFuZ1snRE0nXSA9ICdEb21pbmljYSAnOwokbGFuZ1snRE8nXSA9ICdEb21pbmlrYW5pc2NoZSBSZXB1Ymxpayc7CiRsYW5nWydUUCddID0gJyZPdW1sO3N0bGljaGVyIFRpbW9yJzsKJGxhbmdbJ0VDJ10gPSAnRWN1YWRvciAnOwokbGFuZ1snRUcnXSA9ICcmQXVtbDtneXB0ZW4nOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvciAnOwokbGFuZ1snR1EnXSA9ICcmQXVtbDtxdWF0b3JpYWwgR3VpbmVhJzsKJGxhbmdbJ0VSJ10gPSAnRXJpdHJlYSAnOwokbGFuZ1snRUUnXSA9ICdFc3RsYW5kJzsKJGxhbmdbJ0VUJ10gPSAnJkF1bWw7dGhpb3BpZW4nOwokbGFuZ1snRksnXSA9ICdGYWxrbGFuZC1JbnNlbG4gKE1hbHZpbmFzKSc7CiRsYW5nWydGTyddID0gJ0Zhcm9lIEluc2Vsbic7CiRsYW5nWydGSiddID0gJ0ZpamkgJzsKJGxhbmdbJ0ZJJ10gPSAnRmlubmxhbmQnOwokbGFuZ1snRlInXSA9ICdGcmFua3JlaWNoJzsKJGxhbmdbJ0ZYJ10gPSAnRnJhbmtyZWljaCc7CiRsYW5nWydHRiddID0gJ0d1ZXJuc2V5ICc7CiRsYW5nWydQRiddID0gJ0ZyYW56Jm91bWw7c2lzY2ggUG9seW5lc2llbic7CiRsYW5nWydURiddID0gJ0ZyYW56Jm91bWw7c2lzY2hlIFMmdXVtbDtkbGljaGUgVGVycml0b3JpZW4nOwokbGFuZ1snTUsnXSA9ICdGLlkuUi5PLk0uIChNYXplZG9uaWVuKSc7CiRsYW5nWydHQSddID0gJ0dhYnVuJzsKJGxhbmdbJ0dNJ10gPSAnR2FtYmlhICc7CiRsYW5nWydHRSddID0gJ0dlb3JnaWVuJzsKJGxhbmdbJ0RFJ10gPSAnRGV1dHNjaGxhbmQnOwokbGFuZ1snR0gnXSA9ICdHaGFuYSAnOwokbGFuZ1snR0knXSA9ICdHaWJyYWx0YXIgJzsKJGxhbmdbJ0dCJ10gPSAnR3JvJnN6bGlnO2JyaXRhbm5pZW4gKFVLKSc7CiRsYW5nWydHUiddID0gJ0dyaWVjaGVubGFuZCc7CiRsYW5nWydHTCddID0gJ0dyJm91bWw7bmxhbmQnOwokbGFuZ1snR0QnXSA9ICdHcmVuYWRhICc7CiRsYW5nWydHUCddID0gJ0d1YWRlbG91cGUgJzsKJGxhbmdbJ0dVJ10gPSAnR3VhbSAnOwokbGFuZ1snR1QnXSA9ICdHdWF0ZW1hbGEgJzsKJGxhbmdbJ0dOJ10gPSAnR3VpbmVhICc7CiRsYW5nWydHVyddID0gJ0d1aW5lYS1CaXNzYXUgICc7CiRsYW5nWydHWSddID0gJ0d1eWFuYSAnOwokbGFuZ1snSFQnXSA9ICdIYWl0aSAnOwokbGFuZ1snSE0nXSA9ICdIJm91bWw7cnRlbiB1bmQgTWNEb25hbGQgSW5zZWxuJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMgJzsKJGxhbmdbJ0hLJ10gPSAnSG9uZ2tvbmcnOwokbGFuZ1snSFUnXSA9ICdVbmdhcm4nOwokbGFuZ1snSVMnXSA9ICdJc2xhbmQnOwokbGFuZ1snSU4nXSA9ICdJbmRpZW4nOwokbGFuZ1snSUQnXSA9ICdJbmRvbmVzaWVuJzsKJGxhbmdbJ0lSJ10gPSAnSXJhbiAnOwokbGFuZ1snSVEnXSA9ICdJcmFrJzsKJGxhbmdbJ0lFJ10gPSAnSXJsYW5kJzsKJGxhbmdbJ0lMJ10gPSAnSXNyYWVsICc7CiRsYW5nWydJTSddID0gJ0lzbGUgb2YgTWFuICc7CiRsYW5nWydJVCddID0gJ0l0YWxpZW4nOwokbGFuZ1snSkUnXSA9ICdKZXJzZXkgJzsKJGxhbmdbJ0pNJ10gPSAnSmFtYWlrYSc7CiRsYW5nWydKUCddID0gJ0phcGFuICc7CiRsYW5nWydKTyddID0gJ0pvcmRhbmllbic7CiRsYW5nWydLWiddID0gJ0thc2FjaHN0YW4nOwokbGFuZ1snS0UnXSA9ICdLZW5pYSc7CiRsYW5nWydLSSddID0gJ0tpcmliYXRpICc7CiRsYW5nWydLUCddID0gJ05vcmRrb3JlYSc7CiRsYW5nWydLUiddID0gJ1MmdXVtbDtka29yZWEnOwokbGFuZ1snS1cnXSA9ICdLdXdhaXQgJzsKJGxhbmdbJ0tHJ10gPSAnS2lyZ2lzaXN0YW4nOwokbGFuZ1snTEEnXSA9ICdMYW9zICc7CiRsYW5nWydMViddID0gJ0xldHRsYW5kJzsKJGxhbmdbJ0xCJ10gPSAnTGliYW5vbic7CiRsYW5nWydMSSddID0gJ0xpZWNodGVuc3RlaW4nOwokbGFuZ1snTFInXSA9ICdMaWJlcmllbic7CiRsYW5nWydMWSddID0gJ0xpYnllbic7CiRsYW5nWydMUyddID0gJ0xlc290aG8nOwokbGFuZ1snTFQnXSA9ICdMaXRhdWVuJzsKJGxhbmdbJ0xVJ10gPSAnTHV4ZW1idXJnJzsKJGxhbmdbJ01PJ10gPSAnTWFjYXUgJzsKJGxhbmdbJ01HJ10gPSAnTWFkYWdhc2thcic7CiRsYW5nWydNVyddID0gJ01hbGF3aSAnOwokbGFuZ1snTVknXSA9ICdNYWxheXNpYSAnOwokbGFuZ1snTVYnXSA9ICdNYWxkaXZlbic7CiRsYW5nWydNTCddID0gJ01hbGkgJzsKJGxhbmdbJ01UJ10gPSAnTWFsdGEgJzsKJGxhbmdbJ01IJ10gPSAnSW5zZWxuIHZvbiBNYXJzY2hhbGwnOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlICc7CiRsYW5nWydNUiddID0gJ01hdXJldGFuaWVuJzsKJGxhbmdbJ01VJ10gPSAnTWF1cml0aXVzICc7CiRsYW5nWydZVCddID0gJ01heW90dGUgJzsKJGxhbmdbJ01YJ10gPSAnTWV4aWtvJzsKJGxhbmdbJ0ZNJ10gPSAnTWlrcm9uZXNpZW4nOwokbGFuZ1snTUMnXSA9ICdNb25ha28nOwokbGFuZ1snTUQnXSA9ICdNb2xkYXdpZW4nOwokbGFuZ1snTUEnXSA9ICdNYXJva2tvJzsKJGxhbmdbJ01OJ10gPSAnTW9uZ29sZWknOwokbGFuZ1snTVMnXSA9ICdNb250c2VycmF0ICc7CiRsYW5nWydNWiddID0gJ01vc2FtYmlxdWUnOwokbGFuZ1snTU0nXSA9ICdNeWFubWFyICc7CiRsYW5nWydOQSddID0gJ05hbWliaWVuJzsKJGxhbmdbJ05SJ10gPSAnTmF1cnUgJzsKJGxhbmdbJ05QJ10gPSAnTmVwYWwgJzsKJGxhbmdbJ05MJ10gPSAnTmllZGVybGFuZGUnOwokbGFuZ1snQU4nXSA9ICdOaWVkZXJsJmF1bWw7bmRpc2NoZSBBbnRpbGxlbic7CiRsYW5nWydOVCddID0gJ05ldXRyYWxlIFpvbmUnOwokbGFuZ1snTkMnXSA9ICdOZXVrYWxlZG9uaWVuJzsKJGxhbmdbJ05aJ10gPSAnTmV1c2VlbGFuZCAoQW90ZWFyb2EpJzsKJGxhbmdbJ05JJ10gPSAnTmlrYXJhZ3VhJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXIgJzsKJGxhbmdbJ05HJ10gPSAnTmlnZXJpYSAnOwokbGFuZ1snTlUnXSA9ICdOaXVlICc7CiRsYW5nWydORiddID0gJ05vcmZvbGstSW5zZWwnOwokbGFuZ1snTVAnXSA9ICdOJm91bWw7cmRsaWNoZSBNYXJpYW5lbi1JbnNlbG4nOwokbGFuZ1snTk8nXSA9ICdOb3J3ZWdlbic7CiRsYW5nWydPTSddID0gJ09tYW4gJzsKJGxhbmdbJ1BLJ10gPSAnUGFraXN0YW4gJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUgJzsKJGxhbmdbJ1BTJ10gPSAnUGFsJmF1bWw7c3RpbmVuc2lzY2hlcyBUZXJyaXRvcml1bSc7CiRsYW5nWydQQSddID0gJ1BhbmFtYSAnOwokbGFuZ1snUEcnXSA9ICdQYXB1YS1OZXVndWluZWEnOwokbGFuZ1snUFknXSA9ICdQYXJhZ3VheSAnOwokbGFuZ1snUEUnXSA9ICdQZXJ1ICc7CiRsYW5nWydQSCddID0gJ1BoaWxpcHBpbmVuJzsKJGxhbmdbJ1BOJ10gPSAnUGl0Y2Fpcm4gJzsKJGxhbmdbJ1BMJ10gPSAnUG9sZW4nOwokbGFuZ1snUFQnXSA9ICdQb3J0dWdhbCAnOwokbGFuZ1snUFInXSA9ICdQdWVydG8gUmljbyAnOwokbGFuZ1snUUEnXSA9ICdRYXRhciAnOwokbGFuZ1snUkUnXSA9ICdSZXVuaW9uICc7CiRsYW5nWydSTyddID0gJ1J1bSZhdW1sO25pZW4nOwokbGFuZ1snUlUnXSA9ICdSdXNzaXNjaGUgRiZvdW1sO2RlcmF0aW9uJzsKJGxhbmdbJ1JXJ10gPSAnUnVhbmRhJzsKJGxhbmdbJ0dTJ10gPSAnUy4gR2VvcmdpYSB1bmQgUy4gU2FuZHdpY2ggaW5zZWxuJzsKJGxhbmdbJ0tOJ10gPSAnU2FpbnQgS2l0dHMgdW5kIE5ldmlzJzsKJGxhbmdbJ0xDJ10gPSAnU2FpbnQgTHVjaWEgJzsKJGxhbmdbJ1ZDJ10gPSAnU2FpbnQgVmluY2VudCAmYW1wOyBHcmVuYWRpbmVuJzsKJGxhbmdbJ1dTJ10gPSAnU2Ftb2EgJzsKJGxhbmdbJ1NNJ10gPSAnU2FuIE1hcmlubyAnOwokbGFuZ1snU1QnXSA9ICdTYW8gVG9tZSB1bmQgUHJpbmNpcGUnOwokbGFuZ1snU0EnXSA9ICdTYXVkaS1BcmFiaWVuJzsKJGxhbmdbJ1NOJ10gPSAnU2VuZWdhbCAnOwokbGFuZ1snU0MnXSA9ICdTZXljaGVsbGVuJzsKJGxhbmdbJ1NMJ10gPSAnU2llcnJhIExlb25lICc7CiRsYW5nWydTRyddID0gJ1NpbmdhcHVyJzsKJGxhbmdbJ1NJJ10gPSAnU2xvd2VuaWVuJzsKJGxhbmdbJ1NLJ10gPSAnU2xvd2FraXNjaGUgUmVwdWJsaWsnOwokbGFuZ1snU0InXSA9ICdTb2xvbW9uLUluc2Vsbic7CiRsYW5nWydTTyddID0gJ1NvbWFsaWEgJzsKJGxhbmdbJ1pBJ10gPSAnUyZ1dW1sO2RhZnJpa2EnOwokbGFuZ1snRVMnXSA9ICdTcGFuaWVuJzsKJGxhbmdbJ0xLJ10gPSAnU3JpIExhbmthICc7CiRsYW5nWydTSCddID0gJ1N0LiBIZWxlbmEgJzsKJGxhbmdbJ1BNJ10gPSAnU3QuIFBpZXJyZSB1bmQgTWlxdWVsb24gJzsKJGxhbmdbJ1NEJ10gPSAnU3VkYW4gJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbSc7CiRsYW5nWydTSiddID0gJ1N2YWxiYXJkICZhbXA7IEphbiBNYXllbiBJbnNlbG4nOwokbGFuZ1snU1onXSA9ICdTd2F6aWxhbmQgJzsKJGxhbmdbJ1NFJ10gPSAnU2Nod2VkZW4nOwokbGFuZ1snQ0gnXSA9ICdTY2h3ZWl6JzsKJGxhbmdbJ1NZJ10gPSAnU3lyaWVuJzsKJGxhbmdbJ1RXJ10gPSAnVGFpd2FuICc7CiRsYW5nWydUSiddID0gJ1RhZHNjaGlraXN0YW4nOwokbGFuZ1snVFonXSA9ICdUYW5zYW5pYSc7CiRsYW5nWydUSCddID0gJ1RoYWlsYW5kICc7CiRsYW5nWydURyddID0gJ1RvZ28gJzsKJGxhbmdbJ1RLJ10gPSAnVG9rZWxhdSAnOwokbGFuZ1snVE8nXSA9ICdUb25nYSc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIHVuZCBUb2JhZ28nOwokbGFuZ1snVE4nXSA9ICdUdW5lc2llbic7CiRsYW5nWydUUiddID0gJ1QmdXVtbDtya2VpJzsKJGxhbmdbJ1RNJ10gPSAnVHVya21lbmlzdGFuICc7CiRsYW5nWydUQyddID0gJ1QmdXVtbDtya2VuIHVuZCBDYWljb3MgSW5zZWxuJzsKJGxhbmdbJ1RWJ10gPSAnVHV2YWx1ICc7CiRsYW5nWydVRyddID0gJ1VnYW5kYSAnOwokbGFuZ1snVUEnXSA9ICdVa3JhaW5lICc7CiRsYW5nWydBRSddID0gJ1ZlcmVpbmlndGUgQXJhYmlzY2hlIEVtaXJhdGUnOwokbGFuZ1snVUsnXSA9ICdWZXJlaW5pZ3RlcyBLJm91bWw7bmlncmVpY2gnOwokbGFuZ1snVVMnXSA9ICdWZXJlaW5pZ3RlIFN0YWF0ZW4gdm9uIEFtZXJpa2EnOwokbGFuZ1snVU0nXSA9ICdBYmdlbGVnZW5lbiBrbGVpbmUgIFVTLUluc2Vsbic7CiRsYW5nWydVWSddID0gJ1VydWd1YXkgJzsKJGxhbmdbJ1VaJ10gPSAnVXNiZWtpc3Rhbic7CiRsYW5nWydWVSddID0gJ1ZhbnVhdHUgJzsKJGxhbmdbJ1ZBJ10gPSAnU3RhYXQgVmF0aWthbnN0YWR0JzsKJGxhbmdbJ1ZFJ10gPSAnVmVuZXp1ZWxhICc7CiRsYW5nWydWTiddID0gJ1ZpZXRuYW0nOwokbGFuZ1snVkcnXSA9ICdKdW5nZmVybi1JbnNlbG4gKEJyaXRpc2NoKSc7CiRsYW5nWydWSSddID0gJ0p1bmdmZXJuLUluc2VsbiAoVS5TLiknOwokbGFuZ1snV0YnXSA9ICdXYWxsaXMgdW5kIEZ1dHVuYSBJbnNlbG4nOwokbGFuZ1snRUgnXSA9ICdXZXN0c2FoYXJhJzsKJGxhbmdbJ1lFJ10gPSAnSmVtZW4nOwokbGFuZ1snWVUnXSA9ICdKdWdvc2xhd2llbic7CiRsYW5nWydaTSddID0gJ1NhbWJpYSc7CiRsYW5nWydaVyddID0gJ1NpbWJhYndlJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdCZWkgZGVyIFZlcmFyYmVpdHVuZyBkZXMgdmVyc2FuZHRlbiBGb3JtdWxhcnMgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0ZlaGxlciBiZWltIFZlcnNhbmQ6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdGZWhsZXIgYmVpIGRlciAmVXVtbDtiZXJnYWJlIGRlciBEYXRlaSBhbiBkYXMgVXBsb2Fkcy1Nb2R1bDogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnS29ubnRlIGRhcyBVcGxvYWRzLU1vZHVsIG5pY2h0IGZpbmRlbic7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnRmVobGVyIGJlaW0gSG9jaGxhZGVuIGRlciBEYXRlaSAlcyAodGVtcG9yJmF1bWw7cmVyIE5hbWUgJXMgZGVzIFR5cHMgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRmVobGVyLiBEYXRlaSBrb25udGUgbmljaHQgZ2VzcGVycnQgd2VyZGVuLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBuaWNodCBhdXNnZXcmYXVtbDtobHQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnU3RhbmRhcmQ6IGF1c2dldyZhdW1sO2hsdCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXItVmVyc2FuZCc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5EYXMgRW1haWwtVGVtcGxhdGUgd3VyZGUgbm9jaCBuaWNodCBmZXN0Z2VsZWd0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogS29ubnRlIGRhcyBlcmZvcmRlcmxpY2hlIENNU01haWxlci1Nb2R1bCBuaWNodCBmaW5kZW4hJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0JlbnV0emVyZ2VwciZ1dW1sO2Z0ZSAmVXVtbDtiZXJtaXR0bHVuZyAlcyB2b24gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0F1c2YmdXVtbDtocmVuLCB3ZW5uIGVpbiBGb3JtdWxhciBtaXQgZGVtIEZvcm1CdWlsZGVyIHZlcnNhbmR0IHd1cmRlJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0F1c2YmdXVtbDtocmVuLCB3ZW5uIGJlaW0gVmVyc2FuZCBlaW5lcyBGb3JtQnVpbGRlci1Gb3JtdWxhcnMgZWluIEZlaGxlciBhdWZnZXRyZXRlbiBpc3QnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdBdXNmJnV1bWw7aHJlbiwgd2VubiBlaW4gRm9ybUJ1aWxkZXItRm9ybXVsYXIgYW5nZXplaWd0IHd1cmRlJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5BdXNmJnV1bWw7aHJlbiwgd2VubiBlaW4gRm9ybXVsYXIgbWl0IGRlbSBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZS48L3A+CjxoND5QYXJhbWV0ZXI8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBkZXIgTmFtZSBkZXMgRm9ybXVsYXJzIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBkaWUgaW50ZXJuZSBGb3JtdWxhdC1JRCAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSB2ZXJ3ZW5kZXQgZWluZW4gdm9yZ2VnZWJlbmVuIFdlcnQgZiZ1dW1sO3IgZWluIGZlc3RnZWxlZ3RlcyBGZWxkLjwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5BdXNmJnV1bWw7aHJlbiwgd2VubiBiZWltIFZlcnNhbmQgZWluZXMgRm9ybUJ1aWxkZXItRm9ybXVsYXJzIGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0PC9wPgo8aDQ+UGFyYW1ldGVyPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gTmFtZSBkZXMgRm9ybXVsYXJzIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBkaWUgaW50ZXJuZSBGb3JtdWxhci1JRCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIGVpbmUgTGlzdGUgYWxsZXIgYmVrYW5udGUgRmVobGVyIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm1CdWlsZGVyLUZvcm11bGFyIGFuZ2V6ZWlndCB3dXJkZTwvcD4KPGg0PlBhcmFtZXRlcjwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gZGllIGludGVybmUgRm9ybXVsYXItSUQgKGludCk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UtSUQuIFdpcmQgdm9tIEZvcm1Ccm93c2VyLU1vZHVsIHZlcndlbmRldCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnU3RhbmRhcmR3ZXJ0ZSBkZXIgRmVsZGVyOyBzaWVoZSBNb2R1bC1IaWxmZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGZWxkLUlEIGYmdXVtbDtyIGludGVybmUgT3BlcmF0aW9uZW4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGFyLU5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWxhci1JRCBmJnV1bWw7ciBpbnRlcm5lIE9wZXJhdGlvbmVuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnQWxsZ2VtZWluZSBQYXJhbWV0ZXIgZiZ1dW1sO3IgaW50ZXJuZSBPcGVyYXRpb25lbic7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICZhbXA7IzEyMzskZmJfaGlkZGVufSBhbmQgJmFtcDsjMTIzOyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5TdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIEJlcmVjaHRpZ3VuZyAmYmRxdW87TW9kaWZ5IEZvcm1zJmxkcXVvOyAKZiZ1dW1sO3IgZGllIEJlbnV0emVyIGdlc2V0enQgaXN0LCB3ZWxjaGUgZGllIEZlZWRiYWNrLUZvcm11bGFyZSBhZG1pbmlzdHJpZXJlbiB3ZXJkZW4uIFNvbGxlbiBkaWUgV2VydGUgYXVzIGRlbSBGb3JtdWxhciBwZXIgRW1haWwgdmVyc2FuZHQgd2VyZGVuLCAKc3RlbGxlbiBTaWUgZWJlbmZhbGxzIHNpY2hlciwgZGFzcyBkaWUgS29uZmlndXJhdGlvbiBlbnRzcHJlY2hlbmQgYWt0dWFsaXNpZXJ0IHd1cmRlLjwvcD4KPHA+QUNIVFVORzogVyZhdW1sO2hyZW5kIGRlciBCZWFyYmVpdHVuZyBkYXJmIGRhcyBqZXdlaWxpZ2UgRm9ybXVsYXIgCkJlYXJiZWl0dW5nIG5pY2h0IGFrdGl2IHNlaW4gKD1udXR6YmFyIGYmdXVtbDtyIGRpZSBHJmF1bWw7c3RlIElocmVyIEhvbWVwYWdlKS4gU2llIHNvbGx0ZW4gZGFoZXIgZGVuIEZvcm11bGFyLVRhZyBlcnN0IGRhbm4gaW4gZWluZSBha3RpdmUgSW5oYWx0c3NlaXRlIGVpbmYmdXVtbDtnZW4sIHdlbm4gZGFzIEZvcm11bGFyIGtvbXBsZXR0IGVyc3RlbGx0IGlzdC4gQW5kZXJlbmZhbGxzIGthbm4gZXMgenUgZmVobGVyaGFmdGVuIEVyZ2Vibmlzc2VuIGtvbW1lbi48L3A+CjxwPkhpbndlaXM6IERpZXNlIFZlcnNpb24gdW50ZXJzdCZ1dW1sO3R6dCBrZWluZSBwYXJhbGxlbGUgQmVhcmJlaXR1bmcgdm9uIEZvcm11bGFyZW4gZHVyY2ggbWVocmVyZSBBZG1pbmlzdHJhdG9yZW4uIFN0ZWxsZW4gU2llIGRhaGVyIHNpY2hlciwgZGFzcyBlaW4gRm9ybXVsYXIgamV3ZWlscyBudXIgdm9uIGVpbmVtIEFkbWluaXN0cmF0b3IgYmVhcmJlaXRldCB3aXJkLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XYXMgbWFjaHQgZGllc2VzIE1vZHVsPzwvaDM+CjxwPkRhcyBGb3JtQnVpbGRlci1Nb2R1bCBlcmxhdWJ0IElobmVuLCBGZWVkYmFjay1Gb3JtdWxhcmUgenUgZXJzdGVsbGVuIChsb2dpc2NoLCBlcyBpc3QgZGVyIE5hY2hmb2xnZXIgZGVzIEZlZWRiYWNrRm9ybS1Nb2R1bHMpLCBlcndlaXRlcnQgdW0gZGllIEYmYXVtbDtoaWdrZWl0LCBlaW5nZWdlYmVuZSBEYXRlbiBhdWNoIGluIGVpbmVyIERhdGVuYmFuayBhYmxlZ2VuIHp1IGsmb3VtbDtubmVuLiBadXNhbW1lbiBtaXQgZGVtIEZvcm1Ccm93c2VyLU1vZHVsIGsmb3VtbDtubmVuIFNpZSBlaW5zZXR6ZW4sIHVtIGVpbmZhY2hlIERhdGVuYmFuay1BbndlbmR1bmdlbiBzZWxic3QgenUgZXJzdGVsbGVuLjwvcD4KPHA+RGllIHZvbSBGb3JtQnVpbGRlciBlcnpldWd0ZW4gRm9ybXVsYXJlIGsmb3VtbDtubmVuIGluIFRlbXBsYXRlcyAKdW5kL29kZXIgU2VpdGVuIGVpbmdlZiZ1dW1sO2d0IHdlcmRlbi4gSW4gZGllIEZvcm11bGFyIGsmb3VtbDtubmVuIHZlcnNjaGllZGVuZSBBcnRlbiB2b24gRGF0ZW4gZWluZ2VnZWJlbiB3ZXJkZW4uIERpZXNlIEVpbmdhYmVuIAo8cD5Gb3JtdWxhcmZlbGRlcm4gd2VyZGVuIE5hbWVuIHp1Z2V3aWVzZW4uIERpZXNlIE5hbWVuIGlkZW50aWZpemllcmVuIElocmUgRm9ybXVsYXJmZWxkZXIsIG5pY2h0IG51ciBhdWYgZGVtIEJpbGRzY2hpcm0gYWxzIEJlemVpY2hudW5nZW4gZGllIGRlbSBCZW51dHplciBkaWVuZW4sIHNvbmRlcm4gYXVjaCBpbiBkZW4gRGF0ZW4gd2VubiBzaWUgdmVyc2NoaWNrdCB3ZXJkZW4uIERhbWl0IHdpcmQgc2ljaGVyZ2VzdGVsbHQgZGFzcyBTaWUgZGFzIHNlaGVuIHdhcyBkZXIgTnV0emVyIGVpbmdlZ2ViZW4gaGF0LiA8YnI+CkRlbiBOYW1lbiB3aWUgZWluZSBGcmFnZSB6dSBnZXN0YWx0ZW4gaXN0IGVpbmUgc2VociBoYW5kbGljaGUgQXJ0IHVuZCBXZWlzZSBkZW0gTnV0emVyIHp1IHZlcm1pdHRlbG4gd2FzIGhpZXIgdm9uIGlobSBlcndhcnRldCB3aXJkLiA8YnI+ClZpZWxlIEZlbGRlciBoYWJlbiBiZWlkZXMsIE5hbWVuIHVuZCBXZXJ0ZS4gRGllIE5hbWVuLCBkaWUgZGVtIE51dHplciBhbmdlemVpZ3Qgd2VyZGVuIHVuZCBkaWUgV2VydGUsIGRhcyBzaW5kIGRpZSBkaWUgZ2VzcGVpY2hlcnQgd2VyZGVuIHdlbm4gZGVyIE51dHplciBkYXMgRm9ybXVsYXIgYWJzY2hpY2t0LiBEaWUgV2VydGUgc2luZCB3ZWRlciB2b20gQmVudXR6ZXIgZWluc2VoYmFyIG5vY2ggaW0gSFRNTCwgc29taXQgaXN0IGVzIHNpY2hlciBzaWUgZiZ1dW1sO3IgRW1haWwtQWRyZXNzZW4gdXN3LiB6dSB2ZXJ3ZW5kZW4uIDwvcD4KPHA+RWluaWdlIEZlbGRlciBrJm91bWw7bm5lbiBtZWhyZXJlIFdlcnRlIG9kZXIgTmFtZW4vV2VydGUgUGFhcmUgaGFiZW4uIFdlbm4gU2llIHp1ZXJzdCBlaW4gc29sY2hlcyBGZWxkIGVyc3RlbGxlbiwga2FubiBlcyBtJm91bWw7Z2xpY2ggc2VpbiwgZGFzcyBuaWNodCBnZW4mdXVtbDtnZW5kIEVpbmdhYmVmZWxkZXIgdm9yaGFuZGVuIHNpbmQsIHVtIGRpZSBXZXJ0ZSBlaW56dXRyYWdlbi4gVW0gbWVociBNJm91bWw7Z2xpY2hrZWl0ZW4genUgZXJoYWx0ZW4gV2VydGUgZWluenV0cmFnZW4sIGJlbnV0emVuIFNpZSBkZW4gU2NoYWx0ZXIgYW0gdW50ZXJlbiBFbmRlIGRlciBTZWl0ZSBmJnV1bWw7ciB3ZWl0ZXJlIE9wdGlvbmVuLjwvcD4KPHA+RmVsZGVybiBrJm91bWw7bm5lbiBWYWxpZGllcnVuZ3NyZWdlbG4genVnZXdpZXNlbiB3ZXJkZW4sIHdlbGNoZSBqZSBuYWNoIEZlbGR0eXAgdW50ZXJzY2hpZWRsaWNoIHNlaW4gayZvdW1sO25uZW4uIERpZXNlIFJlZ2VsbiBoZWxmZW4gc2ljaGVyenVzdGVsbGVuIGRhc3MgZGVyIE51dHplciBnJnV1bWw7bHRpZ2UgRGF0ZW4gZWluZ2lidC4gQXUmc3psaWc7ZXJkZW0gaXN0IGVzIG0mb3VtbDtnbGljaCwgRmVsZGVyIHNlcGVyYXQgbWl0IGVpbmVtICZiZHF1bzt3aXJkIGJlbiZvdW1sO3RpZ3QmbGRxdW87IHp1IG1hcmtpZXJlbiwgZGFtaXQgd2lyZCBkZXIgTnV0emVyIHNvenVzYWdlbiAmYmRxdW87Z2V6d3VuZ2VuJmxkcXVvOyBFaW5nYWJlbiB6dSBtYWNoZW4uIDwvcD4KPHA+RmVsZGVybiBrJm91bWw7bm5lbiBhdWNoIENTUy1LbGFzc2VuIHp1Z2V3aWVzZW4gd2VyZGVuLiBFcyB3ZXJkZW4gZGllIEVpbmdhYmVmZWxkZXIgbWl0IGVpbmVtIERJViBUYWcgdW5kIGRhenVnZWgmb3VtbDtyaWdlciBDU1MtS2xhc3NlIHVtZ2ViZW47IHNvbWl0IGsmb3VtbDtubmVuIFNpZSBJaHIgRm9ybXVsYXIgc2VsYnN0IGdlc3RhbHRlbi4gVW0gZGllcyBlZmZpemllbnQgbnV0emVuIHp1IGsmb3VtbDtubmVuLCBzb2xsdGVuIGluIGRlbiBRdWVsbHRleHQgZGVzIEZvcm11bGFyZXMgZ2VoZW4gdW5kIGRhbm4gSWhyZW4gQ1NTLUNvZGUgc2NocmVpYmVuLiA8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIEVpbmdhYmVmZWxkZXIKICA8dWw+CiAgICA8bGk+VGV4dCBFaW5nYWJlZmVsZC4gRGllcyBpc3QgZGFzIFN0YW5kYXJkIEVpbmdhYmVmZWxkLiBTaWUgayZvdW1sO25uZW4gZGllIEwmYXVtbDtuZ2UgZGVyIGVpZ2VnZWJlbmVuIFplaWNoZW4gdyZhdW1sO2hsZW4gdW5kIHZlcnNjaGllZGVuZSBWYWxpZGllcnVuZ3NmdW5rdGlvbmVuIGF1ZiBkaWVzZSBGZWxkIGFud2VuZGVuLjwvbGk+CiAgICA8bGk+VGV4dGJlcmVpY2guIERpZXMgaXN0IGVpbiBncm8mc3psaWc7ZXMgZm9ybWZyZWllcyBUZXh0ZWluZ2FiZWZlbGQuPC9saT4KICAgIDxsaT5DaGVja2JveC4gRGFzIGlzdCBkaWUgU3RhbmRhcmQgQ2hlY2tib3guPC9saT4KICAgIDxsaT5DaGVja2JveCBHcnVwcGUuIERhcyBpc3QgZWluZSBTYW1tbHVuZyB2b24gQ2hlY2tib3hlbi4gRGVyIGVpbnppZ2UgVW50ZXJzY2hpZWQgYmVzdGVodCBkYXJpbiwgZGFzcyBkaWVzIGVpbmUgR3J1cHBlIHZvbiBDaGVja2JveGVuIG1pdCBlaW5lbSBOYW1lbiBpc3QuIFdlaXRlcmhpbiBrJm91bWw7bm5lbiBTaWUgZWluZW4gb2RlciBtZWhyZXJlIGFscyAmYmRxdW87d2lyZCBiZW4mb3VtbDt0aWd0JmxkcXVvOyBtYXJraWVyZW4uIFNvbWl0IGlzdCBkZXIgTnV0emVyICZiZHF1bztnZXp3dW5nZW4mbGRxdW87IGVpbmUgb2RlciBtZWhyZXJlIENoZWNrYm94ZW4gZGllc2VyIEdydXBwZSBhdXN6dXcmYXVtbDtobGVuLjwvbGk+CiAgICA8bGk+UmFkaW8gQnV0dG9uIEdydXBwZS4gRGFzIGlzdCBlaW5lIFNhbW1sdW5nIHZvbiBSYWRpbyBCdXR0b25zLiBOdXIgZWluIFJhZGlvIEJ1dHRvbiBpbiBkZXIgR3J1cHBlIGthbm4gYXVzZ2V3JmF1bWw7aGx0IHdlcmRlbi48L2xpPgogICAgPGxpPlB1bGxkb3duLiBEYXMgaXN0IGVpbiBTdGFuZGFyZCBQdWxsZG93biBNZW4mdXVtbDsuIFZvbSBLb256ZXB0IGhlciBnZXNlaGVuIGRhcyBnbGVpY2hlIHdpZSBkaWUgUmFkaW8gQnV0dG9uIEdydXBwZSwgYWJlciBiZXNzZXIgd2VubiBTaWUgdmllbGUgQXVzd2FobG0mb3VtbDtnbGljaGtlaXRlbiBoYWJlbi48L2xpPgogICAgPGxpPk1laHJmYWNoYXVzd2FobC4gRGFzIGlzdCBkYXMgTWVocmZhY2hhdXN3YWhsIEZlbGQuIFZvbSBLb256ZXB0IGhlciBnZXNlaGVuIGRhcyBnbGVpY2hlIHdpZSBkaWUgUmFkaW8gQnV0dG9uIEdydXBwZSwgYWJlciBiZXNzZXIgd2VubiBTaWUgdmllbGUgQXVzd2FobG0mb3VtbDtnbGljaGtlaXRlbiBoYWJlbiB1bmQgZGllIEF1c3dhaGwgYWJlciBiZWdyZW56ZW4gbSZvdW1sO2NodGVuLjwvbGk+CgogICAgPGxpPkJ1bmRlc3N0YWF0LiBEaWVzIGlzdCBlaW5lIFB1bGxkb3duIExpc3RlIG1pdCBzJmF1bWw7bXRsaWNoZW4gQnVuZGVzc3RhYXRlbiBkZXIgVVNBLjwvbGk+CjxsaT5MJmF1bWw7bmRlci4gRGllcyBpc3QgZWluZSBQdWxsZG93biBMaXN0ZSBzJmF1bWw7bXRsaWNoZXIgc2ljaCBhdWYgZGVyIEVyZGUgYmVmaW5kbGljaGVuIEwmYXVtbDtuZGVyLjwvbGk+CjxsaT5EYXR1bXNhdXN3YWhsLiBEaWVzIGlzdCBlaW5lIGRyZWlmYWNoIFB1bGxkb3duIExpc3RlLCBkaWUgZGVtIE51dHplciBkaWUgTSZvdW1sO2dsaWNoa2VpdCBnaWJ0IGVpbiBEYXR1bSBhdXp1dyZhdW1sO2hsZW4uPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZXppZmlzY2hlIEVpbmdhYmVmZWxkZXIKICA8dWw+CiAgICA8bGk+RW1haWwgVm9uICBBZHJlc3MgRmVsZC4gSGllciBrJm91bWw7bm5lbiBTaWUgSWhyZSBFbWFpbC1BZHJlc3NlIGVpbmdlYmVuLiBEaWVzZSB3aXJkIGluIGRlciBnZW5lcmllcnRlbiBFbWFpbCBpbSBGZWxkIFZvbiAoTWFpbGFkcmVzc2UpOiBhbmdlZ2ViZW4uPC9saT4KICAgIDxsaT5FbWFpbCBWb24gTmFtZSBGZWxkLiBIaWVyIGsmb3VtbDtubmVuIFNpZSBJaHJlbiBOYW1lbiBlaW5nZWJlbi4gRGllc2Ugd2lyZCBpbiBkZXIgZ2VuZXJpZXJ0ZW4gRW1haWwgaW0gRmVsZCBOYW1lIChBYnNlbmRlcm5hbWUpOiBhbmdlZ2ViZW4uPC9saT4KCjwvdWw+PC9saT4KCjxsaT5Lb250cm9sbGZlbGRlciBmJnV1bWw7ciBkaWUgQW56ZWlnZTx1bD4KPGxpPlNlaXRlbnVtYnJ1Y2ggLSBkYXMgZXJtJm91bWw7Z2xpY2h0IElobmVuIGRpZSBBdWZ0ZWlsdW5nIElocmVzIEZlZWRiYWNrLUZvcm11bGFycyBpbiBtZWhyZXJlIFNlaXRlbi4gRGllIEVpbmdhYmVuIGplZGVyIFNlaXRlIHdlcmRlbgp1bmFiaCZhdW1sO25naWcgdm9uZWluYW5kZXIgZ2VwciZ1dW1sO2Z0LiBEYXMgaXN0IGluc2Jlc29uZGVyZSBiZWkgT25saW5lLVVtZnJhZ2VuICZhdW1sO3Umc3psaWc7ZXJzdCB2b3J0ZWlsaGFmdC48L2xpPgo8bGk+LVN0YXRpc2NoZXIgVGV4dC4gRGFtaXQgayZvdW1sO25uZW4gU2llIElocmVtIEZvcm11bGFyIGVpbmZhY2hlbiBUZXh0IGhpbnp1ZiZ1dW1sO2dlbiBvZGVyIGVzIGJlc2NocmlmdGVuLiBEaWVzIGlzdCBmJnV1bWw7ciBBdXNmJnV1bWw7bGxoaW53ZWlzZSwgSGlsZmVuIHVzdy4gc2VociBuJnV1bWw7dHpsaWNoLCBpbnNiZXNvbmRlcmUgd2VubiBTaWUgZiZ1dW1sO3IgZGllIEFuemVpZ2UgZGVzIEZvcm11bGFycyBrZWluIGFuZ2VwYXNzdGVzIFRlbXBsYXRlIHZlcndlbmRlbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybXVsYXIgJiMwMzk7SGFuZGxpbmcmIzAzOTsKICA8dWw+CiAgICA8bGk+KkVtYWlsIEVyZ2VibmlzIGJhc2llcmVuZCBhdWYgZGVtIFB1bGxkb3duLiBEaWVzIGlzdCBoaWxmcmVpY2ggZiZ1dW1sO3IgSW50ZXJuZXRzZWl0ZW4gd28gS29tbWVudGFyZSAmdXVtbDtiZXIgZGllIEFuZ2VsZWdlbmhlaXQgaW4gZGVuIEJldHJlZmYgZ2VzY2hyaWViZW4gd2VyZGVuLiB6LkIuIEJ1Z3Mgd2VyZGVuIHp1bSBFbnR3aWNrbGVyIGdlc2VuZGV0LCBNYXJrZXRpbmcgRnJhZ2VuIHp1IGVpbmVyIFBlcnNvbiwgRnJhZ2VuIHp1bSBWZXJrYXVmIHp1IGVpbmVyIGFuZGVyZW4gUGVzb24gdXN3LiBEYXMgUHVsbGRvd24gTWVuJnV1bWw7IHdpcmQgbWl0IEJldHJlZmZzIGhpbnRlcmxlZ3QgdW5kIGplZGVyIHdpcmQgenUgZWluZXIgc3BlemlmaXNjaGVuIE1haWxhZHJlc3NlIHZlcnNhbmR0LiBTaWUgZXJzdGVsbGVuIGRlbiBqZXdlaWxpZ2VuIEJldHJlZmYgd2VubiBTaWUgZWluIHNvbGNoZXMgRmVsZCBlcnN0ZWxsZW4gb2RlciBlZGl0aWVyZW4uIFdlbm4gU2llIGVpbiBzb2xjaGVzIFB1bGxkb3duIE1lbiZ1dW1sOyBiZW51dHplbiwgbXVzcyBkZXIgTnV0emVyIGVpbmUgQXVzd2FobCBkZXMgQmV0cmVmZnMgdyZhdW1sO2hsZW4gdW0gZGFzIEZvcm11bGFyIGFic2NoaWNrZW4genUgayZvdW1sO25uZW4uIERpZXNlcyBBdXN3YWhsZmVsZCBpc3QgZiZ1dW1sO3IgZGVuIE51dHplciBzaWNodGJhciBhYmVyIGRpZSBNYWlsYWRyZXNzZW4gZGllIGRhaGludGVyIHN0ZWhlbiB3ZXJkZW4gd2VkZXIgSWhtIG5vY2ggaW0gSFRNTCBhbmdlemVpZ3QuPC9saT4KCiAgICA8bGk+KkVtYWlsIEVyZ2VibmlzIGFuIEFkcmVzc2Uobikgc2VuZGVuLiBEaWVzIHNlbmRldCBkaWUgRGF0ZW4gYW4gZWluZSB2b3JoZXIgYW5nZWdlYmVuZSBNYWlsYWRyZXNzZS4gRGllIE1haWxhZHJlc3NlKG4pIGsmb3VtbDtubmVuIFNpZSBhbmdlYmVuIHdlbm4gU2llIGVpbiBzb2xjaGVzIEZlbGQgZ2VuZXJpZXJlbi4gRGFzIEZlbGQgdW5kIGRlciBOYW1lIGlzdCBmJnV1bWw7ciBkZW4gTnV0emVyIG5pY2h0IHNpY2h0YmFyLiBBdWNoIG5pY2h0IGltIFF1ZWxsdGV4dC48L2xpPgogICAgPGxpPipEYXRlbiBpbiBEYXRlbmJhbmsgc3BlaWNoZXJuLiBEaWVzIHNwZWljaGVydCBkaWUgYWJnZWdlYmVuZW4gRGF0ZW4gaW4gZWluZXIgaW50ZXJuZW4gRGF0ZW5iYW5rLiBEaWVzZSBFaW5zdGVsbHVuZyB2ZXJ3ZW5kZW4gU2llIG1laXN0ZW4gaW4gVmVyYmluZHVuZyBtaXQgZGVtIE1vZHVsIEZvcm1Ccm93c2VyLjwvbGk+CiAgICA8bGk+KlZhbGlkaWVydW5nICZ1dW1sO2JlciBkaWUgTWFpbGFkcmVzc2UuIERpZXMgaXN0IGVpbiBzZWhyIGxlaXN0dW5nc2YmYXVtbDtoaWdlcyBGZWxkLiBFcyBzdGVsbHQgZGVtIEJlbnV0emVyIGVpbiB2b3JnZWdlYmVuZXMgRWluZ2FiZWZlbGQgZiZ1dW1sO3Igc2VpbmUgTWFpbGFkcmVzc2UgenVyIFZlcmYmdXVtbDtndW5nLiBXZW5uIGRpZXNlciBkYXMgRm9ybXVsYXIgYWJzY2hpY2t0IHdpcmQgZGllICZVdW1sO2Jlcm1pdHRsdW5nIG5pY2h0IGRpcmVrdCBhdXNnZWYmdXVtbDtocnQsIHNvbmRlcm4gc2NoaWNrdCBkZW0gTnV0emVyIGVpbmUgTWFpbCBtaXQgZWluZW0gY29kaWVydGVuIExpbmsuIEVyc3Qgd2VubiBkaWVzZXIgTGluayBnZWRyJnV1bWw7Y2t0IHdpcmQgd2lyZCBkYXMgRm9ybXVsYXIgdmFsaWRpZXJ0IHVuZCBkaWUgRWluZ2FiZW4gYWJnZXNjaGlja3QuPC9saT4KICAgIDxsaT4qSW4gRGF0ZWkgU2NocmVpYmVuLiBEaWVzZSBPcHRpb24gZ3JlaWZ0IGRpZSBEYXRlbiBhYiB1bmQgc2NocmVpYnQgc2llIGluIGVpbmUgVGV4dGRhdGVpLiBTaWUgayZvdW1sO25uZW4gZGVuIE5hbWVuIHVuZCBkYXMgRGF0ZWlmb3JtYXQgYmVzdGltbWVuLiBEaWVzZSBEYXRlaWVuIHdlcmRlbiBpbiBkYXMgQXVzZ2FiZXZlcnplaWNobmlzIGRlcyBNb2R1bCBJbnN0YWxsYXRpb25zIFZlcnplaWNobmlzc2VzIGdlc2NocmllYmVuLiBWb3JyYXVzZ2VzZXR6dCBpc3QsIGRhc3MgZGVyIFNlcnZlciBkaWUgbm90d2VuZGlnZW4gU2NocmVpYnJlY2h0ZSB2ZXJnZWJlbiBoYXQuCiAgICA8L3VsPjwvbGk+PC9saT48L3VsPgoKPGgzPlRlbXBsYXRlcyBmJnV1bWw7ciBFbWFpbCB1bmQgZWluZmFjaGUgRGF0ZWllbjwvaDM+CjxwPk1hbiBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBFbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBXZW5uIFNpZSBzZWxic3Qga2VpbmUgVGVtcGxhdGVzIGVyc3RlbGxlbiB3b2xsZW4sIHdpcmQgRm9ybUJ1aWxkZXIgZGllIG5hY2ggc2VpbmVyIEVpbnNjaCZhdW1sO3R6dW5nIGJlc3RlIEwmb3VtbDtzdW5nIHZlcndlbmRlbiwgZGllIHNvIGZ1bmt0aW9uaWVydCwgd2llIFNpZSB3b2xsZW4gb2RlciBhdWNoIG5pY2h0LiBTaWUgayZvdW1sO25uZW4gamVkZXJ6ZWl0IGF1ZiAmYmRxdW87RWluIE11c3Rlci1UZW1wbGF0ZSBlcnN0ZWxsZW4mbGRxdW87IGtsaWNrZW4gdW5kIGRhbm4gZGllIEVyZ2Vibmlzc2UgYW5wYXNzZW4uPC9wPgo8cD5CZWFjaHRlbiBTaWUsIGRhc3MgbmV1IGhpbnp1Z2VmJnV1bWw7Z3RlIEZlbGRlciBuaWNodCBtZWhyIGF1dG9tYXRpc2NoIGRlbSBUZW1wbGF0ZSBoaW56dWdlZiZ1dW1sO2d0IHdlcmRlbiwgd2VubiBlcyBlaW5tYWwgZ2UmYXVtbDtuZGVydCB3dXJkZS4gQXVzIGRpZXNlbSBHcnVuZCBpc3QgZXMgZGFzIEJlc3RlLCB3ZW5uIFNpZSBlcnN0IHp1bSBTY2hsdXNzIGRhcyBUZW1wbGF0ZSBmJnV1bWw7ciBkYXMgRm9ybXVsYXIgZXJzdGVsbGVuLjwvcD4KCjxoMz5CZWthbm50ZSBQcm9ibGVtZTwvaDM+Cjx1bD4KPGxpPkVpbmlnZSBGZWxkdHlwZW4sIGRpZSBpbSBGZWVkYmFja0Zvcm0tTW9kdWwgZW50aGFsdGVuIHdhcmVuLCBzaW5kIGluIEZvcm1CdWlsZGVyIG5pY2h0IGltcGxlbWVudGllcnQuIFdlbm4gZWluIEJlZGFyZiBmJnV1bWw7ciBkaWVzZSBGZWxkZXIgdm9yaGFuZGVuIGlzdCwgd2VyZGUgaWNoIHNpZSBoaW56dWdlZiZ1dW1sO2dlbi48L2xpPgo8bGk+RGFzIEZvcm1CdWlsZGVyLU1vZHVsIGthbm4gZ2VnZW53JmF1bWw7cnRpZyBub2NoIG5pY2h0IGF1ZiBkaWUgRGF0ZW4gZGVzIEZyb250ZW5kVXNlcnMtTW9kdWxzIHp1Z3JlaWZlbi4gRGllcyBpc3QgYWJlciBnZXBsYW50LjwvbGk+CjxsaT5Gb3JtQnVpbGRlciB1bnRlcnN0JnV1bWw7dHp0IGdlZ2VudyZhdW1sO3J0aWcgbm9jaCBrZWluZSBQcmV0dHkgVVJMcywgZGllcyBzb2xsdGUgamVkb2NoIGtlaW4gUHJvYmxlbSBzZWluLCBkYSBkaWUgQXVzZ2FiZW4gQmVudXR6ZXJzZWl0ZSBzZWhyIGVpbmZhY2ggZ2VoYWx0ZW4gaXN0LjwvbGk+CjwvdWw+Cgo8aDM+RmVobGVyc3VjaGU8L2gzPgo8b2w+PGxpPiBBbHMgZXJzdGVzIHNvbGx0ZW4gU2llIHByJnV1bWw7ZmVuLCBvYiBTaWUgQ01TbXMgaW4gZWluZXIgVmVyc2lvbiA+IDEuMCB2ZXJ3ZW5kZW4uPC9saT4KPGxpPiBJbSB6d2VpdGVuIFNjaHJpdHQgc29sbHRlbiBTaWUgZGllIFByb2JsZW1lIGJlaSBkZXIgVmVyd2VuZHVuZyB2b24gV1lTSVdZRy1FZGl0b3JlbiBpbSBBYnNjaG5pdHQKIDxlbT5FaW4gRm9ybXVsYXIgZWluZXIgU2VpdGUgaGluenVmJnV1bWw7Z2VuPC9lbT4gbGVzZW4gdW5kIHZlcnN0ZWhlbi48L2xpPgo8bGk+V2VubiBTaWUgaW4gZWluZXIgdm9tIEZvcm1CdWlsZGVyIGdlbmVyaWVydGVuIEVtYWlsIGJlc3RpbW10ZSBGZWxkZXIgdmVybWlzc2VuLCAmdXVtbDtiZXJwciZ1dW1sO2ZlbiBTaWUsIG9iIGRpZSBGZWxkZXIgaW0gVGVtcGxhdGUgZW50aGFsdGVuIHNpbmQsIHVuZCBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgU2llIGRpZSBmZWhsZW5kZW4gRmVsZGVyIGF1Y2ggdGF0cyZhdW1sO2NobGljaCBkZWZpbmllcnQgaGFiZW4uIEF1Y2ggd2VubiBlcyBuaWNodCBrbGFyIGVyc2ljaHRsaWNoIHNjaGVpbnQsIGthbm4gZXMgZHVyY2hhdXMgbnVyIGVpbiBnYW56IGVpbmZhY2hlciBGZWhsZXIgc2Vpbi48L2xpPgo8bGk+IFZlcnN1Y2hlbiBTaWUsIGF1ZiBMaW5rcyB1bmQgSWNvbnMgenUga2xpY2tlbiB1bmQgYmVvYmFjaHRlbiBnZW5hdSwgd2FzIHBhc3NpZXJ0LjwvbGk+CjxsaT4gRGllIGxldHp0ZSBNJm91bWw7Z2xpY2hrZWl0IGlzdCwgbWlyIGRhcyBQcm9ibGVtIHBlciBFbWFpbCBtaXR6dXRlaWxlbiBvZGVyIG1pY2ggaW0gSVJDLUNoYXQgYW56dXNwcmVjaGVuLCBkYW1pdCB3aXIgZGFzIFByb2JsZW0gZ2VtZWluc2FtIGJlaGViZW4uPC9saT4KPC9vbD4gCjxwPkRpZXMgaXN0IGVpbmUgc2VociBmciZ1dW1sO2hlIFZlcnNpb24sIGVpbiB1bmdldGVzdGV0ZXMgQmV0YS1SZWxlYXNlLCB1bmQgc2VociB3YWhyc2NoZWlubGljaCBpc3QgZXMgZmVobGVyaGFmdC4gT2J3b2hsIGljaCBhbGxlcyBnZXRhbiBoYWJlLCB3YXMgaWNoIGtvbm50ZSwgCnVtIHNpY2hlcnp1c3RlbGxlbiwgZGFzcyBzaWNoIGtlaW5lIGdyJm91bWw7JnN6bGlnO2VyZW4gJmJkcXVvO1dhbnplbiZsZHF1bzsgZWluZ2VzY2hsaWNoZW4gaGFiZW4sIG11c3N0ZSBpY2ggdyZhdW1sO2hyZW5kIGRlcyBUZXN0ZW5zIGZlc3RzdGVsbGVuLCBkYXNzIGRhcyBQcm9ncmFtbSAKc2llYmVuIEtha2VybGFrZW4sIHp3ZWkgT2hydyZ1dW1sO3JtZXIsIGVpbmUga2xlaW5lIEZhbWlsaWUgdm9uIEJsYXR0bCZhdW1sO3VzZW4gdW5kIGVpbmUgV2FuZGVyc3RhYmhldXNjaHJlY2tlIGVudGhpZWx0LiBTaWUgZnJhJnN6bGlnO2VuIGF1Y2gKTmFjaGJhcnMgYiZvdW1sO3NlbiBrbGVpbmVuIGtsJmF1bWw7ZmZlbmRlbiBIdW5kLCB3b2YmdXVtbDtyIGljaCB1bmVuZGxpY2ggZGFua2JhciB3YXIuPC9wPgo8cD5EYXMgZmluYWxlIFJlbGVhc2Ugd2lyZCBCdWdmaXhlcywgZWluZSBEb2t1bWVudGF0aW9uIHVuZCB1bmJlZGluZ3RlIExpZWJlIGVudGhhbHRlbi48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+RGllc2VzIE1vZHVsIGJlaW5oYWx0ZXQga2VpbmVuIGtvbW1lcnppZWxsZW4gU3VwcG9ydC4gU2llIGsmb3VtbDtubmVuIGplZG9jaCAmdXVtbDtiZXIgZGllIGZvbGdlbmRlIFdlZ2UgSGlsZmUgenUgZGVtIE1vZHVsIGVyaGFsdGVuOjwvcD4KPHVsPgo8bGk+RiZ1dW1sO3IgZGllIGxldHp0ZSBWZXJzaW9uIGRpZXNlcyBNb2R1bHMsIEZBUXMsIGRlbSBWZXJzYW5kIGVpbmVzIEZlaGxlcnJlcG9ydHMgb2RlciBkZW0gS2F1ZiBrb21tZXJ6aWVsbGVuIFN1cHBvcnQgYmVzdWNoZW4gc2llIGJpdHRlIGNhbGd1eXMgSG9tZXBhZ2UgdW50ZXIgPGEgaHJlZj0iaHR0cDovL3RlY2hjb20uZHluZG5zLm9yZyI+dGVjaGNvbS5keW5kbnMub3JnPC9hPi48L2xpPgo8bGk+RWluZSB3ZWl0ZXJlIERpc2t1c3Npb24genUgZGllc2VtIE1vZHVsIGlzdCBhdWNoIGluIGRlbiBGb3JlbiB2b24gPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGU8L2E+IHp1IGZpbmRlbi48L2xpPgo8bGk+RGVyIEF1dG9yIGNhbGd1eTEwMDAsIGlzdCBoJmF1bWw7dWZpZyBpbSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4genUgZmluZGVuLjwvbGk+CjxsaT5MZXR6dGxpY2ggZXJyZWljaGVuIFNpZSBkZW4gQXV0b3IgYXVjaCAmdXVtbDtiZXIgZWluZSBkaXJla3RlIEVtYWlsLjwvbGk+ICAKPC91bD4KPHA+TmFjaCBkZXIgR1BMIHdpcmQgZGllc2UgU29mdHdhcmUgc28gdmVyJm91bWw7ZmZlbnRsaWNodCwgd2llIHNpZSBpc3QuIEJpdHRlIGxlc2VuIFNpZSBkZW4gTGl6ZW56dGV4dCBmJnV1bWw7ciBkZW4gdm9sbGVuIEhhZnR1bmdzYXVzc2NobHVzcy48L3A+CjxoMz5Db3B5cmlnaHQgdW5kIExpemVuejwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbGUgUmVjaHRlIHZvcmJlaGFsdGVuLjwvcD4KPHA+RGllc2VzIE1vZHVsIHd1cmRlIHVudGVyIGRlciA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4gdmVyJm91bWw7ZmZlbnRsaWNodC4gU2llIG0mdXVtbDtzc2VuIGRpZXNlciBMaXplbnogenVzdGltbWVuLCBiZXZvciBTaWUgZGFzIE1vZHVsIHZlcndlbmRlbi48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuODc5ODQyOTQ3LjEyOTY2NjM0NjkuMTI5NjY2MzQ2OS4xMjk2NjYzNDY5LjEnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI5NjY2MzQ2OS4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/el_GR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ86UzrfOvM65zr/Phc+BzrPPjM+CIM+Gzr/Pgc68z47OvSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ86UzrXOvSDOtM+MzrjOt866zrUgz4TPjc+Azr/PgiDOs865zrEgz4TOvyDOoM61zrTOr86/JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2F0YWxvZ2VySXRlbXNGaWVsZCddID0gJ86Vz4DOuc67zq3Ovs+EzrUgzq3Ovc6xICjOriDPgM61z4HOuc+Dz4PPjM+EzrXPgc6xKSBjYXRhbG9nZXIgzrHOvc+EzrnOus61zq/OvM61zr3OsSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLc6jzrXPhCDPgM61zrTOr8+Jzr0gz4TOrc67zr/Pgic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctzqPOtc+EIM+AzrXOtM6vz4nOvSDOsc+Bz4fOric7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ86gzrXOtM6vzr8gzrrOtc65zrzOrc69zr/PhSc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICfOms+JzrTOuc66z4zPgic7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ86az4nOtM65zrrPjM+CICjOvs6xzr3OrCDOs865zrEgzrXPgM6xzrvOrs64zrXPhc+DzrcpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ86gzrXOtM6vzr8gzrrOtc65zrzOrc69zr/PhSAozqDOv867zrvOsc+AzrvPjCknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnzqDOtc+BzrnOv8+Hzq4gzrrOtc65zrzOrc69zr/PhSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnzprOv8+FzrzPgM6vJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ86gzrXOtM6vzr8gzrXOu86tzrPPh86/z4UnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICfOn868zqzOtM6xIM+AzrXOtM6vzr/OvSDOtc67zq3Os8+Hzr/PhSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICfOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+CIM+Azq/Ovc6xzrrOsc+CJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICfOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+CIM+Azq/Ovc6xzrrOsc+CIM6Iz4TOv8+Fz4InOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnzqDOv867z4XOtc+AzrnOu86/zrPOric7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICfOlc+AzrnOu86/zrPOrc6xz4Igz4DOv867zrnPhM61zq/Osc+CICBVLlMnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnzpXPgM65zrvOv86zzq3Osc+CICDOtc+AzrHPgc+Hzq/Osc+CIM6azrHOvc6xzrTOrCc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ86Vz4DOuc67zr/Os86tzrHPgiDOp8+Oz4HOsc+CJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnzpXPgM65zrvOv86zzq3Osc+CIM63zrzOtc+Bzr/OvM63zr3Or86xz4InOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICfOlc+AzrnOu86/zrPOrc6xz4Igzo/Pgc6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICfOn868zqzOtM6xIM+BzqzOtM65zr/Otc+AzrnOu86/zrPOrc+Jzr0nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKiDOkc+Azr/Pg8+Ez4zOu863IM68zrUgRW1haWwgzrPOuc6xIM+EzrEgzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xIM+Azr/PhSDOss6xz4POr862zrXPhM6xzrkgz4PPhM63zr0gzrXPgM65zrvOv86zzq4gzpHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr/PhSDPgM6vzr3Osc66zrEgKFB1bGxkb3duKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKs6Rz4DOv864zq7Ous61z4XPg863IM+DzrUgzrHPgc+HzrXOr86/IM6zzrnOsSDPhM6xIM6xz4DOv8+EzrXOu86tz4POvM6xz4TOsSDPgM6/z4UgzrLOsc+Dzq/Ots61z4TOsc65IM+Dz4TOt869IM61z4DOuc67zr/Os86uIM6Rzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/z4Ugz4DOr869zrHOus6xIChQdWxsZG93biknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKs6Rz4DOv864zq7Ous61z4XPg863IM+DzrUgzrHPgc+HzrXOr86/KM6xKSDPgM6/z4UgzrLOsc+Dzq/Ots61z4TOtSDPg861IM+Azr/Ou867zrHPgM67zq3PgiDOtc+AzrnOu86/zrPOrc+CJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJyrOkc69zrHOus6xz4TOtc+NzrjOt869z4POtyDPg861IM+DzrXOu86vzrTOsSwgz4DOv8+FIM6yzrHPg86vzrbOtc+EzrHOuSDPg8+EzrfOvSDOtc+AzrnOu86/zrPOriDOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+FIM+Azq/Ovc6xzrrOsSAoUHVsbGRvd24pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJyrOkc+Azr/Pg8+Ez4zOu863IM68zrUgRW1haWwgz4PPhM63zr0gzrTOuc61z43OuM+Fzr3Pg863KM61zrnPgiknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKs6Vz4DOsc67zq7OuM61z4XPg863IM68zq3Pg8+JIEVtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqzpHPgM6/z4PPhM6/zrvOriDOsc69z4TOuc6zz4HOrM+Gzr/PhSDPh8+BzrfPg865zrzOv8+Azr/Ouc+Ozr3PhM6xz4Igz4TOvyBFbWFpbCDOsc+Azr8gz4TOvyDPgM61zrTOr86/ICJGcm9tIEFkZHJlc3MiLic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJyrOlc6zzrPPgc6xz4bOtyDPg861ICDOkc+AzrvPjCDOsc+Bz4fOtc6vzr8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKs6Rz4DOv864zq7Ous61z4XPg863IM+DzrUgzrLOrM+DzrcgzrTOtc60zr/OvM6tzr3Pic69JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJyrOkc+Azr/OuM6uzrrOtc+Fz4POtyDOkc+Azr/PhM61zrvOtc+DzrzOrM+Ez4nOvSDOsc+Az4wgz4TOt869IM+AzrHOu86xzrnPjM+EzrXPgc63IM6tzrrOtM6/z4POtyBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqzprOu86uz4POtyDOvM65zrHPgiDOtc+EzrnOus6tz4TOsc+CIM+Hz4HOt8+Dz4TOriDOvM6xzrbOryDOvM61IM+EzrEgzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqzpHPgM6/z4PPhM6/zrvOriDPg861IM68zrnOsSDOtc69zq3Pgc6zzrXOuc6xIM+EzrfPgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKs6Rz4DOv8+Dz4TOv867zq4gRW1haWwgz4POtSDOvM65zrEgzrrOsc64zr/Pgc65zrbPjM68zrXOvc63IM6xz4DPjCDPhM6/zr0gz4fPgc63z4PPhM6uIM60zrnOtc+NzrjPhc69z4POtyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqzpHPgM6/z4PPhM6/zrvOriBFbWFpbCDPg8+Ezr/OvSDOtM65zrHPh861zrnPgc65z4PPhM6uIM+Ezr/PhSBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy3Okc67zrvOsc6zzq4gz4POtc67zq/OtM6xz4InOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICfOnM61z4TOsc+Gz4zPgc+Ez4nPg863IM6Rz4HPh861zq/Ov8+FJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr8gRW1haWwgz4TOv8+FIM+AzrXOtM6vzr/PhSAiRnJvbSBBZGRyZXNzIiAnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ86VzrzPhs6szr3Ouc+Dzrcgz4PPhM6/IEVtYWlsIM+Ezr/PhSDPgM61zrTOr86/z4UgICJGcm9tIEFkZHJlc3MgQWdhaW4iJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr8gRW1haWwgz4TOv8+FIM+AzrXOtM6vzr/PhSAgIkZyb20gTmFtZSIgJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr8gRW1haWwgz4TOv8+FIM+AzrXOtM6vzr/PhSAgIlN1YmplY3QiJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLc6jz4TOsc+EzrnOus+MIM66zrXOr868zrXOvc6/JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLc6jz4TOsc+EzrnOus+Mz4Igz4XPgM61z4HPg8+Nzr3OtM61z4POvM6/z4InOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICfPhc+AzrXPgc+Dz43Ovc60zrXPg868zr/PgiAozpXOuc+DzrHOs8+JzrPOriDOsc+Azr8gz4fPgc6uz4PPhM63KSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLc6az4HPhc+Gz4wgz4DOtc60zq/Ovyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctzqXPgM6/zrvOv86zzrnOts+MzrzOtc69zr8gz4DOtc60zq/Ovyc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy3OnM6/zr3Osc60zrnOus+Mz4IgzrHOus6tz4HOsc65zr/PgiAozqPPhc+BzrnOsc66z4zPgiknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctzprOu86uz4POtyDOtc+EzrnOus6tz4TOsc+CIM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ86gzrXOtM6vzr8gzrrOsc+EzrHOu8+MzrPOv8+FIM61z4TOsc65z4HOtc6vzrHPgiAnOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy3OoM61zrTOr86/IM60zrnOtc+AzrHPhs6uz4IgTW9kdWxlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ86nz4nPgc6vz4IgzpXPgM6xzrvOrs64zrXPhc+DzrcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnzpHPgc65zrjOvM63z4TOuc66z4wnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnzpHOus6tz4HOsc65zr/Pgic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICfOlM65zrXPjc64z4XOvc+DzrcgRW1haWwnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnzpHPgc65zrjOvM+Mz4Igz4TOt867zrXPhs+Ozr3Ov8+FIM6zzrnOsSBVUyc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICfOoM+Bzq3PgM61zrkgzr3OsSDOtc+AzrnOu861z4fOuM61zq8nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ86kzrHPjc+EzrnPg863IM+Dz4XOvc6uzrjOv8+Fz4Igzq3Ous+Gz4HOsc+DzrfPgiAoUmVndWxhciBFeHByZXNzaW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICfOp8+Jz4HOr8+CIM+EzrHPjc+EzrnPg863IM+Dz4XOvc6uzrjOv8+Fz4Igzq3Ous+Gz4HOsc+DzrfPgiAoUmVndWxhciBFeHByZXNzaW9uKSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnzpTOtc69IM60z4zOuM63zrrOtSDPhM65zrzOriDPg861IM+Fz4DOv8+Hz4HOtc+Jz4TOuc66z4wgz4DOtc60zq/Ovyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ86gzrHPgc6xzrrOsc67z44gzrXOuc+DzqzOs861z4TOtSDOvM65zrEgz4TOuc68zq4gzrPOuc6xICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnzqDOsc+BzrHOus6xzrvPjiDOtc65z4POrM6zzrXPhM61IM68zrnOsSDOsc+BzrnOuM68zrfPhM65zrrOriDPhM65zrzOriDOs865zrEgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICfOoM6xz4HOsc66zrHOu8+OIM61zrnPg86szrPOtc+EzrUgzrzOuc6xIM6tzrPOus+Fz4HOtyDOus6xz4TOsc+Hz47Pgc63z4POtyDOs865zrEgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ86gzrHPgc6xzrrOsc67z44gzrXOuc+DzqzOs861z4TOtSDOvM65zrEgzrHOus6tz4HOsc65zrEgzrHPgc65zrjOvM63z4TOuc66zq4gz4TOuc68zq4gzrPOuc6xICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnzqDOsc+BzrHOus6xzrvPjiDOtc65z4POrM6zzrXPhM61IM68zrnOsSDOrc6zzrrPhc+BzrcgzrTOuc61z43OuM+Fzr3Pg863IM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4UgzrPOuc6xICIlcyInOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ86XIM60zrnOtc+NzrjPhc69z4POtyDOt867zrXOus+Ez4HOv869zrnOus6/z40gz4TOsc+Hz4XOtM+Bzr/OvM61zq/Ov8+FIM60zrXOvSDPhM6xzrnPgc65zqzOts61zrkgz4PPhM63zr0gz4TOuc68zq4gz4TOv8+FICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICfOoM6xz4HOsc66zrHOu8+OIM61zrnPg86szrPOtc+EzrUgzq3Ovc6xzr0gzq3Os866z4XPgc6/IM6xz4HOuc64zrzPjCDPhM63zrvOtc+Gz47Ovc6/z4UgzrPOuc6xICIlcyInOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnzqDOsc+BzrHOus6xzrvPjiDPg8+Fzr3OtM61zrjOtc6vz4TOtSDOs865zrEgzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgzrHPhc+Ezq4gz4TOtyDPhs+Mz4HOvM6xJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyIlcyIgzrTOtc69IM+GzrHOr869zrXPhM6xzrkgzr3OsSDOtc6vzr3Osc65IM68zrnOsSDOrc6zzrrPhc+BzrcgzrTOuc61z43OuM+Fzr3Pg863IM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICfOoM6xz4HOsc66zrHOu8+OIM61zrnPg86szrPOtc+EzrUgzrzOuc6xIM+EzrnOvM6uIM+Azr/PhSDOtM61zr0gzrXOr869zrHOuSDOvM61zrPOsc67z43PhM61z4HOtyDOsc+Az4wgJXMgz4fOsc+BzrHOus+Ezq7Pgc61z4InOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnzqDOsc+BzrHOus6xzrvPjiDOtc65z4POrM6zzrXPhM61IM68zrnOsSDPhM65zrzOriDPgM6/z4UgzrXOr869zrHOuSDPhM6/z4XOu86sz4fOuc+Dz4TOv869ICVzIM+HzrHPgc6xzrrPhM6uz4HOtc+CJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnzqfOsc+BzrHOus+Ezq7Pgc6xz4Igz4DOv8+FIM64zrEgz4fPgc63z4POuc68zr/PgM6/zrnOt864zrXOryDPic+CIM60zrnOsc+Hz4nPgc65z4PPhM65zrrPjCDPg861IM6xz4DOv8+EzrXOu86tz4POvM6xz4TOsSDPgM6/z4UgzrjOsSDOtc+AzrnPg8+Ez4HOrc+Izr/Phc69IM+AzrXPgc65z4PPg8+Mz4TOtc+BzrXPgiDOsc+Az4wgzrzOr86xIM+EzrnOvM6tz4InOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ86YzrEgz4DPgc6tz4DOtc65IM69zrEgzq3Ph861z4TOtSDPhM63zr0gIiVzIiDOrM60zrXOuc6xIM6zzrnOsSDPhM63zr0gzrXOus+Ezq3Ou861z4POtyDPhM63z4Igz4PPhc6zzrrOtc66z4HOuc68zq3Ovc63z4Igz4DPgc6szr7Ot8+CLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ86jz4XOs86zzr3Pjs68zrchIM6UzrXOvSDOrc+HzrXPhM61IM61z4DOsc+BzrrOriDOtM65zrrOsc65z47OvM6xz4TOsSDOs865zrEgzr3OsSDOsc+Azr/Ous+Ezq7Pg861z4TOtSDPgM+Bz4zPg86yzrHPg863IM+DzrUgzrHPhc+Ez4wgz4TOvyDPhM68zq7OvM6xLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnzpcgz4TOsc6+zrnOvc+MzrzOt8+Dzrcgz4TPic69IM+AzrXOtM6vz4nOvSDOtc69zrfOvM61z4HPjs64zrfOus61Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICfOlyDPhs+Mz4HOvM6xIM60zrnOsc6zz4HOrM+GzrfOus61Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnzqTOvyDPgM61zrTOr86/IM60zrnOsc6zz4HOrM+GzrfOus61Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICfOlc69zrfOvM61z4HPjs64zrfOus6xzr0gzr/OuSDPgc+FzrjOvM6vz4POtc65z4IuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnzqDPgc6tz4DOtc65IM69zrEgzrXPgM65zrvOrc6+zrXPhM61IM+Ezr8gIiVzIiDOs865zrEgzr3OsSDPg8+Fzr3Otc+Hzq/Pg861z4TOtS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ86gz4HOrc+AzrXOuSDOvc6xIM66zrHOuM6/z4HOr8+DzrXPhM61IM+Ezr/Phc67zqzPh865z4PPhM6/zr0gzrzOr86xIM60zrnOtc+NzrjPhc69z4POtyDPgM+Bzr/Ov8+BzrnPg868zr/PjSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnzpXOr8+Dz4TOtSDPg86vzrPOv8+Fz4HOv8+CIM+Mz4TOuSDOuM6tzrvOtc+EzrUgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDPhM63IM+Gz4zPgc68zrEgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICfOlc6vz4PPhM61IM+Dzq/Os86/z4XPgc6/z4Igz4zPhM65IM64zq3Ou861z4TOtSDOvc6xIM60zrnOsc6zz4HOrM+IzrXPhM61IM+Ezr8gz4DOtc60zq/OvyAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnzp/OuSDPgM+Bzr/Ot86zzrzOrc69zrXPgiDOtc+AzrnOu86/zrPOrc+CIM60zrXOvSDOtc6vzr3Osc65IM60zrnOsc64zq3Pg865zrzOtc+CIM6tz4nPgiDPjM+Ezr/PhSDOvyDPhM+Nz4DOv8+CIM+AzrXOtM6vzr/PhSDOvc6xIM+Bz4XOuM68zrnPg8+EzrXOry4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICfOpM6/IM+Mzr3Ov868zrEgz4TOv8+FIM+AzrXOtM6vzr/PhSAiJXMiIM61zq/Ovc6xzrkgzq7OtM63IM+DzrUgz4fPgc6uz4POty4gzqDOsc+BzrHOus6xzrvOv8+NzrzOtSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM68zr/Ovc6xzrTOuc66zqwgzr/Ovc+MzrzOsc+EzrEgzrPOuc6xIM+EzrEgz4DOtc60zq/OsSwgzq4gIM6xz4DOtc69zrXPgc6zzr/PgM6/zrnOrs+DzrXPhM61IM+EzrEgzrzOv869zrHOtM65zrrOrCDOv869z4zOvM6xz4TOsSDPgM61zrTOr8+Jzr0gz4PPhM65z4Igz4HPhc64zrzOr8+DzrXOuc+CIM+Ezr/PhSDOtM63zrzOuc6/z4XPgc6zzr/PjSDPhs6/z4HOvM+Jzr0uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICfOpM6xIM+AzrXOtM6vzrEgz4DPgc6tz4DOtc65IM69zrEgzq3Ph86/z4XOvSDPjM69zr/OvM6xLCDOtc66z4TPjM+CIM6xzr0gzrrOsc+EzrHPgc6zzrfOuM61zq8gzrHPhc+Ezq4gzrcgzrXPgM65zrvOv86zzq4gzrHPgM+MIM+EzrnPgiDPgc+FzrjOvM6vz4POtc65z4IuJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ86Rzr3Pjs69z4XOvM6/z4InOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ86czq7Ous6/z4I6ICVzICc7CiRsYW5nWydib3hlcyddID0gJyVzIM66zr/Phc+EzrnOrCc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgzrXPgM65zrvOv86zzq3Pgic7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIM+HzrHPgc6xzrrPhM63z4HOtc+CLic7CiRsYW5nWydvcmRlciddID0gJ86jzrXOuc+BzqwnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbzrHOus6xzrjPjM+BzrnPg8+Ezr9dJzsKJGxhbmdbJ2FkZGVkJ10gPSAnz4DPgc6/z4PPhM6tzrjOt866zrUnOwokbGFuZ1sndXBkYXRlZCddID0gJ861zr3Ot868zrXPgc+OzrjOt866zrUnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnzpXPgM65zrvOv86zzq3PgiDPhM6xzr7Ouc69z4zOvM63z4POt8+CIM6zzrnOsSDPhM63zr0gzq3Ovs6/zrTOvyc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnzpXPgM65zrvOv86zzq4gzrXOvc+Mz4InOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICfOlc+AzrnOu86/zrPOriDPhM+Nz4DOv8+FJzsKJGxhbmdbJ3RvJ10gPSAnzqDPgc+Mz4InOwokbGFuZ1sneWVzJ10gPSAnzp3Osc6vJzsKJGxhbmdbJ25vJ10gPSAnzozPh865JzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICfPgM6xz4HOsc67zq7PgM+EzrXPgic7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgz4DOuc64zrHOvc6sIM6xz4HPh861zq/OsSc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIM+Az4HOv86/z4HOuc+DzrzOv86vJzsKJGxhbmdbJ3NhdmUnXSA9ICfOkc+Azr/OuM6uzrrOtc+Fz4POtyc7CiRsYW5nWydhZGQnXSA9ICfOoM+Bzr/Pg864zq7Ous63JzsKJGxhbmdbJ3VwZGF0ZSddID0gJ86Vzr3Ot868zq3Pgc+Jz4POtyc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ86Rz4DOv864zq7Ous61z4XPg863IM66zrHOuSDPg8+Fzr3Orc+HzrXOuc6xIM+EzrfPgiDOtc+BzrPOsc+Dzq/Osc+CJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnzqDOu863z4HOv8+Gzr/Pgc6vzrXPgic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICfOkc+Fz4TPjM68zrHPhM6xJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnzqbPjM+BzrzOtc+CJzsKJGxhbmdbJ2Zvcm0nXSA9ICfOps+Mz4HOvM6xICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICfOoc+FzrjOvM6vz4POtc65z4InOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ86XIM6xz4DOsc65z4TOv8+FzrzOrc69zrcgzrrOsc+EzqzPg8+EzrHPg863IM6zzrnOsSDPhM6/IM+AzrXOtM6vzr8gzrXOvc63zrzOtc+Bz47OuM63zrrOtS4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnzpzOrc6zzrnPg8+Ezr8gzpzOrc6zzrXOuM6/z4InOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICfOpM+Nz4DOv865JzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICfOlc+AzrnPhM+BzrXPgM+MzrzOtc69zr/OuSDPhM+Nz4DOv865IM6xz4HPh861zq/Pic69JzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnzqTOvyDOsc+Bz4fOtc6vzr8gzrXOr869zrHOuSDPgM6/zrvPjSDOvM61zrPOrM67zr8hIM6kzr8gzrzOrc6zzrnPg8+Ezr8gzrXPgM65z4TPgc61z4DPhM+MIM68zq3Os861zrjOv8+CIM61zq/Ovc6xzrk6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnzpHPhc+Ez4zPgiDOvyDPhM+Nz4DOv8+CIM6xz4HPh861zq/Ov8+FIM61zr3OtM6tz4fOtc+EzrHOuSDOvc6xIM68zrfOvSDPhs6/z4HPhM+JzrjOtc6vLiDOoM6xz4HOsc66zrHOu86/z43OvM61IM6yzrXOss6xzrnPic64zrXOr8+EzrUgz4zPhM65IM63ICDOus6xz4TOrM67zrfOvs63IM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhSDOtc6vzr3Osc65IM+Dz4nPg8+Ezq4uJzsKJGxhbmdbJ3VwbG9hZCddID0gJ86czrXPhM6xz4bPjM+Bz4TPic+DzrcnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ86XIM+Gz4zPgc68zrEgzrXOuc+Dzq7Ph864zrfOus61Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICfOlyDOtc65z4POsc6zz4nOs86uIM+EzrfPgiDPhs+Mz4HOvM6xz4IgzrHPgM6tz4TPhc+HzrUhISDOpc+AzqzPgc+HzrXOuSDOus6sz4DOv865zr8gz4DPgc+MzrLOu863zrzOsSDOvM61IM+Ezr8gzrHPgc+HzrXOr86/IFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIM+DzrXOuc+Bzq3Pgic7CiRsYW5nWydjb2xzJ10gPSAnJXMgz4PPhM6uzrvOtc+CJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMs+Oz4HOvyDPgc6/zrvPjM65JzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNM+Oz4HOvyDPgc6/zrvPjM65JzsKJGxhbmdbJ2hvdXInXSA9ICfOj8+BzrEnOwokbGFuZ1snbWluJ10gPSAnzpvOtc+Az4TPjCc7CiRsYW5nWydtZXJpZCddID0gJ86czrXPg863zrzOss+BzrnOvc+Mz4InOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ86jzrXOuc+Bzqw6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnzpXPhc+HzrHPgc65z4PPhM+OISDOv865IM+AzrHPgc6xz4TOt8+Bzq7Pg861zrnPgiDPg86xz4Igzq3Ph86/z4XOvSDOu863z4bOuM61zq8uJzsKJGxhbmdbJ2VkaXQnXSA9ICfOlc+AzrXOvs61z4HOs86xz4POr86xJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ86UzrnOsc6zz4HOsc+Gzq4nOwokbGFuZ1snZGF5J10gPSAnzpfOvM6tz4HOsSc7CiRsYW5nWydtb24nXSA9ICfOnM6uzr3Osc+CJzsKJGxhbmdbJ3llYXInXSA9ICfOp8+Bz4zOvc6/z4InOwokbGFuZ1snbm9uZSddID0gJyjPhM6vz4DOv8+EzrEpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyAnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICfOpM6/IE1vZHVsZSDOsc+AzrXOs866zrHPhM6xz4PPhM6szrjOt866zrUuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ86XIM6tzrrOtM6/z4POtyAgJXMgIM+Ezr/PhSBNb2R1bGUgzrXOs866zrHPhM6xz4PPhM6szrjOt866zrUuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnzqTOvyBNb2R1bGUgzrXOvc63zrzOtc+Bz47OuM63zrrOtSDPg8+EzrfOvSDOrc66zrTOv8+DzrcgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ86gzq/Pg8+JLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICfOkc+Azr/Pg8+Ezr/Ou86uIM+Gz4zPgc68zrHPgic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICfOo8+Fzr3Orc+HzrXOuc6xLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICfOlc+AzrnOu861zrPOvM6tzr3Ovyc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICfOkc+AzrXPgM65zrvOtc6zzrzOrc69zr8nOwokbGFuZ1sndGFiX21haW4nXSA9ICfOms+Fz4HOr8+Jz4InOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ86hz4XOuM68zq/Pg861zrnPgiDOtc68z4bOrM69zrnPg863z4IgzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICfOkc+Azr/Pg8+Ezr/Ou86uIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ86hz4XOuM68zq/Pg861zrnPgiDOn8+Az4TOv861zrvOrc6zz4fOv8+FJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ86gz4HOv8+Hz4nPgc63zrzOrc69zrXPgiDPgc+FzrjOvM6vz4POtc65z4InOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnzqDPgc+Mz4TPhc+Azr8gzqbPjM+BzrzOsc+CJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOsc+Azr/Pg8+Ezr/Ou86uz4InOwokbGFuZ1sndGFiX3VkdCddID0gJ86UzrnOsc+Dz43Ovc60zrXPg863IM68zrUgVURUJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+zp/OuSDOvM61z4TOsc6yzrvOt8+Ezq3PgiBTbWFydHkgzrXOr869zrHOuSDOrc6zzrrPhc+BzrXPgiDOs865zrEgz4TOvyDPgM61zrTOr86/LjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnzqDPgc6/z4POuM6uzrrOtyDOoM61z4HOuc+Dz4PPjM+EzrXPgc+Jzr0gzpXPgM65zrvOv86zz47OvSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ86UzrnOsc6zz4HOsc+Gzq4gz4TPic69IM61z4DOuc67zrXOs868zq3Ovc+Jzr0gzrXPgM65zrvOv86zz47OvSc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ86gz4HOv8+DzrjOrs66zrcgz4DOtc+BzrnPg8+Dz4zPhM61z4HOv869IENoZWNrYm94ZXMnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICfOlM65zrHOs8+BzrHPhs6uIM+Ez4nOvSDOtc+AzrnOu861zrPOvM6tzr3Pic69IENoZWNrYm94ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICfOoM+Bzr/Pg864zq7Ous63IM66zrHOuSDOrM67zrvOt8+CIM60zrnOtc+NzrjPhc69z4POt8+CJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnzpTOuc6xzrPPgc6xz4bOriDPhM+Jzr0gzrXPgM65zrvOtc6zzrzOrc69z4nOvSDOtM65zrXPhc64z43Ovc+DzrXPic69JzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ86gz4HOv8+DzrjOrc+Dz4TOtSDOus6xzrkgzqzOu867zr8gz4DPgc6/zr/Pgc65z4POvM+MJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ86UzrnOsc6zz4HOsc+Gzq4gz4TPic69IM61z4DOuc67zrXOs868zq3Ovc+Jzr0gz4DPgc6/zr/Pgc65z4POvM+Ozr0nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICfOoM6sz4HOsSDPgM6/zrvOu86sIM68zrfOvc+NzrzOsc+EzrEgzrfOu861zrrPhM+Bzr/Ovc65zrrOv8+NIM+EzrHPh8+FzrTPgc6/zrzOtc6vzr/PhSDOrc+Hzr/Phc69IM+Dz4TOsc67zrjOtc6vIM6xz4DPjCDPhM63zr0gSVAgzrTOuc61z43OuM+Fzr3Pg86uIM+DzrHPgi7OnyDOus+OzrTOuc66zrHPgiDOs865zrEgQW50aS1TcGFtIM6tz4fOtc65IM61zrzPgM6/zrTOr8+DzrXOuSDPhM63zr0gz4DOsc+BzqzOtM6/z4POty4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnzqXPgM6/z4jOr86xIM6zzrnOsSBzcGFtIM6xz4DPjCDPhM63zr0gSVAgICVzICzOtyDOv8+Azr/Or86xIM61zq/Ovc6xzrkgz4DOu86tz4nOvSDOvM+AzrvOv866zrHPgc65z4POvM6tzr3Oty4nOwokbGFuZ1sncmVvcmRlciddID0gJ86Rzr3Osc60zrnOrM+EzrHOvs63IM+AzrXOtM6vz4nOvSc7CiRsYW5nWydjYW5jZWwnXSA9ICfOkc66z43Pgc+Jz4POtyc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICfOpM65zrzOrjogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ86gzrHPgc6xzrrOrM+Ez4kgzrXOr869zrHOuSDOvM65zrEgzrvOr8+Dz4TOsSDOvM61IM+EzrEgz4fOsc+BzrHOus+EzrfPgc65z4PPhM65zrrOrCDPgM6/z4UgzrTOuc6xz4TOr864zrXOvc+EzrHOuSDOsc+Az4wgz4TOvyAgbW9kdWxlIENhdGFsb2dlci48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4KPGJyLz4KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICJyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUiPGJyLz4KPGJyLz4KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAibXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzIjxici8+Cjxici8+CjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+Cjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ86czrnOsSDOus6xzr3Ov869zrnOus6uIM6tzrrPhs+BzrHPg863IChyZWd1bGFyIGV4cHJlc3Npb24pIM+Azr/PhSDOuM6xIM61z4DOuc+Ez4HOrc+IzrXOuSDPhM6/IM+GzrnOu8+Ez4HOrM+BzrnPg868zrEgz4TPic69IM6xzr3PhM65zrrOtc6vzrzOtc69z4nOvSBjYXRhbG9nZXIgzrrOsc+Ezqwgz4zOvc6/zrzOsSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ86kzr8gz43PiM6/z4Igz4TOv8+FIM+AzrXOtM6vzr/PhSBtdWx0aXNlbGVjdCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnzprOsc69zr/Ovc65zrrOriDOrc66z4bPgc6xz4POtyAoUmVndWxhciBFeHByZXNzaW9uKSDOs865zrEgzozOvc6/zrzOsSDOoM61zrTOr86/z4UgQ2F0YWxvZ2VyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ86Oz4jOv8+CIM+AzrXOtM6vzr/PhSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICfOms6xz4TOrM67zr/Os86/z4Igz4DPgc6/zr/Pgc65z4POvM6/z40gzrPOuc6xIM+EzrEgzrHPgc+HzrXOr86xIM61zr7PjM60zr/PhSc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ86Vz4TOuc66zq3PhM6xIM66zrHOuM6/z4HOuc62z4zOvM61zr3OtyDOsc+Az4wgz4TOv869IM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnzqPOtc67zq/OtM6xIM6zzrnOsSDOvc6xIM61z4DOuc+Dz4TPgc6tz4jOtc+EzrUgzrzOtSDPg8+Fzr3OtM6tz4POvM6/z4XPgiDPg861IM68zrXPhM6xz4bOv8+Bz4TPjs+DzrXOuc+CJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnzqXPgM6/zrLOu86uzrjOt866zrUgZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ86azrHPhM63zrPOv8+Bzq/Otc+CIM68zrXPhM6xz4bOv8+Bz4TPjs+DzrXPic69JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnzpHPgM6/z4PPhM6/zrvOriDOsc+Fz4TOv8+NIM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhSDPg8+Ezr8gdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnzqXPgM+MzrzOvc63zrzOsSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ86czq3Os865z4PPhM6/IM6czq7Ous6/z4InOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICfOlc+EzrnOus6tz4TOsSBDaGVja2JveCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ86Vz4TOuc66zq3PhM6xIFJhZGlvIEJ1dHRvbic7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnzqTOuc68zq4gz4zPhM6xzr0gzrXPgM65zrvOtc6zzrXOryc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICfOpM65zrzOriDOtc6szr0gzrTOtc69IM6tz4fOtc65IM61z4DOuc67zrXOs861zq8nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ86bzrXPgM+Ezr/OvM6tz4HOtc65zrXPgiDOv868zqzOtM6xz4IgQ2hlY2tib3gnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnzpTOuc6xzrPPgc6xz4bOrj8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnIs6Vz4DOuc67zr/Os86uIM61zr3PjM+CIiDOms61zq/OvM61zr3Ovyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICfOlc+AzrnOu86/zrPOriDPhM65zrzOrs+CJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ86VzrzPhs6xzr3Ouc62z4zOvM61zr3OvyDOjM69zr/OvM6xIM61z4DOuc67zr/Os86uz4InOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICfOmM6tzrzOsSDOtc+AzrnOu86/zrPOrs+CJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICfOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc63IM61z4DOuc67zr/Os86uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnzqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3OtyDOtc+AzrnOu86/zrPOric7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ86gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zrcgzrXPgM65zrvOv86zzq4nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICfOjM69zr/OvM6xIM6Vz4DOuc67zr/Os86uz4InOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnzqTOuc68zq4gz4XPgM6/zrLOu86uzrjOt866zrUnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ86Vz4DOuc67zr/Os86tz4IgzrHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr/PhSDPgM6vzr3Osc66zrEgKFB1bGxkb3duKSc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnzpXPgM65zrvOv86zzq3PgiDPgM6/zrvPhc61z4DOuc67zr/Os86uz4IgKE11bHRpc2VsZWN0KSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnzpTOuc61z43OuM+Fzr3Pg863IEVtYWlsIM+Az4HOv86/z4HOuc+DzrzOv8+NJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnzozOvc6/zrzOsSDOsc+Bz4fOtc6vzr/PhSDPgM+Bzr/Ov8+BzrnPg868zr/PjSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcizpHPgM+MIM+Mzr3Ov868zrEiICDOs865zrEgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ86nz4HOt8+DzrnOvM6/z4DOv865zq7Pg8+EzrUgz4fOsc67zrHPgc6uIM61z4DOuc66z43Pgc+Jz4POtyBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICfOp8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM+HzrHOu86xz4HOriDOtc+AzrnOus+Nz4HPic+DzrcgZW1haWwgKGUuZy4sIM61z4DOrc+Ez4HOtc+IzrUgInhAeSIgzrHOvc+Ezq8gzrPOuc6xIM+Ezr8gz4PPhc69zq7OuM+Jz4IgzrHPgM6xzrnPhM6/z43OvM61zr3OvyAieEB5LnRsZCIpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyLOkc+Az4wgzrTOuc61z43OuM+Fzr3Pg863IiDOs865zrEgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICfOms+JzrTOuc66zr/PgM6/zq/Ot8+Dzrcgz4fOsc+BzrHOus+Ezq7Pgc+Jzr0gRW1haWwnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ86bzrXPgM+Ezr/OvM6tz4HOtc65zrXPgiBFbWFpbGVyIM6yzrHPg865zrbPjM68zrXOvc6/IM+DzrUgzrHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr8gz4DOr869zrHOus6xIChQdWxsZG93biknOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnzozOvc6/zrzOsSDOsc+Bz4fOtc6vzr/PhSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnzpjOrc68zrEgRW1haWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnzozOvc6/zrzOsSDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICfOms6xz4TOrM+Dz4TOsc+Dzrcgz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnzojPhM6/zrnOvM6/zrkgzrPOuc6xIM61zrPOus6xz4TOrM+Dz4TOsc+DzrcnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ86UzrXOvSDOtc6vzr3Osc65IM6tz4TOv865zrzOvyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnzqPOtc67zq/OtM6xIM6xzr3Osc66zrHPhM61z43OuM+Fzr3Pg863z4IgzrzOtc+Ezqwgz4TOt869IM6xz4DOv8+Dz4TOv867zq4gz4TOt8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnzqDOsc+BzrHOus6xzrvOtc6vz4POuM61IM69zrEgz4DPgc6/z4POuM6tz4POtc+EzrUgzq3Ovc6xIM+AzrXOtM6vzr8gz4PPhM63IM+Gz4zPgc68zrEgzrPOuc6xIM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOt864zrXOryDPg8+Ezr/OvSDOtc67zq3Os8+Hzr8gz4TOv869IM60zrXOtM6/zrzOrc69zr/OvSDPhM6/z4Ugz4fPgc6uz4PPhM63LiDOnM+Azr/Pgc61zq/PhM61IM69zrEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICfPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgzrHPhc+Ezq7OvSDPhM63IM+Dz4XOvc+Ez4zOvM61z4XPg863JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICfOqM61z4XOtM+Ozr3Phc68zr8gz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnzqjOtc+FzrTPjs69z4XOvM6/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnzqDOtc60zq/OsSDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJZCDOoM61zrTOr86/z4UnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICfOlc68z4bOrM69zrnPg863IM6ozrXPhc60z47Ovc+FzrzOv8+FIM+Ez4nOvSDOoM61zrTOr8+Jzr0nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ86azqzOvc6/zr3PhM6xz4IgzrrOu865zrogz4POtSDOsc+Fz4TPjCDOuM6xIM61zrzPhs6xzr3Or862zr/Ovc+EzrHOuSDPhM6xIM+IzrXPhc60z47Ovc+FzrzOsSDPhM+Jzr0gz4DOtc60zq/Pic69IM66zrHPhM6sIM+EzrfOvSDPgM+Bzr/Pg864zq7Ous63IM6uIM+EzrfOvSDOtc+AzrXOvs61z4HOs86xz4POr86xIM68zrnOsc+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnzozOvc6/zrzOsSDPgM61zrTOr86/z4UnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICfOqM61z4XOtM+Ozr3Phc68zr8gz4DOtc60zq/Ov8+FIM66zrHOuSDPjM69zr/OvM6xIERPTSBpZCAoQ1NTIGlkKSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICfOm861z4DPhM6/zrzOrc+BzrXOuc61z4Igzr/OvM6szrTOsc+CIFJhZGlvIEJ1dHRvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnzqTPjc+Azr/PgiDPgM61zrTOr86/z4UnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ86zzrnOsSDOvc6xIM60zrfOvM65zr/Phc+BzrPOrs+DzrXPhM61IM6tzr3OsSDPgM61zrTOr86/IM+HzrXOuc+BzrnPg868zr/PjSDPhM63z4Igz4bPjM+BzrzOsc+CLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICfOoM+Bzr/Pg864zq7Ous63IM69zq3Osc+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICfOlc68z4bOsc69zrnPg863IM+EzrfPgiDOtc66zrTOv8+DzrfPgiDPhM6/z4UgIEZvcm0gQnVpbGRlcj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICfOkc+Fz4TPjCDOuM6xIM61zrzPhs6xzr3Or8+DzrXOuSDPhM6/zr0gzrHPgc65zrjOvM+MIM+EzrfPgiDOrc66zrTOv8+DzrfPgiDPhM6/z4UgRm9ybSBCdWlsZGVyICDOvM6tz4POsSDPg861IM6tzr3OsSDPg8+Hz4zOu865zr8sIM6zzrnOsSDOvc6xIM6yzr/Ot864zq7Pg861zrkgz4TOv869IM61zr3PhM6/z4DOuc+DzrzPjCDPg8+GzrHOu868zqzPhM+Jzr0nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ86gz4HOv8+DzrjOrs66zrcgzr3Orc6/z4Ugz4DOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ86azrXOr868zrXOvc6/IM66zr/Phc68z4DOuc6/z40gzrHPgM6/z4PPhM6/zrvOrs+CJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnzprOtc65zrzOtc69z4wgzrrOv8+FzrzPgM65zr/PjSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ86gz4HPjM+DzrjOtc+DzrcgzrrPjs60zrnOus6xIEphdmFzY3JpcHQgz4PPhM6/IM66zr/Phc68z4DOryDOsc+Azr/Pg8+Ezr/Ou86uz4Igz4DOv8+FIM64zrEgzrLOv863zrjOrs+DzrXOuSDPg8+EzrfOvSDPgM+Bz4zOu863z4jOtyDPgM6/zrvOu86xz4DOu8+Ozr0gz4XPgM6/zrLOv867z47OvT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ86gz4HOv8+DzrjOrs66zrcgzrrPjs60zrnOus6xIHNjcmlwdCDOsc+Dz4bOrM67zrXOuc6xz4InOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ86azrXOr868zrXOvc6/IM6zzrnOsSDPhM6/IM66zr/Phc68z4DOryAizpXPgM+MzrzOtc69zr8iICAozqfPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDPg861IM+Gz4zPgc68zrXPgiDOvM61IM+Azr/Ou867zq3PgiDPg861zrvOr860zrXPgiknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ86azrXOr868zrXOvc6/IM6zzrnOsSDPhM6/IM66zr/Phc68z4DOryAizqDPgc6/zrfOs86/z43OvM61zr3OvyIgKM6nz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgz4POtSDPhs+Mz4HOvM61z4IgzrzOtSDPgM6/zrvOu86tz4Igz4POtc67zq/OtM61z4IpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICfOlc+AzrnOus+Nz4HPic+DzrcgzqDOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnzqDOtc60zq/OvyDOs865zrEgzrXPgM65zrrPjc+Bz4nPg863JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCDOs865zrEgz4TOvyDPgM61zrTOr86/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIM6zzrnOsSDPhM63zr0gz4bPjM+BzrzOsSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgzrPOuc6xIM+Ezr8gz4DOtc60zq/Ovyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnzpXPhM65zrrOrc+EzrEgz4fPgc6uz4PPhM63IM+Azr/PhSDOus6xzrvOtc6vz4TOsc65IM+Az4HOuc69IM+EzrfOvSDOtc68z4bOrM69zrnPg863IM+EzrfPgiDOps+Mz4HOvM6xz4IgKM6azrHOu861zq/PhM61IM68z4zOvc6/IM68zrnOsSDPhs6/z4HOrCknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnzpXPhM65zrrOrc+EzrEgz4fPgc6uz4PPhM63IM+Azr/PhSDOus6xzrvOtc6vz4TOsc65IM+Az4HOuc69IM+EzrfOvSDOtc68z4bOrM69zrnPg863IM+EzrfPgiDOps+Mz4HOvM6xz4IgICjOms6xzrvOtc6vz4TOtSDPg861IM66zqzOuM61IM+DzrXOu86vzrTOsSDOsc69IM6tz4fOtc65IM+Azr/Ou867zrHPgM67zq3PgiDPg861zrvOr860zrXPgiDOtyDPhs+Mz4HOvM6xKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ZhbGlkYXRlX3VkdCddID0gJ86Vz4TOuc66zq3PhM6xIM+Hz4HOrs+Dz4TOtyDPgM6/z4UgzrrOsc67zrXOr8+EzrHOuSDPjM+EzrHOvSDOs86vzr3Otc+EzrHOuSDOtc+AzrnOus+Nz4HPic+Dzrcgz4TOt8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ8+Dz43OvM6yzr/Ou86/IM+Azr/PhSDOtc+AzrnPg863zrzOrM69zrXOuSDPhM6xIM6xz4DOsc65z4TOv8+NzrzOtc69zrEgz4DOtc60zq/OsSAoz4PPhc69zq7OuM+Jz4IgKiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICfOkc+AzrHOuc+EzrXOr8+EzrHOuSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnzpHPgM6xzrnPhM61zrnPhM6xzrkgzrzOuc6xIM6xz4DOrM69z4TOt8+DzrcgzrPOuSBcJ86xz4XPhM+MIM+Ezr8gz4DOtc60zq/Ovyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnzpHPgM+MzrrPgc+Fz4jOtyDOtc+EzrnOus6tz4TOsc+CJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ86az4HPjc6yzrXOuSDPhM6/IM+Mzr3Ov868zrEgz4TOv8+FIM+AzrXOtM6vzr/PhSDPg8+EzrfOvSDPhs+Mz4HOvM6xJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICfOo8+EzrHPhM65zrrPjCDOus61zq/OvM61zr3OvyDOs865zrEgzrXOvM+GzqzOvc65z4POtyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ86azrHOvc+Mzr3Otc+CIFJlZ2V4IM6zzrnOsSDOtc+AzrnOus+Nz4HPic+DzrcnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ86Rz4HOuc64zrzPjM+CIM6Tz4HOsc68zrzPjs69IM6zzrnOsSDPhM63zr0gzrHPgM61zrnOus+Mzr3Ouc+DzrcnOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnzpzPjM69zr8gzrPOuc6xIM6xzr3OrM6zzr3Pic+DzrcnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ86nz4nPgc6vz4Igz4DPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3Ovyc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ86jzrXOu86vzrTOsSDOsc69zrHOus6xz4TOtc+NzrjPhc69z4POt8+CIM68zrXPhM6sIM+EzrfOvSDOsc+Azr/OtM6/z4fOric7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnzpHPhc+Ezq4gzrcgzrrOsc69zr/Ovc65zrrOriDOrc66z4bPgc6xz4POtyAocmVndWxhciBleHByZXNzaW9uKSDPh8+BzrfPg865zrzOv8+Azr/Or863z4TOsc65IM68z4zOvc6/IM6xzr0gIM+Ezr8gInZhbGlkYXRpb24gdHlwZSIgIM61zq/Ovc6xzrkgz4HPhc64zrzOuc+DzrzOrc69zr8gzrPOuc6xICAgcmVnZXguIM6gzrXPgc65zrvOsc68zrLOrM69zrXOuSDOrc69zrEgzr/Ou86/zrrOu863z4HPic68zq3Ovc6/IM+DzrXPhCDOtc69z4TOv867z47OvSDPjM68zr/Ouc6/IM68zrUgz4TOt8+CICBQZXIsIM68zrUgc3RhcnQvc3RvcCBzbGFzaGVzIM66zrHOuSBmbGFncyAozqAuzqcuLCAiL2ltYWdlXFwuKFxcZCspL2kiKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXFcJ2QgJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnzpHPgM+MzrrPgc+Fz4jOtyDPg8+GzrHOu868zqzPhM+Jzr0nOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ86kz43PgM6/z4IgzrHPgM61zrnOus+Mzr3Ouc+DzrfPgiDOps+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ86Rz4DOv8+Ez4HOrc+Iz4TOsc65IM+EzrEgZGVidWcgLyDOvM63zr3Pjc68zrHPhM6xIM67zqzOuM6/z4XPgiDOsc+Az4wgz4TOvyDOvc6xIM60zr/Phc69IM6/zrkgz4fPgc6uz4PPhM61z4IuICc7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ86gz4HPjM+Ez4XPgM6/IEVtYWlsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ86czq3Os865z4PPhM6/IM68zq3Os861zrjOv8+CIM6xz4HPh861zq/Ov8+FIM6zzrnOsSDOvM61z4TOsc+Gz4zPgc+Ez4nPg863IChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnzp8gz4DOtc+BzrnOv8+BzrnPg868z4zPgiDOsc+Fz4TPjM+CIM61zq/Ovc6xzrkgzrXPgM65z4DOu86tzr/OvSDOsc+Az4wgzr/PgM6/zrnOsc60zq7PgM6/z4TOtSDPjM+BzrnOsSDOus6xzrjOv8+Bzq/Ots6/zr3PhM6xzrkgzrHPgM+MIM+EzrfOvSBwaHAgIM6uIM+EzrfOvSDPgM6xz4HOsc68zrXPhM+Bzr/PgM6/zq/Ot8+Dzrcgz4TOv8+FIM60zrnOsc66zr/OvM65z4PPhM6uLic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ86Vz4DOuc+Ez4HOtc+Az4zOvM61zr3Otc+CIM6Vz4DOtc66z4TOrM+DzrXOuc+CJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICfOm86vz4PPhM6xIM60zrnOsc+Hz4nPgc65z4POvM6tzr3OtyDOvM61IM66z47OvM6xICwgz4fPic+Bzq/PgiDPhM63zr0gz4TOtc67zrXOr86xLiAozqAuzqcuLCAianBnLGdpZixqcGVnIikuIM6kzrEgzrrOtc69zqwgzrHOs869zr/Ov8+Nzr3PhM6xzrksIM6xzr0gzrTOtc69IM+Dz4XOvM+AzrvOt8+Bz4nOuM61zq8gz4TPjM+EzrUgzrTOtc69IM+Fz4DOrM+Bz4fOv8+Fzr0gz4DOtc+BzrnOv8+BzrnPg868zr/OryDPg8+EzrnPgiDOtc+AzrXOus+EzqzPg861zrnPgiDPhM+Jzr0gzrHPgc+HzrXOr8+Jzr0uJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICfOoM61z4HOuc6/z4HOuc+DzrzOv86vIM61zrzPhs6szr3Ouc+DzrfPgj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPhM+Jzr0gz4DOtc+BzrnOv8+BzrnPg868z47OvSDOvM61zrPOrc64zr/Phc+CIM66zrHOuSDOtc+AzrXOus+EzqzPg861z4nOvSDOs865zrEgz4TOvyDPgM61zrTOr86/IM68zrXPhM6xz4bPjM+Bz4TPic+DzrfPgj8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ86gz4HPjM+Ez4XPgM6/IM6zzrnOsSDPhM63zr0gzrXOvM+GzqzOvc65z4POtyDPhM63z4Igz4bPjM+BzrzOsc+CJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnzqPOtc67zq/OtM6xICVzIM6xz4DPjCAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnzqTOvyDPgM61zrTOr86/IM60zrXOvSDOrc+HzrXOuSBGaWVsZCDPgM+Bzr/Ot86zzrzOrc69zrXPgiDOtc+AzrnOu86/zrPOrc+CJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICfOms61zq/OvM61zr3OvyDPgM6/z4UgzrXPgM65z4PPhM+Bzq3Phs61z4TOtSDOs865zrEgzrHPgM+Bzr/Pg860zrnPjM+BzrnPg8+Ezrcgz4TOuc68zq4gz4DOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICfOlc69zrXPgc6zzr/PgM6/zq/Ot8+DzrcgzrPPgc6uzrPOv8+BzrfPgiDPgM+Bzr/Pg864zq7Ous63z4Igz4DOtc60zq/Pic69IM68zrUgz4fPgc6uz4POtyDOsc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3Ov8+FIM68zrXOvc6/z40gKHB1bGxkb3duKSDOs865zrEgz4TOuc+CIM+Gz4zPgc68zrXPgj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICfOlc69zrXPgc6zzr/PgM6/zq/Ot8+DzrcgzrHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr/PhSDOvM61zr3Ov8+NIChwdWxsZG93bikgzrPPgc6uzrPOv8+BzrfPgiDPgM+Bzr/Pg864zq7Ous63z4Igz4DOtc60zq/Pic69Pyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnzpPPgc6uzrPOv8+Bzrcgz4DPgc6/z4POuM6uzrrOtyDPgM61zrTOr8+Jzr0nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICfOms6szr3Ov869z4TOsc+CIM66zrvOuc66IM+DzrUgzrHPhc+Ez4wgzrjOsSDOvM+Azr/Pgc6/z43OvSDOvc6xIM+Dz4TOsc67zr/Pjc69IM68z4zOvc6/IM6tz4nPgiAxMCDOvM63zr3Pjc68zrHPhM6xIM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4UgzrHPgM+MIM68zrnOsSDPg8+FzrPOus61zrrPgc65zrzOrc69zrcgzrTOuc61z43OuM+Fzr3Pg863IElQICjOsc69zqwgz47Pgc6xKS4gJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ86Vzr3Otc+BzrPOv8+Azr/Or863z4POtyDOsc+AzrvOrCDPh86xz4HOsc66z4TOt8+BzrnPg8+EzrnOus6sIGFudGktc3BhbTsnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ86VzrzPhs6szr3Ouc+DzrcgSURzIM+AzrXOtM6vz4nOvSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICfOms6szr3Ov869z4TOsc+CIM66zrvOuc66IM+DzrUgzrHPhc+Ez4wgzrjOsSDOtc+AzrnPhM+Bzq3PiM61zrkgz4TOt869IM61zrzPhs6szr3Ouc+Dzrcgz4TPic69IGlkcyAgz4TPic69IM+AzrXOtM6vz4nOvSDOus6xz4TOrCDPhM63zr0gz4DPgc6/z4POuM6uzrrOtyDOriDPhM63zr0gzrXPgM61zr7Otc+BzrPOsc+Dzq/OsSDOvM65zrHPgiDPhs+Mz4HOvM6xz4IgJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICfOnM61z4TOsc+Gz4zPgc+Ez4nPg863IM+Gz4zPgc68zrHPgiDOsc+Az4wgzrHPgc+HzrXOr86/IFhNTCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnzqfPgc6uz4POtyDOsc+Fz4TOv8+NIM+Ezr/PhSDOv869z4zOvM6xz4TOv8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnzpXOuc+DzrHOs8+JzrPOtyDPhs6/z4HOvM6sz4IgWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnzqfPgc6uz4POtyDOsc+Fz4TOv8+NIM+Ezr/PhSDPiM61z4XOtM+Ozr3Phc68zr/PhSDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ86UzrfOvM65zr/Phc+BzrPOr86xIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnzpHPhc+Ez4zOvM6xz4TOvyBVUkw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICfOnc6xIM+Dz4XOvM+AzrvOt8+Bz4nOuM61zq8gzrHPhc+Ez4zOvM6xz4TOsSDPhM6/ICBVUkwgzrHPgM+MIM+EzrfOvSDPg861zrvOr860zrEgz4DOv8+FIM6yz4HOr8+DzrrOtc+EzrHOuSDOtyDPhs+Mz4HOvM6xPyAozrHPhc+Ez4wgz4XPgM61z4HOuc+Dz4fPjc61zrkgz4TOt8+CIM61z4DOuc67zr/Os86uz4Igz4PPhc69zrTOrc+DzrzOv8+FIM+AzrHPgc6xzrrOrM+Ez4kpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1VSTCDOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc6/z4Ugz4PPhc69zrTOrc+DzrzOv8+FJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ86azrXOr868zrXOvc6/IM6gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr/PhSDPg8+Fzr3OtM6tz4POvM6/z4UnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ86jz43Ovc60zrXPg868zr/PgiDPg861IM+DzrXOu86vzrTOsSDPhM6/z4UgzpnPg8+Ez4zPhM6/z4DOv8+FJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ86cz4DOv8+BzrXOr8+EzrUgzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgzp/PgM+Ezr/Orc67zrXOs8+Hzr8gPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+IM6zzrnOsSDPhM63zr0gz4DPgc6/z4PPhM6xz4POr86xIM+EzrfPgiDPhs+Mz4HOvM6xz4IgzrHOvSDOrc+HzrXPhM61IM61zrPOus6xz4TOsc+Dz4TOt868zq3Ovc6/IM+Ezr8gQ2FwdGNoYSBtb2R1bGUuIM6zzrnOsSDPgM61z4HOuc+Dz4PPjM+EzrXPgc61z4Igz4DOu863z4HOv8+Gzr/Pgc6vzrXPgiAsIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPs60zrXOr8+EzrUgz4TOvyBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ86nz4HOrs+Dzrcgzp/PgM+Ezr/Otc67zq3Os8+Hzr/PhSDOs865zrEgz4TOt869IM+Az4HOv8+Dz4TOsc+Dzq/OsSDOsc+Az4wgzrrOsc66z4zOss6/z4XOu861z4IgzrHPgM6/z4PPhM6/zrvOrc+CPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnzpXPgM65zrvOtc6+z4TOtSDOs865zrEgz4DPgc6/z4PPhM6xz4POr86xIM+EzrfPgiDPhs6sz4HOvM6xz4IgzrzOtSDPhM63zr0gzrzOrc64zr/OtM6/IM+Ezr/PhSDOn8+Az4TOv861zrvOrc6zz4fOv8+FICA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiJDYXB0Y2hhIjwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ86gzrHPgc6xzrrOsc67z44gz4DOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtSDPhM6/IM66zrXOr868zrXOvc6/IM+Azr/PhSDPhs6xzq/Ovc61z4TOsc65IM+Dz4TOt869IM61zrnOus+Mzr3OsS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnzpvOsc69zrjOsc+DzrzOrc69zr8gzrrOtc6vzrzOtc69zr8gzp/PgM+Ezr/Otc67zq3Os8+Hzr/PhSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnzp8gzp/PgM+Ezr/Orc67zrXOs8+Hzr/PgiDOtM61zr0gzrXOuc69zrHOuSDPg8+Jz4PPhM+Mz4IuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ86azrXOr868zrXOvc6/IM6yzr/Ot864zrXOr86xz4IgzrPOuc6xIM+Ezr/OvSDOn8+Az4TOv86tzrvOtc6zz4fOvyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICfOnc6xIM68zrfOvSDPhc+Azr/Oss67zrfOuM6/z43OvSDOv865IM+EzrnOvM6tz4IgzrHPgM+MIM+EzrEgzrHPgM61z4DOuc67zrXOs868zq3Ovc6xIM66zr/Phc+EzrnOrCAoY2hlY2tib3gpJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnzqTPg86tzrrOsc+BzrUgz4TOvyDOsc69IM64zq3Ou861z4TOtSDOvM+Mzr3OvyDPhM6xIM61z4DOuc67zrXOs868zq3Ovc6xIM66zr/Phc+EzrnOrChjaGVja2JveCkgzr3OsSDOtc+AzrnPg8+Ez4HOrc+Izr/Phc69IM+EzrnOvM6tz4IuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICfOlc+EzrnOus6tz4TOsSBMaW5rJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICcgVVJMIM+Dz4XOvc60zq3Pg868zr/PhSDPgM+Bzr/Ov8+BzrnPg868zr/PjSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ86Vz4DOuc67zrXOs868zq3Ovc6/IM6xz4DOvyDPgM+Bzr/Otc+AzrnOu86/zrPOrj8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ86nz4HOrs+DzrcgMjTPic+Bzr/PhSDPgc6/zrvOv86zzrnOv8+NPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ86gzpwnOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ86czpwnOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICfOp8+Bzq7Pg863IHNtYXJ0eSB0YWdzIM6zzrnOsSDPhM6/IM+AzrXOtM6vzr8/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICfOo861zrnPgc6tz4IgKM+DzrfOvM61zq/Pic+Dzrc6IM6xz4XPhM+MIM68z4DOv8+BzrXOryDOvc6xIM+AzrHPgc6xzrrOsc68z4bOuM61zq8gzrHPgM+MIENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ86jz4TOrs67zrXPgiAoz4POt868zrXOr8+Jz4POtzogzrHPhc+Ez4wgzrzPgM6/z4HOtc6vIM69zrEgz4DOsc+BzrHOus6xzrzPhs64zrXOryDOsc+Az4wgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICfOm861z4DPhM6/zrzOrc+BzrXOuc61z4IgzrrPjc+BzrnOsc+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnzqDPgc6/zrXPgM65zrvOv86zzq4gz4POtSDOus61zr3PjCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICfOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc6/IM+DzrUgzrrOtc69z4wgKM6Rz4DOv861z4DOuc67zq3Ovs+EzrUgzrPOuc6xIM+EzrfOvSDPg863zrzOtc+BzrnOvc6uIM63zrzOtc+Bzr/OvM63zr3Or86xIM+Jz4Igz4DPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3OvyknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ86VzrzPhs6szr3Ouc+Dzrcgz4TOv8+FIM+IzrXPhc60z47Ovc+FzrzOv8+FIM+Ezr/PhSDPh8+Bzq7Pg8+Ezrc/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ86VzrzPhs6szr3Ouc+Dzrcgz4TOv8+FIM6/zr3PjM68zrHPhM6/z4Igz4TOv8+FIM+Hz4HOrs+Dz4TOtz8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICfOlc68z4bOrM69zrnPg863IM+Ezr/PhSDOtc+AzrnOuM6tz4TOv8+FIM+Ezr/PhSDPh8+Bzq7Pg8+Ezrc/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnzqDOtc+BzrnOv8+Bzq/Pg861zrkgz4TOv869IM66zrHPhM6szrvOv86zzr8gz4TPic69IM+Hz4HOt8+Dz4TPjs69IM+Dz4TOv8+Fz4Igz4fPgc6uz4PPhM61z4Igz4PPhc6zzrrOtc66z4HOuc68zq3Ovc63z4Igzr/OvM6szrTOsc+CJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ86az4HPhc+Az4TOv86zz4HOrM+GzrfPg863IM60zrXOtM6/zrzOrc69z4nOvSDPgM6/z4UgzrHPgM6/zrjOt866zrXPjc6/zr3PhM6xzrkgz4PPhM63IM6yzqzPg863IM60zrXOtM6/zrzOrc69z4nOvSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnzqDOuc+Dz4TOv8+Azr/Ouc63z4TOuc66z4wgKENlcnRpZmljYXRlKSDOs865zrEgz4TOt869IM66z4HPhc+Az4TOv86zz4HOrM+GzrfPg863IM+Ez4nOvSDOtM61zrTOv868zq3Ovc+Jzr0nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnzqPPhc69zrjOt868zrHPhM65zrrOriDPhs+BzqzPg863IM6uIM+EzrfOvSDOtM65zrHOtM+Bzr/OvM6uIM+Az4HOv8+CIM+Ezr8gzrHPgc+HzrXOr86/IM+Azr/PhSDPgM61z4HOuc6tz4fOtc65IM+Dz4XOvc64zrfOvM6xz4TOuc66zq4gz4bPgc6sz4POty4gKM6Rzr0gz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSBPcGVuU1NMLCDOsc+Fz4TOriDOtc6vzr3Osc65IM63IM+Dz4XOvc64zrfOvM6xz4TOuc66zq4gz4bPgc6sz4POtyDOs865zrEgz4TOvyDOuc60zrnPic+EzrnOus+MIM66zrvOtc65zrTOryknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnzqTOsc6+zrnOvc+MzrzOt8+DzrcgzrPOuc6xIM+AzrXOtM6vzrEgzrzOtSDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyBIYXNoPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ86ZzrTOuc+Jz4TOuc66z4wgzrrOu861zrnOtM6vIM6zzrnOsSDOvc6xIM+Ezr8gz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM+Dz4TOt869IM66z4HPhc+Az4TOv86zz4HOrM+GzrfPg863IM60zrXOtM6/zrzOrc69z4nOvSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ86Rz4XPhM+MIM66z4HOuc+Az4TOv86zz4HOsc+GzrXOuSDPhM6xIM+AzrXOtM6vzrEgz4TOsc6+zrnOvc+MzrzOt8+DzrfPgiwgzrHOu867zqwgzrHPhs6uzr3Otc65IM+EzrEgz4DPgc+Oz4TOsSDOs8+BzqzOvM68zrHPhM6xIM+Hz4nPgc6vz4IgzrrPgc+Fz4DPhM6/zrPPgc6sz4bOt8+DzrcuIM6az4HPhc+Az4TOv86zz4HOsc+GzrnOus6sLCDOsc+Fz4TPjCDOtM63zrzOuc6/z4XPgc6zzrXOryDOvM65zrEgzrXPhc+AzqzOuM61zrnOsSwgzrHOu867zqwgzrPOuc6xIM+Ezr/Phc+CIM+AzrXPgc65z4PPg8+Mz4TOtc+Bzr/Phc+CIM+Hz4HOrs+Dz4TOtc+CLCDOtc6vzr3Osc65IM6xz4DOv860zrXOus+Ez4wuCs6Vzq/Ovc6xzrkgz4PPhc68zrLOuc6yzrHPg868z4zPgiDOvM61z4TOsc6+z40gz4TOt8+CIM6xz4PPhs6szrvOtc65zrHPgiDOus6xzrkgz4TOtyDOtM+Fzr3Osc+Ez4zPhM63z4TOsSDOvc6xIM+EzrHOvs65zr3Ov868zq7Pg861z4TOtSDPhM65z4IgzrXOs86zz4HOsc+Gzq3Pgi4gIM6XIM+EzrHOvs65zr3PjM68zrfPg863IM6zzq/Ovc61z4TOsc65IM66zrHPhM6sIM+Az4HOv8+Dzq3Os86zzrnPg863LCDOsc67zrvOrCDOsc+BzrrOtc+EzqwgzrrOsc67zqwuIM6VzqzOvSDOtM61zr0gz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM6xz4XPhM6uzr0gz4TOt869IM61z4DOuc67zr/Os86uLCDPhM6xIM+AzrXOtM6vzrEgzrHPgM6/zrjOt866zrXPjc6/zr3PhM6xzrkgz4POtSDOus6xzrjOsc+Bz4wgzrrOtc6vzrzOtc69zr8uJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnzpcgzrrPgc+Fz4DPhM6/zrPPgc6sz4bOt8+Dzrcgz4TOt8+CIM6xz4DOv864zq7Ous61z4XPg863z4IgzrTOtc69IM61zq/Ovc6xzrkgzrTOuc6xzrjOrc+DzrnOvM63JzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnzqDOsc+BzrHOus6xzrvOtc6vz4POuM61IM69zrEgzrXOs866zrHPhM6xz4PPhM6uz4POtc+EzrUgz4TOvyBPcGVuU1NMIG1vZHVsZSDOriDPhM63zr0gIM+Fz4DOv8+Dz4TOrs+BzrnOvs63IG1jcnlwdCAgzrXOrM69ICDOtc+AzrnOuM+FzrzOtc6vz4TOtSDPhM63zr0gzrrPgc+Fz4DPhM6/zrPPgc6sz4bOt8+DzrcgzrTOtc60zr/OvM6tzr3Pic69Lic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICfOoM6xz4HOsc66zrHOu8+OICDOss61zrLOsc65z4nOuM61zq/PhM61IM+Mz4TOuSDOrc+HzrXPhM61IM+EzrfOvSDPhc+Azr/Pg8+Ezq7Pgc65zr7OtyBDVVJMIM61zr3Otc+BzrPOv8+Azr/Ouc63zrzOrc69zrcgz4PPhM63zr0gUEhQLiDOlM61zq/PhM61IGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ86nz4HOrs+Dzrcgz4PPhM63zr0gzq3Ous60zr/Pg863IE1MRSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnzpHOu867zrHOs863IM6zzrnOsSDPhM63zr0gz4XPgM6/z4PPhM63z4HOt86+zrcgz4TOv8+FIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gLiAgzpzOt869IM+Ezr8gzrXPgM65zrvOrc6+zrXPhM61IM6xzr0gzrTOtc69IM6tz4fOtc+EzrUgz4TOt869IM6tzrrOtM6/z4POtyBNTEUhLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICfOks61zrLOsc65z4nOuM61zq/PhM61IM+Mz4TOuSDOrc+HzrXPhM61IM61z4DOuc67zq3Ovs61zrkgz4TOvyDOuc60zrnPic+EzrnOus+MIM66zrvOtc65zrTOryDPgM6/z4UgzrXOr869zrHOuSDOus6xz4TOrM67zrvOt867zr8gzrPOuc6xIM+Ezr8gz4DOuc+Dz4TOv8+Azr/Ouc63z4TOuc66z4wgz4DOv8+FIM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgzrPOuc6xIM+EzrfOvSDOus+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICfOks65zrLOu865zr/OuM6uzrrOtyDOms+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POt8+CJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ86VzrvOrc6zzr7PhM61IM6xz4XPhM+MIM6zzrnOsSDOvc6xIM66z4HPhc+Az4TOv86zz4HOsc+GzrfOuM6/z43OvSDPhM6xIM6xz4DOv864zrfOus61z4XOvM6tzr3OsSDOtM61zrTOv868zq3Ovc6xLiDOkc+Fz4TPjCDOus6xzrjOuc+Dz4TOrCDOsc66z4zOvM63IM+AzrnOvyDOtM+Nz4POus6/zrvOvyAozrHOu867zqwgz4zPh865IM6xzrTPjc69zrHPhM6/KSDOs865zrEgz4TOv8+Fz4Igz4fOrM66zrXPgSAgzr3OsSDOtM6/z4XOvSDPhM65z4Igz4DOu863z4HOv8+Gzr/Pgc6vzrXPgi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICfOn865IM+AzrHPgc6xzrrOrM+Ez4kgzrXPgM65zrvOv86zzq3PgiDOuc+Dz4fPjc6/z4XOvSDOvM+Mzr3OvyDOsc69IM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgz4TOt869IM6yzrnOss67zrnOv864zq7Ous63IM66z4HPhc+Az4TOv86zz4HOrM+GzrfPg863z4IgT3BlblNTTCc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICfOks65zrLOu865zr/OuM6uzrrOtyDOms+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POt8+CJzsKJGxhbmdbJ29wZW5zc2wnXSA9ICfOks65zrLOu865zr/OuM6uzrrOtyBPcGVuU1NMJzsKJGxhbmdbJ21jcnlwdCddID0gJ86SzrnOss67zrnOv864zq7Ous63IFBIUCBtY3J5cHQnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICfOo8+Nzr3OtM61z4POtyDOvM61IM+Hz4HOrs+Dz4TOtyBGcm9udGVuZCc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ86VzrPOus6xz4TOsc+Dz4TOrs+Dz4TOtSDPhM6/IEZyb250ZW5kIG1vZHVsZSDOs865zrEgzr3OsSDPg8+Fzr3OtM6tz4POtc+EzrUgzrzOuc6xIM+Gz4zPgc68zrEgzrrOsc65IM+EzrEgzrTOtc60zr/OvM6tzr3OsSDPhM63z4Igz4POtSDOrc69zrEgz4PPhc6zzrrOtc66z4HOuc68zq3Ovc6/IM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnzpXPgM65zrvOrc6+z4TOtSDOsc+Fz4TPjCAgzrPOuc6xIM+EzrfOvSDPg8+Nzr3OtM61z4POtyDOtM61zrTOv868zq3Ovc+Jzr0gzrzPjM69zr8gzrzOtSDPhM6/z4XPgiDPg8+Fzr3OtM61zrTOtc68zq3Ovc6/z4XPgiBmcm9udC1lbmQgz4fPgc6uz4PPhM61z4IuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICfOms+Bz4XPgM+Ezr/Os8+BzqzPhs63z4POtyc7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICfOlc6+zrHOs8+JzrPOriDPhs+Mz4HOvM6xz4IgzrzOtSDOsc69zrHPhs6/z4HOrCDPg861IFVEVCDPic+CICRwYXJhbXNbXCdGT1JNXCddPyjOnM63zr0gz4TOvyDOus6szr3Otc+EzrUgzrHPhc+Ez4wsIM6xzr0gz4DPgc+MzrrOtc65z4TOsc65IM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM+EzrfOvSBwcmludF9yKCRwYXJhbXMpKSc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ86fzrvPjM66zrvOt8+Bzr8gz4TOvyBVUkwsIM69zrEgz4DOtc+BzrnOu86xzrzOss6szr3Otc65IM+Ezr8gz4DPgc+Jz4TPjM66zr/Ou867zr8gzrrOsc65IM+EzrfOvSDOtM65zrHOtM+Bzr/OvM6uICjOoC7Opy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ1VSTCDPhc+Azr/Oss6/zrvOrs+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICfOnM6tzrjOv860zr/PgiDPhs+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ86jz4XPg8+HzrXPhM65z4POvM+Mz4Igz4TOv8+FIM+AzrXOtM6vzr/PhSAgIiVzIiDPg861IM68zrXPhM6xzrLOu863z4TOriDOsc+Azr/Pg8+Ezr/Ou86uz4Igz4TOt8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsJ10gPSAnzqPPhc68z4DOu863z4HPic68zrHPhM65zrrOrCDPg8+Hz4zOu865zrEnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnzp/PhM65zrTOrs+Azr/PhM61IM+Azr/PhSDOuM6xIM+Az4HOv8+DzrHPgc+EzqzPhM6xzrkgz4PPhM63zr0gz4XPgM6/zrLOv867zq4sIM+DzrUgVVJMLc66z4nOtM65zrrOv8+Azr/Ouc63zrzOrc69zrcgzrzOv8+Bz4bOriAoLiDOoC7Opy4sICJ1c2VyID1TdGV2ZStKb2JzJmVtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICfOo8+FzrzPgM61z4HOuc67zqzOss61z4TOtSDPgM61zrTOr86/IM+Dz4TOt869IM6lz4DOv86yzr/Ou86uJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ86kzrEgzrTOtc60zr/OvM6tzr3OsSDOuM6xIM6xz4DOv864zrfOus61z43Ov869z4TOsc65IM+DzrUgzrzOv8+Bz4bOriBYTUwgz4PPhM6/IFtQUkVGSVggX21vZHVsZV9mYl9mcm9tYnJvd3Nlcl0gz4DOr869zrHOus6xIM+EzrfPgiDOss6sz4POt8+CIM60zrXOtM6/zrzOrc69z4nOvS4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnzqPPhs6szrvOvM6xISDOlc6vz4TOtSDPhM6/IM6tzr3PhM+Fz4DOvyDOtM61zr0gzq3Ph861zrkgzrrOsc68zq/OsSDPg8+Hzq3Pg863IM68zrUgZm9ybV9idWlsZGVyLCDOriDOtM61zr0gzrzPgM+Mz4HOtc+DzrUgzr3OsSDOsc+Bz4fOuc66zr/PgM6/zrnOt864zrXOryAozrvPjM6zz4kgIM+Az4HOv86yzrvOt868zqzPhM+Jzr0gzrzOvc6uzrzOt8+CPyknOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ86cz4zOvc6/IM+Dz4TOt869IM6/zrzOrM60zrEgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnzpXOvM+GzqzOvc65z4POtyDPg8+Ezr/OvSDPh8+Bzq7Pg8+Ezrc/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ86kzr8gz4DOtc60zq/OvyDPgM+Bzq3PgM61zrkgzr3OsSDOvM61zq/Ovc61zrkgzrrOtc69z4wnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnzpzOtc+EzrHOss67zrfPhM6tz4IgzrPOuc6xIM+Az4HPjM+Ez4XPgM6/JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ86UzrnOsc64zq3Pg865zrzOtc+CIM6czrXPhM6xzrLOu863z4TOrc+CJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICfOnM61z4TOsc6yzrvOt8+Ezq4gUEhQICc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ86XzrzOtc+Bzr/OvM63zr3Or86xIM6lz4DOv86yzr/Ou86uz4InOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ86fIM60zrnOsc66zr/OvM65z4PPhM6uz4Igz4POsc+CJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ86XIM60zrnOtc+NzrjPhc69z4POtyBJUCDPhM6/z4UgzrHPhM+MzrzOv8+FIM+Azr/PhSDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/Pg86xzrkgz4TOt869IM+Gz4zPgc68zrEnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIM+EzrfPgiDPg861zrvOr860zrHPgiDPgM6/z4Ugz4DOtc+BzrnOrc+HzrXOuSDPhM63zr0gz4bPjM+BzrzOsSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICfOiM66zrTOv8+DzrcgRm9ybUJ1aWxkZXInOwokbGFuZ1snaGVscF90YWInXSA9ICfOp86xz4HOsc66z4TOrs+BzrHPgiBUYWInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICfOpM6xIM+IzrXPhc60z47Ovc+FzrzOsSDPhM+Jzr0gz4DOtc60zq/Pic69IM68z4DOv8+Bzr/Pjc69IM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOt864zr/Pjc69IM61zr3Osc67zrvOsc66z4TOuc66zqwozrnOtM65zrHOr8+EzrXPgc6xIM+Hz4HOrs+DzrnOvM6/IM6xzr0gz4TOvyBTbWFydHkgzrTOtc69IM+Dz4XOvc61z4HOs86szrbOtc+EzrHOuSDOvM61IM+HzrHPgc6xzrrPhM6uz4HOtc+CIM6szrvOu86/z4XPgiDOtc66z4TPjM+CIM+Ezr/PhSBBU0NJSSAzMi0xMjYpICc7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPgo8dHI+PHRkIGNsYXNzPSJvZGQiPm5hbWU8L3RkPjx0ZCBjbGFzcz0ib2RkIj5GaWVsZCBOYW1lPC90ZD48L3RyPgo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSJvZGQiPmlkPC90ZD48dGQgY2xhc3M9Im9kZCI+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0ib2RkIj52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9Im9kZCI+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICJ7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICfOlM61zq/PhM61IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPs+Ezr8gIM61zrPPh861zrnPgc6vzrTOuc6/IM+EzrfPgiBQSFAgPC9hPiDOs865zrEgzrLOv86uzrjOtc65zrEgz4PPhM63zr0gzrzOv8+Bz4bOv8+Azr/Or863z4POriDOt868zrXPgc6/zrzOt869zq/Osc+CLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICfOnM61z4TOsc6yzrvOt8+Ezq4nOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnzpHOvc+EzrnPgM+Bzr/Pg8+Oz4DOtc+Fz4POtyDPgM61zrTOr86/z4UnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICfCqyDOoM6vz4PPiSDPg8+EzrfOvSDPhs+Mz4HOvM6xJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICfOlM63zrzOuc6/z4XPgc6zzq/OsSDOtM61zq/Os868zrHPhM6/z4Igz4DPgc6/z4TPjc+Azr/PhSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICfOlM63zrzOuc6/z4XPgc6zzq/OsSDOtM61zq/Os868zrHPhM6/z4Igz4DPgc6/z4TPjc+Azr/PhSBIVE1MJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnzpTOt868zrnOv8+Fz4HOs86vzrEgzrTOtc6vzrPOvM6xz4TOv8+CIM+Az4HOv8+Ez43PgM6/z4UgzprOtc+GzrHOu86vzrTOsc+CJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnzpTOt868zrnOv8+Fz4HOs86vzrEgzrTOtc6vzrPOvM6xz4TOv8+CIM+Az4HOv8+Ez43PgM6/z4UgzqXPgM6/z4POrc67zrnOtM6/z4UnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICfOlM63zrzOuc6/z4XPgc6zzq/OsSDOtM61zq/Os868zrHPhM6/z4IgzprOtc+GzrHOu86vzrTOsc+CJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ86/IM+HzrHPgc6xzrrPhM6uz4HOsc+CIHRhYic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnzqDPgc+Mz4TPhc+Azr8gzrPOuc6xIM68zrnOsSDOs8+BzrHOvM68zq4gz4TOv8+FIM6xz4HPh861zq/Ov8+FIM61zr7PjM60zr/PhSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ86gz4HPjM+Ez4XPgM6/IM6zzrnOsSDPhM63zr0gzrrOtc+GzrHOu86vzrTOsSDPhM6/z4UgzrHPgc+HzrXOr86/z4UgzrXOvs+MzrTOv8+FJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZm9vdGVyJ10gPSAnzqDPgc+Mz4TPhc+Azr8gzrPOuc6xIM+Ezr8gz4XPgM6/z4POrc67zrnOtM6/IM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhSDOtc6+z4zOtM6/z4UnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ86UzrnOtc+NzrjPhc69z4POtyBVUkwgzrPOuc6xIM69zrEgzrrOrM69zrXPhM61IM66zrvOuc66IM6zzrnOsSDPhM63zr0gzrXPgM6xzrvOrs64zrXPhc+Dzrcgz4TOt8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ86czrXPhM6xzrLOu863z4TOriAozpTOtc+CIM+EzrfOvSDOus6xz4HPhM6tzrvOsSDOs865zrEgzqDPgc6/z4fPic+BzrfOvM6tzr3Ov8+Fz4IgzrHOvSDOs86vzr3Otc+EzrUgz4fPgc6uz4POtyDOtc+EzrnOus61z4TPjs69IFNtYXJ0eSApJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnzpzOv8+Bz4bOriDOt868zrXPgc6/zrzOt869zq/OsSAozrLOsc+DzrnPg868zq3Ovc6/IM+Dz4TOvyA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj4gz4DPgc+Mz4TPhc+Azr8gzrfOvM61z4HOv868zrfOvc65z47OvSDPhM63z4IgUEhQPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICfOp8+Bzq7Pg863IFdZU0lXWUcgzrPOuc6xIM+EzrfPgiDPgM61z4HOuc6/z4fOtc+CIM66zrXOuc68zq3Ovc6/z4UgKM6Rz4DPjCDPhM63zr0gzrzOtc+BzrnOrCDPhM6/z4UgzrTOuc6xz4fOtc65z4HOuc+Dz4TOriDOvM+Mzr3Ovyk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnzqPPhc68z4DOtc+BzrnPhs6/z4HOrCAgzqXPgM6/zrLOv867zq7PgiDOps+Mz4HOvM6xz4InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ86Vz4TOuc66zq3PhM61z4IgzrPOuc6xIM+EzrEgzrrOv8+FzrzPgM65zqwgz4XPgM6/zrLOv867zq7Pgic7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ86kzrHOvs65zr3PjM68zrfPg863IM+AzrXOtM6vz4nOvSAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICfOkc+Fz4TOriDOtyDPg861zrvOr860zrEgz4POsc+CIM61z4DOuc+Ez4HOrc+AzrXOuSDOvc6xIM+Az4HOv8+DzrHPgc68z4zPg861z4TOtSDPhM63zr0gz4XPgM6/zrLOv867zq4gz4TOt8+CIM+Gz4zPgc68zrHPgi4gzpTOtc69IM6xz4PPh86/zrvOtc6vz4TOsc65IM68zrUgz4TOvyDPhM65IM6zzq/Ovc6/zr3PhM6xzrkgz4TOsSDPhc+Azr/Oss6xzrvOu8+MzrzOtc69zrEgzrTOtc60zr/OvM6tzr3OsS4gzpzPgM6/z4HOtc6vz4TOtSDOvc6xIM+Ezr8gzr/Pgc6vz4POtc+EzrUgzrHPhc+Ez4wgIM68zrUgz4TOt869IM+Az4HOv8+DzrjOrs66zrcgz4DOtc60zq/Pic69ICLOlM65zqzOuM61z4POt8+CIiDPg8+EzrfOvSDPhs+Mz4HOvM6xIM+DzrHPgi4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ86VzrrOus6vzr3Ot8+Dzrcgz4DOtc+BzrnPjM60zr/PhSDOtc+Ez47OvSc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ86kzq3Ou86/z4Igz4DOtc+BzrnPjM60zr/PhSDOtc+Ez47OvSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICfOoM+Bzr/Ous6xzrjOv8+BzrnPg868zq3Ovc6/IM6tz4TOv8+CJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKM6hz43OuM68zrnPg863IM+DzrUgLTEgzrPOuc6xIM69zrEgzrXOr869zrHOuSDPhM6/IM+Ez4HOrc+Hzr/OvSDOrc+Ezr/PgiDPhM6/IM+Az4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr8pJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICfOnM61z4TOrCDPhM63zr0gz4XPgM6/zrLOv867zq4gz4TOt8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICfOlc68z4bOrM69zrnPg863IM6Rz4DOrM69z4TOt8+DzrfPgic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ86XzrzOtc+Bzr/OvM63zr3Or86xIM6lz4DOv86yzr/Ou86uz4InOwokbGFuZ1sndGl0bGVfYXBwcm92YWxfZGF0ZSddID0gJ86XzrzOtc+Bzr/OvM63zr3Or86xIM6tzrPOus+BzrnPg863z4IgKM6xz4DOvyDPhM6/zr0gzrTOuc6xz4fOtc65z4HOuc+Dz4TOriknOwokbGFuZ1sndGl0bGVfdXNlcl9hcHByb3ZlZCddID0gJ86XzrzOtc+Bzr/OvM63zr3Or86xIM6tzrPOus+BzrnPg863z4IgKM6xz4DOvyDPhM6/zr0gzrHPgM6/z4PPhM6/zrvOrc6xKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICfOlc68z4bOrM69zrnPg863ICAizqDPgc6/z4TPhc+Azr/PhSDOsc+Azr/Pg8+Ezr/Ou863z4IiJzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICfOkc69zrHOus6xz4TOtc+NzrjPhc69z4POtyDPg8+EzrfOvSDPg861zrvOr860zrEgz4TOv8+FIM6Zz4PPhM+Mz4TOv8+Azr/PhSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ86Rz4XPhM+MIM+Ezr8gz4DPgc+Mz4TPhc+Azr8gzrXOvM+GzrHOvc6vzrbOtc+EzrUgz4PPhM6/zr0gz4fPgc6uz4PPhM63IM68zrXPhM6sIM+EzrfOvSDPhc+Azr/Oss6/zrvOriDPhM63z4Igz4bPjM+BzrzOsc+CLiDOkc+Fz4TPjCDPhM6/IM+Az4HPjM+Ez4XPgM6/IM60zrXOvSDOrc+HzrXOuSDOtc+Azq/PgM+Ez4nPg863IM+Dz4TOsSDOvM63zr3Pjc68zrHPhM6xIM63zrvOtc66z4TPgc6/zr3Ouc66zr/PjSDPhM6xz4fPhc60z4HOv868zrXOr86/z4Ugzq4gz4POtSDOrM67zrvOtc+CIM68zr/Pgc+Gzq3PgiDOtM65zqzOuM61z4POt8+CIM+Ez4nOvSDOtM61zrTOv868zq3Ovc6/zr0gLSDOtc+DzrXOr8+CIM6/z4HOr862zrXPhM61IM6xz4XPhM6sIM+EzrEgz4DPgc+Mz4TPhc+AzrEgKM66zrHPhM6sIM+AzrXPgc6vz4DPhM+Jz4POtykgz4PPhM63zr0gIM66zrHPgc+Ezq3Ou86xIM6zzrnOsSAiz4DPgc6/z4fPic+BzrfOvM6tzr3Ov8+Fz4IiLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnzqPOtc67zq/OtM6xIM+Az4HOv86/z4HOuc+DzrzOv8+NJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ86Rz4DOsc65z4TOv8+Nzr3PhM6xzrkgzr/Ovc+MzrzOsc+EzrEgz4DOtc60zq/Pic69JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnzpHPgM6xzrnPhM61zq/PhM6xzrkgz4TOsSDPgM61zrTOr86xIM69zrEgzq3Ph86/z4XOvSDPjM69zr/OvM6xPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ86Rz4DOsc65z4TOv8+Nzr3PhM6xzrkgzrzOv869zrHOtM65zrrOrCDOv869z4zOvM6xz4TOsSDPgM61zrTOr8+Jzr0nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ86dzrEgzrHPgM6xzrnPhM6/z43Ovc+EzrHOuSDOvM6/zr3Osc60zrnOus6sIM6/zr3PjM68zrHPhM6xIM6zzrnOsSDPhM6xIM+AzrXOtM6vzrE/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ86Rzr3Osc60zrnOrM+EzrHOvs63IM+AzrXOtM6vz4nOvSc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnzqbPjM+Bz4TPic+Dzrcgz4DPgc6/z4TPjc+Azr/PhSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICfOms61zq/OvM61zr3OvyDOus6/z4XOvM+AzrnOv8+NIM+Az4HOv8+DzrjOrs66zrfPgic7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICfOms61zq/OvM61zr3OvyDOus6/z4XOvM+AzrnOv8+NIM60zrnOsc6zz4HOsc+Gzq7Pgic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ86azrXOr868zrXOvc6/IM6yzr/Ors64zrXOuc6xz4IgzrPOuc6xIM6xz4XPhM+MIM+Ezr8gz4DOtc60zq/Ovyc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICfOlc+AzrXOvs61z4HOs86xz4POr86xIM+Ez4nOvSDOvM61z4TOsc6yzrvOt8+Ez47OvSDPic+CIM6xz4HOuc64zrzOv8+Nz4Igzq4gz4PPhc68zrLOv867zr/Pg861zrnPgc6tz4InOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICfOpM6xzr7Ouc69z4zOvM63z4POtyDOlc+AzrXOvs61z4HOs86xz4POr86xz4InOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ86VzqzOvSDPhc+AzqzPgc+Hzr/Phc69IM+AzrXPgc65z4PPg8+Mz4TOtc+BzrEgzrHPgM+MIM6tzr3OsSDPhc+Azr/Ou86/zrPOuc62z4zOvM61zr3OsSDOoM61zrTOr86xICzOvyDPhc+Azr/Ou86/zrPOuc+DzrzPjM+CIM64zrEgzrPOr869zrXOuSDOsc+Az4wgz4TOv869IM68zrnOus+Bz4zPhM61z4HOvyDOsc+BzrnOuM68z4wgz4TOsc6+zrnOvc+MzrzOt8+DzrfPgiDPgM+Bzr/PgiDPhM6/zr0gz4XPiM63zrvPjM+EzrXPgc6/IM6xz4HOuc64zrzPjCAnOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ86kzrnOvM6uIM6zzrnOsSDPhM6/zr0gz4XPgM6/zrvOv86zzrnPg868z4wnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnzpHOu8+GzrHPgc65zrjOvM63z4TOuc66z4wnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ86Rz4HOuc64zrzOt8+EzrnOus+MJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnzpHPgM61zrnOus+Mzr3Ouc+Dzrcgz4TOt8+CIM+Gz4zPgc68zrHPgiAgaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnzqTOvyBJbmxpbmUgz4POt868zrHOr869zrXOuSDOv8+EzrkgIM66zqzOuM61IM+Gz4zPgc68zrEgz4DOv8+FIM6xzrrOv867zr/Phc64zrXOryDOsc69z4TOuc66zrHOuM65z4PPhM6sIM+EzrfOvSDOtc+EzrnOus6tz4TOsSB7Rm9ybUJ1aWxkZXJ9LCDOtc69z4kgzrHOvSDOtc65zr3Osc65IG5vbi1pbmxpbmUgzrHOvc+EzrnOus6xzrjOuc+Dz4TOrCDPhM63zr0gzrXPhM65zrrOrc+EzrEge2NvbnRlbnR9IC4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ86gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zrcgz4TOuc68zq4gz4DOtc60zq/Ov8+FJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICfOms6xzrjOsc+BzrnPg868z4zPgiDPhM6/z4Ugz4DPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3Ov8+FIM68zrUgzrrOu865zro/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ86Vz4DOuc67zq3Ovs+EzrUgIM6zzrnOsSDOvc6xIM66zrHPhM6xz4HOs861zq/Pg861z4TOtSDPhM63zr0gz4DPgc6/zrXPgM65zrvOtc6zzrzOrc69zrcgz4TOuc68zq4gz4zPhM6xzr0gzr8gz4fPgc6uz4PPhM63z4IgzrrOrM69zrXOuSDOus67zrnOuiDPg861IM6xz4XPhM+MIM+Ezr8gz4DOtc60zq/Ovy4gzpTOtc60zr/OvM6tzr3Ov8+FIM+Mz4TOuSDOsc+Fz4TPjCDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq8gzrrPjs60zrnOus6xIGphdmFzY3JpcHQgIM6xzr0gzrLOrM67zrXPhM61IM68zr/Ovc6sIM61zrnPg86xzrPPic6zzrnOus6sIChcJykgz4PPhM6/IM+Az4HOv861z4DOuc67zrXOs868zq3Ovc6/IM66zrXOr868zrXOvc6/LCDOuM6xIM6xz4DOv8+Ez43Ph861zrkuIM6GzrvOu86/zrkgzrzOtyDPhs65zrvOuc66zr/OryDPgM+Bzr/PgiBqYXZhc2NyaXB0ICDPh86xz4HOsc66z4TOrs+BzrXPgiDOvM+Azr/Pgc6/z43OvSDOtc+Azq/Pg863z4Igzr3OsSDPgM+Bzr/Ous6xzrvOrc+Dzr/Phc69IM+Az4HPjM6yzrvOt868zrEuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnzpTOuc6xzrPPgc6xz4bOriDPhM6/z4UgzrHPgc+HzrXOr86/z4Ugz4DOv8+FIM68zrXPhM6xz4bOv8+Bz4TPjs64zrfOus61IM6xz4DPjCDPhM6/zr0gc2VydmVyIM68zrXPhM6xIM+EzrfOvSDOtc+AzrXOvs61z4HOs86xz4POr86xIM+Ezr/PhSAozrrOsc69z4zOvc61z4IgZW1haWwpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IM6zzrnOsSDPhM6/IM6gzrXOtM6vzr8nOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnzqPPhc69z4TOrM6+z4TOtSDPgM67zq7Pgc+Jz4Igz4TOt869IM66zrvOrs+DzrcgIEphdmFzY3JpcHQsIM+Dz4XOvM+AzrXPgc65zrvOsc68zrLOsc69zr/OvM6tzr3Ov8+FIM+Ezr/PhSDOs861zrPOv869z4zPhM6/z4Igz4DOv8+FIM64zq3Ou861z4TOtSDOvc6xIM+AzrHOs865zrTOtc+Nz4POtc+EzrUsIM6gLs6nLiwgb25jbGljaz0ieW91cmZuKCkiJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCDOps+Mz4HOvM6xz4IgzrHPgM6/z4PPhM6/zrvOrs+CJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICfOo8+Fzr3PhM6szr7PhM61IM+AzrvOrs+Bz4nPgiDPhM63zr0gzrrOu86uz4POtyAgSmF2YXNjcmlwdCwgz4PPhc68z4DOtc+BzrnOu86xzrzOss6xzr3Ov868zq3Ovc6/z4Ugz4TOv8+FIM6zzrXOs86/zr3PjM+Ezr/PgiDPgM6/z4UgzrjOrc67zrXPhM61IM69zrEgz4DOsc6zzrnOtM61z43Pg861z4TOtSwgzqAuzqcuLCBvbmNsaWNrPSJ5b3VyZm4oKSI8YnIgLz7Okc+Fz4TPjCDPgM65zrjOsc69z4zOvSDOvc6xIM68zrfOvSDOu861zrnPhM6/z4XPgc6zzrXOryDOus6xzrvOrCDOus6xzrkgzrHOvSDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM61IM+EzrfOvSDOtc+AzrnOu86/zrPOriAiz4POtc69zqzPgc65zr8gzrHPg8+GzrHOu861zq/Osc+CIiDPgM6xz4HOsc+AzqzOvc+JLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ86czrfOvSDOtc+AzrnOu86tzr7Otc+EzrUgzrzOuc6xIM+Ez4XPh86xzq/OsSDOtM65zrXPjc64z4XOvc+DzrcgzrXOtM+OIC0gz4DOv867zrvOv86vIElTUHMgIDxiciAvPiDOtM61zr0gzrjOsSDPgM6xz4HOsc60z47Pg86/z4XOvSDPhM6/IM+EzrHPh8+FzrTPgc6/zrzOtc6vzr8gzrHOvSDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM61IM6tzr3OsSDOtM65zrHPhs6/z4HOtc+EzrnOus+MIM+Mzr3Ov868zrEgz4TOv868zq3OsSDOsc+Az4wgz4TOvyDPgM+BzrHOs868zrHPhM65zrrPjDxiciAvPijOoC7Opy4sIM+Hz4HOt8+DzrnOvM6/z4DOv865zq7Pg8+EzrUgzrrOsc+Ezrkgz4POsc69IM+Mzr3Ov868zrFAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ86nz4HOtc65zqzOts61z4PPhM61IM+AzrXPgc65z4PPg86/z4TOrc+Bzr/Phc+CIM+Ez43PgM6/z4XPgiDPgM61zrTOr8+Jzr0/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICfOoM6sz4HOsSDPgM6/zrvOu86/zq8gz4PPhc6zzrrOtc+Hz4XOvM6tzr3Ov865IM+Ez43PgM6/zrkgz4DOtc60zq/Pic69PyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICfOkc67zrvOsc6zzq4gz4POtSDOoM+Bzr/Ph8+Jz4HOt868zq3Ovc6/IM+AzrXPgc65zrLOrM67zrvOv869JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnzpHOu867zrHOs86uIM+DzrUgzpHPgM67z4wgz4DOtc+BzrnOss6szrvOu86/zr0nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnzqbOrM66zrXOu86/z4IgzrPOuc6xIM+EzrfOvSDOsc+Azr/OuM6uzrrOtc+Fz4POtyDPhM6/z4UgzrHPgc+HzrXOr86/z4UnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICfOoM+Bzq3PgM61zrkgzr3OsSDOtc6vzr3Osc65IM66zrHPhM6szrvOv86zzr/PgiDPhM6/z4Ugd2ViIHNlcnZlciDPgM6/z4Ugzq3Ph861z4TOtSDPhM63IM60zrnOus6xzrnOv860zr/Pg86vzrEgzr3OsSDOs8+BzqzPiM61z4TOtS4gPGJyIC8+IM6nz4HOt8+DzrnOvM6/z4DOv865zq7Pg8+EzrUgz4TOt869IGNobW9kIDc3NywgzrHOvSDOrc+HzrXPhM61IM+Az4HOv86yzrvOrs68zrHPhM6xLiA8YnIgLz4gzpXPgM6vz4POt8+CLCDOtc67zq3Os86+z4TOtSDOs865zrEgzr3OsSDOtM61zq/PhM61IM+Mz4TOuSDOtM61zr0gzq3Ph861z4TOtSDPgM61z4HOuc6/z4HOuc+DzrzOv8+Nz4Igz4TOv8+FIM66zrHPhM6xzrvPjM6zzr/PhSDPg8+EzrfOvSBQSFAuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICfOp86xz4HOsc66z4TOrs+BzrHPgiDOsc69z4TOuc66zrHPhM6sz4PPhM6xz4POt8+CIM6zzrnOsSDPhM6/zr0gz4fOsc+BzrHOus+Ezq7Pgc6xIM6xzrvOu86xzrPOrs+CIM6zz4HOsc68zrzOrs+CKE5MKSDOus6xzrkgz4TOv869IM+HzrHPgc6xzrrPhM6uz4HOsSDOtc+AzrnPg8+Ez4HOv8+Gzq7PgihMRiknOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnzpHPhs6uz4PPhM61IM+Ezr8gzrrOtc69z4wgzrPOuc6xIM69zrEgzrXPgM65z4TPgc6tz4DOv869z4TOsc65IM6/zrkgz4fOsc+BzrHOus+Ezq7Pgc61z4IgzrHOu867zrHOs86uz4IgzrPPgc6xzrzOvM6uz4IgzrrOsc65IM61z4DOsc69zrHPhs6/z4HOrM+CIM+Dz4TOt869IM6tzr7Ov860zr8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ86dzrEgz4PPhM6tzrvOvc61z4TOtSDOsc69z4TOr86zz4HOsc+Gzr8gz4TOt8+CIM6xz4DOv8+Dz4TOv867zq7PgiDPg8+Ezr/OvSDPh8+Bzq7Pg8+Ezrc/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICfOlc+EzrnOus6tz4TOsSDOs865zrEgz4TOvyAgQ2hlY2tib3ggKM61zqzOvSDPhM6/IM61z4DOuc67zq3Ovs61zrkgzr8gz4fPgc6uz4PPhM63z4IpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnzqPPhM61zq/Ou861IM68zr/PhSDOsc69z4TOr86zz4HOsc+Gzr8gz4TOt8+CIM+Gz4zPgc68zrHPgic7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnzp3OsSDOtc+AzrnPhM+Bzq3PgM61z4TOtSDOsc69z4TOuc66zrHPhM6sz4PPhM6xz4POtyDPhM6/z4UgzpjOrc68zrHPhM6/z4I/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ86Vz4DOuc+Ez4HOrc+AzrXOuSDPhM6/IM+AzrXOtM6vzr8gIs6Yzq3OvM6xIiDPhM6/z4UgRW1haWwgzr3OsSDOsc69z4TOuc66zrHOuM65z4PPhM6sz4TOtSDOsc+Az4wgzrXPgM65zrvOv86zzq4gz4TOv8+FIM6xzr3Osc+Az4TPhc+Dz4PPjM68zrXOvc6/z4UgzrzOtc69zr/PjSAoIHB1bGxkb3duKS4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICfOnM6uzrrOv8+CIM+Az4HOv86yzr/Ou86uz4InOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICfOlc67zqzPh865z4PPhM6/IM68zq7Ous6/z4IgzrHPgM6szr3PhM63z4POt8+CJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICfOkc+Az4zOus+Bz4XPiM63IM61zrnPg8+MzrTOv8+FJzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ86dzrEgzrTOtc6vz4fOvc61zrkgz4PPjc68zrLOv867zrEgzrHOvc+Ezq8gzrPOuc6xIM6xz4DOu8+MIM66zrXOr868zrXOvc6/IM+Mz4TOsc69IM6/IM+Hz4HOrs+Dz4TOt8+CIM61zrnPg86szrPOtc65IM+Ezr/OvSDOus+JzrTOuc66z4wgz4DPgc+Mz4POss6xz4POt8+CPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ86fIM6az4nOtM65zrrPjM+CIM+Az4HPjM+DzrLOsc+DzrfPgiDOtM61zr0gz4TOsc65z4HOuc6szrbOtc65ICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnzpXPgM65z4PPhM+Bzr/Phs6uIM+Dz4TOt869IM66z43Pgc65zrEgz4POtc67zq/OtM6xIM+Ezr/PhSAgzrTOt868zrnOv8+Fz4HOs86/z40gz4bOv8+BzrzPjs69JzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnzqDOv865zrXPgiDOus61z4bOsc67zq/OtM61z4IgzrfOu861zrrPhM+Bzr/Ovc65zrrOv8+NIM+EzrHPh8+FzrTPgc6/zrzOtc6vzr/PhSDOuM6xIM+Az4HOrc+AzrXOuSDOvc6xIM6tz4fOtc65IM6xz4XPhM6uIM63IM61zq/Pg86/zrTOv8+CPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnzpzOt869IM6xz4DOv860zq3Ph861z4PPhM61IM+Ezr8gzrrOtc69z4wsIM+Jz4Igzq3Os866z4XPgc63IM6xz4DOrM69z4TOt8+DzrcnOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZF9sb25nJ10gPSAnzpXOrM69IM6tzr3OsSDPgM61zrTOr86/IM6xz4DOsc65z4TOtc6vz4TOsc65LCDPhM+Mz4TOtSDOvyDOrc67zrXOs8+Hzr/PgiDOuM6xIM6xz4DOsc65z4TOrs+DzrXOuSDPjM+Ezrkgzr8gz4fPgc6uz4PPhM63z4IgzrjOsSDOtM+Oz4POtc65IM68zrXPgc65zrrOv8+Nz4IgzrHOu8+GzrHPgc65zrjOvM63z4TOuc66zr/Pjc+CIM+HzrHPgc6xzrrPhM6uz4HOtc+CIM66zrHOuSDPjM+HzrkgzrrOtc69zqwnOwokbGFuZ1snZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJ86kzr8gQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlIM60zrXOvSDOtc6vzr3Osc65IM60zrnOsc64zq3Pg865zrzOvyEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnzqDOv8+Ezq0nOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnzpTPjs+Dz4TOtSDPg8+Ezr/OvSDPh8+Bzq7Pg8+EzrcgzrXPgM65zrvOv86zzq4gKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnzqDOrM69z4TOsSc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJ86UzrnOtc+NzrjPhc69z4POtyBlbWFpbCAizpHPgM+MIiAnOwokbGFuZ1snb3B0aW9uX3JlcGx5J10gPSAnzpTOuc61z43OuM+Fzr3Pg863IGVtYWlsICLOkc+AzqzOvc+EzrfPg863Lc6jzrUiJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnzpTOuc61z43OuM+Fzr3Pg863IGVtYWlsIM66zrHOuSDPg8+EzrEgzrTPhc6/ICLOkc+Az4wiIM66zrHOuSAizpHPgM6szr3PhM63z4POty3Oo861Iic7CiRsYW5nWydvcHRpb25fZHJvcGRvd24nXSA9ICfOkc69zrHPgM+Ez4XPg8+Dz4zOvM61zr3OvyDOvM61zr3Ov8+NIChEcm9wZG93biknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnzpXPgM65zrvOv86zzq4gzrvOr8+Dz4TOsc+CICjOvM6/zr3OriknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICfOlc+AzrnOu86/zrPOriDOu86vz4PPhM6xz4IgKM+Azr/Ou867zrHPgM67zq4pJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW8gR3JvdXAgJzsKJGxhbmdbJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZSddID0gJ86jzrfOvM61zq/Pic+Dzrc6IM6XIM6tzr7Ov860zr/PgiDOuM6xIM61zq/Ovc6xzrkgz4XPgM+MIM+EzrcgzrzOv8+Bz4bOriA8YnIvPiAiz4TOvyDPjM69zr/OvM6xIM+EzrfPgiDOtc+EzrHOuc+BzrXOr86xz4IiPT4iz4TOuc68zq4iJzsKJGxhbmdbJ3RpdGxlX3BpY2tfY2F0ZWdvcmllcyddID0gJ86Vz4DOuc67zq3Ovs+EzrUgzrrOsc+EzrfOs86/z4HOr86xICjPgM6/zrvOu86xz4DOu86uKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnzpTOtc6vzr7PhM61IM+EzrfOvSDPhM65zrzOriDOtc+AzrXOvs6uzrPOt8+DzrfPgiDPhM6/z4Ugz4DOtc60zq/Ov8+FKM68zr/Ovc+MKTxlbT7PgM+Bzr/Osc65z4HOtc+EzrnOus+MPC8gZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnzpXPgM65zrvOv86zzq4gzrXOuc+Dz4zOtM6/z4Ugz4fPgc6uz4PPhM63JzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyjOlc+Azq/Pg863z4IsIM+Bzq/Ovs+EzrUgzrzOuc6xIM68zrHPhM65zqwgz4PPhM63zr0gzrrOsc+Bz4TOrc67zrEgzqXPgM6/zrLOv867zq4gzqbPjM+BzrzOsc+CLCDOsc69IM64zq3Ou861z4TOtSDOvc6xIM6/z4HOr8+DzrXPhM61IM+Ezr8gVURUIM6zzrnOsSDOtc+AzrnOus+Nz4HPic+Dzrcgz4bPjM+BzrzOsc+CKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnzqTOrc67zr/PgiDOrc+Ezr/Phc+CJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljJ10gPSAnzqPPhM6/zrnPh861zq/OsSBTbWFydHkgzq4gIM67zr/Os865zrrOriDPgM6/z4UgzrXOr869zrHOuSDOsc+AzrHPgc6xzq/PhM63z4TOvyDOvc6xIM+Dz4TOsc67zrXOryDOvM61IM6xz4XPhM+MIM+Ezr8gz4DOtc60zq/Ovyc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnQ2FuIGJlIHNtYXJ0eSBkYXRhLCBqYXZhc2NyaXB0LCBvciBzb21lIG90aGVyIGRhdGEgeW91IHdhblwndCB0byBzZW50IGFsb25nIHdpdGggdGhpcyBmaWVsZC48YnIgLz5Hb2VzIHRyb3VnaHQgc21hcnR5IGNvbXBpbGVyLCBzbyByZW1lYmVyIHVzZSB7bGl0ZXJhbH17L2xpdGVyYWx9IHRhZ3Mgd2l0aCA8c2NyaXB0Pjwvc2NyaXB0Pic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzJ10gPSAnzp3OsSDPg8+FzrzPgM61z4HOuc67zrHOvM6yzqzOvc61zrkgzrXPhM65zrrOrc+EzrXPgic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICfOnM61IM+EzrfOvSDOtc69zrXPgc6zzr/PgM6/zq/Ot8+Dzrcgz4DOtc+BzrnOu86xzrzOss6szr3Ov869z4TOsc6vIM61z4TOuc66zq3PhM61z4Igz4PPhM63zr0gzq3Ovs6/zrTOvy4gz4DOsc+BzqzOtM61zrnOs868zrEgLSBsYWJlbDogdmFsdWUsbGFiZWwyOiB2YWx1ZTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICfOo8+Nzr3OtM61z4POriDOsc+Fz4TOv8+NIM+Ezr/PhSDPgM61zrTOr86/z4UgzrzOtSDPhM63zr0gz4DPgc6/zrXPgM65zrvOv86zzq4nOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ86kzr8gzrHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr8gzrzOtc69zr/PjSAoRHJvcGRvd24pIM+AzrHPgc6xzrjOrc+EzrXOuSDPjM67zrXPgiDPhM63z4Igz4DPgc6/zrXPgM65zrvOv86zzq3PgiDPhM6/z4UgzrXOvSDOu8+MzrPPiSDPgM61zrTOr86/z4UgzrrOsc65IM+DzrHPgiDOtc+AzrnPhM+Bzq3PgM61zrkgzr3OsSDPg8+Fzr3OtM6tz4POtc+EzrUgzrHPhc+Ez4wgz4TOvyDPgM61zrTOr86/IM+DzrUgzrzOuc6xIM6xz4DPjCDPhM65z4Igz4DPgc6/zrXPgM65zrvOv86zzq3Pgi4gzpXPgM65z4TPgc6tz4DOtc65IM+Ezr/OvSDOrc67zrXOs8+Hzr8gz4TOv8+FIM+AzrXOtM6vzr/PhSDOvM61IM+EzrEgzrXPgM65zrvOtc6zzrzOrc69zrEgzrrOv869z4TPgc+MzrsuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zJ10gPSAnzprPgc+NzrLOtc65IM+EzrEgzrrOv8+FzrzPgM65zqwgzrXOu86tzrPPh86/z4UnOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddID0gJ86az4HPjc6yzrXOuSDPhM6xIM61zrzPgM+Bz4zPg864zrnOsSAoZnJvbmRlbmQpIM66zr/Phc68z4DOuc6sIM61zrvOrc6zz4fOv8+FIM6zzrnOsSDOsc+Fz4TPjCDPhM6/IM+AzrXOtM6vzr8nOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ86XIM61z4TOuc66zq3PhM6xIM+Hz4HOrs+Dz4TOtyDOtc+Azq3Pg8+Ez4HOtc+IzrUgz4PPhs6szrvOvM6xLic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnzpcgzrXPhM65zrrOrc+EzrEgz4fPgc6uz4PPhM63ICVzIM61z4DOrc+Dz4TPgc61z4jOtSDPg8+GzqzOu868zrEuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+zqTOvyBDYXRhbG9nZXIgbW9kdWxlIM60zrXOvSDOtc6vzr3Osc65IM61zrPOus6xz4TOtc+Dz4TOt868zq3Ovc6/L861zr3Otc+BzrPOv8+Azr/Ouc63zrzOrc69zr8uPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICfOoM6hzp/Oo86fzqfOlyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ86gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zr8gz4DPgc+Mz4TPhc+Azr8nOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ86gz4HPjM+Ez4XPgM6/IM+Azq/Ovc6xzrrOsSwgzr/OuSDOpM6vz4TOu86/zrkgzrHPgc65z4PPhM61z4HOrCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDPgM6vzr3Osc66zrEsIM6/zrkgzqTOr8+EzrvOv865IM61z4DOrM69z4knOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnzqDPgc+Mz4TPhc+Azr8gzrHPgM+MICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ86Vzq/Pg8+EzrUgz4POr86zzr/Phc+Bzr/OuSDPjM+EzrkgzrjOrc67zrXPhM61IM69zrEgzrHOvc+EzrnOus6xz4TOsc+Dz4TOrs+DzrXPhM61IM+Ezr8gz4DPgc+Mz4TPhc+Az4wgz4POsc+CIM68zrUgz4TOvyDOtc+AzrnOu861zrPOvM6tzr3OvyDPgM+Bz4zPhM+Fz4DOvzsgKM6RzrrPjM68zrEgzrrOuSDOsc69IM+AzrXOr8+EzrUgzrXOvc+EzqzOvs61zrksIM64zrEgz4DPgc6tz4DOtc65IM69zrEgzrHPgM6/zrjOt866zrXPjc+DzrXPhM61IM+EzrnPgiDOsc67zrvOsc6zzq3PgiknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnzqPPhs6szrvOvM6xIM66zrHPhM6sIM+Ezr/OvSDPhc+Azr/Ou86/zrPOuc+DzrzPjCDPhM6/z4UgIiVzIi4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ86UzrXOvSDPhc+AzqzPgc+Hzr/Phc69IM+AzrvOt8+Bzr/Phs6/z4HOr861z4IgSFRUUF9SRUZFUkVSIM60zrnOsc64zq3Pg865zrzOtc+CICjOus6xz4TOrCDPgM6sz4POsSDPgM65zrjOsc69z4zPhM63z4TOsSDOu8+MzrPPiSDPhM63z4Igz4fPgc6uz4POt8+CIM+EzrfPgiDOtc+AzrnOus+Nz4HPic+DzrfPgiAgRW1haWwgzqfPgc6uz4PPhM63KSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnzqPPhs6szrvOvM6xIM+AzrHPgc6xzrzOrc+Ez4HOv8+FIM61z4DOuc66z43Pgc+Jz4POt8+CLiAgzqDOsc+BzrHOus6xzrvPjiDOss61zrLOsc65z4nOuM61zq/PhM61IM+Mz4TOuSDOsc69z4TOuc6zz4HOrM+IzrHPhM61IM+EzrcgzrTOuc61z43OuM+Fzr3Pg863IFVSTCDOsc+Az4wgz4TOvyBlbWFpbCDPg86xz4Igz4PPic+Dz4TOrCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ86jz4bOrM67zrzOsSDOtc+AzrnOus+Nz4HPic+DzrfPgi4gzqDOsc+BzrHOus6xzrvPjiDOss61zrLOsc65z4nOuM61zq/PhM61IM+Mz4TOuSDOsc69z4TOuc6zz4HOrM+IzrHPhM61IM+EzrcgzrTOuc61z43OuM+Fzr3Pg863IFVSTCDOsc+Az4wgz4TOvyBlbWFpbCDPg86xz4Igz4PPic+Dz4TOrCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ86jz4bOrM67zrzOsSDOtc+AzrnOus+Nz4HPic+DzrfPgi4gzpTOtc69IM+Fz4DOrM+Bz4fOtc65IM+AzrXOtM6vzr8gzrXPgM65zrrPjc+Bz4nPg863z4IgZS1tYWlsIM+DzrUgzrHPhc+Ezq4gz4TOt869IM+Gz4zPgc68zrEhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICfOpM6/IM6gz4HPjM+Ez4XPgM6/IM+EzrfPgiDPhs+Mz4HOvM6xz4IgzrXOvc63zrzOtc+Bz47OuM63zrrOtSDPg8+Ezr8gz4DOu86xzq/Pg865zr8gz4TOt8+CIM6xzr3Osc6yzqzOuM68zrnPg863z4Igz4TOt8+CIM6tzrrOtM6/z4POt8+CIM6xz4DPjCAwLjMgz4POtSAwLjQuIM6cz4DOv8+BzrXOryDOvc6xIM+Hz4HOtc65zrHPg8+EzrXOryDOvc6xIM6zzq/Ovc6/z4XOvSDOv8+BzrnPg868zq3Ovc61z4IgzrTOuc6/z4HOuM+Oz4POtc65z4IuIM6Rzr0gz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOtSDPhM63zr0gz4DPgc6/zrXPgM65zrvOtc6zzrzOrc69zrcgz4bPjM+BzrzOsSwgzrHPgM67zqwgzrHOvc+EzrnOus6xz4TOsc+Dz4TOrs+Dz4TOtSDOsc+Fz4TPjCDPhM6/IM+Az4HPjM+Ez4XPgM6/IM68zrUgz4TOvyAizqDPgc6/zrrOsc64zr/Pgc65z4POvM6tzr3OvyIgz4fPgc63z4POuc68zr/PgM6/zrnPjs69z4TOsc+CIM+Ezr8gzrHOvc6xz4DPhM+Fz4PPg8+MzrzOtc69zr8gzrzOtc69zr/PjSAocHVsbGRvd24pIM+AzrHPgc6xz4DOrM69z4kuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ86gz4HOv8+DzrjOrs66zrcsIM61z4DOtc6+zrXPgc6zzrHPg86vzrEgzrrOsc65IM60zrnOsc+HzrXOr8+BzrnPg863IM+Ez4nOvSDOtM65zrHOtM+BzrHPg8+EzrnOus+Ozr0gzqbOv8+BzrzPjs69JzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnzpXOrM69IM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrUgz4TOvyDOsc6+zrnOv867z4zOs863z4POtyDOsc67z4bOsc+BzrnOuM68zrfPhM65zrrOv8+NIChTdHJpbmcpICwgzrcgzrzPjM69zrcgzrvOtc65z4TOv8+Fz4HOs86vzrEgz4DOv8+FIM60zrnOsc+Ezq/OuM61z4TOsc65IM61zq/Ovc6xzrkgzrcgzrHOu867zrfOu86/z4XPh86vzrEgKCspLCDOtc69z44gzrHOvSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc+EzrUgzrHPgc65zrjOvM63z4TOuc66zq4gKE51bWVyaWMpIM6xzr7Ouc6/zrvPjM6zzrfPg863IM6tz4fOtc+EzrUgz4TOuc+CIM6yzrHPg865zrrOrc+CICwgzrHPgM67zqwgzrzOsc64zrfOvM6xz4TOuc66zqwgKCwgKywgLSwgKiwgLywpLic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICfOp8+BzrfPg865zrzOv8+Azr/Or863z4POtyDPhM63z4IgzrTOuc61z4DOsc+Gzq7PgiDPhM6/z4UgTW9kdWxlJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+zqTOvyDPgM61zrTOr86/IM6xz4XPhM+MIM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrHOuSDPic+CIM+Az43Ou863IM61zrnPg8+MzrTOv8+FIM6zzrnOsSDOrM67zrvOsSBtb2R1bGVzITwvYj4KVXNlIGl0IGJ5IGNyZWF0aW5nIHlvdXIgZm9ybSBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGVzIG9mIHRoZSBvdGhlciBtb2R1bGUocykgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUsIGFuZCB1c2luZyB0aGUgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHRvIHRpZSBpdCBiYWNrIHRvIEZvcm1CdWlsZGVyLiBGb3IgZXhhbXBsZSwgdG8gaW5jbHVkZSBmb3JtIG9wdGlvbnMgYmFzZWQgb24gdGhlIFByb2R1Y3RzIG1vZHVsZSwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgaW4gUHJvZHVjdHM6PGJyLz4KPHByZT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPVwnXCd9Cgl7YXNzaWduIHZhcj1DZCB2YWx1ZT1cJ1wnfQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9XCc6OlwnfGV4cGxvZGU6JE1EYXRhfQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9XCcgY2hlY2tlZD0iY2hlY2tlZCJcJ30KCQkJey9pZn0KCQl7L2ZvcmVhY2h9Cgk8ZGl2IGNsYXNzPSJQcm9kdWN0RGlyZWN0b3J5SXRlbSI+CgkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ieyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0iIG5hbWU9InskRkJpZH1bXSIgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSDCo3skZW50cnktPnByaWNlfSAgICAKCTwvZGl2Pgp7L2ZvcmVhY2h9CjwvcHJlPgo8YnIvPgp3aGVyZSBpbiB0aGUgaW5wdXQgYmVsb3cgeW91IHB1dCBzb21ldGhpbmcgbGlrZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0iY2F0IiBzdW1tYXJ5dGVtcGxhdGU9IllvdXJfRkJfdGVtcGxhdGUifTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnzqDPgc6/z4POuM6uzrrOtyDOtc+EzrnOus6tz4TOsc+CIM+DzrHPgic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICfOmc6xzr3Ov8+FzqzPgc65zr/Pgic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnzqbOtc6yz4HOv8+FzqzPgc65zr/Pgic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnzpzOrM+Bz4TOuc6/z4InOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ86Rz4DPgc6vzrvOuc6/z4InOwokbGFuZ1snZGF0ZV9tYXknXSA9ICfOnM6szrnOv8+CJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ86Zzr/Pjc69zrnOv8+CJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ86Zzr/Pjc67zrnOv8+CJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnzpHPjc6zzr/Phc+Dz4TOv8+CJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnzqPOtc+Az4TOrc68zrLPgc65zr/Pgic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICfOn866z4TPjs6yz4HOuc6/z4InOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ86dzr/Orc68zrLPgc65zr/Pgic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnzpTOtc66zq3OvM6yz4HOuc6/z4InOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ86jz4XOs86zzr3Pjs68zrchIM6lz4DOrs+Bzr7OtSDOrc69zrEgzrvOrM64zr/PgiDPg8+EzrfOvSDPhc+Azr/Oss6/zrvOriDPhM63z4Igz4bPjM+BzrzOsc+CIM+DzrHPgi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgzrvOrM64zr/PgiDOsc+Azr/Pg8+Ezr/Ou86uz4I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICfOo8+GzqzOu868zrEgzrHPgM6/z4PPhM6/zrvOrs+CIM6xz4HPh861zq/Ov8+FIM+Dz4TOvyB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnzpTOtc69IM6yz4HOr8+DzrrPiSDPhM6/IHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICfOo8+GzqzOu868zrEgzpzOtc+EzrHPhs+Mz4HPhM+Jz4POt8+CL86jz4XOvc63zrzOvM6tzr3Ov8+FIM6xz4HPh861zq/Ov8+FIM6zzrnOsSAlcyAodG1wX25hbWU6JXMsIM+Ezr/PhSDPhM+Nz4DOv8+FICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ86jz4bOrM67zrzOsS4gIM6UzrXOvSDOvM+Azr/Pgc+OIM69zrEgzrrOu861zrnOtM+Oz4PPiSDPhM6/IM6xz4HPh861zq/Ovy4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICfOoM+Bzr/Otc+AzrnOu86/zrPOrjogzrHPgM61z4DOuc67zrXOs868zq3Ovc6/JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ86gz4HOv861z4DOuc67zr/Os86uOiDOtc+AzrnOu861zrPOvM6tzr3Ovyc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgzqXPgM6/zrLOv867zq4nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+zpTOtc69IM6tz4fOtc65IM+Bz4XOuM68zrnPg8+EzrXOryDPgM+Bz4zPhM+Fz4DOvyDOs865zrEgRW1haWwgzrHOus+MzrzOsSEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IM6Uzq3OvSDOss+Bzq/Pg866z4kgz4TOvyBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICfOnyDPh8+Bzq7Pg8+EzrfPgiDOtc69zq3Ous+BzrnOvc61IM+EzrfOvSDPhc+Azr/Oss6/zrvOriAlcyDOsc+Az4wgJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ86TzrXOs86/zr3PjM+CIM+Azr/PhSDOtc69zrXPgc6zzr/PgM6/zrnOtc6vz4TOsc65IM+Mz4TOsc69IM68zrnOsSDPhs+Mz4HOvM6xIM+Ezr/PhSBGb3JtQnVpbGRlciDOsc+Azr/Pg8+Ezq3Ou869zrXPhM6xzrknOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnzpPOtc6zzr/Ovc+Mz4Igz4DOv8+FIM61zr3Otc+BzrPOv8+Azr/Ouc61zq/PhM6xzrkgz4zPhM6xzr0gz4XPgM6sz4HOvs61zrkgzrvOrM64zr/PgiDOus6xz4TOrCDPhM63zr0gzrHPgM6/z4PPhM6/zrvOriDPhs+Mz4HOvM6xz4Igz4TOv8+FIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnzpPOtc6zzr/Ovc+Mz4Igz4DOv8+FIM61zr3Otc+BzrPOv8+Azr/Ouc61zq/PhM6xzrkgz4zPhM6xzr0gz4zPhM6xzr0gzrzOuc6xIM+Gz4zPgc68zrEgz4TOv8+FIEZvcm1CdWlsZGVyIM61zrzPhs6xzr3Or862zrXPhM6xzrknOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPs6TzrXOs86/zr3PjM+CIM+Azr/PhSDOtc69zrXPgc6zzr/PgM6/zrnOtc6vz4TOsc65IM+Mz4TOsc69IM68zrnOsSDPhs+Mz4HOvM6xIM+Ezr/PhSBGb3JtQnVpbGRlciDOsc+Azr/Pg8+Ezq3Ou869zrXPhM6xzrkuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+zpPOtc6zzr/Ovc+Mz4Igz4DOv8+FIM61zr3Otc+BzrPOv8+Azr/Ouc61zq/PhM6xzrkgz4zPhM6xzr0gz4XPgM6sz4HOvs61zrkgzrvOrM64zr/PgiDOus6xz4TOrCDPhM63zr0gzrHPgM6/z4PPhM6/zrvOriDPhs+Mz4HOvM6xz4Igz4TOv8+FIEZvcm1CdWlsZGVyPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD7Ok861zrPOv869z4zPgiDPgM6/z4UgzrXOvc61z4HOs86/z4DOv865zrXOr8+EzrHOuSDPjM+EzrHOvSDPjM+EzrHOvSDOvM65zrEgz4bPjM+BzrzOsSDPhM6/z4UgRm9ybUJ1aWxkZXIgzrXOvM+GzrHOvc6vzrbOtc+EzrHOuTwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdJRCDOsc+AzqzOvc+EzrfPg863z4IuIM6nz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrHOuSDOsc+Az4wgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ86gz4HOv866zrHOuM6/z4HOuc+DzrzOrc69zrXPgiDPhM65zrzOrc+CIM+AzrXOtM6vz4nOvTsgIM6UzrXPgiDPhM63zr0gzrLOv86uzrjOtc65zrEgz4TOv8+FIG1vZHVsZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdJRCDPgM61zrTOuc6/z4UgzrPOuc6xIM61z4PPic+EzrXPgc65zrrOrc+CIM60zrnOtc+BzrPOsc+Dzq/Otc+CJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICfOjM69zr/OvM6xIM+Gz4zPgc68zrHPgic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEIM+Gz4zPgc68zrHPgiDOs865zrEgzrXPg8+Jz4TOtc+BzrnOus6tz4IgzrTOuc61z4HOs86xz4POr861z4InOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICfOk861zr3Ouc66zq3PgiDPgM6xz4HOrM68zrXPhM+Bzr/OuSDOs865zrEgzrXPg8+Jz4TOtc+BzrnOus6tz4IgzrTOuc61z4HOs86xz4POr861z4IuJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+zpzOtc+EzrHOss67zrfPhM6tz4IgzrPOuc6xIM6gz4HPjM+Ez4XPgM6/IM6mz4zPgc68zrHPgjwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdVwnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJ3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkXCdzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGhlbHAgdGV4dDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSJmb28iKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5CmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPnZhbHVlfSApLgpZb3UgY2FuIHVzZSB0aGlzIGluIFN0YXRpYyBUZXh0IGZpZWxkcyBhcyB3ZWxsLCB3aGljaCBpcyBhIG5pY2Ugd2F5IHRvIHBlcnNvbmFsaXplIGZvcm1zITwvcD4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICJwYWdlIHggb2YgeSIgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+aW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5SZXNwb25zZSBJRCBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD4iQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+IkNvbnRpbnVlIiBvciAiU3VibWl0IiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91XCdkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJ86fIM6UzrfOvM65zr/Phc+BzrPPjM+CIM+Gzr/Pgc68z47OvSAoRm9ybUJ1aWxkZXIpIM61zrPOus6xz4TOsc+Dz4TOrM64zrfOus61Ls6gzrHPgc6xzrrOsc67z44gz4PPhc68zrLOv8+FzrvOtc+Fz4TOtc6vz4TOtSDPhM63zr0gzrLOv86uzrjOtc65zrEgzrPOuc6xIM+Ezr8gbW9kdWxlLic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPs6kzq8gzrrOrM69zrXOuSDOsc+Fz4TPjD88L2gzPgo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmb3JtcyAoaW4gZmFjdCwgaXRcJ3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoCnRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPgo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZAppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+Cgo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+CjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91XCdyZQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtGb3JtQnVpbGRlciBmb3JtPVwnc2FtcGxlX2Zvcm1cJ308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlXCdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoIikgaW50byBIVE1MIGVudGl0aWVzICgiKSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoXCcpIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybVwncyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KPGg0Pk1haW48L2g0Pgo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICJmYXN0IGZpZWxkIGFkZGVyIiBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXJcJ3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+CjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoIlByZXZpb3VzIiwgIm5leHQiLCAic3VibWl0IikuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pgo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+CjxoND5Gb3JtIFRlbXBsYXRlPC9oND4KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtXCdzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdVwncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uXCd0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+CjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgXCdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91XCdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdVwncmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCjwvcD4KCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+CjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgo8L3VsPgo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLApidXQgaW4gdGhlIGRhdGEgd2hlbiBpdFwncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0XCdzIHNhZmUgdG8gdXNlIGZvcgplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPgo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHAKZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUKc2VwYXJhdGVseSBtYXJrZWQgIlJlcXVpcmVkIiwgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gInZpZXcgc291cmNlIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+QnV0dG9uLiBUaGlzIGRvZW5zXCd0IGRvIGFueXRoaW5nLCBidXQgeW91IGNhbiBob29rIGl0IGludG8gc29tZSBKYXZhc2NyaXB0LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+CjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPgo8bGk+UGFzc3dvcmQgQWdhaW4gKHZlcmlmeSkuIFRoaXMgaXMgYSBmaWVsZCB0aGF0IG11c3QgbWF0Y2ggYSBQYXNzd29yZCBmaWVsZCBmb3Igc3VibWlzc2lvbgp0byBzdWNjZWVkLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPGxpPkVtYWlsICJGcm9tIE5hbWUiIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAiU3ViamVjdCIgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3VcJ3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCdyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPgo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4KPGxpPi1Vc2VyIFRhZy4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVzZXIgRGVmaW5lZCBUYWcsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+CjwvdWw+PC9saT4KPGxpPi1Nb2R1bGUgSW5jbHVkZSBUYWcuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBvdGhlciBtb2R1bGUgb3V0cHV0IGludG8geW91ciBmb3JtLCBlLmcuLCBhIGxpc3Qgb2YgcHJvZHVjdHMgZnJvbSB0aGUgUHJvZHVjdHMgbW9kdWxlLjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zW1wnZmllbGRfbmFtZVwnXSwgYW5kIGFzICRwYXJhbXNbXCdmaWVsZF9hbGlhc1wnXSAoaWYgZGVmaW5lZCkuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgIkRpcmVjdG9yIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiA8c3Ryb25nPkRlcHJlY2F0ZWQuPC9zdHJvbmc+IFVzZSBTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgaW5zdGVhZCEgVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPgo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgImFwcHJvdmVkLCIgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgIm91dHB1dCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGVcJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMC4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyBpcyB0aGUgb25seSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyLiBTZWUgc2VjdGlvbiBiZWxvdy48L2xpPgo8bGk+KlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24uIENyYWZ0IGFuIEhUVFAgR0VUIG9yIFBPU1QsIGFuZCB0cmFuc21pdCBpdCB1c2luZyBjVVJMIHRvIHRoZSBzcGVjaWZpZWQgVVJMLiBUaGlzIGxldHMgeW91IHVzZSBGb3JtQnVpbGRlciBhcyBhIGZyb250LWVuZCB0byBhbnkgQ0dJIG9yIEZvcm0gSGFuZGxpbmcgc2NyaXB0IG91dCB0aGVyZS48L2xpPgoKPC91bD48L2xpPjwvbGk+PC91bD4KCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUKYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4KPHA+e0Zvcm1CdWlsZGVyIGZvcm09XCdteV9mb3JtXCcgdmFsdWVfPGk+RklFTEROQU1FPC9pPj1cJ2RlZmF1bHRfdmFsdWVcJ308L3A+CjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byBcJ2RlZmF1bHRfdmFsdWVcJy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2llbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvblwndCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+CjxwPntGb3JtQnVpbGRlciBmb3JtPVwnbXlfZm9ybVwnIHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49XCdkZWZhdWx0X3ZhbHVlXCd9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgIlNob3cgRmllbGQgSURzIjwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdHMgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGUiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPlRvIHRoZSByaWdodCwgeW91XCdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuIEFzIG9mIHZlcnNpb24gMC41LCB2YXJpYWJsZXMgYWxzbyBoYXZlIGFsaWFzZXMsIHdoaWNoIHlvdSBjYW4gdXNlLjwvcD4KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3VcJ3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdFwncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAiQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlIiBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4KCjxoMz5Vc2Ugd2l0aCBGb3JtQnJvd3NlciB2MzwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIHNwZWNpYWwgZmVhdHVyZXMgd2hlbiB1c2luZyBGb3JtQnVpbGRlciB3aXRoIEZvcm1Ccm93c2VyLiBUaGUgbmV3IGFwcHJvYWNoIHN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIFhNTCwgc28gdGhhdCBmYXIgZmV3ZXIKcXVlcmllcyBhcmUgbmVlZGVkIHRvIHJldHJpZXZlIHJlY29yZHMuIFRoaXMgbWVhbnMgeW91IGNhbiB1c2UgRm9ybUJyb3dzZXIgd2l0aCBodW5kcmVkcyBvciBldmVuIHRob3VzYW5kcyBvZiByZWNvcmRzLiBJdCBhbHNvIG1lYW5zIHlvdQp3aWxsIGhhdmUgdG8gY2hvb3NlIHVwIGZyb250IHdoaWNoIGZpZWxkcyB5b3Ugd2lsbCB3YW50IHRvIGJlIGFibGUgdG8gc29ydCBieS4gWW91IGNhbiBjaG9vc2UgdXAgdG8gZml2ZS4gQ2hhbmdpbmcgdGhlc2UgYWZ0ZXIgdGhlcmUgYXJlIHN1Ym1pdHRlZCByZWNvcmRzIHdpbGwgcmVzdWx0IGluIGltcHJvcGVyIHNvcnRpbmchIEEgcmUtaW5kZXggZnVuY3Rpb24gd2lsbCBiZSBhZGRlZCB0byBhIGZ1dHVyZSB2ZXJzaW9uLjwvcD4KPHA+SW4gYWR2YW5jZWQgb3B0aW9ucywgeW91IGNhbiB0aWUgYSBmb3JtIHRvIEZyb250ZW5kIFVzZXJzLiBUaGF0IG1lYW5zIGVhY2ggdXNlciBnZXRzIG9uZSByZWNvcmQgZm9yIHRoZSBmb3JtOyB0aGV5IGNhbiBjcmVhdGUgaXQKYSBzaW5nbGUgdGltZSwgc3Vic2VxdWVudCB0aW1lcyB0aGV5IHdpbGwgYmUgZWRpdGluZyB0aGVpciByZWNvcmQuIFRoZSByZWNvcmQgd2lsbCBub3QgYmUgdmlzaWJsZSB0byBhbnkgb3RoZXIgdXNlcnMgKGV4Y2x1ZGluZyBhZG1pbnMpLgpUaGlzIGZvcm0gc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgcGFnZSB1c2luZyB0aGUgc3ludGF4IHtGb3JtQnVpbGRlciBhY3Rpb249XCdmZXVzZXJmb3JtXCcgZm9ybT1cJ2Zvcm1fbmFtZVwnfS48L3A+CjxwPkZvciBncmVhdGVyIGRhdGEgc2FmZXR5LCB5b3UgY2FuIGVuY3J5cHQgdGhlIHN0b3JlZCBmb3JtcyBpbiB0aGUgZGF0YWJhc2UuIFlvdSBjYW4gdXNlIHRoZSBidWlsdC1pbiBteWNyeXB0IGxpYnJhcnkgb3IgdGhlIE9wZW5TU0wgbW9kdWxlLgpJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0CmZpbGUgd2lsbCBiZSB1c2VkIGFzIHRoZSBwYXNzcGhyYXNlIGZvciBlbmNyeXB0aW5nLjwvcD4KPHA+SWYgeW91IGVuY3J5cHQsIGJlIGF3YXJlIHRoYXQgdGhlIGZpZWxkcyB5b3UgdXNlIGZvciBzb3J0aW5nIGFyZSA8c3Ryb25nPm5vdDwvc3Ryb25nPiBlbmNyeXB0ZWQuIFlvdSBjYW4gY2hvb3NlIHRvIGhhc2ggdGhlbTsgdGhlIGNoZWF0IGhlcmUKaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdApleHBvc2VzIHNvbWUgY2xlYXJ0ZXh0LCBidXQgaXQgaXMgYmV0dGVyIHRoYW4gbm90aGluZy48L3A+CjxwPjxzdHJvbmc+RElTQ0xBSU1FUjwvc3Ryb25nPi4gVGhlIGVuY3J5cHRpb24gb2ZmZXJlZCBoZXJlIHNob3VsZCBiZSBjb25zaWRlcmVkIGp1c3Qgb25lIG1vcmUgaHVyZGxlIGZvciBhIGhhY2tlciwgbm90IGFzIGEgZ3VhcmFudGVlIHRoYXQKeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQKdGhlIG1vZHVsZSBzb3VyY2UgY29kZSwgYW5kIGZpbmQgdGhlaXIgd2F5IHRvIHRoZSBwYXNzcGhyYXNlLiBUaGlzIHdpbGwgbm90IHByb3RlY3QgeW91IGFnYWluc3QgYW4gZW5lbXkgd2hvIGhhcyBmdWxsIGFjY2VzcyB0byB5b3VyCnNlcnZlciwgc29tZSBmYW1pbGlhcml0eSB3aXRoIFBIUCwgYW5kIHRoZSB0aW1lIHRvIHBva2UgYXJvdW5kLiA8ZW0+PHN0cm9uZz5EbyBub3Q8L3N0cm9uZz4gdXNlIHRoaXMgdG8gcHJvdGVjdCBoaWdoLXZhbHVlIGluZm9ybWF0aW9uIHN1Y2ggYXMgZmluYW5jaWFsIGRhdGEsCnNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lCmNhcnRlbC48L2VtPjwvcD4KPGgzPlVzaW5nIHdpdGggVXNlciBEZWZpbmVkIFRhZ3MgKFVEVHMpPC9oMz4KPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPgoKPHVsPjxsaT5DYWxsIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIGZpZWxkIHR5cGUgc3VibWl0cyB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQKVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1tcJ2ZpZWxkX25hbWVcJ10sIGFuZAphcyAkcGFyYW1zW1wnZmllbGRfYWxpYXNcJ10gKGlmIGRlZmluZWQpLiBBcyBwZXIgYSBzdWdnZXN0aW9uLCBpdCBhbHNvIHBvcHVsYXRlcyBhbGwgb2YgdGhlIFNtYXJ0eSB2YWx1ZXMgdGhhdCB3b3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBTdWJtaXNzaW9uIFRlbXBsYXRlIHRvbyE8L2xpPgo8bGk+VXNlciBUYWcgRmllbGQuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVRFQsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+CjxsaT5WYWxpZGF0aW9uIFVEVC4gU2V0IHRoaXMgZm9yIGEgZm9ybSwgYW5kIHRoZSBVRFQgd2lsbCByZWNlaXZlIGFsbCBvZiB0aGUgZm9ybVxcXCdzIGh1bWFuLXJlYWRhYmxlIHJlc3VsdHMuIFRoZSBVRFQgc2hvdWxkIGRvIHdoYXRldmVyCnZhbGlkYXRpb24gaXQgd2FudHMsIGFuZCByZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgZmlyc3QgdmFsdWUgYmVpbmcgdHJ1ZSBvciBmYWxzZSAoaW5kaWNhdGlvbiB3aGV0aGVyIHRoZSBmb3JtIHZhbGlkYXRlcyksIGFuZCB0aGUgc2Vjb25kCnZhbHVlIGJlaW5nIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvbGk+CjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIHRoZSBmaXJzdCB0aW1lIChvbmx5IGNhbGxlZCBvbmNlKS4gVGhpcwppcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgb24gdGhlIGZpcnN0IGRpc3BsYXkKb2YgdGhlIGZvcm0uPC9saT4KPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgKGNhbGxlZCBvbiBldmVyeSBwYWdlIG9mIG11bHRpcGFnZQpmb3JtcykuIFRoaXMgaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkCmV2ZXJ5IHRpbWUgYW55IHBhZ2Ugb2YgdGhlIGZvcm0gaXMgZGlzcGxheWVkIChpbmNsdWRpbmcgd2hlbiB2YWxpZGF0aW9uIGZhaWxzKS48L2xpPgo8L3VsPgo8aDM+Q29uZmlndXJhdGlvbjwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4KPHVsPgo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4KPGxpPlJ1biBpbiBNTEUgTW9kZS4gVGhpcyBjaGFuZ2VzIHNvbWUgcXVlcmllcyBhZ2FpbnN0IHRoZSBjb250ZW50IHRhYmxlIHRvIHRyeSB0byBwcmV2ZW50IHVnbHkgY3Jhc2hlcyB1bmRlciB0aGUgTUxFIGZvcmsuIENoZWNraW5nIHRoaXMgd2lsbCBjYXVzZSB1Z2x5IGNyYXNoZXMgaWYgeW91IGFyZSBOT1QgcnVubmluZyB0aGUgTUxFIGZvcmsuPC9saT4KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIG5vIGxvbmdlciBzZXQgYnkgZGVmYXVsdC4gQ2hlY2tpbmcgaXQgd2lsbCBoaWRlIHRoZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0aGF0IHdvdWxkIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3VcJ3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4KPC91bD4KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiAKc3RhdGljIHRleHQgZmllbGRzLiBJbnN0ZWFkLCBpdCBjcmVhdGVzIGEgc3R5bGVzaGVldCBjYWxsZWQgIkZvcm1CdWlsZGVyIERlZmF1bHQiIHRoYXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGFjaCB0byB0aGUgcGFnZSB0ZW1wbGF0ZQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+CgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91XCdkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91XCdsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdFwncyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaGVscCB0ZXh0PC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZFwncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwncyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9ImZvbyIpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5hbGlhczwvdGQ+PHRkPnRoZSBhbGlhcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlkPC90ZD48dGQ+dGhlIGludGVybmFsIC8gb3BhcXVlIGlkIEZvcm1CdWlsZGVyIHVzZXMgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkKYXJlIGluIHRoZSAkcHJldmlvdXMgYXJyYXksIG9yIGFjY2Vzc2libGUgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+dmFsdWV9ICkuCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPgo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiJCYWNrIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4iQ29udGludWUiIG9yICJTdWJtaXQiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3VcJ2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgoKPGgzPkNyZWRpdHM8L2gzPgo8cD5NYW55IHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIGNvZGUsIGJ1ZyByZXBvcnRzLCBjYXNoLCBhbmQgaWRlYXMgdG8gRm9ybUJ1aWxkZXIuIEFtb25nIHRoZW0gKGFscGhhYmV0aWNhbGx5KToKPHVsPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5icHRpLmV1Ij5CYWx0aWMgaW5zdGl0dXRlIG9mIGFkdmFuY2VkIHRlY2hub2xvZ3k8L2E+IC0gZnVuZGluZyA8L2xpPgo8bGk+SmVyZW15IEJhc3MgLSBjb2RlIGFuZCBzdWdnZXN0aW9uczwvbGk+CjxsaT5BbGJlcnRvIEJlbmF0aSAtIGNvZGU8L2xpPgo8bGk+VHlsZXIgQm9lc3BmbHVnIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPgo8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4KPGxpPlJvYmVydCBDYW1wYmVsbCAtIG51bWVyb3VzIGNvZGUgY29udHJpYnV0aW9uczwvbGk+CjxsaT5OdW5vIENvc3RhIC0gc3VnZ2VzdGlvbnM8L2xpPgo8bGk+TWFyYyBHZWxkb24gLSBjb2RlPC9saT4KPGxpPktldmluIEdyYW5kb24gLSBjb2RlPC9saT4KPGxpPlJvbm55IEtyaWp0IC0gY29kZTwvbGk+CjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+CjxsaT5Nb3J0ZW4gUG91bHNlbiAtIGNvZGU8L2xpPgo8bGk+U2ltb24gU2NoYXVmZWxiZXJnZXIgLSBjb2RlPC9saT4KPC91bD4KPHA+SSBhcG9sb2dpemUgZm9yIGFueSBvbWlzc2lvbnMgLSBub3RpZnkgbWUsIGFuZCBJXCdsbCBjb3JyZWN0IHRoZSBvbWlzc2lvbiE8L3A+CjxoMz5NaXNjZWxsYW5lb3VzIE5vdGVzPC9oMz4KPHVsPgo8bGk+QW55IGZpZWxkcyB0aGF0IHNlbmRzIGVtYWlsIHRvIGEgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBhbHNvIGFjY2VwdCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcy48L2xpPgo8L3VsPgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkblwndCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPgo8bGk+Rm9ybUJ1aWxkZXIvRm9ybUJyb3dzZXIgPHN0cm9uZz5yZXF1aXJlczwvc3Ryb25nPiBQSFAgNSBvciBsYXRlciB0byBmdW5jdGlvbiBjb3JyZWN0bHkuPC9saT4KPGxpPkZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCdyZSBydW5uaW5nIENNUyAxLjYgb3IgbGF0ZXIuPC9saT4KPGxpPlNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3VcJ3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZFwncyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3VcJ3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXRcJ3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPlVuY2hlY2sgdGhlICJIaWRlIEVycm9ycyIgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0XCdzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+CjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4KPC9vbD4gCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSVwndmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3JcJ3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8bGk+RG9uYXRpb25zIGFyZSBnb29kIG1vdGl2YXRvcnMsIHRvby4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGRvbGxhciBpcyB3ZWFrLCBhbmQgaWYgeW91IGFyZSBub3QgaW4gdGhlIFVTLCB5b3VyIGRvbmF0aW9uIGdldHMgbWFnbmlmaWVkLjwvbGk+CjwvdWw+CjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCA8ZW0+aHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzPC9lbT4gaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuClBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igc2VuZCB5b3VyIHF1ZXN0aW9ucyB3cml0dGVuIG9uCmZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNoZWNrcyBvciBjYXNoKS4gQW0gSSBzb3VuZGluZyBsaWtlIGEgYnJva2VuIHJlY29yZD8gRG8geW91IGtpZHMgdGhlc2UgZGF5cwpldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYQpzYW1wbGUgdGhhdCBnb3Qgc3R1Y2sgb24gbG9vcD8gRGFtbiwgSSBhbSBnZXR0aW5nIG9sZC4gU28gaXMgdGhpcyBwYXJhZ3JhcGguIFRpbWUgdG8gbW92ZSBvbiwgaGVyZS48L3A+PGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siPgo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlQ0NfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPgo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJlbmNyeXB0ZWQiIHZhbHVlPSItLS0tLUJFR0lOIFBLQ1M3LS0tLS1NSUlIVHdZSktvWklodmNOQVFjRW9JSUhRRENDQnp3Q0FRRXhnZ0V3TUlJQkxBSUJBRENCbERDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwQ0FRQXdEUVlKS29aSWh2Y05BUUVCQlFBRWdZQUlObkJXYi9YTTRsbXZMR0hsOVJkMWN2TDV0cnFSaGM3K0ZvR0g1THRvZlFpVnJnRlN2aDdoMW9qZzVTelR4Ymd0aTMyWkYwL3VjdXEvT1FTRCtWenV1QUYxdjZ3VnJ0eU9lQ1BFQXc4ajgxREpPWFZqSkhzSVkybXZpb3JQam9sTFFrRm52MTJ5UlRwdUZXRm40WlhlNSt2bkNqWHFCeTBFRS9haHpFTU1uekVMTUFrR0JTc09Bd0lhQlFBd2djd0dDU3FHU0liM0RRRUhBVEFVQmdncWhraUc5dzBEQndRSWNLTk53T1BGb3d1QWdhaXZTN3YwajJYRnlROWRyOG5pOUc5NWVFN1lxb2dHbEs5d3VTcGxsT2c5bG5ydXZuRVFxc21SbVFudGhRcVdDVGJaekcyK0lFdGVNNElVc3hFdUdUcnc4cFpDVTI0VE5EY2tuS1V4OVV6M3ZTeE9oM2d1OTV5SnlEd29lTXZhRUEyNGJzMTRRRWJKYmhOalk2V3hIejkraS9sVkFEQmp5QU9EWU11emFsRGt2ZHV2d2VHTlprOWxZTFJSQ29QUE5pbEcxUGY2dzg3Qkhwa1NNOFdRMUxDOStSV2RYZlpjbStlZ2dnT0hNSUlEZ3pDQ0F1eWdBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQURDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd0hoY05NRFF3TWpFek1UQXhNekUxV2hjTk16VXdNakV6TVRBeE16RTFXakNCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQU1GSFR0MzhSTXhMWEp5TzJTbVMrTmRsNzJUN29LSjR1NHV3KzZhd250QUxXaDAzUGV3bUlKdXpiQUxTY3NUUzRzWm9TMWZLY2lCR29oMTFnSWZIenlsdmtkTmUvaEpsNjYvUkdxcmo1ckZiMDhzQUFCTlR6RFRpcXFOcEplQnNZcy9jMmFpR296cHRYMlJsbkJrdEgrU1VOcEFhalc3MjROdjJXdmhpZjZzRkFnTUJBQUdqZ2U0d2dlc3dIUVlEVlIwT0JCWUVGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyTUlHN0JnTlZIU01FZ2JNd2diQ0FGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyb1lHVXBJR1JNSUdPTVFzd0NRWURWUVFHRXdKVlV6RUxNQWtHQTFVRUNCTUNRMEV4RmpBVUJnTlZCQWNURFUxdmRXNTBZV2x1SUZacFpYY3hGREFTQmdOVkJBb1RDMUJoZVZCaGJDQkpibU11TVJNd0VRWURWUVFMRkFwc2FYWmxYMk5sY25Sek1SRXdEd1lEVlFRREZBaHNhWFpsWDJGd2FURWNNQm9HQ1NxR1NJYjNEUUVKQVJZTmNtVkFjR0Y1Y0dGc0xtTnZiWUlCQURBTUJnTlZIUk1FQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQlFVQUE0R0JBSUZmT2xhYWdGcmw3MStqcTZPS2lkYldGU0UrUTRGcVJPdmRnSU9OdGgrOGtTSy8vWS80aWh1RTRZbXZ6bjVjZUUzUy9pQlNRUU1qeXZiK3MyVFdiUVlEd2NwMTI5T1BJYkQ5ZXBkcjR0Sk9VTmlTb2p3N0JId1lSaVBoNThTMXhHbEZnSEZYd3JFQmIzZGdOYk1VYSt1NHFlY3RzTUFYcFZIbkQ5d0l5Zm1ITVlJQm1qQ0NBWllDQVFFd2daUXdnWTR4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSUV3SkRRVEVXTUJRR0ExVUVCeE1OVFc5MWJuUmhhVzRnVm1sbGR6RVVNQklHQTFVRUNoTUxVR0Y1VUdGc0lFbHVZeTR4RXpBUkJnTlZCQXNVQ214cGRtVmZZMlZ5ZEhNeEVUQVBCZ05WQkFNVUNHeHBkbVZmWVhCcE1Sd3dHZ1lKS29aSWh2Y05BUWtCRmcxeVpVQndZWGx3WVd3dVkyOXRBZ0VBTUFrR0JTc09Bd0lhQlFDZ1hUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncwd09EQTNNREV3TXpVNU16bGFNQ01HQ1NxR1NJYjNEUUVKQkRFV0JCUU0wTFYzMGZMWGNIOU01ZE1tdVRCTG5zRlE0akFOQmdrcWhraUc5dzBCQVFFRkFBU0JnQkV6MlhxTU1xRmJ1VWhqK0wxMjhDdzJ1OFNoT0tRdHRyS3IvaGkwV1JlZW5IRFlCaUhPU3RsNjNSdjc2UTJtcGQ0NTNSdkNqNW1xN2RSdHVSQjZwZkhHUkRrVVg2TjErT09Jb0lmcm9CWklBVE5oejlDRUh3RUZrTmpZZzBFR01BRytqY2JBajFESmpSNzNjeGJhTnJYV1B4QStoaVFoSGxBcnJaQTdyRlY1LS0tLS1FTkQgUEtDUzctLS0tLQoiPgo8L2Zvcm0+PHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCDCqSAyMDA5LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydxY2EnXSA9ICdQMC0xOTY2MzUyMzI5LTEyNzUyMzEzMjExOTEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjc1MjMyMzM3LjEuMi51dG1jc3I9Z29vZ2xlfHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPWNtc21zIGRvd25sb2FkIG1vZHVsZSB0cmFuc2xhdGUnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMzExNjM3NTEwLjEyNzUyMzEzMjEuMTI3NTI0NDk1Mi4xMjc1MzMwOTg5LjMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnU2luIENvbmZpZ3VyYXIgVGlwbyBkZSBDYW1wbyc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY2Npb25hciB1bm8gKG8gbWFzKSBpdGVtcyBkZSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW4gZGUgRmllbGRzZXQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUNvbWllbnpvIGRlIEZpZWxkc2V0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnRW50cmFkYSBkZSBUZXh0byc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdFbnRyYWRhIGRlIFRleHRvIChNJnVhY3V0ZTtsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJyZBYWN1dGU7cmVhIGRlIFRleHRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NhamEgZGUgVGlsZGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdHcnVwbyBDYWphcyBkZSBUaWxkZSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdEZXNwbGVnYWJsZSc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjY2kmb2FjdXRlO24nOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnU2VsZWN0b3IgRXN0YWRvcyBkZSBVLlMuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1NlbGVjY2lvbmFkb3IgZGUgcHJvdmluY2lhIENhbmFkaWVuc2UnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBQYWlzZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBGZWNoYXMnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBIb3Jhcyc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dydXBvIEJvdCZvYWN1dGU7bmVzIGRlIFJhZGlvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbnZpYXIgRW1haWwgZGUgUmVzdWx0YWRvcyBCYXNhZG8gZW4gRGVzcGxlZ2FibGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypHdWFyZGFyIFJlc3VsdGFkb3MgYSBBcmNoaXZvIEJhc2FkbyBlbiBEZXNwbGVnYWJsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqR3VhcmRhciBSZXN1bHRhZG9zIGEgQXJjaGl2byhzKSBCYXNhZG8ocykgZW4gTSZ1YWN1dGU7bHRpcGxlIFNlbGVjY2lvbmVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjY2lvbmFyIGEgUCZhYWN1dGU7Z2luYSBCYXNhZGEgZW4gRGVzcGxlZ2FibGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVudmlhciBFbWFpbCBkZSBSZXN1bHRhZG9zIGEgRGlyZWNjaSZvYWN1dGU7bihlcykgQ29uZmlndXJhZGFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGFyLXZpYS1EaXJlY2NpJm9hY3V0ZTtuIEVtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqQ2FtcG8gRW1haWwgJnF1b3Q7RGUgRGlyZWNjaSZvYWN1dGU7biZxdW90OywgeSBlbnZpYXIgY29waWEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqRXNjcmliaXIgUmVzdWx0YWRvcyBhIEFyY2hpdm8gUGxhbm8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKkd1YXJkYXIgUmVzdWx0YWRvcyBlbiBCYXNlIGRlIERhdG9zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypHdWFyZGFyIFJlc3VsdGFkb3MgcGFyYSBNb2R1bG8gRm9ybUJyb3dzZXIgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkxsYW1hciBhIHVuYSBUYWcgZGVmaW5pZGEgcG9yIFVzdWFyaW8gY29uIGxvcyBSZXN1bHRhZG9zIGRlbCBGb3JtJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbnZpYXIgRW1haWwgYSBEaXJlY2Npb24gRW1haWwgU3VtaW5pc3RyYWRhIHBvciBVc3VhcmlvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbnZpYXIgRW1haWwgYSBVc3VhcmlvIEFkbWluaXN0cmF0aXZvIGRlIENNUyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUNvcnRlIGRlIFAmYWFjdXRlO2dpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdTdWJpciBBcmNoaXZvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnQ2FtcG8gRW1haWwgJnF1b3Q7RGVzZGUgRGlyZWNjaSZvYWN1dGU7biZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnQ2FtcG8gRW1haWwgJnF1b3Q7RGUgRGlyZWNjaSZvYWN1dGU7biZxdW90OyBkZSBudWV2byc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0Rlc2RlIE5vbWJyZSZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0FzdW50byZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZXh0byBFc3QmYWFjdXRlO3RpY28nOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctRW5sYWNlIEVzdCZhYWN1dGU7dGljbyc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0VubGFjZSAoRW50cmFkbyBwb3IgVXN1YXJpbyknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1DYW1wbyBPY3VsdG8nOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNhbXBvIENvbXB1dGFkbyc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1OdW1lcm8gZW50ZXJvIHVuaWNvIChzZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ1NpbiBWYWxpZGFyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bSZlYWN1dGU7cmljbyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdFbnRlcm8nOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBFbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdOJnVhY3V0ZTttZXJvIGRlIFRlbCZlYWN1dGU7Zm9ubyAoVVNBKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEZWJlIENoZXF1ZWFyc2UnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ0lndWFsYSBFeHByZXNpJm9hY3V0ZTtuIFJlZ3VsYXInOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTm8gSWd1YWxhIEV4cHJlc2kmb2FjdXRlO24gUmVndWxhcic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnTm8gc2UgaW5kaWMmb2FjdXRlOyBlbCB2YWxvciBwYXJhIHVuIGNhbXBvIHJlcXVlcmlkbyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUG9yIGZhdm9yIGluZ3Jlc2UgdW4gbiZ1YWN1dGU7bWVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuYSBlbnRyYWRhIHYmYWFjdXRlO2xpZGEgcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIGVudGVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuYSBkaXJlY2NpJm9hY3V0ZTtuIGVtYWlsIHYmYWFjdXRlO2xpZGEgcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnTGEgZGlyZWNjaSZvYWN1dGU7biBkZSBFbWFpbCBubyBjb2luY2lkZSBjb24gbGEgZGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1biBuJnVhY3V0ZTttZXJvIGRlIHRlbCZlYWN1dGU7Zm9ubyB2JmFhY3V0ZTtsaWRvIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJmlleGNsOyZxdW90OyVzJnF1b3Q7IG5vIHBhcmVjZSBzZXIgdW5hIGRpcmVjY2kmb2FjdXRlO24gZGUgZW1haWwgdiZhYWN1dGU7bGlkYSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIHF1ZSBubyB0ZW5nYSBtJmFhY3V0ZTtzIGRlICVzIGNhcmFjdGVyZXMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDYXJhY3RlciBhIHV0aWxpemFyIGNvbW8gZGVsaW1pdGFkb3IgZW4gcmVzdWx0YWRvcyBxdWUgb2ZyZWNlbiBtJmFhY3V0ZTtzIGRlIHVuIHZhbG9yJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdVc3RlZCBuZWNlc2l0YSB0ZW5lciBlbCBwZXJtaXNvICZxdW90OyVzJnF1b3Q7IHBhcmEgcmVhbGl6YXIgbGEgb3BlcmFjaSZvYWN1dGU7bi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICcmaWV4Y2w7UGVyZCZvYWN1dGU7biEgUGVybyB1c3RlZCBubyB0aWVuZSBwcml2aWxlZ2lvcyBhZGVjdWFkb3MgcGFyYSBpbmdyZXNhciBhICZlYWN1dGU7c3RhIHNlY2NpJm9hY3V0ZTtuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnU2UgYWN0dWFsaXomb2FjdXRlOyBlbCBvcmRlbiBkZSBsb3MgY2FtcG9zLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxhcmlvIGVsaW1pbmFkby4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0NhbXBvIGVsaW1pbmFkby4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhY2kmb2FjdXRlO24gQWN0dWFsaXphZGEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRGViZSBjb250cm9sYXIgYSAmcXVvdDslcyZxdW90OyBwYXJhIHBvZGVyIGNvbnRpbnVhci4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJyZpZXhjbDtEZWJlIGluZGljYXIgYWwgbWVub3MgdW5hIGRpcmVjY2kmb2FjdXRlO24gZGUgZGVzdGlubyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnJmlleGNsO0VzdCZhYWN1dGU7IHNlZ3VybyBxdWUgcXVpZXJlIGVsaW1pbmFyIGVsIGZvcm11bGFyaW8gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICcmaWV4Y2w7RXN0JmFhY3V0ZTsgc2VndXJvIHF1ZSBxdWllcmUgZWxpbWluYXIgZWwgY2FtcG8gJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0xhcyBvcGNpb25lcyBhdmFuemFkYXMgbm8gZXN0JmFhY3V0ZTtuIGRpc3BvbmlibGVzIGhhc3RhIHF1ZSBubyBzZSBoYXlhIGZpamFkbyBlbCB0aXBvIGRlIGNhbXBvLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0VsIG5vbWJyZSBkZSBjYW1wbyAmcXVvdDslcyZxdW90OyB5YSBlc3QmYWFjdXRlOyBlbiB1c28uIFBvciBmYXZvciB1c2Ugbm9tYnJlcyBkZSBjYW1wb3MgJnVhY3V0ZTtuaWNvcywgbyBkZXNoYWJpbGl0ZSBub21icmVzIGRlIGNhbXBvcyAmdWFjdXRlO25pY29zIGVuIGxhIGNvbmZpZ3VyYWNpJm9hY3V0ZTtuIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcy4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0xvcyBjYW1wb3MgZGViZW4gdGVuZXIgbm9tYnJlLCBzYWx2byBxdWUgbG8gZGVzaGFiaWxpdGUgZW4gbGEgY29uZmlndXJhY2kmb2FjdXRlO24gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbiZvYWN1dGU7bmltbyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTG9uZzogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBjYWphcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3BjaW9uZXMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjYXJhY3QuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZW4nOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbc2luIGVzcGVjaWZpY2FyXSc7CiRsYW5nWydhZGRlZCddID0gJ2FncmVnYWRvJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdhY3R1YWxpemFkbyc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcmRlbmFyIG9wY2lvbmVzIGFsIHNhbGlyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdFbGVnaXIgVW5vJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnRWxlZ2lyIFRpcG8nOwokbGFuZ1sndG8nXSA9ICdBJzsKJGxhbmdbJ3llcyddID0gJ1NpJzsKJGxhbmdbJ25vJ10gPSAnTm8gJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNlcHRvcmVzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBhcmNoaXZvcyBwb3NpYmxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3Rpbm9zJzsKJGxhbmdbJ3NhdmUnXSA9ICdHdWFyZGFyJzsKJGxhbmdbJ2FkZCddID0gJ0FncmVnYXInOwokbGFuZ1sndXBkYXRlJ10gPSAnQWN0dWFsaXphcic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ0d1YXJkYXIgeSBDb250aW51YXIgRWRpdGFuZG8nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2kmb2FjdXRlO24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b20mYWFjdXRlO3RpY28nOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcmlvcyc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYXJpbyAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhY2kmb2FjdXRlO24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0VzdGFkbyBkZSBjYW1wbyByZXF1ZXJpZG8gYWN0dWFsaXphZG8uJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28gTSZhYWN1dGU7eC4nOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbmNpb25lcyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVGlwb3MgZGUgYXJjaGl2b3MgcGVybWl0aWRvcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJyZpZXhjbDtBcmNoaXZvIHN1YmlkbyBlcyBtdXkgZ3JhbmRlISBUYW1hJm50aWxkZTtvIG0mYWFjdXRlO3guIGVzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0VzdGUgdGlwbyBkZSBhcmNoaXZvIG5vIHB1ZWRlIHNlciBzdWJpZG8uIFBvciBmYXZvciBjb250cm9sYXIgcXVlIGxhIGV4dGVuc2kmb2FjdXRlO24gZXMgY29ycmVjdGEuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1N1YmlyJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhcmlvIEltcG9ydGFkby4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnJmlleGNsO0ZhbGwmb2FjdXRlOyBsYSBpbXBvcnRhY2kmb2FjdXRlO24gZGVsIGZvcm11bGFyaW8hIE5vIGhheSBwcm9ibGVtYSBjb24gZWwgZm9ybWF0byBkZWwgYXJjaGl2byBYTUwuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBmaWxhcyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29sdW1uYXMnOwokbGFuZ1snMTJfaG91ciddID0gJ1JlbG9qIGRlIDEyIEhvcmFzJzsKJGxhbmdbJzI0X2hvdXInXSA9ICdSZWxvaiBkZSAyNCBIb3Jhcyc7CiRsYW5nWydob3VyJ10gPSAnSG9yYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dG8nOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbm8nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdvOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJyZpZXhjbDtHcmFjaWFzISBTZSByZWNpYmkmb2FjdXRlOyBzdSBlbnYmaWFjdXRlO28uJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0YXInOwokbGFuZ1snZGVsZXRlJ10gPSAnRWxpbWluYXInOwokbGFuZ1snZGF5J10gPSAnRCZpYWN1dGU7YSc7CiRsYW5nWydtb24nXSA9ICdNZXMnOwokbGFuZ1sneWVhciddID0gJ0EmbnRpbGRlO28nOwokbGFuZ1snbm9uZSddID0gJyhuaW5ndW5vKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ00mb2FjdXRlO2R1bG8gZGVzaW5zdGFsYWRvLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdJbnN0YWxhZGEgdmVyc2kmb2FjdXRlO24gJXMgZGVsIG0mb2FjdXRlO2R1bG8uJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnU2UgYWN0dWFsaXpvIGVsIG0mb2FjdXRlO2R1bG8gYSBsYSB2ZXJzaSZvYWN1dGU7biAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVm9sdmVyLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdFbnZpYXIgRm9ybXVsYXJpbyc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51YXIuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0NoZXF1ZWFkbyc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdTaW4gY2hlcXVlYXInOwokbGFuZ1sndGFiX21haW4nXSA9ICdQcmluY2lwYWwnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0NvbmZpZ3VyYXIgVmlzdGEgZGVsIEZvcm0nOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0VudiZpYWN1dGU7byBkZWwgRm9ybXVsYXJpbyc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NvbmZpZ3VyYWNpb25lcyBkZSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0NvbmZpZy4gQXZhbnphZGFzJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1BsYW50aWxsYSBkZWwgRm9ybXVsYXJpbyc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIEVudmlhZG8nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5MYXMgdmFyaWFibGVzIFNtYXJ0eSBzb24gdiZhYWN1dGU7bGlkYXMgZW4gZXN0ZSBjYW1wby48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FncmVnYXIgTSZhYWN1dGU7cyBPcGNpb25lcyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0VsaW1pbmFyIE9wY2lvbmVzIE1hcmNhZGFzJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWdyZWdhciBNJmFhY3V0ZTtzIENhamFzIGRlIFRpbGRhcic7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0VsaW1pbmFyIENhamFzIGRlIFRpbGRhciBNYXJjYWRhcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FncmVnYXIgT3RyYSBEaXJlY2NpJm9hY3V0ZTtuJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnRWxpbWluYXIgRGlyZWNjaW9uZXMgTWFyY2FkYXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWdyZWdhciBPdHJvIERlc3Rpbm8nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRWxpbWluYXIgRGVzdGlub3MgTWFyY2Fkb3MnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdTZSBoYW4gZ2VuZXJhZG8gZGVtYXNpYWRvcyAgZW1haWxzIGRlc2RlIHN1IERpcmVjY2kmb2FjdXRlO24gSVAuIEMmb2FjdXRlO2RpZ28gQW50aS1TcGFtIGhhIHByZXZlbmlkbyBlbCBlbnYmaWFjdXRlO28uJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1NlIGludGVycnVtcGkmb2FjdXRlOyBlbnZpbyBzb3NwZWNoYWRvIHBvciBTcGFtIGRlc2RlIElQICVzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlbmFyIENhbXBvcyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxhcic7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWxvciBjb25maWd1cmFkbzogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4KPGJyLz4KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4KPGJyLz4KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnVW5hIGV4cHJlc2kmb2FjdXRlO24gcmVndWxhciBwYXJhIHBlcm1pdGlyIGZpbHRyYXIgaXRlbXMgZGUgQ2F0YWxvZ2VyIHBvciBub21icmUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdBbHR1cmEgZGVsIGNhbXBvIGRlIHNlbGVjY2kmb2FjdXRlO24gbXVsdGlwbGUnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0FsdHVyYSBkZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEaXJlY3RvcmlvIERlc3Rpbm8gZGUgYXJjaGl2b3MgZGUgc2FsaWRhJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVGFnIERlZmluaWRhIHBvciBVc3VhcmlvJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQJmFhY3V0ZTtnaW5hIGEgZG9uZGUgdm9sdmVyIGNvbiBlbmxhY2VzIHN1Ymlkb3MnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdFbnZpYWRvIGNvbiBlbCBjb25zdHJ1Y3RvciBkZSBmb3JtdWxhcmlvcyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnQ2F0ZWdvciZpYWN1dGU7YSBkZSBzdWJpZGFzJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnRW52aWFyIGVzdGUgYXJjaGl2byBhbCBtJm9hY3V0ZTtkdWxvIGRlIHN1YmlkYXMnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGV5ZW5kYSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ0xvbmdpdHVkIE0mYWFjdXRlO3hpbWEnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdFdGlxdWV0YSBkZSBDYWphIGRlIFRpbGRlJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnRXRpcXVldGEgZGUgQm90Jm9hY3V0ZTtuIGRlIFJhZGlvJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWxvciBjdWFuZG8gdGllbmUgdGlsZGUuJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbG9yIGN1YW5kbyBubyB0aWVuZSB0aWxkZS4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0RldGFsbGVzIGRlIEdydXBvIGRlIENhamEgZGUgVGlsZGUnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnJmlxdWVzdDtFbGltaW5hcj8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGV4dG8gJnF1b3Q7RWxlZ2lyIFVubyZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdWYWxvciBkZSBzZWxlY2NpJm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ05vbWJyZSBkZSBTZWxlY2NpJm9hY3V0ZTtuIGEgTW9zdHJhcic7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ0FzdW50byBkZSBTZWxlY2NpJm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTZWxlY2NpJm9hY3V0ZTtuIHBvciBEZWZlY3RvJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU2VsZWNjaSZvYWN1dGU7biBwb3IgRGVmZWN0byc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1NlbGVjY2kmb2FjdXRlO24gcG9yIGRlZmVjdG8nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOb21icmUgZGUgT3BjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWxvciBFbnZpYWRvJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdPcGNpb25lcyBkZSBEZXNwbGVnYWJsZSc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnT3BjaW9uZXMgZGUgTXVsdGlzZWxlY2NpJm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEaXJlY2NpJm9hY3V0ZTtuIEVtYWlsIGRlIERlc3Rpbm8nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdOb21icmUgZGUgQXJjaGl2byBkZSBEZXN0aW5vJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Rlc2RlIG5vbWJyZSZxdW90OyBwYXJhIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2FyIHZhbGlkYWNpJm9hY3V0ZTtuIGRlIGVtYWlsIHJlbGFqYWRhJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzYXIgdmFsaWRhY2kmb2FjdXRlO24gZGUgZGlyZWNjaSZvYWN1dGU7biBlbWFpbCByZWxhamFkYSAocC5lai4sIHBlcm1pdGUgJnF1b3Q7eEB5JnF1b3Q7IGVuIHZleiBkZSByZXF1ZXJpciBhICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0Rlc2RlIGRpcmVjY2kmb2FjdXRlO24mcXVvdDsgcGFyYSBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0NvbmZpZ3VyYWNpJm9hY3V0ZTtuIGRlIGMmb2FjdXRlO2RpZmljYWNpJm9hY3V0ZTtuIGRlIGNhcmFjdGVyZXMgZGUgRW1haWwnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ0RldGFsbGVzIHBhcmEgRW1pc29yLUVtYWlsIGNvbiBiYXNlIERlc3BsZWdhYmxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ05vbWJyZSBkZSBhcmNoaXZvJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdMJmlhY3V0ZTtuZWEgQXN1bnRvIGRlIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ05vbWJyZSBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRXN0YWRvIGRlIEZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdMaXN0byBwYXJhIHN1IERlc2Fycm9sbG8nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vIGVzdCZhYWN1dGU7IExpc3RvJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQJmFhY3V0ZTtnaW5hIGEgZG9uZGUgZGlyaWdpcnNlIGx1ZWdvIGRlbCBlbnYmaWFjdXRlO28nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BvciBmYXZvciBhZ3JlZ3VlIHVuIGNhbXBvIGFsIGZvcm11bGFyaW8gcGFyYSBxdWUgbG8gaW5ncmVzYWRvIHBvciBlbCB1c3VhcmlvIHB1ZWRhIHNlciBtYW5lamFkby4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdQdWVkZSB1c2FyIGVzdGUgYXRham8nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0FsaWFzIGRlIEZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdDYW1wb3MgZGUgRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0lkIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnTW9zdHJhciBBbGlhc2VzIGRlIGxvcyBjYW1wb3MnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ01hcmNhciBlc3RvIHZhIGEgbW9zdHJhciBsb3MgYWxpYXNlcyBkZSBjYW1wb3MgY3VhbmRvIHNlIGFncmVnYSBvIGVkaXRhIHVuYSBmb3JtYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTm9tYnJlIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnQWxpYXMgZGUgQ2FtcG8nOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnRGV0YWxsZXMgZGUgR3J1cG8gQm90Jm9hY3V0ZTtuIGRlIFJhZGlvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdUaXBvIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdwYXJhIGNyZWFyIHVuIGNhbXBvIGRlIG1hbmVqbyBkZWwgZm9ybXVsYXJpby4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWdyZWdhciBOdWV2byBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJyZpcXVlc3Q7TW9zdHJhciBWZXJzaSZvYWN1dGU7biBkZWwgTSZvYWN1dGU7ZHVsbz8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdMYSB2ZXJzaSZvYWN1dGU7biBkZWwgbSZvYWN1dGU7ZHVsbyBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBpbnN0YWxhZG8gc2UgaW5jbHVpciZhYWN1dGU7IGVuIGNvbWVudGFyaW9zLCBheXVkYSBhbCBoYWNlciBkZWJ1Zyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWdyZWdhciBOdWV2byBDYW1wbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdCb3Qmb2FjdXRlO24gZGUgUHJ1ZWJhIEVudiZpYWN1dGU7byBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnJmlxdWVzdDtBZ3JlZ2Ftb3MgSmF2YXNjcmlwdCBhbCBCb3Qmb2FjdXRlO24gZGUgRW52JmlhY3V0ZTtvIHF1ZSBheXVkYXImYWFjdXRlOyBhIHByZXZlbmlyIG0mdWFjdXRlO2x0aXBsZXMgZW52JmlhY3V0ZTtvcyBkZWwgZm9ybXVsYXJpbz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FncmVnYXIgc2NyaXB0IGRlIHNlZ3VyaWRhZCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnVGV4dG8gcGFyYSBCb3Qmb2FjdXRlO24gJnF1b3Q7U2lndWllbnRlJnF1b3Q7IGRlbCBGb3JtIChzZSB1c2EgZW4gZm9ybSYjMDM5O3MgbXVsdGlwJmFhY3V0ZTtnaW5hKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnVGV4dG8gcGFyYSBCb3Qmb2FjdXRlO24gJnF1b3Q7UHJldmlvJnF1b3Q7IGRlbCBGb3JtIChzZSB1c2EgZW4gZm9ybSYjMDM5O3MgbXVsdGlwJmFhY3V0ZTtnaW5hKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnVmFsaWRhY2kmb2FjdXRlO24gZGUgQ2FtcG8nOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdDYW1wbyBhIFZhbGlkYXInOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDbGFzZSBDU1MgcGFyYSBlc3RlIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ2xhc2UgQ1NTIHBhcmEgZXN0ZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1MmaWFjdXRlO21ib2xvIHBhcmEgaWRlbnRpZmljYXIgY2FtcG9zIHJlcXVlcmlkb3MnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1ZXJpZG8nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1NlIHJlcXVpZXJlIHVuYSByZXNwdWVzdGEgcGFyYSBlc3RlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdPY3VsdGFyIEV0aXF1ZXRhJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ09jdWx0YXIgZWwgbm9tYnJlIGRlIGVzdGUgY2FtcG8gZW4gZWwgRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnVGV4dG8gZXN0JmFhY3V0ZTt0aWNvIGEgbW9zdHJhcic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYWNpJm9hY3V0ZTtuIGRlIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOJnVhY3V0ZTttZXJvIGRlIEwmaWFjdXRlO25lYXMgYSBtb3N0cmFyJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBlcyBQb3IgRGVmZWN0byc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1AmYWFjdXRlO2dpbmEgYSBkb25kZSBpciBkZXNwdSZlYWN1dGU7cyBkZSBhcHJvYmFyJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdFc3RhIGV4cHJlc2kmb2FjdXRlO24gcmVndWxhciBzZSB1c2FyJmFhY3V0ZTsgcyZvYWN1dGU7bG8gc2kgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGVzIHB1ZXN0byBhIHVuYSBvcGNpJm9hY3V0ZTtuIHJlZ2V4LXJlbGFjaW9uYWRhLiBJbmNsdXllIHVuIGNvbXBsZXRvIHJlZ2V4IGVzdGlsbyBQZXJsLCBpbmNsdXllbmRvIGFkZW0mYWFjdXRlO3MgbGFzIGJhcnJhcyBkZSBjb21pZW56by9wYXJhciB5IGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2RvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnT2N1bHRhciBFcnJvcmVzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdUaXBvIGRlIEZvcm11bGFyaW8gTW9zdHJhZG8nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbmlyIHF1ZSBtZW5zYWplcyBkZSBkZWJ1ZyAvIGVycm9yIGxvcyB2ZWEgZWwgdXN1YXJpby4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgRW1haWwnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnVGFtYSZudGlsZGU7byBtJmFhY3V0ZTt4aW1vIGRlIGFyY2hpdm8gYSBzdWJpciAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0VzdGEgbGltaXRhY2kmb2FjdXRlO24gc2UgYWdyZWdhIGEgbGFzIGZpamFkYXMgcG9yIGxhIGNvbmZpZ3VyYWNpJm9hY3V0ZTtuIGRlIHBocCB5IGVsIHNlcnZpZG9yIHdlYic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbmVzIFBlcm1pdGlkYXMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudHJhciB1bmEgbGlzdGEgc2VwYXJhZGEgcG9yIGNvbWFzLCBleGNsdXllbmRvIGVsIHB1bnRvIChwLmVqLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTG9zIGVzcGFjaW9zIHNvbiBpZ25vcmFkb3MuIFNpIGRlamEgZXN0byBlbiBibGFuY28gc2lnbmlmaWNhIHF1ZSBubyBoYXkgcmVzdHJpY2Npb25lcy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJyZpcXVlc3Q7TW9zdHJhciByZXN0cmljY2lvbmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICcmaXF1ZXN0O01vc3RyYXIgY3VhbHF1aWVyIHJlc3RyaWNjaSZvYWN1dGU7biBkZSB0YW1hJm50aWxkZTtvIHkgZXh0ZW5zaSZvYWN1dGU7biBjb24gZWwgYXJjaGl2byBhIHN1YmlyPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGEgdXRpbGl6YXIgcGFyYSBNb3N0cmFyIEZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQJmFhY3V0ZTtnaW5hICVzIGRlICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdFbCBjYW1wbyBubyB0aWVuZSBvcGNpb25lcyBhdmFuemFkYXMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0byBhIGRldm9sdmVyIHBhcmEgdmFsb3JlcyBkZSBjYW1wbyBzaW4gZXNwZWNpZmljYXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJyZpcXVlc3Q7SGFiaWxpdGEgZGVzcGxlZ2FibGUgZGUgYWdyZWdhZG8gciZhYWN1dGU7cGlkbyBkZSBjYW1wb3MgZW4gZm9ybXVsYXJpb3M/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnJmlxdWVzdDtIYWJpbGl0YW1vcyBkZXNwbGVnYWJsZSBkZSBhZ3JlZ2FkbyByJmFhY3V0ZTtwaWRvIGRlIGNhbXBvcz8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0FncmVnYXIgciZhYWN1dGU7cGlkYW1lbnRlIGNhbXBvcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0hhY2llbmRvIGNsaWNrIGFxdSZpYWN1dGU7IHBlcm1pdGlyJmFhY3V0ZTsgcyZvYWN1dGU7bG8gMTAgZW1haWxzIGEgc2VyIGRpc3BhcmFkb3MgcG9yIHVuYSBkaXJlY2NpJm9hY3V0ZTtuIElQIGRhZGEgKHBvciBob3JhKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnJmlxdWVzdDtIYWJpbGl0YXIgY2FyYWN0ZXImaWFjdXRlO3N0aWNhcyBlbGVtZW50YWxlcyBwYXJhIGFudGktc3BhbT8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ01vc3RyYXIgSURzIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0hhY2llbmRvIGNsaWNrIGFxdSZpYWN1dGU7IHBlcm1pdGlyJmFhY3V0ZTsgdmVyIGlkcyBkZSBjYW1wb3MgY3VhbmRvIHNlIGFncmVnYSBvIGVkaXRhIHVuIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1N1YmlyIGZvcm11bGFyaW8gZGVzZGUgYXJjaGl2byBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzYXIgZXN0ZSBub21icmUgZGUgZm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnSW1wb3J0YXIgRm9ybXVsYXJpbyBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2FyIGVzdGUgYWxpYXMgZGUgZm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnJmlxdWVzdDtHZW5lcmFyIGVtYWlsIEhUTUw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnJmlxdWVzdDtQdWJsaWNhciBhdXRvbSZhYWN1dGU7dGljYW1lbnRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnJmlxdWVzdDtQdWJsaWNhcmxvIGF1dG9tJmFhY3V0ZTt0aWNhbWVudGUgY29uIGxhIFVSTCBkZSBsYSBwJmFhY3V0ZTtnaW5hIHF1ZSBjb250aWVuZSBlbCBmb3JtdWxhcmlvPyAoZXN0byBzb2JyZXNjcmliZSBsYSBvcGNpJm9hY3V0ZTtuIGRlIGFiYWpvIGRlIGVubGFjZSBkZSBwJmFhY3V0ZTtnaW5hIGRlbCBzaXRpbyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnVXJsIHBvciBkZWZlY3RvIGRlbCBlbmxhY2UnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnVGV4dG8gcG9yIGRlZmVjdG8gZGVsIGVubGFjZSc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnRW5sYWNlIGEgcCZhYWN1dGU7Z2luYSBkZWwgc2l0aW8nOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnVXN0ZWQgcHVlZGUgdXNhciBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gcGFyYSBwcm90ZWdlciBlbCBlbnYmaWFjdXRlO28gZGUgbG9zIGZvcm11bGFyaW9zLiBQYXJhIGVzbyBpbnN0YWxlIGVsIG0mb2FjdXRlO2R1bG8uIFBvciBtJmFhY3V0ZTtzIGluZm9ybWFjaSZvYWN1dGU7biwgZGUgdW5hIHZ1ZWx0YSBwb3IgZWwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+cHJvamVjdG8gQ2FwdGNoYTwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnJmlxdWVzdDtVc2FyIENhcHRjaGEgcGFyYSBwcm90ZWplciBlbCBlbnYmaWFjdXRlO28gZGUgZm9ybXVsYXJpb3M/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdPYnNlcnZlIGFxdSZpYWN1dGU7IHBhcmEgcHJvdGVnZXIgYSBzdSBmb3JtdWxhcmlvIGNvbiA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQb3IgZmF2b3IgY29uZmlybWUgcXVlIHVzdGVkIG5vIGVzIHVuIHNjcmlwdCBpbmdyZXNhbmRvIGxvcyBjYXJhY3RlcmVzIGRlIGxhIGltYWdlbi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRXJyb3IgZW4gZWwgdGV4dG8gcGFyYSBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdFbCBDYXB0Y2hhIG5vIGVzIGNvcnJlY3RvLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdUZXh0byBkZSBheXVkYSBwYXJhIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnTm8gZW52aWFyIHZhbG9yZXMgZGUgY2FqYXMgc2luIHRpbGRhcic7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ1RpbGRhciBlc3RvIHNpIGRlc2VhIHF1ZSBsYXMgY2FqYXMgdGlsZGFkYXMgcmVncmVzZW4gdW4gdmFsb3InOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0V0aXF1ZXRhIGRlIEVubGFjZSc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnVXJsIGRlIERlc3Rpbm8gZGUgRW5sYWNlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnJmlxdWVzdDtDaGVxdWVhciBwb3IgRGVmZWN0bz8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJyZpcXVlc3Q7VXNhbW9zIHJlbG9qIGRlIDI0LWhvcmFzPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ2FtJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdwbSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJyZpcXVlc3Q7UHJvY2VzYW1vcyBzbWFydHkgdGFncyBkZW50cm8gZGUgY2FtcG9zPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnRmlsYXMgKG5vdGE6IGVzdG8gcHVlZGUgc2VyIHNvYnJlc2NyaXRvIHBvciBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5hcyAobm90YTogZXN0byBwdWVkZSBzZXIgc29icmVzY3JpdG8gcG9yIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWxsZXMgZGUgRm9ybXVsYXJpbyBQcmluY2lwYWwnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ01vc3RyYXIgZWwgTm9tYnJlIGRlbCBVc3VhcmlvPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdNb3N0cmFyIGVsIFByaW1lciBOb21icmUgZGVsIFVzdWFyaW8/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnTW9zdHJhciBlbCBBcGVsbGlkbyBkZWwgVXN1YXJpbz8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmluZ2lyIGxpc3RhIGRlIHVzdWFyaW9zIGEgdXN1YXJpb3MgZGUgdW4gZ3J1cG8gZXNwZWNpZmljbyc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnU29sbyBlbiBlbCBncnVwbyAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdNb3N0cmFyIGFsIHVzdWFyaW8/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0VzdGUgY2FtcG8gcHVlZGUgZGVqYXJzZSB2YWMmaWFjdXRlO28nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIHBhcmEgUGxhbnRpbGxhJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBEaXNwb25pYmxlcyc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUgUEhQJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRmVjaGEgZGUgRW52JmlhY3V0ZTtvJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdTdSBzZXJ2aWRvcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdEaXJlY2NpJm9hY3V0ZTtuIElQIGRlIGxhIHBlcnNvbmEgcXVlIHVzYSBlbCBmb3JtdWxhcmlvJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBkZSBsYSBwJmFhY3V0ZTtnaW5hIHF1ZSBjb250aWVuZSBlbCBmb3JtdWxhcmlvJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ1ZlcnNpJm9hY3V0ZTtuIEZvcm1CdWlsZGVyICc7CiRsYW5nWydoZWxwX3RhYiddID0gJ1MmaWFjdXRlO21ib2xvIGRlIHRhYnVsYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnTm9tYnJlcyBkZSBjYW1wbyBhbHRlcm5hZG9zIHNlIHB1ZWRlbiB1c2FyIGVuIGZvcm1hIGludGVyY2FtYmlhYmxlIChlc3BlY2lhbG1lbnRlICZ1YWN1dGU7dGlsIHNpIFNtYXJ0eSBzZSBhdGFzY2EgY29uIGNhcmFjdGVyZXMgZnVlcmEgZGVsIHJhbmdvIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90cm9zIGNhbXBvcyBlc3RhciZhYWN1dGU7biBkaXNwb25pYmxlcyBhcyZpYWN1dGU7IGNvbW8gbG9zIGFncmVndWUgYWwgZm9ybXVsYXJpby4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdBIGxvcyBjYW1wb3MgcXVlIHRpZW5lbiB2YWxvcmVzIG0mdWFjdXRlO2x0aXBsZXMgc2UgcHVlZGUgdGFtYmkmZWFjdXRlO24gbGxlZ2FyIGEgZWxsb3MgdiZpYWN1dGU7YSBlbCB2YWxvciBzbWFydHkgZGUgJGZpZWxkbmFtZV9hcnJheSAgbyAgJGZsZF8jX2FycmF5Lic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnVmVhIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPmVsIE1hbnVhbCBQSFA8L2E+IHBhcmEgYXl1ZGEgZGUgZm9ybWF0b3MuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlICc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdDYW1wbyBSZXByZXNlbnRhZG8nOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFZvbHZlciBhbCBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhciBQbGFudGlsbGEgZGUgRWplbXBsbyc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhciBQbGFudGlsbGEgZGUgRWplbXBsbyBIVE1MJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXIgUGxhbnRpbGxhIGNvbiBFbmNhYmV6YWRvIGRlIE11ZXN0cmEnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhciBFbmNhYmV6YWRvIGRlIEVqZW1wbG8nOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAndW4gY2FyYWN0ZXIgdGFiJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgcGFyYSBhcmNoaXZvIGRlIHNhbGlkYSBkZSB1bmEgbCZpYWN1dGU7bmVhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnUGxhbnRpbGxhIHBhcmEgZWwgZW5jYWJlemFkbyBkZSBhcmNoaXZvIGRlIHNhbGlkYSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIGRvbmRlIGhhY2VyIGNsaWNrIHBhcmEgY29uZmlybWFyIGVsIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWxvciAodmVhIGxhIHNvbGFwYSBBdmFuemFkbyBzaSB1c3RlZCB1c2EgdGFncyBzbWFydHknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdGb3JtYXRvIGRlIEZlY2hhIChlc3QmYWFjdXRlO25kYXIgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+Rm9ybWF0b3MgZGUgRmVjaGEgUEhQPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2FyIGVkaXRvciBXWVNJV1lHIHBhcmEgJkFhY3V0ZTtyZWEgZGUgdGV4dG8gKCZpcXVlc3Q7cyZvYWN1dGU7bG8gcGFyYSBBZG1pbj8pJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnQ29tcG9ydGFtaWVudG8gZGVsIEZvcm11bGFyaW8gZGUgRW52JmlhY3V0ZTtvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdFdGlxdWV0YXMgZGUgQm90Jm9hY3V0ZTtuZXMgZGUgRW52JmlhY3V0ZTtvJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnQ2FtcG8gT3JkZW5hYmxlICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ0VzdGEgcCZhYWN1dGU7Z2luYSBsZSBwZXJtaXRlIGFkYXB0YXIgYSBzdSBndXN0byBlbCBFbnYmaWFjdXRlO28gZGVsIEZvcm11bGFyaW8uIE5vIGRldGVybWluYSBxdWUgaGFyJmFhY3V0ZTsgZWwgQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgY29uIGxhIGRhdGEgZW52aWFkYS4gRXN0byAmdWFjdXRlO2x0aW1vIGxvIHB1ZWRlIGVzdGFibGVjZXIgYWdyZWdhbmRvIGNhbXBvcyBkZSAgJnF1b3Q7RGlzcG9zaWNpJm9hY3V0ZTtuJnF1b3Q7IGEgc3UgZm9ybXVsYXJpby4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0NvbWllbnphIHJhbmdvIGRlIGEmbnRpbGRlO28nOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdGaW4gcmFuZ28gZGUgYSZudGlsZGU7byc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdBJm50aWxkZTtvIHBvciBEZWZlY3RvJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFBvbmVyIGEgLTEgcGFyYSBxdWUgZWwgYSZudGlsZGU7byBwb3IgZGVmZWN0byBzZWEgZWwgYWN0dWFsKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTHVlZ28gcXVlIGVsIGZvcm11bGFyaW8gc2VhIGVudmlhZG8nOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcHVlc3RhIGEgbW9zdHJhcic7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdNb3N0cmFyICZxdW90O1BsYW50aWxsYSBkZSBFbnZpYWRvJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmlnaXIgYSBwJmFhY3V0ZTtnaW5hIGRlbCBzaXRpbyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ0VzdGEgcGxhbnRpbGxhIGVzIHBhcmEgc2VyIG1vc3RyYWRhIGFsIHVzdWFyaW8gdW5hIHZleiBlbnZpYWRvIGVsIGZvcm11bGFyaW8uIEVzdGEgcGxhbnRpbGxhIG5vIGFmZWN0YSBhIGxvcyBlbWFpbHMgZ2VuZXJhZG9zIHUgb3RyYXMgZGlzcG9zaWNpb25lcyBwYXJhIGVsIGZvcm11bGFyaW8gLS0gcHVlZGUgY29uZmlndXJhciBhIGVzdGFzICZ1YWN1dGU7bHRpbWFzIHBsYW50aWxsYXMgKGRvbmRlIHNlYSBhcHJvcGlhZG8pIGVuIGxhIHNvbGFwYSAmcXVvdDthdmFuemFkbyZxdW90OyBwYXJhIGxvcyBjYW1wb3MgcXVlIHRpZW5lbiBsYSBkaXNwb25pYmlsaWRhZC4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ1AmYWFjdXRlO2dpbmEgRGVzdGlubyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1ZXJpciBOb21icmUgZGUgQ2FtcG9zJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnJmlxdWVzdDtTZSByZXF1aWVyZSBxdWUgbG9zIGNhbXBvcyB0ZW5nYW4gbm9tYnJlPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JlcXVlcmlyIE5vbWJyZSBkZSBDYW1wb3MgJlVhY3V0ZTtuaWNvcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnJmlxdWVzdDtTZSByZXF1aWVyZSBxdWUgbG9zIG5vbWJyZXMgZGUgY2FtcG9zIHNlYW4gJnVhY3V0ZTtuaWNvcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlbmFyIENhbXBvcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnQ2FyZ2FyIHBsYW50aWxsYSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZ3JlZ2FyIHRleHRvIGRlIEJvdCZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdFbGltaW5hciB0ZXh0byBkZSBCb3Qmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0YXIgbGFzIHZhcmlhYmxlcyBjb21vIHNpIGZ1ZXJhbiBuJnVhY3V0ZTttZXJvcyBvIGZyYXNlcyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ09yZGVuIGRlIEludGVycHJldGFjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnU2kgZXhpc3RlIG0mYWFjdXRlO3MgZGUgdW4gQ2FtcG8gQ29tcHV0YWRvLCBlbCBvcmRlbiBkZSBsb3MgYyZhYWN1dGU7bGN1bG9zIGlyJmFhY3V0ZTsgZGVzZGUgYXF1ZWxsb3MgZGUgbiZ1YWN1dGU7bWVybyBkZSBvcmRlbiBtJmFhY3V0ZTtzIGJham8gYSBsb3MgZGUgbiZ1YWN1dGU7bWVybyBkZSBvcmRlbiBtJmFhY3V0ZTtzIGFsdG8nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbG9yIGEgY29tcHV0YXInOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnRnJhc2UnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bSZlYWN1dGU7cmljbyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJyZpcXVlc3Q7TW9zdHJhciBlbCBmb3JtdWxhcmlvIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBzaWduaWZpY2EgcXVlIGN1YWxxdWllciByZXN1bHRhZG8gZGVsIGZvcm11bGFyaW8gcmVlbXBsYXphIGVsIHRhZyB7Y21zX21vZHVsZX0sIG5vbi1pbmxpbmUgcmVlbXBsYXphIGVsIHRhZyB7Y29udGVudH0uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdWYWxvciBwb3IgZGVmZWN0byBwYXJhIGVsIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICcmaXF1ZXN0O0xpbXBpYXIgcG9yIGRlZmVjdG8gYWwgc2VsZWNjaW9uYXI/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ1NlbGVjY2lvbmUgZXN0byBwYXJhIGxpbXBpYXIgZWwgdmFsb3IgcG9yIGRlZmVjdG8gY3VhbmRvIHVuIHVzdWFyaW8gc2VsZWNjaW9uZSBlc3RlIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnQm9ycmFyIGFyY2hpdm8gc3ViaWRvIGRlc3B1ZXMgZGUgcHJvY2VzYXIgKGRpc3Bvc2ljaW9uZXMgZGUgZW1haWwpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IHBhcmEgZWwgY2FtcG8nOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZGUgRW52aW8gZGUgRm9ybWEnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdOZWNlc2l0YSBtYXMgdGlwb3MgZGUgYXJjaGl2b3M/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ0RlbWFzaWFkb3MgdGlwb3MgZGUgYXJjaGl2b3M/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ0NhbWJpYXIgYSBNb2RvIEF2YW56YWRvJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnQ2FtYmlhciBhIE1vZG8gU2ltcGxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RpcmVjdG9yaW8gcGFyYSBndWFyYXIgZWwgYXJjaGl2byc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnU2ltYm9sbyBkZSByZWVtcGxhem8gcGFyYSByZXRvcm5vL251ZXZhIGxpbmVhJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0RlamFyIHZhY2lvIHBhcmEgcGVybWl0aXIgZGVzcGxpZWd1ZSBkZSByZXRvcm5vL251ZXZhcyBsaW5lYXMgJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdFbnZpYXIgdW5hIGNvcGlhIGRlbCBlbnZpbyBhbCB1c3VhcmlvPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnRXRpcXVlcmEgcGFyYSBsYSBjYWphIGRlIHRpbGRhciAoZWxlY2NpJm9hY3V0ZTtuIGRlbCB1c3VhcmlvKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ0Vudmlhcm1lIHVuYSBjb3BpYSBkZSBsYSBmb3JtYSc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOdW5jYSc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdEYXIgb3BjaSZvYWN1dGU7biBhbCB1c3VhcmlvIChjYWphIGRlIHRpbGRhciknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ1NpZW1wcmUnOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5FbCBtb2R1bG8gQ2F0YWxvZ2VyIG5vIHBhcmVjZSBlc3RhciBpbnN0YWxhZG8vYWN0aXZvLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnQURWRVJURU5DSUEhJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgcG9yIERlZmVjdG8nOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBkZSBUYWJsYSwgVCZpYWN1dGU7dHVsb3MgYSBsYSBpenF1aWVyZGEnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIFRhYmxhLCBUJmlhY3V0ZTt0dWxvcyBhbCB0b3BlJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1BsYW50aWxsYSBkZSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICcmaXF1ZXN0O0VzdCZhYWN1dGU7IHNlZ3VybyBxdWUgcXVpZXJlIHNvYnJlIGVzY3JpYmlyIHN1IHBsYW50aWxsYSBjb24gbGEgcGxhbnRpbGxhIHNlbGVjY2lvbmFkYT8gKEEmdWFjdXRlO24gY3VhbmRvIHVzdGVkIGRpZ2EgT0ssIG5lY2VzaXRhciZhYWN1dGU7IGd1YXJkYXIgbG9zIGNhbWJpb3MpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIGFsIGNhbGN1bGFyICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gaGF5IGluZm8gZGlzcG9uaWJsZSBkZSBIVFRQX1JFRkVSRVIgKHByb2JhYmxlbWVudGUgZGViaWRvIGFsIHVzbyBkZSBsYSBWYWxpZGFjaSZvYWN1dGU7biBkZWwgIEVtYWlsIGRlIFVzdWFyaW8pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdFcnJvciBkZSBQYXImYWFjdXRlO21ldHJvIGRlIFZhbGlkYWNpJm9hY3V0ZTtuLiAmaWV4Y2w7UG9yIGZhdm9yIGFzZWcmdWFjdXRlO3Jlc2UgcXVlIGhhIGNvcGlhZG8gZWwgVVJMIGRlIHN1IGRpcmVjY2kmb2FjdXRlO24gZW1haWwgY29ycmVjdGFtZW50ZSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0Vycm9yIGVuIFJlc3B1ZXN0YSBkZSBWYWxpZGFjaSZvYWN1dGU7bi4gJmlleGNsO1BvciBmYXZvciBhc2VnJnVhY3V0ZTtyZXNlIHF1ZSBoYSBjb3BpYWRvIGVsIFVSTCBkZSBzdSBkaXJlY2NpJm9hY3V0ZTtuIGVtYWlsIGNvcnJlY3RhbWVudGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdFcnJvciBlbiBSZXNwdWVzdGEgZGUgVmFsaWRhY2kmb2FjdXRlO24uICZpZXhjbDtObyBoYXkgY2FtcG8gZGUgdmFsaWRhY2kmb2FjdXRlO24gZGUgZW1haWwgZW4gZXN0ZSBmb3JtdWxhcmlvISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnTGEgcGxhbnRpbGxhIGRlbCBmb3JtdWxhcmlvIGZ1ZSBwdWVzdGEgYWwgZCZpYWN1dGU7YSBhdXRvbSZhYWN1dGU7dGljYW1lbnRlIGNvbW8gcGFydGUgZGVsIGFjdHVhbGl6YWRvIGRlIGxhIHZlcnNpJm9hY3V0ZTtuIDAuMyBhIGxhIHZlcnNpJm9hY3V0ZTtuIDAuNC4gVXN0ZWQgZGViZXImYWFjdXRlOyBoYWNlciBhbGd1bm9zIGFqdXN0ZXMuIFNpIGVzdCZhYWN1dGU7IHV0aWxpemFuZG8gZWwgZm9ybXVsYXJpbyBwb3IgZGVmZWN0bywgc2ltcGxlbWVudGUgcmVtcGxhY2UgZXN0YSBwbGFudGlsbGEgY29uICZxdW90O2RlZmF1bHQmcXVvdDsgdXNhbmRvIGVsIGRlc3BsZWdhYmxlIGRlIGFycmliYS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWdyZWd1ZSwgZWRpdGUgeSBhZG1pbmlzdHJlIEZvcm11bGFyaW9zIGludGVyYWN0aXZvcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ1NpIHVzdGVkIHV0aWxpemEgZXZhbHVhY2kmb2FjdXRlO24gZGUgU3RyaW5nLCBsYSAmdWFjdXRlO25pY2Egb3BlcmFjaSZvYWN1dGU7biBkaXNwb25pYmxlIGVzIGNvbmNhdGVuYWNpJm9hY3V0ZTtuICgrKSwgbWllbnRyYXMgcXVlIHNpIHVzYSBldmFsdWFjaSZvYWN1dGU7biBudW0mZWFjdXRlO3JpY2EgdXN0ZWQgdGllbmUgYyZhYWN1dGU7bGN1bG9zIG1hdGVtJmFhY3V0ZTt0aWNvcyBiJmFhY3V0ZTtzaWNvcyB5IG11eSBzaW1wbGVzICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0VuZXJvJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJyZXJvJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJ6byc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQWJyaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXlvJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmlvJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGlvJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQWdvc3RvJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGllbWJyZSc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3R1YnJlJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZpZW1icmUnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RpY2llbWJyZSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnJmlleGNsO1BlcmQmb2FjdXRlO24hIFNlIHByZXNlbnQmb2FjdXRlOyB1biBlcnJvciBlbiBlbCBtYW5lam8gZGVsIGVudiZpYWN1dGU7byBkZSBzdSBmb3JtdWxhcmlvLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdFcnJvciBkZSBlbnYmaWFjdXRlO28gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tZXRpZG8gcG9yIGFyY2hpdm8gYWwgbSZvYWN1dGU7ZHVsbyBkZSBzdWJpZGFzOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdObyBzZSBwdWRvIGhhbGxhciBlbCBtJm9hY3V0ZTtkdWxvIGRlIHN1YmlkYXMnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1N1YmlyL0FkanVudG8sIGVycm9yIGVuIGFyY2hpdm8gJXMgKG5vbWJyZV90bXA6ICVzLCBkZWwgdGlwbyAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gTm8gc2UgcHVlZGUgb2J0ZW5lciBibG9xdWVvIGRlIGFyY2hpdm8uJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZGV0ZXJtaW5hZG86IHNpbiB0aWxkYXInOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZGV0ZXJtaW5hZG86IHRpbGRhZG8nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0VudiZpYWN1dGU7byBkZWwgQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+JmlleGNsO0xhIHBsYW50aWxsYSBkZSBlbWFpbCB0b2RhdiZpYWN1dGU7YSBubyBzZSBjb25maWd1ciZvYWN1dGU7ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvczogJmlleGNsO05vIHNlIGVuY3VlbnRyYSBlbCBtJm9hY3V0ZTtkdWxvIHJlcXVlcmlkbyBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0VudiZpYWN1dGU7byBkZSB1c3VhcmlvIGFwcm9iYWRvICVzIGRlc2RlICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdBY29udGVjaW1pZW50byBkaXNwYXJhZG8gY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIGVudmlhZG8nOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnQWNvbnRlY2ltaWVudG8gZGlzcGFyYWRvIHNpIGhheSB1biBlcnJvciBjdWFuZG8gdW4gZm9ybXVsYXJpbyBkZWwgQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgZXMgZW52aWFkbyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0Fjb250ZWNpbWllbnRvIGRpc3BhcmFkbyBjdWFuZG8gdW4gZm9ybXVsYXJpbyBkZWwgQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgZXMgbW9zdHJhZG8nOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkFjb250ZWNpbWllbnRvIGRpc3BhcmFkbyBjdWFuZG8gdW4gZm9ybXVsYXJpbyBkZWwgQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgZXMgZW52aWFkby48L3A+CjxoND5QYXImYWFjdXRlO21ldHJvczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEVsIG5vbWJyZSBkZWwgZm9ybXVsYXJpbyAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gaWQgaW50ZXJubyBkZWwgZm9ybXVsYXJpbyAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBQcm92ZWUgdW4gdmFsb3IgcG9yIGRlZmVjdG8gYSB1biBjYW1wbyBjb24gZWwgbm9tYnJlIGVzcGVjaWZpY2Fkby48L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+QWNvbnRlY2ltaWVudG8gZGlzcGFyYWRvIHNpIGhheSB1biBlcnJvciBjdWFuZG8gdW4gZm9ybXVsYXJpbyBkZWwgQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgZXMgZW52aWFkbzwvcD4KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRWwgbm9tYnJlIGRlbCBmb3JtdWxhcmlvIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpZCBpbnRlcm5vIGRlbCBmb3JtdWxhcmlvIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gVW5hIGxpc3RhIGRlIHRvZG9zIGxvcyBlcnJvcmVzIGNvbm9jaWRvcyAoc3RyaW5nKTwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkFjb250ZWNpbWllbnRvIGRpc3BhcmFkbyBjdWFuZG8gdW4gZm9ybXVsYXJpbyBkZWwgQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgZXMgbW9zdHJhZG88L3A+CjxoND5QYXImYWFjdXRlO21ldHJvczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEVsIG5vbWJyZSBkZWwgZm9ybXVsYXJpbyAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gaWQgaW50ZXJubyBkZWwgZm9ybXVsYXJpbyAoaW50KTwvbGk+CjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdJRCBkZSByZXNwdWVzdGEuIFVzYWRvIHBvciBlbCBFeHBsb3JhZG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdWYWxvciBwb3IgZGVmZWN0byBkZSBjYW1wbzsgdmVyIGF5dWRhIGRlbCBtJm9hY3V0ZTtkdWxvJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0lEIGRlIGNhbXBvIHBhcmEgb3BlcmFjaW9uZXMgaW50ZXJuYXMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ05vbWJyZSBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnSUQgZGUgRm9ybXVsYXJpbyBwYXJhIG9wZXJhY2lvbmVzIGludGVybmFzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnUGFyJmFhY3V0ZTttZXRyb3MgZ2VuZXJhbGVzIHBhcmEgb3BlcmFjaW9uZXMgaW50ZXJuYXMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5WYXJpYWJsZXMgZGUgUGxhbnRpbGxhIGRlIEZvcm11bGFyaW88L2gzPgo8cD5Vc3RlZCBwdWVkZSBlZGl0YXIgYSBsYSBwbGFudGlsbGEgcGFyYSBoYWNlciBxdWUgZWwgbGF5b3V0IGRlbCBmb3JtdWxhcmlvIHNlIHZlYSBkZSBsYSBmb3JtYSBxdWUgYSB1c3RlZCBtJmFhY3V0ZTtzIGd1c3RlLgogICBQYXJhIHF1ZSBlbCBmb3JtdWxhcmlvIGZ1bmNpb25lLCB1c3RlZCBkZWJlIHNpZW1wcmUgaW5jbHVpciBsYXMgdGFncyB7JGZiX2hpZGRlbn0geSB7JHN1Ym1pdH0uPC9wPgoKPHA+VXN0ZWQgcHVlZGUgbGxlZ2FyIGhhc3RhIGxvcyBjYW1wb3MgZGUgc3UgZm9ybXVsYXJpbywgYmllbiB1c2FuZG8gZWwgYXJyYXkgZGUgJGZpZWxkcyBvIGRpcmVjdGFtZW50ZSBpbmdyZXNhciB1dGlsaXphbmRvIGxvcyBub21icmVzIGRlIGxvcyBjYW1wb3MgKHAuZWouLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkNhZGEgY2FtcG8gdGllbmUgbG9zIHNpZ3VpZW50ZXMgYXRyaWJ1dG9zOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkNhbXBvPC90aD48dGg+VmFsb3I8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIHNpIGVsIGNhbXBvIGRlYmUgc2VyIG1vc3RyYWRvLCAwIGRlIG90cmEgZm9ybWE8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBzaSBlbCBjYW1wbyBkZWJlIHNlciBtb3N0cmFkbywgMCBkZSBvdHJhIGZvcm1hPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD5lbCBzJmlhY3V0ZTttYm9sbyBwYXJhIGNhbXBvcyByZXF1ZXJpZG9zPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPgo8dGQ+bGEgY2xhc2UgQ1NTIGVzcGVjaWZpY2FkYSBwYXJhIGVzdGUgY2FtcG88L3RkPgo8L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+Cjx0ZD4xIHNpIGVsIGNhbXBvIGhhIHBhc2FkbyBsYSB2YWxpZGFjaSZvYWN1dGU7biwgMCBkZSBvdHJhIGZvcm1hPC90ZD4KPC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPgo8dGQ+VGV4dG8gZGVsIHByb2JsZW1hIGRlIHZhbGlkYWNpJm9hY3V0ZTtuLCBlbiBlbCBjYXNvIHF1ZSBlc3RlIGNhbXBvIG5vIHNlYSB2YWxpZGFkbzwvdGQ+CjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+Cjx0ZD4xIHNpIGVsIG5vbWJyZSBkZWwgY2FtcG8gZGViZSBzZXIgb2N1bHRhZG8sIDAgZGUgb3RyYSBmb3JtYSA8L3RkPgo8L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPgo8dGQ+MSBzaSBlbCB0aXBvIGRlIGNhbXBvIHRpZW5lIHVuYSBldGlxdWV0YTwvdGQ+CjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+Cjx0ZD4xIHNpIGVsIGNhbXBvIG5lY2VzaXRhIHNlciBlbnZ1ZWx0byBwb3IgdW5hIERJViAobyBmaWxhIGRlIHRhYmxhLCBzaSBlc3RlIGVzIGxhIGNhbmNpJm9hY3V0ZTtuIHF1ZSB1c3RlZCBiYWlsYSk8L3RkPgo8L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD4KPHRkPmVsIG5vbWJyZSBkZWwgY2FtcG88L3RkPgo8L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+Cjx0ZD5lbCBjb250cm9sIGRlIGVudHJhZGEgZGUgY2FtcG8gKHAuZWouLCBlbCBjYW1wbyBkZSBlbnRyYWRhIGVuIHNpIG1pc21vKTwvdGQ+CjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD4KPHRkPnVuIGJvdCZvYWN1dGU7biBkZSBjb250cm9sIGFzb2NpYWRvIGFsIGNhbXBvIHNpIGVzIGFwbGljYWJsZSAocC5lai4sIGVsIGJvdCZvYWN1dGU7biBlbGltaW5hciBwYXJhIGVudHJhZGFzIGRlIHRleHRvIGV4cGFuZGlibGVzKTwvdGQ+CjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+Cjx0ZD5lbCB0aXBvIGRlIGRhdG9zIGRlbCBjYW1wbzwvdGQ+CjwvdHI+Cgo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+Cjx0ZD4xIHNpIGVsIGNhbXBvLT5lbnRyYWRhIGVzIGVuIHJlYWxpZGFkIHVuYSBjb2xlY2NpJm9hY3V0ZTtuIGRlIGNvbnRyb2xlczwvdGQ+CjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD4KPHRkPjEgc2kgbGEgY29sZWNjaSZvYWN1dGU7biBkZSBjb250cm9sZXMgdGllbmUgZXRpcXVldGFzIHNlcGFyYWRhcyBwYXJhIGNhZGEgY29udHJvbDwvdGQ+CjwvdHI+CjwvdGFibGU+Cgo8cD5FbiBhbGd1bm9zIGNhc28sIGNhbXBvLT5lbnRyYWRhIGVzIGVuIHJlbGlkYWQgdW4gYXJyYXkgZGUgb2JqZXRvcyBtJmFhY3V0ZTtzIHF1ZSB1bmEgZW50cmFkYS4gRXN0byBwYXNhLCBwb3IgZWplbXBsbywgZW4gR3J1cG9zIGRlIENhamFzIGRlIFRpbGRlIG8gR3J1cG9zIGRlIEJvdG9uZXMgZGUgUmFkaW8uIFBhcmEgZWxsb3MsIHVzdGVkIHB1ZWRlIGhhY2VyIHVuYSBpdGVyYWNpJm9hY3V0ZTtuIGEgdHJhdmVzIGRlIGNhbXBvLT5lbnRyYWRhLT5ub21icmUgeSBjYW1wby0+ZW50cmFkYS0+ZW50cmFkYXMuPC9wPgoKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+Cjx0aD5WYWxvcjwvdGg+CjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPgo8dGQ+biZ1YWN1dGU7bWVyb3MgZGUgcCZhYWN1dGU7Z2luYXMgcGFyYSBmb3JtdWxhcmlvcyBtdWx0aXAmYWFjdXRlO2dpbmFzPC90ZD4KPC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPgo8dGQ+biZ1YWN1dGU7bWVybyBwYXJhIGxhIGNvcnJpZW50ZSBwJmFhY3V0ZTtnaW5hIHBhcmEgZm9ybXVsYXJpb3MgbXVsdGlwJmFhY3V0ZTtnaW5hcyA8L3RkPgo8L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD4KPHRkPm11ZXN0cmEgYSAmcXVvdDtwJmFhY3V0ZTtnaW5hIHggZGUgeSZxdW90OyBwYXJhIGZvcm11bGFyaW9zIG11bHRpcCZhYWN1dGU7Z2luYXM8L3RkPgo8L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+Cjx0ZD5DbGFzZSBDU1MgcGFyYSBlbCBmb3JtdWxhcmlvPC90ZD4KPC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPgo8dGQ+Tm9tYnJlIGRlbCBmb3JtdWxhcmlvPC90ZD4KPC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD4KPHRkPklEIGRlbCBmb3JtdWxhcmlvIGVuIGxhIGJhc2UgZGUgZGF0b3M8L3RkPgo8L3RyPgo8dHI+PHRkPnByZXY8L3RkPgo8dGQ+Qm90Jm9hY3V0ZTtuICZxdW90O1ZvbHZlciZxdW90OyBwYXJhIGZvcm11bGFyaW9zIG11bHRpcGFydGVzPC90ZD4KPC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPgo8dGQ+Qm90b25lcyAmcXVvdDtDb250aW51YXImcXVvdDsgbyAmcXVvdDtFbnZpYXImcXVvdDsgcGFyYSBmb3JtdWxhcmlvcyBtdWx0aXBhcnRlcywgc2UgYWp1c3RhIGF1dG9tJmFhY3V0ZTt0aWNhbWVudGU8L3RkPgo8L3RyPgo8L3RhYmxlPgo8cD5ObyBzZSBwYXJhIHF1ZSBxdWllcmUgdXN0ZWQgYWxndW5vcyBkZSBlc29zLCBwZXJvIGFsbCZpYWN1dGU7IGVzdCZhYWN1dGU7bi4uLjwvcD4nOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+VGVuZ2EgcG9yIHNlZ3VybyBlbiBhY3RpdmFyIGVsIHBlcm1pc28gJnF1b3Q7TW9kaWZpY2FyIEZvcm11bGFyaW9zJnF1b3Q7IHBhcmEgYXF1ZWxsb3MgdXN1YXJpb3MgbyBncnVwb3MgZGUgdXN1YXJpb3MgcXVlIGFkbWluaXN0cmFyJmFhY3V0ZTtuIGxvcyBmb3JtdWxhcmlvcyBkZSBjb250YWN0by4gVGFtYmkmZWFjdXRlO24sIHNpIHVzdGVkIHZhIGEgZW52aWFyIGVsIHJlc3VsdGFkbyBkZSBsb3MgZm9ybXVsYXJpb3MgcG9yIGVtYWlsLCBoYWdhIHVuYSBhY3R1YWxpemFjaSZvYWN1dGU7biBkZSBsYSBDb25maWd1cmFjaSZvYWN1dGU7biBlbiBmb3JtYSBhcHJvcGlhZGEuPC9wPgo8cD5Qb3IgZmF2b3IgdGVuZ2EgZW4gY3VlbnRhIHF1ZSB1biBmb3JtdWxhcmlvIGRlIGNvbnRhY3RvIG5vIGRlYmUgZXN0YXIgYWN0aXZvIChwLmVqLiwgZW4gdXNvIHBvciBlbCBwJnVhY3V0ZTtibGljbykgbWllbnRyYXMgdXN0ZWQgZXN0JmFhY3V0ZTsgZW4gZWwgcHJvY2VzbyBkZSBlZGl0YXJsby4gVXN0ZWQgZGViZSBjcmVhciBlbCBmb3JtdWxhcmlvLCB5IGx1ZWdvIGNvbG9jYXIgZWwgdGFnIGNvcnJlc3BvbmRpZW50ZSBlbiB1bmEgcCZhYWN1dGU7Z2luYSBkZSBjb250ZW5pZG8gYWN0aXZhIHMmb2FjdXRlO2xvIGN1YW5kbyBoYXlhIHRlcm1pbmFkbyBkZSBlZGl0YXJsby4gRGUgb3RyYSBmb3JtYSwgcHVlZGUgb2J0ZW5lciByZXN1bHRhZG9zIGNvbiBlcnJvcmVzLjwvcD4KPHA+QWRlbSZhYWN1dGU7cywgZXN0YSB2ZXJzaSZvYWN1dGU7biBubyBzb3BvcnRhIGVsIGVkaXRhZG8gcGFyYWxlbG8gZGUgbG9zIGZvcm11bGFyaW9zLiBQb3IgZmF2b3IgaW5zdHJ1eWEgYSBsb3MgYWRtaW5pc3RyYWRvcmVzIHBhcmEgcXVlIHRlbmdhbiBlbCBjdWlkYWRvIGRlIGVkaXRhciBlbiBmb3JtYSBleGNsdXNpdmEgdW4gZm9ybXVsYXJpbywgZXZpdGFuZG8gY29pbmNpZGlyIGVuIGxhIHRhcmVhIGNvbiBvdHJvIGFkbWluaXN0cmFkb3IuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoeWF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+Cgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KPGg0Pk1haW48L2g0Pgo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+CjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+CjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoJnF1b3Q7UHJldmlvdXMmcXVvdDssICZxdW90O25leHQmcXVvdDssICZxdW90O3N1Ym1pdCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pgo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+CjxoND5Gb3JtIFRlbXBsYXRlPC9oND4KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJiMwMzk7cyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+CjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+CjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPgo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lgo8L3A+Cgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbgppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcgplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPgo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHAKZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUKc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+CjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cKY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPgo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+CjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+CjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPgo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkKc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8L3VsPjwvbGk+PC9saT48L3VsPgoKCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUKYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbgphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+CjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+CjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+Cgo8aDM+Q29uZmlndXJhdGlvbjwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4KPHVsPgo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPgo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+CjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4KPC91bD4KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+CjxwcmU+CgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8KCWZvcm0ge21hcmdpbi10b3A6MH0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9Cglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQoJZmllbGRzZXQgZGl2IHsKCQltYXJnaW4tYm90dG9tOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbTsKCX0KCWZpZWxkc2V0IGRpdiBkaXYgewoJCW1hcmdpbi10b3A6MC41ZW07CgkJbWFyZ2luLWxlZnQ6MWVtCgl9CglmaWVsZHNldCB7CgkJbWFyZ2luLWJvdHRvbToxZW07CgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOwoJCXBhZGRpbmc6MC41ZW0KCX0KCWZpZWxkc2V0IGxhYmVsIHsKCQl3aWR0aDphdXRvOwoJfQoJbGVnZW5kIHsKCQljb2xvcjojRkZGOwoJCWJhY2tncm91bmQ6I0Y2MDsKCQlmb250LXN0eWxlOml0YWxpYzsKCQlmb250LXNpemU6MS4yZW07CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQlwYWRkaW5nOjAuMmVtOwoJCXdpZHRoOmF1dG87CgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDCgl9Cgl0ZXh0YXJlYSB7CgkJbWFyZ2luOiAwLjVlbSAwOwoJCXdpZHRoOjk4JTsKCQloZWlnaHQ6IDZlbQoJfQoKCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMKCQl0byBoZWxwIGFsaWdubWVudCAqLwoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwKCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQoKCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovCgkuY2FwdGNoYSB7CgkJbWFyZ2luOjAuNWVtIDA7CgkJd2lkdGg6MjAwcHg7CgkJdGV4dC1hbGlnbjpjZW50ZXIKCX0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQoKCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLwoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0KPC9wcmU+Cgo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgoKCjxoMz5Lbm93biBJc3N1ZXM8L2gzPgo8dWw+CjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPgo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbgp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8L3VsPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+CjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMi4gMTQgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIFhNTCBleHBvcnQsIFJhZGlvQnV0dG9uIEdyb3VwIHN1Ym1pc3Npb24sIGFuZCBIVE1MIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4KPGxpPlZlcnNpb24gMC40Cgk8dWw+CgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+CgkJPGxpPk1hc3NpdmUgcmVqaWdnZXJpbmcgb2YgY29kZSB0byB3b3JrIHdpdGggQ01TIE1TIDEuMSBwYXJhbWV0ZXIgc2FuaXRpemluZyByZWdpbWU8L2xpPgoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93biZxdW90OyBhbmQgJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyZxdW90OyhDYWxndXkpPC9saT4KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPgoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+CgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjMKICAgPHVsPgogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPgogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPgogICAgICA8bGk+QWRkZWQgUGF1bCBOb29uZSYjMDM5O3MgbmV3LCBpbXByb3ZlZCBjb250YWN0IGZvcm0gdGVtcGxhdGVzPC9saT4KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPgogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+CiAgICAgIDxsaT5UZXh0IEFyZWEgRmllbGQgbm93IGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIHJvd3MgYW5kIGNvbHMgaW4gdGhlIGFkbWluLCBpbnN0ZWFkIG9mIENTUzwvbGk+CiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPgogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPgogICAgICA8bGk+SW1wbGVtZW50ZWQgdGVtcGxhdGVkIGRpc3BsYXkgb2YgZm9ybSByZXN1bHRzIHVwb24gc3VibWlzc2lvbiBpbiBhZGRpdGlvbiB0byBwYWdlIHJlZGlyZWN0aW5nPC9saT4KICAgICAgPGxpPjwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcKICAgPHA+QmlnIHJlbGVhc2U6PHVsPgogICA8bGk+QWRkZWQgJnF1b3Q7RW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MmcXVvdDsgZGlzcG9zaXRpb24uPC9saT4KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+CiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPgogICA8L3VsPgogICA8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4zCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuMgogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToKICAgPHVsPgogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+CiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZAogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLgogICAgICA8L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbAogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+CiAgICAgIDwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KPC91bD4KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzg3NDg1MDc0OTU0Nzc3NjAwMC4xMjE0ODY2ODU2LjEyMjI4ODM4MzAuMTIyMjg4NTg4My4xNDcnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjIyODE5NTY5LjE0NC4xNS51dG1jY249KG9yZ2FuaWMpfHV0bWNzcj1nb29nbGV8dXRtY3RyPWNtc21zIHByZXR0eSB1cmxzfHV0bWNtZD1vcmdhbmljJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEyMjI4ODU4ODMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/et_EE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1Zvcm1pIEVoaXRhamEnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdWJmF1bWw7bGphIFQmdXVtbDsmdXVtbDtwIE0mYXVtbDsmYXVtbDtyYW1hdGEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGlzaXNlbmQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RpdiZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0xpbm51a2UnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdMaW5udWtlc3RlIEdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1ZhbGlrbWVuJnV1bWw7JnV1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVVNBIE9zYXJpaWtpZGUgVmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdSaWlnaSBWYWxpayc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0t1dXAmYXVtbDtldmEgVmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWFkaW9udXBwdWRlIEdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypTYWFkYSB0dWxlbXVzZWQgRS1tYWlsaWdhIFZhbGlrbWVuJnV1bWw7JnV1bWw7IHAmb3RpbGRlO2hqYWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKlNhYWRhIHR1bGVtdXNlZCBFLW1haWxpZ2EgQWFkcmVzc2koZGUpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkZWVyaSBFLW1haWxpIHRlZWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqU2FsdmVzdGEgdHVsZW11c2VkIEZhaWxpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTYWx2ZXN0YSB0dWxlbXVzZWQgQW5kbWViYWFzaSc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUomYXVtbDtyZ21pbmUgbGVodCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZhaWxpICZVdW1sO2xlc2xhYWRpbWluZSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtbWFpbGkgJnF1b3Q7QWFkcmVzc2lsdCZxdW90OyBWJmF1bWw7bGknOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFLW1haWxpICZxdW90O0tlbGxlbHQmcXVvdDsgViZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YWF0aWxpbmUgdGVrc3QnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnRWkgdmFsaWRlZXJpdGEnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnQXJ2JzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ1QmYXVtbDtpc2Fydic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxpIEFhZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTGlubnVrZSBOJm90aWxkZTt1dHVkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BhbHVuIHQmYXVtbDtpZGEgbGFodGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BhbHVuIHNpc2VzdGEgbGFodHJpc3NlICZxdW90OyVzJnF1b3Q7IGFydic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQYWx1biB0JmF1bWw7aWRhIGxhaHRlciAmcXVvdDslcyZxdW90OyBrb3JyZWt0c2VsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BhbHVuIHNpc2VzdGEgbGFodHJpc3NlICZxdW90OyVzJnF1b3Q7IHQmYXVtbDtpc2Fydic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQYWx1biBzaXNlc3RhIGxhaHRyaXNzZSAmcXVvdDslcyZxdW90OyBrb3JyZWt0bmUgZS1tYWlsaSBhYWRyZXNzJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGVpIG9sZSBrb3JyZWt0bmUgZS1tYWlsaSBhYWRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUGFsdW4gc2lzZXN0YSB2JmF1bWw7JmF1bWw7cnR1cywgbWlzIGVpIG9sZSBwaWtlbSBrdWkgJXMgdCZhdW1sO2hlbSZhdW1sO3JraSc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1QmYXVtbDtoZW0mYXVtbDtyaywgbWlkYSBrYXN1dGFqYSBlcmFsZGFqYW5hIHR1bGVtdXN0ZXMsIG1pbGxlcyBvbiByb2hrZW0ga3VpICZ1dW1sO2tzIHYmYXVtbDsmYXVtbDtydHVzJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdTZWxsZSBmdW5rdHNpb29uaSBqYW9rcyBvbiBzdWwgdmFqYSAmcXVvdDslcyZxdW90OyAmb3RpbGRlO2lndXNpJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnVmFiYW5kdXN0ISBTZWxsZWxlIHNla3RzaW9vbmlsZSBsaWdpIHAmYXVtbDsmYXVtbDtzZW1pc2VrcyBlaSBvbGUgc3VsIHBpaXNhdmFsdCAmb3RpbGRlO2lndXNpLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnViZhdW1sO2xqYWRlIGomYXVtbDtyamVrb3JkIHV1ZW5kYXR1ZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnVm9ybSBrdXN0dXRhdHVkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnViZhdW1sO2xpIGt1c3R1dGF0dWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRzaW9vbiBVdWVuZGF0dWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnSiZhdW1sO3RrYW1pc2VrcyBwZWFkIHRlZ2VtYSBsaW5udWtlc2UgJnF1b3Q7JXMmcXVvdDsga2FzdGkuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdTYSBwZWFkIHNpc2VzdGFtYSB2JmF1bWw7aGVtYWx0ICZ1dW1sO2hlIHNpaHRhYWRyZXNzaSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnT2xlZCBraW5kZWwsIGV0IHNvb3ZpZCBrdXN0dXRhZGEgJXMgdm9ybWk/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdPbGVkIGtpbmRlbCwgZXQgc29vdmlkIGt1c3R1dGFkYSAlcyB2JmF1bWw7bGphPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdMYWllbmRhdHVkIHNlYWRlZCBlaSBvbGUgc2FhZGF2YWwgbmlpa2F1YSwga3VuaSBwb2xlIG0mYXVtbDsmYXVtbDtyYXR1ZCB2JmF1bWw7bGphIHQmdXVtbDsmdXVtbDtwaS4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdWJmF1bWw7bGphIG5pbWkgJnF1b3Q7JXMmcXVvdDsgb24ganViYSBrYXN1dHVzZWwuIFBhbHVuIGthc3V0YSB1bmlrYWFsc2VpZCB2JmF1bWw7bGphIG5pbWVzaWQuJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdQaWtrdXM6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMga2FzdGknOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbGlrdXQnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyB0JmF1bWw7aGVtJmF1bWw7cmtpLic7CiRsYW5nWydvcmRlciddID0gJ0omYXVtbDtyamVrb3JkJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW20mYXVtbDsmYXVtbDtyYW1hdGFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnbGlzYXR1ZCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAndXVlbmRhdHVkJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWYWxpICZVdW1sO2tzJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmFsaSBUJnV1bWw7JnV1bWw7cCc7CiRsYW5nWyd0byddID0gJ0tlbGxlbGUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3NhYWphZCc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIHNpaHRhYWRyZXNzaSc7CiRsYW5nWydzYXZlJ10gPSAnU2FsdmVzdGEnOwokbGFuZ1snYWRkJ10gPSAnTGlzYSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVdWVuZGEnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYWx2ZXN0YSBqYSBKJmF1bWw7dGthIFRvaW1ldGFtaXN0JzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRzaW9vbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWFhdG5lJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnVm9ybWlkJzsKJGxhbmdbJ2Zvcm0nXSA9ICclcyBWb3JtJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0c2lvb24nOwokbGFuZ1sndGFiX21haW4nXSA9ICdQZWFtaW5lJzsKJGxhbmdbJ3RhYl9hZGRpdGlvbmFsJ10gPSAnVm9ybWkgU2VhZGVkJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0xhaWVuZGF0dWQgU2VhZGVkJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddID0gJ1RhYmVsaXAmb3RpbGRlO2hpc2UgSyZ1dW1sO2xqZW5kdXNlIFZhbGlrdWQnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTWFsbGlwJm90aWxkZTtoaXNlIEsmdXVtbDtsamVuZHVzZSBWYWxpa3VkJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdWJmF1bWw7bGphICYjMDM5O2tvaHVzdHVzbGlrJiMwMzk7IHN0YWF0dXMgdXVlbmRhdHVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIFN1dXJ1cyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0xhaWVuZHVzZWQnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0x1YmF0dWQgZmFpbGl0JnV1bWw7JnV1bWw7YmlkJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnJlV1bWw7bGVzIGxhZXR1ZCBmYWlsIG9uIGxpaWdhIHN1dXIhIE1ha3NpbWFhbG5lIHN1dXJ1cyBvbjonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdTZWRhIHQmdXVtbDsmdXVtbDtwaSBmYWlsaSBlaSBvbGUgbHViYXR1ZCAmdXVtbDtsZXMgbGFhZGlkYS4gUGFsdW4ga29udHJvbGxpLCBldCBmYWlsaSBsYWllbmQgb24ga29ycmVrdG5lLic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vb2R1bCBlZW1hbGRhdHVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb29kdWxpIHZlcnNpb29uICVzIGluc3RhbGxlZXJpdHVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vb2R1bCB1dWVuZGF0dWQgdmVyc2lvb25pbGUgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RhZ2FzaS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2FhZGEgVm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdKJmF1bWw7dGthLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdNJmF1bWw7cmdpdHVkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ00mYXVtbDtya2ltYXRhJzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTGlzYSBWZWVsIFZhbGlrdWlkJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnS3VzdHV0YSBNJmF1bWw7cmdpdHVkIFZhbGlrdWQnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdMaXNhIFZlZWwgTGlubnVrZXNpJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnS3VzdHV0YSBNJmF1bWw7cmdpdHVkIExpbm51a2VzZWQnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMaXNhIFZlZWwgJlV1bWw7a3MgQWFkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0t1c3R1dGEgTSZhdW1sO3JnaXR1ZCBBYWRyZXNzaWQnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGlzYSBTaWh0YWFkcmVzcyc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdLdXN0dXRhIE0mYXVtbDtyZ2l0dWQgU2lodGFhZHJlc3NpZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01ha3NpbWFhbG5lIFBpa2t1cyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ1ZhbGlrdSBwZWFsa2lyaSc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMgbSZhdW1sO3JnaXR1bmEnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMgbSZhdW1sO3JraW1hdGEnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0xpbm51a2VzdGUgR3J1cGkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnS3VzdHV0YT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VmFsaSAmVXVtbDtrcyZxdW90OyBUZWtzdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1ZhbGlrdSBOaW1pJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdBbGduZSBWYWxpayc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0FsZ25lIFZhbGlrJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsaWt1IE5pbWknOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1ZhbGlrbWVuJnV1bWw7JnV1bWw7IFZhbGlrdWQnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpdmFsaWt1IFZhbGlrdWQnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ1NpaHRhYWRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJ0UtbWFpbGkgJnF1b3Q7S2VsbGVsdCZxdW90OyB2JmF1bWw7bGknOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0thc3V0YSBsJm90aWxkZTt0dmEgZS1tYWlsaSB2YWxpZGVlcmltaXN0JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0thc3V0YSBsJm90aWxkZTt0dmEgZS1tYWlsaSB2YWxpZGVlcmltaXN0IChudC4sIGx1YmEgJnF1b3Q7eEB5JnF1b3Q7IHNlbGxlIGFzZW1lbCwgZXQgbiZvdGlsZGU7dWRhICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJ0UtbWFpbGkgJnF1b3Q7QWFkcmVzc2lsdCZxdW90OyB2JmF1bWw7bGknOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFLW1haWxpIGtvZGVlcmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnVmFsaWttZW4mdXVtbDsmdXVtbDsgcCZvdGlsZGU7aGlzZSBFLW1haWxlcmkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmFpbGluaW1pJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFLW1haWxpIFRlZW1hJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ1Zvcm1pIE5pbWknOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdWb3JtaSBTdGFhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnVmFsbWlzIGF2YWxkYW1pc2Vrcyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnRWkgb2xlIHZhbG1pcyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnTGVodCwga3VodSBzdXVuYXRhIHBlYWxlIHZvcm1pIHNhYXRtaXN0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQYWx1biBsaXNhIHZvcm1pbGUgdiZhdW1sO2xpLCBldCBrYXN1dGFqYSBzaXNlc3R1c2kgayZhdW1sO3NpdGxldGFrcy4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdrYXN1dGEgc2VkYSBvdHNldGVlZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnVm9ybWkgQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdWb3JtaSBWJmF1bWw7bGphZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnViZhdW1sO2xqYSBOaW1pJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhYWRpb251cHB1ZGUgR3J1cGkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1YmYXVtbDtsamEgVCZ1dW1sOyZ1dW1sO3AnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2xvb21ha3Mgdm9ybWkgayZhdW1sO3NpdGxlbWlzZSB2JmF1bWw7bGkuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xpc2EgVXVzIFZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnTiZhdW1sO2l0YSBWb3JtaSBFaGl0YWphIFZlcnNpb29uaT8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdTZWUgc2lzYWxkYWIgc2ludSBWb3JtaSBFaGl0YWphIGluc3RhbGxlZXJpdHVkIHZlcnNpb29uaSBrb21tZW50YWFyaWRlcywgZXQgYWlkYXRhIHZpZ2FkZSBvdHNpbWlzZWwuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMaXNhIFV1cyBWJmF1bWw7bGknOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVm9ybWkgU2FhdG1pc251cHUgVGVrc3QnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1Zvcm1pICZxdW90O0omYXVtbDtyZ21pbmUmcXVvdDsgLSBudXB1IHRla3N0IChrYXN1dGF0YWtzZSBtaXRtZWxlaGVrJnV1bWw7bGplbGlzZSB2b3JtaSBwdWh1bCknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1Zvcm1pICZxdW90O0VlbG1pbmUmcXVvdDsgLSBudXB1IHRla3N0IChrYXN1dGF0YWtzZSBtaXRtZWxlaGVrJnV1bWw7bGplbGlzZSB2b3JtaSBwdWh1bCknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1YmYXVtbDtsamEgVmFsaWRlZXJtaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnVm9ybWkgQ1NTIGtsYXNzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ1YmYXVtbDtsamEgQ1NTIGtsYXNzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnUyZ1dW1sO21ib2wsIG1pbGxlZ2EgbSZhdW1sO3JraWRhIGtvaHVzdHVzbGlrdWQgdiZhdW1sO2xqYWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdLb2h1c3R1c2xpayc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVCZhdW1sO2l0bWluZSBrb2h1c3R1c2xpayc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnUGVpZGEgUGVhbGtpcmknOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnUGVpZGEgdiZhdW1sO2xqYSBuaW1pIHZvcm1pbCc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnS3V2YXRhdiBzdGFhdGlsaW5lIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRlZXJpbWlzZSBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnS3V2YXRhdiByaWRhZGUgYXJ2JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdQdXVkdWInOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdMZWhrdCwgbWlsbGVsZSBzdXVuYXRhIHAmYXVtbDtyYXN0IG4mb3RpbGRlO3Vzb2xla3Uga2lubml0YW1pc3QuJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdLb2h1c3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnViZhdW1sO2xqYSBUaWl0bGkgQXN1a29odCAobWl0dGUtQ1NTIGsmdXVtbDtsamVuZHVzZSBwdWh1bCknOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2xlZnQnXSA9ICdUaWl0ZWwgVmFzYWt1bCc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfYWJvdmUnXSA9ICdUaWl0ZWwgJlV1bWw7bGV2YWwnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdQZWlkYSBWZWFkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdWb3JtaSBLdXZhbWlzZSBWaWlzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICcmQXVtbDtyYSBuJmF1bWw7aXRhIGthc3V0YWphdGVsZSB2ZWF0ZWF0ZWlkJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1tYWlsaSBNYWxsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3NpbWFhbG5lICZ1dW1sO2xlc2xhZXRhdmEgZmFpbGkgc3V1cnVzIChraWxvYmFpdGlkZXMpJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnTHViYXR1ZCBMYWllbmR1c2VkJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdTaXNlc3RhIGtvbWFkZWdhIGVyYWxkYXR1ZCBuaW1la2lyaSwgaiZhdW1sO3RhIHYmYXVtbDtsamEgcHVua3RpZCAobi50LiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gVCZ1dW1sO2hpa3VpZCBpZ25vcmVlcml0YWtzZS4gSiZhdW1sO3R0ZXMgc2VsbGUgdiZhdW1sO2xqYSB0JnV1bWw7aGpha3MgZWkga2VodGkgJnV1bWw7aHRlZ2kgcGlpcmFuZ3V0Lic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnTiZhdW1sO2l0YSBwaWlyYW5ndWlkPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1Zvcm1pIFZhYXRlIGphb2tzIGthc3V0YXRhdiBNYWxsJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnTGVodDogJXMga29ra3UgbGVodGk6ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdWJmF1bWw7bGphbCBlaSBvbGUgbGFpZW5kYXR1ZCBzZWFkZWlkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUJmF1bWw7aXRtYXRhIHYmYXVtbDtsamFkZSB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTHViYSBrYXN1dGFkYSBLaWlydmFsaWt1ZCB2b3JtaWRlIGVoaXRhbWlzZWw/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTHViYSBrYXN1dGFkYSBLaWlydmFsaWt1aWQ/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdLaWlydmFsaWsnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnTWFsbGkgTXV1dHVqYWQnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdTYWFkZXR1ZCc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnU2ludSBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnTXV1dHVqYSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdWYXN0YXYgViZhdW1sO2xpJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0xvbyBOJmF1bWw7aWRpc21hbGwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdMb28gTiZhdW1sO2lkaXNwJmF1bWw7aXMnOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdLYXN1dGEgdGVrc3RpdiZhdW1sO2xqYWwgV1lTSVdZRy10b2ltZXRhamF0Pyc7CiRsYW5nWydkaXNwdHlwZV90YWJsZSddID0gJ1RhYmVsL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdBaW51bHQgQ1NTJzsKJGxhbmdbJ2Rpc3B0eXBlX3RlbXBsYXRlJ10gPSAnTWFsbCc7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYWFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdWZWVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTSZhdW1sO3J0cyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWxsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1dW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1dWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9vYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGV0c2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24KJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8L3VsPiAnOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+CjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+CjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0Cm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+CjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4KCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcKaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPgo8aDQ+TWFpbjwvaDQ+CjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLiBZb3UgYWxzbyBzZWxlY3QgdGhlIGRpc3BsYXkgdHlwZS4gWW91ciBjaG9pY2VzIGFyZTo8L3A+Cjx1bD4KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvbiYjMDM5O3Qga25vdyB3aGF0IHRvIGNob29zZSwgdGhpcyBpcyB0aGUgZWFzaWVzdCBvcHRpb24sIGFuZCB3aWxsIHByb2JhYmx5IGRvIG1vc3Qgb2Ygd2hhdCB5b3Ugd2FudC4gWW91IGNhbiBzdGlsbCB1c2UgQ1NTIHRvIHN0eWxlIHRoZSBmb3JtIGlmIHlvdSB3YW50LjwvbGk+CjxsaT5QdXJlIENTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCwgd2l0aCBhbGwgdGhlIGZpZWxkcyB3cmFwcGVkIGluIDxkaXY+IHRhZ3MuIFlvdSBjYW4gdGhlbiBzdHlsZSB0aGUgZm9ybSBhcyB5b3Ugc2VlIGZpdC48L2xpPgo8bGk+Q3VzdG9tIFRlbXBsYXRlLiBCYXNpY2FsbHksIHlvdSBnZXQgYSBzbWFydHkgdGVtcGxhdGUsIGEgYnVuY2ggb2YgdmFyaWFibGVzLCBhbmQgeW91JiMwMzk7cmUgb24geW91ciBvd24uIFlvdSBoYXZlIHRoZSBwb3dlciB0byBjcmVhdGUgd2hhdGV2ZXIgeW91IHdhbnQuPC9saT4KPC91bD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPgo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+CjxoND5Gb3JtIFNldHRpbmdzPC9oND4KPHA+Rm9ybSBTZXR0aW5ncyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBhIGxvdCBvZiB0aGUgbWVzc2FnZXMgYW5kIHRleHQgaW4gdGhlIGNvbnRyb2xzIGZvciB5b3VyIGZvcm0uIEl0IGFsc28gYWxsb3dzIHlvdSB0byBwaWNrIGEgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPGg0PlRhYmxlLWJhc2VkIExheW91dCBPcHRpb25zPC9oND4KPHA+VGFibGUtbGF5b3V0cyBoYXZlIGdvdHRlbiBzaW1wbGVyLCBzbyB5b3VyIG9ubHkgb3B0aW9uIGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBuYW1lcyByZWxhdGl2ZSB0byB0aGUgaW5wdXRzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyBhIFRhYmxlL0NTUyBsYXlvdXQsIHlvdSBjYW4gdXNlIHRoaXMgdGFiIHRvIHNlbGVjdCB0aGUgZmllbGQgbmFtZSBwb3NpdGlvbnMuPC9wPgo8aDQ+VGVtcGxhdGUgTGF5b3V0IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBpZiB5b3VyIGZvcm0gdXNlcyBhIEN1c3RvbSBUZW1wbGF0ZS48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIHNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuIFVubGVzcyB5b3UmIzAzOTtyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgc21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+CjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+CjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgo8L3VsPgo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLApidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbgp3cml0ZSB5b3VyIENTUy48L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0cwo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPgo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPgo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+CjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPgo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPC91bD48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjx1bD48bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUKZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS4KPC91bD48L2xpPjwvbGk+PC91bD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbiBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+Cgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+U29tZSBmaWVsZCB0eXBlcyBmcm9tIEZlZWRiYWNrRm9ybXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBGb3JtQnVpbGRlci4gSWYgdGhlcmUgaXMgZGVtYW5kIGZvciB0aGVtLCB0aGV5IHdpbGwgYmUgYWRkZWQuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPgo8L3VsPgoKPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+CjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4wLXN2biBvciBsYXRlci48L2xpPgo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBhIGZhaXJseSBlYXJseSB2ZXJzaW9uLCBpZiBub3QgYSByYW5rIGJldGEgcmVsZWFzZSwgYW5kIGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+ICAKPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcJCSAgICA8dWw+CgkJICAgIDxsaT5WZXJzaW9vbiAwLjEgLSA4IEp1bHkgMjAwNi4gRXNtYW5lIHYmYXVtbDtsamFsYXNlPC9saT4KCQknOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNTI2MzMyMDUzLjExNTcxMjE2MTguMTE1Nzg5Njc2My4xMTU4MTYzMjExLjcnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTU3MTIxNjE4LjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0xvbWFrZXJha2VudGFqYSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0tlbnQmYXVtbDtuIHR5eXBwaSZhdW1sOyBlaSBvbGUgYXNldGV0dHUnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVmFsaXRzZSB5a3NpIHRhaSB1c2VhbXBpYSBrYXRhbG9naWtvaGRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctIEtlbnR0JmF1bWw7cnlobSZhdW1sO24gKGZpZWxkc2V0KSBhbGt1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy0gS2VudHQmYXVtbDtyeWhtJmF1bWw7biAoZmllbGRzZXQpIGxvcHB1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3Rpa2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnU2FsYXNhbmEnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEFnYWluRmllbGQnXSA9ICdTYWxhc2FuYSB1dWRlbGxlZW4gKHZhcm1lbm51cyknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGVrc3Rpa2VudHQmYXVtbDsgKHVzZWl0YSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RpYWx1ZSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnUGFpbmlrZSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdWYWxpbnRhbGFhdGlra28nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdWYWxpbnRhbGFhdGlra29yeWhtJmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0FsYXN2ZXRvdmFsaWtrbyc7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnVnVvc2lhbGFzdmV0b3ZhbGlra28nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTW9uaXZhbGludGEnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnT3NhdmFsdGlvdmFsaWtrbyAoVVNBKSc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLYW5hZGFuIHByb3ZpbnNzaXQgLXZhbGlra28nOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdNYWF2YWxpbnRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnUCZhdW1sO2l2JmF1bWw7eXN2YWxpbnRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnQWlrYXZhbGludGEnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdWYWxpbnRhcGFsbG9yeWhtJmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJyogTCZhdW1sO2hldCZhdW1sOyB2YXN0YXVrc2V0IGFsYXN2ZXRvdmFsaWtvbiBtdWthaXNlc3RpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqIFRhbGxlbm5hIHZhc3RhdWtzZXQgYWxhc3ZldG92YWxpa29uIG11a2Fpc2VzdGknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKiBUYWxsZW5uYSB2YXN0YXVrc2V0IHVzZWlzaWluIHRpZWRvc3RvaWhpbiBlcmkgdmFsaW50b2plbiBtdWthaXNlc3RpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJyogT2hqYWEgc2l2dWxsZSBhbGFzdmV0b3ZhbGlrb24gbXVrYWFuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJyogTCZhdW1sO2hldCZhdW1sOyB2YXN0YXVrc2V0IGFzZXRldHR1aWhpbiBzJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVpc2lpbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqIFRhcmtpc3RhcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJyogUyZhdW1sO2hrJm91bWw7cG9zdGkgJnF1b3Q7UyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdHRlZXN0YSZxdW90OyBrZW50JmF1bWw7c3QmYXVtbDssIGphIGwmYXVtbDtoZXQmYXVtbDsga29waW9pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKiBUYWxsZW5uYSB2YXN0YXVrc2V0IHRpZWRvc3Rvb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKiBUYWxsZW5uYSB2YXN0YXVrc2V0IHRpZXRva2FudGFhbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqIFRhbGxlbm5hIHR1bG9rc2V0IEZvcm1Ccm93c2VyIHYuMyBtb2R1dWxpbGxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKiBLdXRzdSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7JmF1bWw7IHRhZ2lhIGxvbWFra2VlbiB0dWxva3NpbGxhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKiBMJmF1bWw7aGV0JmF1bWw7IHZhcGFhdmFsaW50YWlzZWVuIGxvbWFrZSB0b2ltaW50b29uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJyogTCZhdW1sO2hldCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7JmF1bWw7biBzJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVlc2Vlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqIEwmYXVtbDtoZXQmYXVtbDsgcyZhdW1sO2hrJm91bWw7cG9zdGkgQ01TOm4geWxsJmF1bWw7cGl0b2smYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctIFNpdnVudmFpaHRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnVGllZG9zdG9uIGxhdGF1cyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ1MmYXVtbDtoayZvdW1sO3Bvc3RpbiAmcXVvdDtMJmF1bWw7aGV0dCZhdW1sO2omYXVtbDsmcXVvdDsga2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ1MmYXVtbDtoayZvdW1sO3Bvc3RpbiAmcXVvdDtMJmF1bWw7aGV0dCZhdW1sO2omYXVtbDsmcXVvdDsga2VudHQmYXVtbDsgdXVkZWxsZWVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnUyZhdW1sO2hrJm91bWw7cG9zdGluICZxdW90O05pbWkmcXVvdDsga2VudHQmYXVtbDsmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW4gJnF1b3Q7QWloZSZxdW90OyBrZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy0gS2lpbnRlJmF1bWw7IHRla3N0aSc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy0gS2lpbnRlJmF1bWw7IGxpbmtraSc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmtraSAoSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHN5Jm91bWw7dHQmYXVtbDttJmF1bWw7KSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLSBQaWlsb3RldHR1IGtlbnR0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gTGFza2V0dHUga2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctIFlrc2lsJm91bWw7aXYmYXVtbDsga29rb25haXNsdWt1IChzYXJqYW51bWVybyknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctIEsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsgdGFnaWt1dHN1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnWXJpdHlzaGFrZW1pc3RvbiBrZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLSBNb2R1dWxpbiBsaWl0dHltJmF1bWw7biBrZW50dCZhdW1sOyc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdFaSB0YXJraXN0dXN0YSc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lZXJpbmVuJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0tva29uYWlzbHVrdSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0ZSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdQdWhlbGlubnVtZXJvIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnVmFsaW50YSB2YWFkaXRhYW4nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1Rhcmtpc3RhIHMmYXVtbDsmYXVtbDtubiZvdW1sO25tdWthaXNlbGxhIGxhdXNla2tlZWxsYSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdLZW50JmF1bWw7biBhcnZvIGVpIG9sZSBtJmF1bWw7JmF1bWw7cml0dGVseW4gbXVrYWluZW4nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ1ZhYWRpdHVzdGEga2VudCZhdW1sO3N0JmF1bWw7IHB1dXR0dXUgYXJ2byc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ09sZSBoeXYmYXVtbDsgamEgYW5uYSBhcnZvIGtlbnR0JmF1bWw7JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdTeSZvdW1sO3QmYXVtbDsgbnVtZXJvIGtlbnR0JmF1bWw7JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdBcnZvIGVpIG9sZSBzYWxsaXR0dSBrZW50JmF1bWw7c3MmYXVtbDsgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdTeSZvdW1sO3QmYXVtbDsga29rb25haXNsdWt1IGtlbnR0JmF1bWw7JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdTeSZvdW1sO3QmYXVtbDsgcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUga2VudHQmYXVtbDsmYXVtbDtuICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdTJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0dGVlbiBhcnZvIGVpIHZhc3RhYSBhcnZvYSBrZW50JmF1bWw7c3MmYXVtbDsgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdTeSZvdW1sO3QmYXVtbDsgcHVoZWxpbm51bWVybyBrZW50dCZhdW1sOyZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnT2xlIGh5diZhdW1sOyBqYSBraXJqYXVkdSBzaXMmYXVtbDtsbGUgayZhdW1sO3l0dCZhdW1sO2VuIHQmYXVtbDt0JmF1bWw7IGxvbWFrZXR0YSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBlaSBuJmF1bWw7eXQmYXVtbDsgb2xldmFuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRlJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdLZW50JmF1bWw7biBtYWtzaW1pcGl0dXVzIG9uICVzIG1lcmtraSZhdW1sOyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdBbm5hIGFydm8sIGpva2Egb24gdiZhdW1sO2hpbnQmYXVtbDsmYXVtbDtuICVzIG1lcmtraSZhdW1sOyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0Vyb3Rpbm1lcmtraSBrZW50aWxsZSwgam90a2EgcGFsYXV0dGF2YXQgZW5lbW0mYXVtbDtuIGt1aW4geWhkZW4gYXJ2b24nOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1RhcnZpdHNldCAmcXVvdDslcyZxdW90OyBvaWtldWRldCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7a3Nlc2kgdCZhdW1sO3QmYXVtbDsgdG9pbWludG9hJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU2ludWxsYSBlaSBvbGUgdGFydml0dGF2aWEgb2lrZXVrc2lhJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdLZW50dGllbiBqJmF1bWw7cmplc3R5cyBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnTG9tYWtlIHBvaXN0ZXR0dSc7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnS2VudHQmYXVtbDsgcG9pc3RldHR1JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0FzZXR1a3NldCBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdTaW51biB0YXJ2aXRzZWUgdmFsaXRhICZxdW90OyVzJnF1b3Q7IGphdGthYWtzZXNpJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdWJmF1bWw7aGludCZhdW1sOyZhdW1sO24geWtzaSBrb2hkZSB0YXJ2aXRhYW4nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnSGFsdWF0a28gdmFybWFzdGkgcG9pc3RhYSBsb21ha2tlZW4gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0hhbHVhdGtvIHZhcm1hc3RpIHBvaXN0YWEga2VudCZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnTGlzJmF1bWw7YXNldHVrc2V0IGVpdiZhdW1sO3Qgb2xlIHZhbGl0dGF2aXNzYSBlbm5lbiBrZW50JmF1bWw7biB0eXlwaW4gdmFsaW50YWEnOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdLZW50JmF1bWw7biBuaW1pICZxdW90OyVzJnF1b3Q7IG9uIGpvIGsmYXVtbDt5dCZvdW1sO3NzJmF1bWw7Lic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnS2VudCZhdW1sO2xsJmF1bWw7IHR1bGVlIG9sbGEgbmltaSc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdUdW50ZW1hdG9uJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdwaXR1dXM6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgbGFhdGlra29hJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyB2YWxpbnRhYSc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIG1lcmtraSZhdW1sOy4nOwokbGFuZ1snb3JkZXInXSA9ICdKJmF1bWw7cmplc3R5cyc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tlaSBhbm5ldHR1XSc7CiRsYW5nWydhZGRlZCddID0gJ2xpcyZhdW1sO3R0eSc7CiRsYW5nWyd1cGRhdGVkJ10gPSAncCZhdW1sO2l2aXRldHR5JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ0omYXVtbDtyamVzdHlzIGFzZXR1a3NldCB0dWxvc3RlZXNzYSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVmFsaXRzZSB5a3NpJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmFsaXRzZSB0eXlwcGknOwokbGFuZ1sndG8nXSA9ICdWYXN0YWFub3R0YWphJzsKJGxhbmdbJ3llcyddID0gJ0t5bGwmYXVtbDsnOwokbGFuZ1snbm8nXSA9ICdFaSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAndmFzdGFhbm90dGFqYXQnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG1haGRvbGxpc3RhIHRpZWRvc3RvYSc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIG0mYXVtbDsmYXVtbDtyJmF1bWw7bnAmYXVtbDsmYXVtbDt0JmF1bWw7JzsKJGxhbmdbJ3NhdmUnXSA9ICdUYWxsZW5uYSc7CiRsYW5nWydhZGQnXSA9ICdMaXMmYXVtbDsmYXVtbDsnOwokbGFuZ1sndXBkYXRlJ10gPSAnUCZhdW1sO2l2aXQmYXVtbDsnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdUYWxsZW5uYSBqYSBqYXRrYSBtdW9ra2F1c3RhJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnVGllZG90JzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYWF0dGluZW4nOwokbGFuZ1snZm9ybXMnXSA9ICdMb21ha2tlZXQnOwokbGFuZ1snZm9ybSddID0gJ0xvbWFrZSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQXNldHVrc2V0JzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdLZW50JmF1bWw7biAmcXVvdDt2YWFkaXR0dSZxdW90OyB0aWxhIHAmYXVtbDtpdml0ZXR0eSc7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzaW1pa29rbyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1AmYXVtbDsmYXVtbDt0dGVldCc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnU2FsbGl0dXQgdGllZG9zdG90eXlwaXQnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdMJmF1bWw7aGV0ZXR0eSB0aWVkb3N0byBvbiBsaWlhbiBzdXVyaS4gU3V1cmluIHNhbGxpdHR1IGtva28gb246JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGllZG9zdG9uIHR5eXBwaSZhdW1sOyBlaSBvbGUgc2FsbGl0dHUuIFRhcmtpc3RhIHRpZWRvc3RvbiB0eXlwcGkuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0xhdGFhJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdMb21ha2UgdHVvdHUnOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnTG9tYWtrZWVuIHR1b250aSBlcCZhdW1sO29ubmlzdHVpLiBYTUwtdGllZG9zdG9uIG11b2Rvc3NhIG9saSB2aXJoZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpdmkmYXVtbDsnOwokbGFuZ1snY29scyddID0gJyVzIHNhcmFrZXR0YSc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdHVubmluIGtlbGxvJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC10dW5uaW4ga2VsbG8nOwokbGFuZ1snaG91ciddID0gJ1R1bnRpJzsKJGxhbmdbJ21pbiddID0gJ01pbnV1dHRpJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYWFuaSc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnQWx1ZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdLaWl0b3MuIExvbWFrZSBvbiB0YWxsZW5uZXR0dSc7CiRsYW5nWydlZGl0J10gPSAnTXVva2thYSc7CiRsYW5nWydkZWxldGUnXSA9ICdQb2lzdGEnOwokbGFuZ1snZGF5J10gPSAnUCZhdW1sO2l2JmF1bWw7JzsKJGxhbmdbJ21vbiddID0gJ0t1dWthdXNpJzsKJGxhbmdbJ3llYXInXSA9ICdWdW9zaSc7CiRsYW5nWydub25lJ10gPSAnKGVpIG1pdCZhdW1sOyZhdW1sO24pJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHV1bGluIGFzZW5udXMgcG9pc3RldHR1JzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHV1bGluIHZlcnNpbyAlcyBhc2VubmV0dHUuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdXVsaSBwJmF1bWw7aXZpdGV0dHkgdmVyc2lvb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1Rha2Fpc2luLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdMJmF1bWw7aGV0JmF1bWw7IGxvbWFrZSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdKYXRrYSc7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnVmFsaXR0dSc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdFaSB2YWxpdHR1JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUCZhdW1sOyZhdW1sO3NpdnUnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0xvbWFra2VlbiB0dWxvc3R1c2FzZXR1a3NldCc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR5cyc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEtYXNldHVrc2V0JzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0xpcyZhdW1sO2FzZXR1a3NldCc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdMb21ha2tlZW4gbWFsbGknOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0wmYXVtbDtoZXR5c21hbGxpJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQtaW50ZWdyYWF0aW8nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5UJmF1bWw7c3MmYXVtbDsga2VudCZhdW1sO3NzJmF1bWw7IHZvaXQgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyBzbWFydHktbXV1dHR1amlhPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdmFsaW50b2phJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnUG9pc3RhIHZhbGl0dXQgdmFsaW5uYXQnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdmFsaW50YWxhYXRpa29pdGEnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdQb2lzdGEgdmFsaXR1dCB2YWxpbnRhbGFhdGlrb3QnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdXVzaSBvc29pdGUnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdQb2lzdGEgdmFsaXR1dCBvc29pdHRlZXQnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHV1c2kga29oZGUnOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnUG9pc3RhIHZhbGl0dXQga29odGVldCc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ0lQLW9zb2l0dGVlc3Rhc2kgb24gdHVsbHV0IGxpaWFuIG1vbnRhIHMmYXVtbDtoayZvdW1sO3Bvc3RpYS4gUm9za2Fwb3N0aXR1bm5pc3R1cyBvbiBlc3QmYXVtbDtueXQgbCZhdW1sO2hldHlrc2V0Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdNYWhkb2xsaW5lbiByb3NrYXBvc3RpIElQLW9zb2l0dGVlc3RhICVzIGVzdGV0dHkuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdVdWRlbGxlZW5qJmF1bWw7cmplc3QmYXVtbDsga2VudHRpJmF1bWw7JzsKJGxhbmdbJ2NhbmNlbCddID0gJ1BlcnUnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnQXJ2bzogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0FsbGEgb24gbGlzdGF0dHVuYSBhdHRyaWJ1dXR0ZWphLCBqb3RrYSBvdmF0IGsmYXVtbDt5dCZvdW1sO3NzJmF1bWw7IEthdGFsb29naW1vZHV1aXNzYS48YnIgLz5Wb2l0IG15Jm91bWw7cyB2YWlodG9laHRvaXNlc3RpIGFudGFhIHNhbGxpdHR1amEgYXJ2b2plbiBsYWFqdXVrc2lhLCBhcnZvamEgdGFpIHVzZWl0YSBhcnZvamEsIGpvaWxsYSBzdW9kYXRldGFhbiBsaXN0YSBrb2h0ZWlzdGEsIGpvdGthIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7bi48YnIvPgo8YnIvPgo8c3Ryb25nPkFydm9qZW4gbGFhanV1ZGV0Ojwvc3Ryb25nPjxici8+CkxhYWp1dWRldCB2b2l2YXQgb2xsYSBtJmF1bWw7JmF1bWw7cml0ZWx0eWx0JmF1bWw7IG1pbmltaS0gamEgbWFrc2ltaWFydm9qZW4gbXVrYWFuIHQmYXVtbDtsbCZhdW1sOyBzeW50YWtzaWxsYTogJnF1b3Q7cmFuZ2U6IG1pbmFydm8gdG8gbWF4YXJ2byZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+VXNlYW1waSBhcnZvOjwvc3Ryb25nPjxici8+Ck0mYXVtbDsmYXVtbDtyaXRlbGwmYXVtbDtrc2VzaSB1c2VhbW1hbiBhcnZvbiBhdHR0cmlidXV0aWxsZSwgayZhdW1sO3l0JmF1bWw7IHN5bnRha3NpYSAmcXVvdDttdWx0aTogYXJ2bzF8YXJ2bzJ8YXJ2bzMmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPlBpaWxvdGV0dHVqZW4ga2VudHRpZW4gYXJ2b3Q8L3N0cm9uZz48YnIvPgpNJmF1bWw7JmF1bWw7cml0ZWxsJmF1bWw7a3NpIGFydm9uIHBpaWxvdGV0dXN0YSBrZW50JmF1bWw7c3QmYXVtbDssIGsmYXVtbDt5dCZhdW1sOyBzeW50YWtzaWEgeyRmbGRfaWR9PGJyLz4KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnUyZhdW1sOyZhdW1sO25uJm91bWw7bGxpbmVuIG11dXR0dWphLCBqb2thIHNhbGxpaSBrYXRhbG9naWtvaHRlZWRlbiBzdW9kYXR0YW1pc2VuIG5pbWVuIG11a2Fhbic7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ01vbml2YWxpbnRha2VudCZhdW1sO24ga29ya2V1cyc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnS2F0YWxvZ2lrb2h0ZWVuIG5pbWVuIHMmYXVtbDsmYXVtbDtubiZvdW1sO2xsaW5lbiBtdXV0dHVqYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdLZW50JmF1bWw7biBrb3JrZXVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ1RhbGxlbm51c2thbnNpbyB0aWVkb3N0b2lsbGUnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7IHRhZ2knOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1NpdnUsIGpvbGxlIHBhbGF0YWFuIGwmYXVtbDtoZXR5c2xpbmtlaXN0JmF1bWw7JzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnTCZhdW1sO2hldGV0dHkgbG9tYWtlcmFrZW50YWphbiBrYXV0dGEnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0wmYXVtbDtoZXR5a3NlbiBrYXRlZ29yaWEnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdMJmF1bWw7aGV0JmF1bWw7IHQmYXVtbDttJmF1bWw7IHRpZWRvc3RvIGwmYXVtbDtoZXR5c21vZHV1bGlsbGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnU2VsaXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWFrc2ltaXBpdHV1cyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ1ZhbGludGFsYWF0aWtvbiBvdHNpa2tvJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnVmFsaW50YXBhbGxvbiBvdHNpa2tvJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdBcnZvIHZhbGl0dHVuYSc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdBcnZvIHZhbGl0c2VtYXR0b21hbmEnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ1ZhbGludGFsYWF0aWtrb3J5aG0mYXVtbDtuIHRpZWRvdCc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdQb2lzdGE/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1ZhbGl0c2UgeWtzaSZxdW90OyB0ZWtzdGknOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnVmFsaW5uYW4gYXJ2byc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdWYWxpbm5hbiBuJmF1bWw7eXRldHQmYXVtbDt2JmF1bWw7IG5pbWknOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdWYWxpbm5hbiBvdHNpa2tvJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdPbGV0dXN2YWxpbnRhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnT2xldHVzdmFsaW50YSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ09sZXR1c3ZhbGludGEnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdWYWxpbm5hbiBuaW1pJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ0wmYXVtbDtoZXRldHR5IGFydm8nOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ0FsYXN2ZXRvdmFsaWtvbiB2YWxpbm5hdCc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTW9uaXZhbGlubmFuIHZhaWh0b2VoZG90JzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdWYXN0YWFub3R0YWphbiBzJmF1bWw7aGsmb3VtbDtwb3N0aW9zb2l0ZSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0tvaGRldGllZG9zdG9uIG5pbWknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7TmltaSZxdW90OyBzJmF1bWw7aGsmb3VtbDtwb3N0aWluJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdLJmF1bWw7eXQmYXVtbDsgbCZvdW1sO3lzJmF1bWw7JmF1bWw7IHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXR0ZWVuIHRhcmtpc3R1c3RhJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0smYXVtbDt5dCZhdW1sOyBsJm91bWw7eXMmYXVtbDsmYXVtbDsgcyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdHRlZW4gdGFya2lzdHVzdGEgKGVzaW1lcmtpa3NpIHNhbGxpICZxdW90O3hAeSZxdW90Oywgc2VuIHNpamFhbiBldHQmYXVtbDsgdmFhZGl0YWFuJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7TCZhdW1sO2hldHQmYXVtbDtqJmF1bWw7biBvc29pdGUmcXVvdDsgcyZhdW1sO2hrJm91bWw7cG9zdGlpbic7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ1MmYXVtbDtoayZvdW1sO3Bvc3RpbiBtZXJraXN0Jm91bWw7a29vZGF1cyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnQWxhc3ZldG92YWxpa2tvb24gcGVydXN0dXZhdCBsJmF1bWw7aGV0dCZhdW1sO2omYXVtbDtuIHRpZWRvdCc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdUaWVkb3N0b25pbWknOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ1MmYXVtbDtoayZvdW1sO3Bvc3RpbiBhaWhlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0xvbWFra2VlbiBuaW1pJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnTG9tYWtrZWVuIHRpbGEnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdWYWxtaXMgayZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sO2tzaSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnRWkgdmFsbWlzJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTaXZ1LCBqb2xsZSBsJmF1bWw7aGV0eWtzZW4gaiZhdW1sO2xrZWVuIHNpaXJyeXQmYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdMaXMmYXVtbDsmYXVtbDsgbG9tYWtrZWVzZWVuIGtlbnR0JmF1bWw7LCBqb3R0YSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gYW50YW1hIHRpZXRvIGsmYXVtbDtzaXRlbGwmYXVtbDsmYXVtbDtuLiBWb2l0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnayZhdW1sO3l0dCZhdW1sOyZhdW1sOyB0JmF1bWw7dCZhdW1sOyBvaWtvcG9sa3VhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdMb21ha2tlZW4gYWxpYXMnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXSA9ICdBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0xvbWFra2VlbiBrZW50JmF1bWw7dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0tlbnQmYXVtbDtuIHR1bm5pc3RlJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGtlbnR0aWVuIGFsaWFrc2V0JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdUJmF1bWw7bSZhdW1sO24ga2xpa2thYW1pbmVuIG4mYXVtbDt5dHQmYXVtbDsmYXVtbDsga2VudHRpZW4gYWxpYWtzZXQsIGt1biBsaXMmYXVtbDt0JmF1bWw7JmF1bWw7biB0YWkgbXVva2F0YWFuIGxvbWFrZXR0YSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnS2VudCZhdW1sO24gbmltaSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0tlbnQmYXVtbDtuIGFsaWFzIGphIERPTSBpZCAoQ1NTIGlkKSBhdHRyaWJ1dXR0aSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdWYWxpbnRhcnlobSZhdW1sO24gdGllZG90JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdLZW50JmF1bWw7biB0eXlwcGknOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2x1b2Rha3Nlc2kgbG9tYWtrZWVuIGsmYXVtbDtzaXR0ZWx5a2VudCZhdW1sO24nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHV1c2kgbG9tYWtlJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ04mYXVtbDt5dCZhdW1sOyBsb21ha2UtZWRpdG9yaW4gdmVyc2lvPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1QmYXVtbDttJmF1bWw7IGxpaXR0JmF1bWw7JmF1bWw7IGFzZW5uZXR0dW5hIG9sZXZhbiBMb21ha2VyYWtlbnRhamFuIHZlcnNpb24ga29tbWVudHRpaW4gdmlyaGVpZGVuIGV0c2ltaXNlbiBoZWxwb3R0YW1pc2Vrc2knOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0xpcyZhdW1sOyZhdW1sOyB1dXNpIGtlbnR0JmF1bWw7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0xvbWFra2VlbiBMJmF1bWw7aGV0JmF1bWw7LXBhaW5pa2tlZW4gdGVrc3RpJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnUGFpbmlra2VlbiB0ZWtzdGknOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdMaXMmYXVtbDsmYXVtbDsgbG9tYWtrZWVuIEwmYXVtbDtoZXQmYXVtbDstcGFpbmlra2Vlc2VlbiBKYXZhU2NyaXB0LWtvb2RpLCBqb2thIGF1dHRhYSBlc3QmYXVtbDttJmF1bWw7JmF1bWw7biB1c2VhbW1hdCBsJmF1bWw7aGV0eWtzZXQ/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdHVydmFrb29kaSc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnTG9tYWtrZWVuIFNldXJhYXZhLXBhaW5pa2tlZW4gdGVrc3RpIChLJmF1bWw7eXRldCZhdW1sOyZhdW1sO24gdmFpbiBtb25pc2l2dWlzaWxsYSBsb21ha2tlaWxsYSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0xvbWFra2VlbiBFZGVsbGluZW4tcGFpbmlra2VlbiB0ZWtzdGkgKEsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biB2YWluIG1vbmlzaXZ1aXNpbGxhIGxvbWFra2VpbGxhKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnS2VudCZhdW1sO24gdGFya2lzdHVzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnVGFya2lzdGV0dGF2YSBrZW50dCZhdW1sOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MtaWQgdCZhdW1sO2xsZSBrZW50JmF1bWw7bGxlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnTG9tYWtrZWVuIENTUy1sdW9ra2EnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnS2VudCZhdW1sO24gQ1NTLWx1b2trYSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyB0YWdpLCBqb3RhIGt1dHN1dGFhbiBlbm5lbiBrdWluIGxvbWFrZSBuJmF1bWw7eXRldCZhdW1sOyZhdW1sO24gZW5zaW1tJmF1bWw7aW5lbiBrZXJyYW4gKGt1dHN1dGFhbiB2YWluIGtlcnJhbiknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyB0YWdpLCBqb3RhIGt1dHN1dGFhbiBlbm5lbiBrdWluIGxvbWFrZSBuJmF1bWw7eXRldCZhdW1sOyZhdW1sO24gZW5zaW1tJmF1bWw7aW5lbiBrZXJyYW4gKGt1dHN1dGFhbiBqb2thaXNlbGxhIG1vbmlzaXZ1aXNlbiBsb21ha2tlZW4gc2l2dWxsYSknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdHRlbGVtJmF1bWw7IHRhZ2ksIGpvdGEga3V0c3V0YWFuIGxvbWFra2VlbiB0YXJraXN0dWtzZXNzYSc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1ZhYWRpdHR1amVuIGtlbnR0aWVuIHN5bWJvbGknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdWYWFkaXRhYW4nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1ZhYWRpdGFhbiB2YXN0YXVzIHQmYXVtbDtoJmF1bWw7biBrZW50dCZhdW1sOyZhdW1sO24nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1BpaWxvdGEgb3RzaWtrbyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdQaWlsb3RhIGtlbnQmYXVtbDtuIG5pbWkgbG9tYWtrZWVsbGEnOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ04mYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsga2lpbnRlJmF1bWw7IHRla3N0aSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ0smYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsgcyZhdW1sOyZhdW1sO25uJm91bWw7bm11a2FpbmVuIGxhdXNla2UnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0t1aW5rYSBtb250YSByaXZpJmF1bWw7IG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7bic7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdWYWluIGx1a3UnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0VpIG9sZXR1c3RhJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2l2dSwgam9sbGUgc2lpcnJ5dCZhdW1sOyZhdW1sO24gaHl2JmF1bWw7a3N5bm4mYXVtbDtuIGomYXVtbDtsa2Vlbic7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVCZhdW1sO3QmYXVtbDsgcyZhdW1sOyZhdW1sO25uJm91bWw7bGxpc3QmYXVtbDsgbXV1dHR1amFhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biwgam9zIHRhcmtpc3R1c3R5eXBwaW4mYXVtbDsgb24gcmVnZXhpaW4gbGlpdHR5diZhdW1sOyB2YWxpbnRhLiBTaXMmYXVtbDtsdCZhdW1sOyZhdW1sOyBrb2tvIFBlcmwtdHl5bGlzZW4gcmVnZXhpbiwgbXVrYWFuIGx1a2llbiBhbG9pdHVzL3B5cyZhdW1sO3l0eXMgdmlub3ZpaXZhdCBqYSBsaXB1dCAoZXNpbS4gJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdQYWtvbGxpbmVuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnUGlpbG90YSB2aXJoZWV0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdMb21ha2tlZW4gbiZhdW1sO3l0Jm91bWw7biB0eXlwcGknOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0VzdCZhdW1sOyBrYWlra2llbiBkZWJ1ZyB2aWVzdGllbiBuJmF1bWw7eXR0JmF1bWw7bWluZW4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBwb2hqYSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdTaWlycmV0dCZhdW1sO3YmYXVtbDtuIHRpZWRvc3RvbiBtYWtzaW1pa29rbyAoa2lsb3RhdnVpbmEpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGllZG9zdG9uIG1ha3NpbWlrb2tvb24gdmFpa3V0dGFhIHQmYXVtbDttJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0eWtzZW4gbGlzJmF1bWw7a3NpIHBocC10dWxraW4gamEgd2ViLXBhbHZlbGltZW4gYXNldHVrc2lzc2Egb2xldmF0IHJham9pdHVrc2V0Lic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1NhbGxpdHV0IHRpZWRvc3RvcCZhdW1sOyZhdW1sO3R0ZWV0JzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdTeSZvdW1sO3QmYXVtbDsgcGlsa3VpbGxhIGVyb3RldHR1IGxpc3RhIHAmYXVtbDsmYXVtbDt0dGVpc3QmYXVtbDssIGlsbWFuIHBpc3RldHQmYXVtbDsgKGVzaW0uICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFYmYXVtbDtsaWx5Jm91bWw7bnRlaiZhdW1sOyBlaSBodW9taW9pZGEuIEpvcyBqJmF1bWw7dCZhdW1sO3QgdCZhdW1sO20mYXVtbDtuIHR5aGomYXVtbDtrc2ksIHJham9pdHVzdGEgZWkgb2xlLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnTiZhdW1sO3l0JmF1bWw7IHJham9pdHVrc2V0JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ04mYXVtbDt5dCZhdW1sOyBrZW50JmF1bWw7bGxlIG0mYXVtbDsmYXVtbDtyaXRlbGx5dCBrb2tvLSBqYSB0aWVkb3N0b3R5eXBwaXJham9pdHVrc2V0Pyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnTG9tYWtrZWVuIG4mYXVtbDt5dHQmYXVtbDttaXNlZW4gayZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBtYWxsaSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpdnUgJXMgLyAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnS2VudCZhdW1sO2xsZSBlaSBvbGUgbGlzJmF1bWw7YXNldHVrc2lhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZWtzdGksIGpva2EgbiZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sO3R0Jm91bWw7bWlsbGUga2VudHRpZW4gYXJ2b2lsbGUnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0FrdGl2b2kga2VudHRpZW4gcGlrYWxpcyZhdW1sO3lzIGxvbWFra2Vpc2lpbiBwdWRvdHVzdmFsaWtvc3RhPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0FrdGl2b2kga2VudHRpZW4gcGlrYWxpcyZhdW1sO3lzPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnUGlrYWxpcyZhdW1sO3lzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnVCZhdW1sO20mYXVtbDsgdmFsaW50YSBzYWxsaWkgbWFrc2ltaXNzYWFuIDEwIHMmYXVtbDtoayZvdW1sO3Bvc3RpYSBzYW1hc3RhIElQLW9zb2l0dGVzdGEgdHVubmlzc2EnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnQWt0aXZvaSByb3NrYXBvc3RpZXN0b3Q/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdOJmF1bWw7eXQmYXVtbDsga2VudHRpZW4gaWQ6dCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdUJmF1bWw7bSZhdW1sO24ga2xpa2thYW1pbmVuIHNhbGxpaSBrZW50dGllbiB0dW5uaXN0ZWlkZW4gbiZhdW1sO3l0dCZhdW1sO21pc2VuLCBrdW4gbHVvZGFhbiB0YWkgbXVva2F0YWFuIGxvbWFrZXR0YSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnTCZhdW1sO2hldCZhdW1sOyBsb21ha2UgWE1MLXRpZWRvc3Rvc3RhJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdLJmF1bWw7eXQmYXVtbDsgdCZhdW1sO3QmYXVtbDsgbG9tYWtrZWVuIG5pbWUmYXVtbDsnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIC10dW9udGknOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdLJmF1bWw7eXQmYXVtbDsgdCZhdW1sO3QmYXVtbDsgbG9tYWtrZWVuIGFsaWFzdGEnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0x1byBIVE1MLW11b3RvaW5lbiBzJmF1bWw7aGsmb3VtbDtwb3N0aT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdUJmF1bWw7eXQmYXVtbDsgYXV0b21hYXR0aXNlc3RpJzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdUJmF1bWw7eXQmYXVtbDsgYXV0b21hYXR0aXNlc3RpIFVSTC1vc29pdHRlZWxsYSwgam9zc2EgbG9tYWtlIHNpamFpdHNlZT8gKHQmYXVtbDttJmF1bWw7IHlsaWtpcmpvaXR0YWEgc2l2dXN0b24gc2l2dWxpbmtraSAtYXNldHVrc2VuIGFsYXB1b2xlbGxhKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdPbGV0dXMgVVJMLWxpbmtraSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdPbGV0dXMgdGVrc3RpIGxpbmtpbGxlJzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5ra2kgc2l2dXN0b24gc2l2dXVuJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1ZvaXQgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGFhJnF1b3Q7PC9hPiBzdW9qYXRha3Nlc2kgbG9tYWtrZWlkZW4gbCZhdW1sO2hldHQmYXVtbDttaXNlbiwgam9zIGFzZW5uYXQgQ2FwdGNoYS1tb2R1dWxpbi4gPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+TGlzJmF1bWw7dGlldG9hIENhcHRjaGEtcHJvamVrdGlzdGE8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0smYXVtbDt5dGV0JmF1bWw7JmF1bWw7bmsmb3VtbDsgQ2FwdGNoYS1zdW9qYXVzdGEgdGllZG9zdG9qZW4gc2lpcnJvc3NhPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnVmFsaXRzZSwgam9zIGhhbHVhdCBzdW9qYXRhIGxvbWFra2VlbiA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPkNhcHRjaGFsbGE8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdPbGUgaHl2JmF1bWw7IGphIGtpcmpvaXRhIGFsYXB1b2xlbGxhIG9sZXZhdCBraXJqYWltZXQuIFZhcm1pc3RhbW1lIHQmYXVtbDttJmF1bWw7biBhdnVsbGEsIGV0dGV0IG9sZSByb3NrYXBvc3Rpcm9ib3R0aS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnQ2FwdGNoYSB0ZWtzdGkgb2xpIHZpcmhlZWxsaW5lbic7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBlaSBvbGx1dCBvaWtlaW4uJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0F2dXN0ZXRla3N0aSBDYXB0Y2hhbGxlJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJyZBdW1sO2wmYXVtbDsgbCZhdW1sO2hldCZhdW1sOyBhcnZvamEgdmFsaW50YWxhYXRpa29pbGxlLCBqb2l0YSBlaSBvbGUgdmFsaXR0dSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ1ZhbGl0c2UgdCZhdW1sO20mYXVtbDssIGpvcyBoYWx1YXQgZXR0JmF1bWw7IGFpbm9hc3RhYW4gdmFsaXR1dCB2YWxpbnRhbGFhdGlrb3QgcGFsYXV0dGF2YXQgYXJ2b24uJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5raW4gdGVrc3RpJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5raW4ga29oZGVvc29pdGUnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdPbGV0dWtzZW5hIHZhbGl0dHU/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdLJmF1bWw7eXQmYXVtbDsgMjQtdHVubmluIGtlbGxvYT8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdLJmF1bWw7c2l0dGVsZSBzbWFydHl0YWdpdCBrZW50JmF1bWw7c3MmYXVtbDs/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSaXZpJmF1bWw7IChodW9tYWE6IHZvaXQgeWxpa2lyam9pdHRhYSB0JmF1bWw7bSZhdW1sO24gQ1NTOmxsJmF1bWw7KSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnU2FyYWtldHRhIChodW9tYWE6IHZvaXQgeWxpa2lyam9pdHRhYSB0JmF1bWw7bSZhdW1sO24gQ1NTOmxsJmF1bWw7KSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdMb21ha2tlZW4gcGVydXN0aWVkb3QnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ09sZXR1a3NlbmEgdHloaiZhdW1sOyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdPbGV0dWtzZW5hIHR5aGomYXVtbDsgKG90YSB2YWxpbnRhIHBvaXMsIGpvcyBoYWx1YXQgZXR0JmF1bWw7IG9sZXR1a3NlbmEgb24gdCZhdW1sO20mYXVtbDsgcCZhdW1sO2l2JmF1bWw7KSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dHVubnVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdOJmF1bWw7eXQmYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIGV0dW5pbWk/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBzdWt1bmltaT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSYWpvaXRhIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGlzdGEgdmFpbiB0aWV0eW4gcnlobSZhdW1sO24gaiZhdW1sO3Nlbmlpbic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdTdW9qYWEgdGlldG9rYW50YWFuIHRhbGxlbm5ldHV0IHRpZWRvdCc7CiRsYW5nWyd0aXRsZV9jcnlwdF9jZXJ0J10gPSAnU3VvamF0dW4gdGllZG9uIHNlcnRpZmlrYWF0dGknOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnU2FsYWluZW4gbGF1c2UgdGFpIHBvbGt1IHRpZWRvc3Rvb24sIGpvc3NhIG9uIHNhbGFpbmVuIGxhdXNlLiAoSm9zIGsmYXVtbDt5dCZhdW1sO3QgT3BlblNTTDomYXVtbDsmYXVtbDssIHQmYXVtbDttJmF1bWw7IG9uIHNhbGFpbmVuIGxhdXNlIHlrc2l0eWlzZWxsZSBhdmFpbWVsbGUpJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ1Nla29pdGEgamFvdHRlbHVrZW50JmF1bWw7dCc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1lrc2l0eWluZW4gYXZhaW4sIGpvdGEgayZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIHRpZWRvbiBzdW9qYWFtaXNlZW4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUJmF1bWw7bSZhdW1sOyBzZWtvaXR0YWEgamFvdHRlbHVrZW50JmF1bWw7dCwgbXV0dGEgaiZhdW1sO3R0JmF1bWw7JmF1bWw7IGVuc2ltbSZhdW1sO2lzZXQga2lyamFpbWV0IHN1b2phYW1hdHRhLiBLcnlwdG9sb2dpYW4ga2FubmFsdGEsIHQmYXVtbDttJmF1bWw7IGx1byB0aWV0b3R1cnZhLWF1a29uLCBtdXR0YSBvbiB1c2VpbW1pbGxlIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlIGh5diZhdW1sO2tzeXR0JmF1bWw7diZhdW1sOyByYXRrYWlzdSB0dXJ2YWxsaXN1dWRlbiBqYSB0aWV0b2plbiBqJmF1bWw7cmplc3QmYXVtbDttaXNlbiBtYWhkb2xsaXN1dWRlbiB2JmF1bWw7bGlsbCZhdW1sOy4gVGlldG9qZW4gaiZhdW1sO3JqZXN0ZWx5c3QmYXVtbDsgdHVsZWUgbGlraWFydm9pc3RhLCBtdXR0YSBzaWx0aSBzdWh0ZWVsbGlzZW4gcGFpa2thbnNhIHBpdCZhdW1sO3YmYXVtbDsmYXVtbDsuIEpvcyBldCBrJmF1bWw7eXQmYXVtbDsgdCZhdW1sO3QmYXVtbDsgYXNldHVzdGEsIGomYXVtbDtyamVzdHlza2VudCZhdW1sO3QgdGFsbGVubmV0YWFuIHRhdmFsbGlzZW5hIHRla3N0aW4mYXVtbDsuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnVmFyYXN0b24gc3VvamF1cyBlaSBvbGUgc2FhdGF2aWxsYSc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ0FzZW5uYSBPcGVuU1NMIG1vZHV1bGkgdGFpIG1jcnlwdCB0dWtpLCBqb3MgaGFsdWF0IGxhaXR0YWEgdGlldG9rYW5uYW4gc3VvamF1a3NlbiBwJmF1bWw7JmF1bWw7bGxlLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdUYXJraXN0YSwgZXR0JmF1bWw7IHNpbnVsbGEgb24gQ1VSTC10dWtpIGFrdGlpdmlzZW5hIFBIUC1hc2VubnVrc2Vzc2EuIEthdHNvIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ0FqYSBNTEUtdGlsYXNzYSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnTXV1dHRhYSBqYSB0dWtlZSBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIHJ1bmtvYS4gJkF1bWw7bCZhdW1sOyB2YWxpdHNlIHQmYXVtbDt0JmF1bWw7LCBqb3MgZXQgayZhdW1sO3l0JmF1bWw7IE1MRS12ZXJzaW90YS4nOwokbGFuZ1sndGl0bGVfZW5zdXJlX2NlcnRfa2V5X21hdGNoJ10gPSAnVmFybWlzdGEsIGV0dCZhdW1sOyB2YWxpdHNldCB5a3NpdHlpc2VuIGF2YWltZW4sIGpva2Egb24gc29waXZhIHNlcnRpZmlrYWF0aWxsZSwgam90YSBrJmF1bWw7eXQmYXVtbDt0IHRpZXRvamVuIHN1b2phYW1pc2Vlbi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnU3VvamF1c2tpcmphc3RvJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ1ZhbGl0c2UgdCZhdW1sO20mYXVtbDssIGpvcyBoYWx1YXQgc3VvamF0YSB0YWxsZW5uZXR1biB0aWVkb24uIFQmYXVtbDttJmF1bWw7IHRla2VlIGhha2tlcmllbiB2YWlrZWFtbWFrc2kgKG11dHRhIGVpIG1haGRvdHRvbWFrc2kpIG4mYXVtbDtoZCZhdW1sOyB0aWV0b2phLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ0FsbGEgb2xldmF0IGFzZXR1a3NldCBwJmF1bWw7dGV2JmF1bWw7dCBhaW5vYXN0YWFuLCBqb3MgayZhdW1sO3l0JmF1bWw7dCBPcGVuU1NMLXN1b2phdXNraXJqYXN0b2EuJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ1N1b2phdXNraXJqYXN0byc7CiRsYW5nWydvcGVuc3NsJ10gPSAnT3BlblNTTC1raXJqYXN0byc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFA6biBtY3J5cHQta2lyamFzdG8nOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdTaXZ1c3RvbiBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3NpZG9zJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfZmV1J10gPSAnQXNlbm5hIEZyb250ZW5kIFVzZXIgLW1vZHV1bGksIGpvcyBoYWx1YXQgeWhkaXN0JmF1bWw7JmF1bWw7IGxvbWFra2VlbiBqYSBzZW4gdGllZG90IHRpZXR0eXluIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7JmF1bWw7bi4nOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0FzZXRhIHAmYXVtbDsmYXVtbDtsbGUsIGpvcyBoYWx1YXQgbHVraXRhIHAmYXVtbDsmYXVtbDtzeW4gdCZhdW1sO2gmYXVtbDtuIGxvbWFra2Vlc2VlbiBhaW5vYXN0YWFuIHNpcyZhdW1sO2xsZSBraXJqYXV0dW5laWxsZSBrJmF1bWw7eXR0JmF1bWw7amlsbGUuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdTdW9qYXVzJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8gKGRvIG5vdCBkbyB0aGlzIGlmIHlvdSBhcmUgZ29pbmcgdG8gcHJpbnRfcigkcGFyYW1zKSApJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnS29rbyB1cmwtb3NvaXRlLCBtdWthYW4gbHVraWVuIHByb3Rva29sbGEgamEgcG9sa3UgKGVzaW0uIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0xvbWFra2VlbiBsJmF1bWw7aGV0eWtzZW4gVVJMLW9zb2l0ZSc7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdMb21ha2tlZW4gdGFwYSc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnTWFwIGZpZWxkICZxdW90OyVzJnF1b3Q7IHRvIGZvcm0gc3VibWlzc2lvbiB2YXJpYWJsZSc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsJ10gPSAnTGlzJmF1bWw7bCZhdW1sO2hldHlzJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWxfaGVscCddID0gJ01pdCZhdW1sOyB0YWhhbnNhIGwmYXVtbDtoZXR5a3NlZW4gbGlzJmF1bWw7dHQmYXVtbDt2JmF1bWw7JmF1bWw7IHRpZXRvYSwgdXJsLWtvb2RhdHVzc2EgbXVvZG9zc2EgKGVzaW0uICZxdW90O3VzZXI9c3RldmUram9icyZhbXA7ZW1wbG95ZWVfbnVtYmVyPTEpJzsKJGxhbmdbJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbiddID0gJ1NpcyZhdW1sO2xseXQmYXVtbDsga2VudHQmYXVtbDsgbCZhdW1sO2hldHlrc2Vlbic7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdUaWVkb3QgdGFsbGVubmV0YWFuIFhNTC1tdW9kb3NzYSBbUFJFRklYXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgdGlldG9rYW50YXRhdWx1dW4uJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ1ZpcmhlISBKb2tvIGxvbWFra2VlbGxhIGVpIG9sZSBmb3JtX2J1aWxkZXIgbSZhdW1sOyZhdW1sO3JldHQmYXVtbDssIHRhaSBzZW4gbGF0YWFtaW5lbiBlcCZhdW1sO29ubmlzdHVpIChtYWhkb2xsaW5lbiBtdWlzdGlvbmdlbG1hPyknOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1ZhaW4gcnlobSZhdW1sO3NzJmF1bWw7ICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ04mYXVtbDt5dCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO2xsZT8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnS2VudHQmYXVtbDsgdm9pZGFhbiBqJmF1bWw7dHQmYXVtbDsmYXVtbDsgdHloaiZhdW1sO2tzaSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdQb2hqYW4gbXV1dHR1amF0JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1NhYXRhdmlsbGEgb2xldmF0IG11dXR0dWphdCc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQLW11dXR0dWphJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnTCZhdW1sO2hldHlzcHZtJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdQYWx2ZWxpbWVzaSc7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdMb21ha2tlZW4gayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIElQLW9zb2l0ZSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdMb21ha2VzaXZ1biB1cmwtb3NvaXRlJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0xvbWFrZXJha2VudGFqYW4gdmVyc2lvJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnU2Fya2Fpbm1lcmtraSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ1ZhaWh0b2VodG9pc2lhIGtlbnR0aWVuIG5pbWkmYXVtbDsgdm9pZGFhbiBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IHJpc3RpaW4gKGsmYXVtbDt5dCZhdW1sO25uJm91bWw7bGxpc3QmYXVtbDsgZXJpdHlpc2VzdGksIGpvcyBTbWFydHkgdHVrZWh0aWkgbWVya2tlaWhpbiwgam90a2Egb3ZhdCBBU0NJSSAzMi0xMjY6biB1bGtvcHVvbGVsbGEpLiA8YnIgLz5NdXV0IGtlbnQmYXVtbDt0IG92YXQgayZhdW1sO3l0ZXR0JmF1bWw7dmlzcyZhdW1sOywga3VuIGxpcyZhdW1sOyZhdW1sO3QgbmlpdCZhdW1sOyBsb21ha2tlZXNlZW4uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnSiZhdW1sO2xsZWVuIHV1c2kgdGFwYSwgam9sbGEgdm9pZGFhbiBwJmF1bWw7JmF1bWw7c3QmYXVtbDsgayZhdW1sO3Npa3NpIGtlbnR0aWVuIGFydm9paGluLCB0eXlsaWluICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCBtaXNzJmF1bWw7IGpva2FpbmVuIGtlbnR0JmF1bWw7IG9uIG9iamVrdGkgc2lzJmF1bWw7bHQmYXVtbDtlbjo8YnIgLz48dGFibGU+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+aWQ8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnS2F0c28gPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+UEhQOm4gbWFudWFhbGlzdGE8L2E+IG9oamVpdGEgbXVvdG9pbHV1bi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnTXV1dHR1amEnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnVXVkZWxsZWVubiZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBrZW50dCZhdW1sOyc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGFrYWlzaW4gbG9tYWtrZWVzZWVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdMdW8gZXNpbWVya2tpcG9oamEnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnTHVvIEhUTUwtcG9oamFuIGVzaW1lcmtraSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0x1byB5bCZhdW1sO3R1bm5pc3RlcG9oamFuIGVzaW1lcmtraSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0x1byBhbGF0dW5uaXN0ZXBvaGphbiBlc2ltZXJra2knOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdMdW8geWwmYXVtbDt0dW5uaXN0ZWVuIGVzaW1lcmtraSc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdzYXJha2VuJmF1bWw7cHAmYXVtbDtpbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnUG9oamEsIGpvdGEgayZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIHR1bG9zdGV0dGF2YW4gdGllZG9zdG9uIHlrc2l0dCZhdW1sO2lzZXNzJmF1bWw7IHJpdmlzcyZhdW1sOyc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1BvaGphLCBqb3RhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biB0dWxvc3RldHRhdmFuIHRpZWRvc3RvbiB5bCZhdW1sO3R1bm5pc3RlZXNzYSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ1BvaGphLCBqb3RhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biB0dWxvc3RldHRhdmFuIHRpZWRvc3RvbiBhbGF0dW5uaXN0ZWVzc2EnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VybC1vc29pdGUsIGpvdGEga2xpa2F0YWFuIGxvbWFra2VlbiB2YWh2aXN0YW1pc2Vrc2knOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdBcnZvIChrYXRzbyBNb25pcHVvbGluZW4gdiZhdW1sO2xpbGVodGksIGpvcyBrJmF1bWw7eXQmYXVtbDt0IHNtYXJ0eXRhZ2VqYSknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdQJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sO24gbXVvdG8gKG9sZXR1cyA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFA6biBwJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sO24gbXVvZG90PC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdLJmF1bWw7eXQmYXVtbDsgV1lTSVdZRy1lZGl0b3JpYSB0ZWtzdGlrZW50aXNzJmF1bWw7IChhaW5vYXN0YWFuIHlsbCZhdW1sO3BpdG8tb3Npb3NzYSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZW4gayZhdW1sO3l0dCZhdW1sO3l0eW1pbmVuJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdMJmF1bWw7aGV0eXNwYWluaWtrZWlkZW4gb3RzaWtvdCc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ0omYXVtbDtyamVzdGVsdCZhdW1sO3YmYXVtbDsga2VudHQmYXVtbDsgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVCZhdW1sO20mYXVtbDsgc2l2dSBzYWxsaWkgc2ludW4gbXVva2F0YSBsb21ha2tlZW4gbCZhdW1sO2hldHQmYXVtbDttaXN0JmF1bWw7LiBTZSBlaSBtJmF1bWw7JmF1bWw7cml0dGVsZSBtaXQmYXVtbDsgbCZhdW1sO2hldGV0eWlsbGUgdGllZG9pbGxlIHRlaGQmYXVtbDsmYXVtbDtuLiBWb2l0IG0mYXVtbDsmYXVtbDtyaXRlbGwmYXVtbDsgc2VuIGxpcyZhdW1sOyZhdW1sO20mYXVtbDtsbCZhdW1sOyBsb21ha2tlZXNlZW4gayZhdW1sO3NpdHRlbHlrZW50dGkmYXVtbDsuJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdWdW9zaWpha3NvbiBhbGt1JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnVnVvc2lqYWtzb24gbG9wcHUnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnT2xldHVzdnVvc2knOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoQXNldGEgYXJ2b2tzaSAtMSwgam9zIG9sZXR1a3NlbmEgb24ga3VsdXZhIHZ1b3NpKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZW4gaiZhdW1sO2xrZWVuJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ04mYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDsgdmFzdGF1cyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0wmYXVtbDtoZXRldHR5JzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdIeXYmYXVtbDtrc3ltaXNwdm0gKHlsbCZhdW1sO3BpdCZhdW1sO2omYXVtbDspJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdIeXYmYXVtbDtrc3ltaXNwdm0gKGwmYXVtbDtoZXR0JmF1bWw7aiZhdW1sOyknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnTiZhdW1sO3l0JmF1bWw7ICZxdW90O0wmYXVtbDtoZXR5c3BvaGphJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdPaGphYSBzaXZ1c3RvbiBzaXZ1bGxlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVCZhdW1sO3QmYXVtbDsgcG9oamFhIGsmYXVtbDt5dGV0JmF1bWw7JmF1bWw7biwga3VuIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7biBzaXZ1IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlIGxvbWFra2VlbiBsJmF1bWw7aGV0dCZhdW1sO21pc2VuIGomYXVtbDtsa2Vlbi4gVCZhdW1sO20mYXVtbDsgZWkgdmFpa3V0YSBsdW90dWloaW4gcyZhdW1sO2hrJm91bWw7cG9zdGVpaGluIHRhaSBsb21ha2tlZW4gayZhdW1sO3NpdHRlbHl5biAtLSBhc2V0YXQgbmUgcG9oamF0IChzaWVsbCZhdW1sOyBtaXNzJmF1bWw7IHRhcnBlZWxsaXN0YSkgJnF1b3Q7TW9uaXB1b2xpbmVuJnF1b3Q7IHYmYXVtbDtsaWxlaGRlc3MmYXVtbDsgbmlpc3MmYXVtbDsgayZhdW1sO3NpdHRlbHlrZW50aXNzJmF1bWw7Lic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnS29oZGVzaXZ1JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1ZhYWRpIGtlbnR0aWVuIG5pbWV0JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnVmFhZGl0YWFua28ga2VudGlsbGUgbmltaT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdWYWFkaSB5a3NpbCZvdW1sO2xsaXNldCBrZW50dCZhdW1sO25pbWV0JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWYWFkaXRhYW5rbyBrZW50aWxsZSB5a3NpbCZvdW1sO2xsaXNldCBuaW1ldD8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnVXVkZWxsZWVuaiZhdW1sO3JqZXN0JmF1bWw7IGtlbnQmYXVtbDt0JzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYXRhYSBwb2hqYSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgcGFpbmlra2VlbiB0ZWtzdGknOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnUG9pc3RhIHBhaW5pa2tlZW4gdGVrc3RpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnVCZhdW1sO20mYXVtbDtuIGtlbnQmYXVtbDtuIGthbnNzYSBuJmF1bWw7eXRldHQmYXVtbDt2JmF1bWw7IG9oamV0ZWtzdGknOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnVHVsa2l0c2UgYXJ2b3Qgam9rbyBudW1lcm9pa3NpIHRhaSBtZXJra2lqb25vaWtzaSc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ1R1bGtpbnRhaiZhdW1sO3JqZXN0eXMnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0pvcyBsYXNrZXR0YXZpYSBrZW50dGkmYXVtbDsgb24gZW5lbW0mYXVtbDtuIGt1aW4geWtzaSwgbmUgbGFza2V0YWFuIGFsZW1tYXN0YSBqJmF1bWw7cmplc3R5c251bWVyb3N0YSBpc29pbXBhYW4nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ0xhc2tldHRhdmEgYXJ2byc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdNZXJra2lqb25vJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lZXJpbmVuJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGxvbWFrZSBzaWpvaXRldHR1bmE/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdTaWpvaXRldHR1IHRhcmtvaXR0YWEsIGV0dCZhdW1sOyBsb21ha2tlZW4gamF0a28ga29ydmFhIHtjbXNfbW9kdWxlfSB0YWdpbiwgc2lqb2l0dGFtYXRvbiBrb3J2YWEge2NvbnRlbnR9IHRhZ2luLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnS2VudCZhdW1sO24gb2xldHVzYXJ2byc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnVHloamVubiZhdW1sOyBvbGV0dXNhcnZvdD8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnVmFsaXRzZSB0JmF1bWw7bSZhdW1sOywgam9zIGhhbHVhdCB0eWhqZW50JmF1bWw7JmF1bWw7IG9sZXR1c2Fydm90IGtlbnRpc3QmYXVtbDssIGt1biBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sOyBrbGlra2FhIG5paWhpbi4gS29za2EgdCZhdW1sO20mYXVtbDsgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyBKYXZhU2NyaXB0aSZhdW1sOyB2ZXJ0YWFtaXNlZW4sIHNlIGVpIHRvaW1pLCBqb3MgbGFpdGF0IGxhaW5hdXNtZXJra2VqJmF1bWw7ICgmIzAzOTspIG9sZXR1c3Rla3N0aWlzaS4gTXV1dCBKYXZhU2NyaXB0aW4ga2Fuc3NhIGVwJmF1bWw7eWh0ZWVuc29waXZhdCBtZXJraXQgdm9pdmF0IG15Jm91bWw7cyB0dW90dGFhIG9uZ2VsbWlhLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1BvaXN0YSBsJmF1bWw7aGV0ZXR0eSB0aWVkb3N0byBwYWx2ZWxpbWVsdGEgayZhdW1sO3NpdHRlbHluIGomYXVtbDtsa2VlbiAocyZhdW1sO2hrJm91bWw7cG9zdGluIGomYXVtbDtyamVzdGVseSknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0tlbnQmYXVtbDtuIEphdmFTY3JpcHQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnVGVlIHQmYXVtbDtzdCZhdW1sOyBrb2tvIEphdmFTY3JpcHQga3V0c3UsIG11a2FhbiBsdWtpZW4gdGFwYWh0dW1hbiwgam9ua2EgaGFsdWF0IG5hcGF0YSwgZXNpbS4gb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0xvbWFra2VlbiBsJmF1bWw7aGV0eWtzZW4gSmF2YVNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnVGVlIHQmYXVtbDtzdCZhdW1sOyBrb2tvIEphdmFTY3JpcHQga3V0c3UsIG11a2FhbiBsdWtpZW4gdGFwYWh0dW1hbiwgam9ua2EgaGFsdWF0IG5hcGF0YSwgZXNpbS4gb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UJmF1bWw7bSZhdW1sOyBlaSB0b2Rlbm4mYXVtbDtrJm91bWw7aXNlc3RpIHRvaW1pLCBqb3MgayZhdW1sO3l0JmF1bWw7dCAmcXVvdDt0dXJ2YXNjcmlwdGkmcXVvdDsgYXNldHVzdGEgeWwmYXVtbDtwdW9sZWxsYS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICcmQXVtbDtsJmF1bWw7IHZhbGl0c2UgdmFpbiBzYXR0dW1hbnZhcmFpc3RhIG9zb2l0ZXR0YSB0JmF1bWw7aCZhdW1sO24gLS0gbW9uZXQgcGFsdmVsdW50YXJqb2FqYXQgZWl2JmF1bWw7dCBsJmF1bWw7aGV0JmF1bWw7IHMmYXVtbDtoayZvdW1sO3Bvc3RpYSwgam9zIG11dXN0YSBrdWluIG9tYXN0YSBkb21haW5vc29pdHRlZXN0YSAoZWxpIGVzaW1lcmtpa3NpIG5pbWlAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ1RhcnZpdHNldGtvIGxpcyZhdW1sOyZhdW1sOyBrZW50dCZhdW1sO3R5eXBwZWomYXVtbDs/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ0xpaWFuIG1vbnRhIHNla29pdHRhdmFhIGtlbnR0JmF1bWw7dHl5cHBpJmF1bWw7Pyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1ZhaWhkYSBlZGlzdHluZWVzZWVuIHRpbGFuJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnVmFpaGRhIHBlcnVzdGlsYWFuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0hha2VtaXN0bywgam9ob24gdGllZG9zdG8gdGFsbGVubmV0YWFuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVCZhdW1sO20mYXVtbDtuIHQmYXVtbDt5dHl5IG9sbGEgaGFrZW1pc3RvLCBqb2hvbiBwYWx2ZWxpbWVsbGEgdm9pZGFhbiBraXJqb2l0dGFhPGJyIC8+QXNldGEgQ0hNT0QgNzc3LCBqb3Mgc2ludWxsYSBvbiBvbmdlbG1pYS48YnIgLz5UYXJraXN0YSBteSZvdW1sO3MsIGV0dCZhdW1sOyBzaW51bGxhIGVpIG9sZSBQSFA6biBoYWtlbWlzdG9yYWpvaXR1a3NpYS4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ1V1ZGV0IHJpdml0IGphIHJpdmludmFpaGRvdCBrb3J2YWF2YSBtZXJra2knOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnSiZhdW1sO3QmYXVtbDsgdHloaiZhdW1sO2tzaSwgam9zIHNhbGxpdCB1dWRldCByaXZpdCBqYSByaXZpbnZhaWhkb3QgdHVsb3N0ZWVzc2EnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ0wmYXVtbDtoZXQmYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtsbGUga29waW9pIHZpZXN0aXN0JmF1bWw7Pyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnT3RzaWtrbyB2YWxpbnRhcnV1ZHVsbGUgKGpvcyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gdmFsaXRzZW1hKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ0wmYXVtbDtoZXQmYXVtbDsgbWludWxsZSBrb3Bpb2kgbG9tYWtrZWVzdGEnOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ1NhbGxpIGFpaGVlbiBrb3J2YWFtaW5lbic7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdTYWxsaSAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyBrb3J2YXRhIHB1ZG90dXN2YWxpa29uIGFpaGUuJzsKJGxhbmdbJ3RpdGxlX2Rpc3BsYXlfbGVuZ3RoJ10gPSAnTiZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBwaXR1dXMnOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdWYXN0YXVrc2VuIG1pbmltaXBpdHV1cyc7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnUGlpbG90YSBzeSZvdW1sO3RlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ04mYXVtbDt5dCZhdW1sOyBzeW1ib2xpdCB0YXZhbGxpc3RlbiBtZXJra2llbiBzaWphc3RhIHNhbGFzYW5vamVuIGtvaGRhbGxhPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ1NhbGFzYW5hIGVpIHZhc3RhYSAlcyc7CiRsYW5nWydiYWNrX3RvcCddID0gJ1Rha2Fpc2luIExvbWFrZXJha2VudGFqYW4gcCZhdW1sOyZhdW1sO3NpdnVsbGUnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdNaXRrJmF1bWw7IHMmYXVtbDtoayZvdW1sO3Bvc3RpbiBvdHNha2tlZXQgdCZhdW1sO20mYXVtbDtuIHN5Jm91bWw7dHRlZW4gcGl0JmF1bWw7aXNpIHQmYXVtbDt5dHQmYXVtbDsmYXVtbDs/JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWQnXSA9ICcmQXVtbDtsJmF1bWw7IHNhbGxpIHBlbGtraSZhdW1sOyB2JmF1bWw7bGlseSZvdW1sO250ZWomYXVtbDsgdmFzdGF1a3Nlc3NhJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ0pvcyBrZW50dCZhdW1sOyBvbiBwYWtvbGxpbmVuLCB0JmF1bWw7bSZhdW1sO24gdmFsaXRzZW1pbmVuIHZhYXRpaSwgZXR0JmF1bWw7IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dCBraXJqb2l0dGF2YXQga2lyamFpbWlhIHRhaSBudW1lcm9pdGEsIGVpdiZhdW1sO3RrJmF1bWw7IGFpbm9hc3RhYW4gdiZhdW1sO2xpbHkmb3VtbDtudGVqJmF1bWw7JzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdZcml0eXNoYWtlbWlzdG8tbW9kdXVsaSBlaSBvbGUgc2FhdGF2aWxsYSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnRWkga29za2Fhbic7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdBbm5hIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biB2YWxpdGEgKHZhbGludGFydXV0dSknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0FpbmEnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICcmcXVvdDtGcm9tJnF1b3Q7IHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRlJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O1JlcGx5LVRvJnF1b3Q7IHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRlJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnU2VrJmF1bWw7ICZxdW90O0Zyb20mcXVvdDsgZXR0JmF1bWw7ICZxdW90O1JlcGx5LVRvJnF1b3Q7IHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXR0ZWV0JzsKJGxhbmdbJ29wdGlvbl9kcm9wZG93biddID0gJ1B1ZG90dXN2YWxpa2tvJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ1ZhbGludGFsaXN0YSAoeWtzaSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdWYWxpbnRhbGlzdGEgKHVzZWFtcGkpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnVmFsaW50YXBhbGxvcnlobSZhdW1sOyc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdIdW9tYWE6IFR1bG9zdHVzIG9uIG11b2Rvc3NhPGJyLz4mcXVvdDtjb21wYW55IG5hbWUmcXVvdDs9PiZxdW90O3ZhbHVlJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3BpY2tfY2F0ZWdvcmllcyddID0gJ1ZhbGl0c2Uga2F0ZWdvcmlhICh1c2VhbXBpKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnSGFlIGtlbnQmYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR5a3NlbiBhcnZvICh5a3NpdHQmYXVtbDtpbmVuKSA8ZW0+dmFwYWFlaHRvaW5lbjwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnVmFsaXRzZSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gc3kmb3VtbDt0dCZhdW1sO20mYXVtbDsgdGlldG8nOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKEthdHNvIG15Jm91bWw7cyBMb21ha2tlZW4gbCZhdW1sO2hldHlzIC12JmF1bWw7bGlsZWh0ZSZhdW1sOywgam9zIGhhbHVhdCBhc2V0dGFhIFVEVDpuIGxvbWFra2VlbiB0YXJraXN0dWtzZWxsZSknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ1AmYXVtbDsmYXVtbDt0dHltaXN2dW9zaSc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ1NtYXJ0eXRhZ2kgdGFpIGxvZ2lpa2thLCBqb2thIGwmYXVtbDtoZXRldCZhdW1sOyZhdW1sO24gdCZhdW1sO20mYXVtbDtuIGtlbnQmYXVtbDtuIG11a2FuYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnVm9pIHNtYXJ0eWRhdGEsIGphdmFzY3JpcHQgdGFpIG11dSBkYXRhLCBqb25rYSBoYWx1YXQgbCZhdW1sO2hldHQmYXVtbDsmYXVtbDsgdCZhdW1sO20mYXVtbDtuIGtlbnQmYXVtbDtuIG11a2FuYS48YnIgLz5NZW5lZSBzbWFydHlyYWtlbnRhamFuIGwmYXVtbDtwaSwgam90ZW4gbXVpc3RhIGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdlamEgPHNjcmlwdD48L3NjcmlwdD4ga2Fuc3NhLic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzJ10gPSAnTGlzJmF1bWw7JmF1bWw7IG90c2lrb3QnOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnVCZhdW1sO20mYXVtbDtuIGFzZXR0YW1pbmVuIHAmYXVtbDsmYXVtbDtsbGUgbGlpdHQmYXVtbDsmYXVtbDsgb3RzaWtvdCB0dWxvc3R1a3NlZW4uIGVzaW1lcmtpa3NpIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnTGlua2l0JmF1bWw7IHQmYXVtbDttJmF1bWw7IGtlbnR0JmF1bWw7IHNlbiBzaXNhcnVrc2lpbic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJ10gPSAnUHVkb3R1c3ZhbGlra28ga2Fpa2lzdGEgdCZhdW1sO20mYXVtbDtuIGtlbnQmYXVtbDtuIHNpc2FydWtzaXN0YSBqYSBzYWxsaWkgc2ludW4gbGlua2l0dCZhdW1sOyZhdW1sOyB0JmF1bWw7bSZhdW1sO24ga2VudCZhdW1sO24gam9ob25raW4gc2VuIHNpc2FydWtzZWVuLiBNYWhkb2xsaXN0YWEgbXkmb3VtbDtzIGtlbnQmYXVtbDtuIGhhbGxpbm5hbiB2YWxpdHR1amVuIHNpc2FydXN0ZW4ga29udHJvbGxlaWxsYS4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXSA9ICdQaWlsb3RhIGhhbGxpbnRhcGFpbmlra2VldCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9uc19oZWxwJ10gPSAnUGlpbG90dGFhIGp1bGtpc3RlbiBzaXZ1amVuIGhhbGxpbnRhcGFpbmlra2VldCB0JmF1bWw7bHQmYXVtbDsga2VudCZhdW1sO2x0JmF1bWw7Lic7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyB0YWdpIHBhbGF1dHRpIHZpcmhlZW4nOwokbGFuZ1snZXJyb3JfdXNlcnRhZyddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsgdGFnaSAlcyBwYWxhdXR0aSB2aXJoZWVuLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkthdGFsb29naW1vZHV1bGlhIGVpIG9sZSBhc2VubmV0dHUgdGFpIHNlIGVpIG9sZSBha3RpaXZpc2VuYS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1ZBUk9JVFVTISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnT2xldHVzcG9oamEnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhdWx1a2tvcG9oamEsIG90c2lra28gdmFzZW1tYWxsYSc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYXVsdWtrb3BvaGphLCBvdHNpa2tvIHlsJmF1bWw7cHVvbGVsbGEnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnU2l2dXBvaGphICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ09sZXRrbyB2YXJtYSwgZXR0JmF1bWw7IGhhbHVhdCBrb3J2YXRhIHNpdnVwb2hqYW4gdmFsaXR1bGxhIHBvaGphbGxhPyAoVmFpa2thIHZhbGl0c2V0IE9LLCBzaW51biB0JmF1bWw7eXR5eSBzaWx0aSB0YWxsZW50YWEgbXV1dG9rc2V0KSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdWaXJoZSBsYXNrZXR0YWVzc2EgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdIVFRQX1JFRkVSRVIgdGlldG9hIGVpIG9sZSBzYWF0YXZpbGxhIChsdXVsdGF2YXN0aSBqb2h0dXUgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHMmYXVtbDtoayZvdW1sO3Bvc3RpbiB0YXJraXN0dWtzZXN0YSknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1Rhcmtpc3R1c3BhcmFtZXRyaW4gdmlyaGUuIFRhcmtpc3RhLCBldHQmYXVtbDsga29waW9pdCB1cmwtb3NvaXR0ZWVuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpc3Rhc2kgb2lrZWluISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVGFya2lzdHVzdmlyaGUuIFRhcmtpc3RhLCBldHQmYXVtbDsga29waW9pdCB1cmwtb3NvaXR0ZWVuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpc3Rhc2kgb2lrZWluISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVGFya2lzdHVzdmlyaGUuIFQmYXVtbDtzcyZhdW1sOyBsb21ha2tlZXNzYSBlaSBvbGUgcyZhdW1sO2hrJm91bWw7cG9zdGluIHRhcmtpc3R1c2tlbnR0JmF1bWw7JmF1bWw7ISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnTG9tYWtrZWVuIHBvaGphIHAmYXVtbDtpdml0ZXR0aWluIGF1dG9tYWF0dGlzZXN0aSB2ZXJzaW9zdGEgMC4zIHZlcnNpb29uIDAuNCBwJmF1bWw7aXZpdHlrc2VuIG9zYW5hLiBTaW51biB0YXJ2aXRzZWUgZWhrJmF1bWw7IHRlaGQmYXVtbDsga29yamF1a3NpYS4gSm9zIGsmYXVtbDt5dCZhdW1sO3Qgb2xldHVzbG9tYWtldHRhLCB5a3NpbmtlcnRhaXNlc3RpIGtvcnZhYSBwb2hqYSAmcXVvdDtvbGV0dWtzZWxsYSZxdW90OyB5bCZhdW1sO3B1b2xlbGxhIG9sZXZhc3NhIHB1ZG90dXN2YWxpa29zc2EuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0xpcyZhdW1sOyZhdW1sOywgbXVva2thYSBqYSBoYWxsaW5ub2kgaW50ZXJha3RpaXZpYSBsb21ha2tlaXRhLic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0pvcyBrJmF1bWw7eXQmYXVtbDt0IG1lcmtraWpvbm9qZW4gdGFya2lzdHVzdGEsIGFpbm9hIHRvaW1lbnBpZGUgc2FhdGF2aWxsYSBvbiBsaXMmYXVtbDt5cyAoKyksIGpvcyB0YWFzIGsmYXVtbDt5dCZhdW1sO3QgbnVtZWVyaXN0YSB0YXJraXN0dXN0YSwgdm9pdCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IHlrc2lua2VydGFpc3RhIG1hdGVtYXRpaWtrYWEgKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnSyZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIG1vZHV1bGlrJmF1bWw7eXR0Jm91bWw7bGlpdHR5bSZhdW1sOyZhdW1sOyc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPlRoaXMgZmllbGQgaXMgdXNlZCBhcyBhIGdhdGV3YXkgdG8gb3RoZXIgbW9kdWxlcyE8L2I+ClVzZSBpdCBieSBjcmVhdGluZyB5b3VyIGZvcm0gZWxlbWVudHMgaW4gdGhlIHRlbXBsYXRlcyBvZiB0aGUgb3RoZXIgbW9kdWxlKHMpIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlLCBhbmQgdXNpbmcgdGhlIDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiB0byB0aWUgaXQgYmFjayB0byBGb3JtQnVpbGRlci4gRm9yIGV4YW1wbGUsIHRvIGluY2x1ZGUgZm9ybSBvcHRpb25zIGJhc2VkIG9uIHRoZSBQcm9kdWN0cyBtb2R1bGUsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGluIFByb2R1Y3RzOjxici8+CjxwcmU+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTsmIzAzOTt9Cgl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsmIzAzOTt9CgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTs6OiYjMDM5O3xleHBsb2RlOiRNRGF0YX0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyBjaGVja2VkPSZxdW90O2NoZWNrZWQmcXVvdDsmIzAzOTt9CgkJCXsvaWZ9CgkJey9mb3JlYWNofQoJPGRpdiBjbGFzcz0mcXVvdDtQcm9kdWN0RGlyZWN0b3J5SXRlbSZxdW90Oz4KCQk8aW5wdXQgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyB2YWx1ZT0mcXVvdDt7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSZxdW90OyBuYW1lPSZxdW90O3skRkJpZH1bXSZxdW90OyB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgCgk8L2Rpdj4Key9mb3JlYWNofQo8L3ByZT4KPGJyLz4Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9JnF1b3Q7Y2F0JnF1b3Q7IHN1bW1hcnl0ZW1wbGF0ZT0mcXVvdDtZb3VyX0ZCX3RlbXBsYXRlJnF1b3Q7fTwvc3Ryb25nPic7CiRsYW5nWyd0aXRsZV9hZGRfdGFnJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHRhZ2lzaSc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICd0YW1taWt1dSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnaGVsbWlrdXUnOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ21hYWxpc2t1dSc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnaHVodGlrdXUnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICd0b3Vrb2t1dSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdrZXMmYXVtbDtrdXUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnaGVpbiZhdW1sO2t1dSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ2Vsb2t1dSc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ3N5eXNrdXUnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnbG9rYWt1dSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnbWFycmFza3V1JzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdqb3VsdWt1dSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR5a3Nlc3MmYXVtbDsgdGFwYWh0dWkgdmlyaGUuJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyaW4gbCZhdW1sO2hldHlzdmlyaGU6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdWaXJoZSB0aWVkb3N0b24gYW50YW1pc2Vzc2EgbCZhdW1sO2hldHlzbW9kdXVsaWxsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTCZhdW1sO2hldHlzbW9kdXVsaWEgZWkgbCZvdW1sO3l0eW55dCc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVGFwYWh0dWkgdmlyaGUgbCZhdW1sO2hldGV0dCZhdW1sO2VzcyZhdW1sOyB0YWkgbGlpdGV0dCZhdW1sO2VzcyZhdW1sOyB0aWVkb3N0b2EgJXMgKHRtcF9uYW1lOiAlcywgdHl5cHBpICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ1ZpcmhlLiBUaWVkb3N0b2EgZWkgdm9pZGEgbHVraXRhLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ09sZXR1czogdmFsaXRzZW1hdHRhJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ09sZXR1czogdmFsaXR0dSc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXJpbiBsJmF1bWw7aGV0eXMnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+UyZhdW1sO2hrJm91bWw7cG9zdGlwb2hqYWEgZWkgb2xlIGFzZXRldHR1ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdMb21ha2VyYWtlbnRhamFyOiBWYWFkaXR0dWEgbW9kdXVsaWEgQ01TTWFpbGVyIGVpIGwmb3VtbDt5ZHkhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBoeXYmYXVtbDtrc3ltJmF1bWw7IGwmYXVtbDtoZXR5cyAlcyAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnVGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtlIGwmYXVtbDtoZXRldCZhdW1sOyZhdW1sO24nOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnVGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIHRhcGFodHV1IHZpcmhlIExvbWFrZXJha2VudGFqYW4gbG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZXNzJmF1bWw7JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnVGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtlIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7bic7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+VGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtlIGwmYXVtbDtoZXRldCZhdW1sOyZhdW1sO24uPC9wPgo8aDQ+UGFyYW1ldHJpdDwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIExvbWFra2VlbiBuaW1pIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBTaXMmYXVtbDtpbmVuIGxvbWFra2VlbiB0dW5uaXN0ZSAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBBbm5hIG9sZXR1c2Fydm8ga2VudCZhdW1sO2xsZSwgam9sbGEgb24gbSZhdW1sOyZhdW1sO3JpdGVsdHkgbmltaS48L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+VGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtrZWVuIGwmYXVtbDtoZXR0JmF1bWw7bWlzZXNzJmF1bWw7IHRhcGFodHV1IHZpcmhlPC9wPgo8aDQ+UGFyYW1ldHJpdDwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIExvbWFra2VlbiBuaW1pIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBTaXMmYXVtbDtpbmVuIGxvbWFra2VlbiB0dW5uaXN0ZSAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIExpc3RhIHR1bm5ldHVpc3RhIHZpcmhlaXN0JmF1bWw7IChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+VGFwYWh0dW1hLCBqb3RhIGt1dHN1dGFhbiwga3VuIExvbWFrZXJha2VudGFqYW4gbG9tYWtlIG4mYXVtbDt5dGV0JmF1bWw7JmF1bWw7bjwvcD4KPGg0PlBhcmFtZXRyaXQ8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBMb21ha2tlZW4gbmltaSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gU2lzJmF1bWw7aW5lbiBsb21ha2tlZW4gdHVubmlzdGUgKGludCk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnVmFzdGF1c3R1bm5pc3RlLiBUJmF1bWw7dCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdLZW50dGllbiBvbGV0dXNhcnZvdDsga2F0c28gbGlzJmF1bWw7dGlldG9hIG1vZHV1bGluIG9oamVpc3RhJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0tlbnQmYXVtbDtuIHR1bm5pc3RlIHNpcyZhdW1sO2lzaWxsZSB0b2ltaW5ub2lsbGUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0xvbWFra2VlbiBuaW1pJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnTG9tYWtrZWVuIHR1bm5pc3RlIHNpcyZhdW1sO2lzaWxsZSB0b2ltaW5ub2lsbGUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdZbGVpc2V0IHBhcmFtZXRyaXQgc2lzJmF1bWw7aXNpbGxlIHRvaW1pbm5vaWxsZSc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+CjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+CjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0Cm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+CjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4KCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcKaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPgo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPC91bD48L2xpPjwvbGk+PC91bD4KCgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPgo8cHJlPgoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCglmb3JtIHttYXJnaW4tdG9wOjB9Cglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0KCWZpZWxkc2V0IGRpdiB7CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW07Cgl9CglmaWVsZHNldCBkaXYgZGl2IHsKCQltYXJnaW4tdG9wOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbQoJfQoJZmllbGRzZXQgewoJCW1hcmdpbi1ib3R0b206MWVtOwoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsKCQlwYWRkaW5nOjAuNWVtCgl9CglmaWVsZHNldCBsYWJlbCB7CgkJd2lkdGg6YXV0bzsKCX0KCWxlZ2VuZCB7CgkJY29sb3I6I0ZGRjsKCQliYWNrZ3JvdW5kOiNGNjA7CgkJZm9udC1zdHlsZTppdGFsaWM7CgkJZm9udC1zaXplOjEuMmVtOwoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJcGFkZGluZzowLjJlbTsKCQl3aWR0aDphdXRvOwoJCWJvcmRlcjoxcHggc29saWQgI0NDQwoJfQoJdGV4dGFyZWEgewoJCW1hcmdpbjogMC41ZW0gMDsKCQl3aWR0aDo5OCU7CgkJaGVpZ2h0OiA2ZW0KCX0KCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0KCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLwoJLmNhcHRjaGEgewoJCW1hcmdpbjowLjVlbSAwOwoJCXdpZHRoOjIwMHB4OwoJCXRleHQtYWxpZ246Y2VudGVyCgl9CgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0KCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19CjwvcHJlPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sncWNhJ10gPSAnUDAtNDE4MDU1Mzg4LTEyNjk4NTMxMzc5MTEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjc0NDMwNzM5LjIyLjIudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL2JvYXJkLDE1LjAuaHRtbHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yMTIxODY0MzQzLjEyNjk4NTMxMzguMTI3NDQzMDczOS4xMjc0NDM1NzQ2LjIzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEyNzQ0MzU3NDYnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFpcmVzIChGb3JtIEJ1aWxkZXIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnVHlwZSBkZSBjaGFtcCBub24gcmVuc2VpZ24mZWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTJmVhY3V0ZTtsZWN0aW9ubmVyIHVuIChvdSBwbHVzaWV1cnMpIGl0ZW1zIGRlIENhdGFsb2dlcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpbiBkZSBjaGFtcCByZW5zZWlnbiZlYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1EJmVhY3V0ZTtidXQgZGUgY2hhbXAgcmVuc2VpZ24mZWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ0xpZ25lIGRlIHRleHRlIHNpbXBsZSc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdFbnRyJmVhY3V0ZTtlIE5vbWJyZSBIVE1MNSc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1RW1haWxGaWVsZCddID0gJ0VudHImZWFjdXRlO2UgRW1haWwgSFRNTDUnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNVVSTEZpZWxkJ10gPSAnRW50ciZlYWN1dGU7ZSBVUkwgSFRNTDUnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnTW90IGRlIHBhc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAnTW90IGRlIHBhc3NlICgmYWdyYXZlOyBub3V2ZWF1IHBvdXIgdiZlYWN1dGU7cmlmaWNhdGlvbiknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnTGlnbmVzIGRlIHRleHRlIG11bHRpcGxlcyc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdab25lIGRlIHRleHRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQnV0dG9uRmllbGQnXSA9ICdCb3V0b24nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQm8maWNpcmM7dGUgJmFncmF2ZTsgY29jaGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3JvdXBlIGRlIGJvJmljaXJjO3RlcyAmYWdyYXZlOyBjb2NoZXInOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTWVudSBkJmVhY3V0ZTtyb3VsYW50JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICdNZW51IGQmZWFjdXRlO3JvdWxhbnQgYW5uJmVhY3V0ZTtlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb24gbXVsdGlwbGUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnUyZlYWN1dGU7bGVjdGlvbm5lciB1biAmZWFjdXRlO3RhdCBkZXMgVVNBJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW5lIFByb3ZpbmNlIGR1IENhbmFkYSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW4gcGF5cyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW5lIGRhdGUnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTJmVhY3V0ZTtsZWN0aW9ubmVyIHVuZSBoZXVyZSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dyb3VwZSBkZSBib3V0b25zIHJhZGlvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypBZHJlc3NlciBwYXIgbWFpbCBsZXMgciZlYWN1dGU7c3VsdGF0cyBhcHImZWdyYXZlO3MgY2hvaXggcGFyIG1lbnUgZCZlYWN1dGU7cm91bGFudCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdXZlZ2FyZGVyIGxlcyByJmVhY3V0ZTtzdWx0YXRzIHZlcnMgdW4gZmljaGllciBhcHImZWdyYXZlO3MgY2hvaXggcGFyIG1lbnUgZCZlYWN1dGU7cm91bGFudCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F1dmVnYXJkZXIgZW4gZmljaGllcihzKSBsZXMgciZlYWN1dGU7c3VsdGF0cyBkZXMgcyZlYWN1dGU7bGVjdGlvbnMgbXVsdGlwbGVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmlnZXIgdmVycyBsYSBwYWdlICZhZ3JhdmU7IHBhcnRpciBkJiMwMzk7dW4gbWVudSBkJmVhY3V0ZTtyb3VsYW50JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbnZveWVyIHBhciBtYWlsIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGF1eCBhZHJlc3NlcyBmb3Vybmllcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGlvbiB2aWEgYWRyZXNzZSBtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqTWFpbCBjaGFtcCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDssIGV0IGVudm9pZSBjb3BpZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJyomRWFjdXRlO2NyaXJlIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGRhbnMgdW4gZmljaGllcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVW5pcXVlRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIGEgVW5pcXVlIEZsYXQgRmlsZSBmb3IgZWFjaCBzdWJtaXNzaW9uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9ja2VyIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGRhbnMgbGEgYmFzZSBkZSBkb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqU3RvY2tlciBsZXMgciZlYWN1dGU7c3VsdGF0cyBwb3VyIGxlIG1vZHVsZSBGb3JtQnJvd3NlciB2MC4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkFwcGVsZXIgdW5lIGJhbGlzZSB1dGlsaXNhdGV1ciBhdmVjIGxlIGZvcm11bGFpcmUgciZlYWN1dGU7c3VsdGF0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybSddID0gJypTb3VtZXR0cmUgJmFncmF2ZTsgdW5lIHF1ZWxjb25xdWUgZm9ybWUgZCYjMDM5O2FjdGlvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW52b3llciBwYXIgbWFpbCBhdXggdXRpbGlzYXRldXJzIGF5YW50IGZvdXJuaSB1bmUgYWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqTWFpbCB2ZXJzIGwmIzAzOTthZG1pbmlzdHJhdGV1ciBkdSBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1TYXV0IGRlIHBhZ2UnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWNoaWVyICZhZ3JhdmU7IGVudm95ZXInOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdDaGFtcCBkdSBtYWlsICZxdW90O0Zyb20gQWRyZXNzZSZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnQ2hhbXAgZHUgbWFpbCAmcXVvdDtGcm9tIEFkcmVzc2UmcXVvdDsgJmFncmF2ZTsgbm91dmVhdSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0NoYW1wIGR1IG1haWwgJnF1b3Q7RnJvbSBOb20mcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdDaGFtcCBkdSBtYWlsICZxdW90O1N1amV0JnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVRleHRlIHN0YXRpcXVlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLUxpZW4gc3RhdGlxdWUnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaWVuICh1dGlsaXNhdGV1ciBjb25udSknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1DaGFtcCBjYWNoJmVhY3V0ZTsnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNoYW1wIGNhbGN1bCZlYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLUVudGllciB1bmlxdWUgKFMmZWFjdXRlO3JpZSknOwokbGFuZ1snZmllbGRfdHlwZV9Vc2VyVGFnRmllbGQnXSA9ICctQXBwZWxlciB1bmUgYmFsaXNlIHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnQ2hhbXAgQ29tcGFueSBEaXJlY3RvcnknOwokbGFuZ1snZmllbGRfdHlwZV9Nb2R1bGVJbnRlcmZhY2VGaWVsZCddID0gJy1DaGFtcCBNb2R1bGUgSW50ZXJmYWNlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ1NhbnMgVmFsaWRhdGlvbic7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW0mZWFjdXRlO3JpcXVlJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0VudGllcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdBZHJlc3NlIG1haWwnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnTnVtJmVhY3V0ZTtybyBkZSB0JmVhY3V0ZTtsJmVhY3V0ZTtwaG9uZSAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ0RvaXQgJmVjaXJjO3RyZSB2JmVhY3V0ZTtyaWZpJmVhY3V0ZTsnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1ZhbGlkZXIgbCYjMDM5O2V4cHJlc3Npb24gcmVndWxpJmVncmF2ZTtyZSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdOZSBwYXMgdmFsaWRlciBsJiMwMzk7ZXhwcmVzc2lvbiByZWd1bGkmZWdyYXZlO3JlJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdVbiBjaGFtcCBvYmxpZ2F0b2lyZSBuJiMwMzk7YSBwYXMgJmVhY3V0ZTt0JmVhY3V0ZTsgcmVtcGxpJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuZSB2YWxldXIgcG91ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdWZXVpbGxleiBlbnRyZXIgdW4gbm9tYnJlIHBvdXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuZSB2YWxldXIgY29ycmVjdGUgcG91ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgdmFsZXVyIGVudGkmZWdyYXZlO3JlIHBvdXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuZSBhZHJlc3NlIG1haWwgdmFsaWRlIHBvdXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0wmIzAzOTthZHJlc3NlIG1haWwgbmUgY29ycmVzcG9uZCBwYXMgJmFncmF2ZTsgbGEgdmFsZXVyIGRlICZxdW90OyUgcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1ZldWlsbGV6IGVudHJlciB1biBudW0mZWFjdXRlO3JvIGRlIHQmZWFjdXRlO2wmZWFjdXRlO3Bob25lIHZhbGlkZSBwb3VyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ01lcmNpIGRlIHZvdXMgY29ubmVjdGV6IGF2ZWMgY2UgZm9ybXVsYWlyZSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuZSBzZW1ibGUgcGFzICZlY2lyYzt0cmUgdW5lIGFkcmVzc2UgbWFpbCB2YWxpZGUgISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuZSB2YWxldXIgYXlhbnQgbW9pbnMgZGUgJXMgY2FyYWN0JmVncmF2ZTtyZXMnOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnVmV1aWxsZXogZW50cmVyIHVuZSB2YWxldXIgYXUgbWluaW11bSBkZSAlIHMgY2FyYWN0JmVncmF2ZTtyZXMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDYXJhY3QmZWdyYXZlO3JlIHV0aWxpcyZlYWN1dGU7IGNvbW1lICZxdW90O3MmZWFjdXRlO3BhcmF0ZXVyJnF1b3Q7IGRhbnMgbGVzIGZvcm11bGFpcmVzIHJlJmNjZWRpbDt1cyBjb250ZW5hbnQgcGx1cyBkJiMwMzk7dW5lIHZhbGV1ciZuYnNwOyc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnSWwgdm91cyBmYXV0IGxhIHBlcm1pc3Npb24gJnF1b3Q7JXMmcXVvdDsgcG91ciBleCZlYWN1dGU7Y3V0ZXIgY2V0dGUgb3AmZWFjdXRlO3JhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdEJmVhY3V0ZTtzb2wmZWFjdXRlOyAhIFZvdXMgbiYjMDM5O2F2ZXogcGFzIGxlcyBkcm9pdHMgc3VmZmlzYW50cyBwb3VyIGFjYyZlYWN1dGU7ZGVyICZhZ3JhdmU7IGNldHRlIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdPcmRyZSBkZXMgY2hhbXBzIG1pcyAmYWdyYXZlOyBqb3VyLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxhaXJlIHN1cHByaW0mZWFjdXRlOy4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0NoYW1wIHN1cHByaW0mZWFjdXRlOy4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhdGlvbiBtaXNlICZhZ3JhdmU7IGpvdXIuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnViZlYWN1dGU7cmlmaWV6ICZxdW90OyVzJnF1b3Q7IHBvdXIgcG91dm9pciBjb250aW51ZXIuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdWb3VzIGRldmV6IHByJmVhY3V0ZTtjaXNlciBhdSBtb2lucyB1bmUgYWRyZXNzZSBkZSBkZXN0aW5hdGlvbiAhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ1ZvdWxlei12b3VzIHZyYWltZW50IHN1cHByaW1lciBsZSBmb3JtdWxhaXJlICVzID8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ1ZvdWxlei12b3VzIHZyYWltZW50IHN1cHByaW1lciBsZSBjaGFtcCAlcyA/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0xlcyBvcHRpb25zIGF2YW5jJmVhY3V0ZTtlcyBuZSBzZXJvbnQgZGlzcG9uaWJsZXMgcXVlIGxvcnNxdWUgcXUmIzAzOTt1biB0eXBlIGRlIGNoYW1wIGF1cmEgJmVhY3V0ZTt0JmVhY3V0ZTsgY2hvaXNpLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0lsIGV4aXN0ZSBkJmVhY3V0ZTtqJmFncmF2ZTsgdW4gY2hhbXAgJnF1b3Q7JXMmcXVvdDsgdXRpbGlzJmVhY3V0ZTsuIFV0aWxpc2V6IGRlcyBub21zIGRlIGNoYW1wIHVuaXF1ZXMgb3UgZCZlYWN1dGU7c2FjdGl2ZXogY2V0dGUgZm9uY3Rpb24gZGFucyBsYSBjb25maWd1cmF0aW9uIGRlIEZvcm0gQnVpbGRlci4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ1RvdXMgbGVzIGNoYW1wcyBkb2l2ZW50ICZlY2lyYzt0cmUgbm9tbSZlYWN1dGU7cywgc2lub24gZCZlYWN1dGU7c2FjdGl2ZXogY2V0dGUgZm9uY3Rpb24gZGFucyBsYSBjb25maWd1cmF0aW9uIGRlIEZvcm0gQnVpbGRlci4nOwokbGFuZ1snbm9fZmllbGRfYXNzaWduZWQnXSA9ICdBdWN1biBjaGFtcCBkJmVhY3V0ZTtzaWduJmVhY3V0ZTsgcG91ciAlcyc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW1lJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMb25ndWV1ciA6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm8maWNpcmM7dGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zICc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNhcmFjdCZlZ3JhdmU7cmVzLic7CiRsYW5nWydvcmRlciddID0gJ09yZHJlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25vbiBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7XSc7CiRsYW5nWydhZGRlZCddID0gJ2Fqb3V0JmVhY3V0ZTsnOwokbGFuZ1sndXBkYXRlZCddID0gJ21pcyAmYWdyYXZlOyBqb3VyJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1RyaWVyIGxlcyBvcHRpb25zICZhZ3JhdmU7IGwmIzAzOTtleCZlYWN1dGU7Y3V0aW9uJm5ic3A7JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTJmVhY3V0ZTtsZWN0aW9ubmV6LWVuIHVuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnUyZlYWN1dGU7bGVjdGlvbm5leiBsZSB0eXBlJzsKJGxhbmdbJ3RvJ10gPSAnUG91cic7CiRsYW5nWyd5ZXMnXSA9ICdPdWknOwokbGFuZ1snbm8nXSA9ICdOb24nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ2Rlc3RpbmF0YWlyZXMnOwokbGFuZ1snZmllbGRzJ10gPSAnY2hhbXBzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBmaWNoaWVycyBwb3NzaWJsZXMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMgJzsKJGxhbmdbJ3NhdmUnXSA9ICdTYXV2ZWdhcmRlcic7CiRsYW5nWydhZGQnXSA9ICdBam91dGVyJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ01pc2UgJmFncmF2ZTsgam91cic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NhdXZlZ2FyZGVyIGV0IGNvbnRpbnVlciBsJiMwMzk7JmVhY3V0ZTtkaXRpb24nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbiAnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlxdWUnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhaXJlcyc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYWlyZSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhdGlvbiAnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0NoYW1wIHJlcXVpcyBtaXMgJmFncmF2ZTsgam91ci4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnVGFpbGxlIE1heGltdW0nOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zICc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVHlwZXMgZGUgZmljaGllciBhdXRvcmlzJmVhY3V0ZTtzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRmljaGllciBlbnZveSZlYWN1dGU7IHRyb3AgbG91cmQgISBMYSB0YWlsbGUgbWF4aW11bSBlc3QgZGUgOiZuYnNwOyc7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0NlIHR5cGUgZGUgZmljaGllciBuJiMwMzk7ZXN0IHBhcyBhY2NlcHQmZWFjdXRlOy4gVmV1aWxsZXogdiZlYWN1dGU7cmlmaWVyIGwmIzAzOTtleHRlbnNpb24gZGUgdm90cmUgZmljaGllci4nOwokbGFuZ1sndXBsb2FkJ10gPSAnRW52b2knOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm11bGFpcmUgSW1wb3J0JmVhY3V0ZTsuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0wmIzAzOTtpbXBvcnRhdGlvbiBkdSBmb3JtdWxhaXJlIGEgJmVhY3V0ZTtjaG91JmVhY3V0ZTsgISBJbCB5IGEgdW4gcHJvYmwmZWdyYXZlO21lIGF2ZWMgbGUgZm9ybWF0IGR1IGZpY2hpZXIgWE1MLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgbGlnbmVzJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBjb2xvbm5lcyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnU3VyIDEyIGhldXJlcyc7CiRsYW5nWycyNF9ob3VyJ10gPSAnU3VyIDI0IGhldXJlcyc7CiRsYW5nWydob3VyJ10gPSAnSGV1cmUnOwokbGFuZ1snbWluJ10gPSAnTWludXRlICc7CiRsYW5nWydtZXJpZCddID0gJ00mZWFjdXRlO3JpZGllbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnT3JkcmUgOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ01lcmNpICEgVm90cmUgZm9ybXVsYWlyZSBhICZlYWN1dGU7dCZlYWN1dGU7IHJlJmNjZWRpbDt1Lic7CiRsYW5nWydlZGl0J10gPSAnRWRpdGVyJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1N1cHByaW1lcic7CiRsYW5nWydkYXknXSA9ICdKb3VyJzsKJGxhbmdbJ21vbiddID0gJ01vaXMnOwokbGFuZ1sneWVhciddID0gJ0FubiZlYWN1dGU7ZSc7CiRsYW5nWydub25lJ10gPSAnKEF1Y3VuKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MgJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGwmZWFjdXRlO2UuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIG1pcyAmYWdyYXZlOyBqb3VyICZhZ3JhdmU7IGxhIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1JldG91ci4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnRW52b3llcic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdTdWl2YW50Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdWJmVhY3V0ZTtyaWZpJmVhY3V0ZTsnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTm9uIHYmZWFjdXRlO3JpZmkmZWFjdXRlOyc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ1ByaW5jaXBhbCc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgZCYjMDM5O2FmZmljaGFnZSBkdSBGb3JtdWxhaXJlJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdFbnZvaSBkdSBGb3JtdWxhaXJlJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnT3B0aW9ucyBDYXB0Y2hhICc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdPcHRpb25zIGF2YW5jJmVhY3V0ZTtlcyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdHYWJhcml0IGR1IEZvcm11bGFpcmUnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgbCYjMDM5O2Vudm9pJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdJbnRlZ3JhdGlvbiBiYWxpc2UgdXRpbGlzYXRldXInOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5MZXMgdmFyaWFibGVzIFNtYXJ0eSBzb250IGFjdGl2ZXMgZGFucyBjZSBjaGFtcC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0Fqb3V0ZXIgcGx1cyBkJiMwMzk7b3B0aW9ucyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1N1cHByaW1lciBsZXMgb3B0aW9ucyBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7ZXMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBam91dGVyIGQmIzAzOTthdXRyZXMgYm8maWNpcmM7dGVzIGRlIHYmZWFjdXRlO3JpZmljYXRpb24nOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdTdXBwcmltZXIgbGVzIGJvJmljaXJjO3RlcyBkZSB2JmVhY3V0ZTtyaWZpY2F0aW9uIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0Fqb3V0ZXIgZCYjMDM5O2F1dHJlcyBhZHJlc3NlcyBtYWlsJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnU3VwcHJpbWVyIGxlcyBhZHJlc3NlcyBtYWlsIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBam91dGVyIGQmIzAzOTthdXRyZXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1N1cHByaW1lciBsZXMgZGVzdGluYXRpb25zIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1Ryb3AgZGUgbWFpbHMgc29udCBnJmVhY3V0ZTtuJmVhY3V0ZTtyJmVhY3V0ZTtzICZhZ3JhdmU7IHBhcnRpciBkZSB2b3RyZSBhZHJlc3NlIElQICEgTGUgc3lzdCZlZ3JhdmU7bWUgYW50aS1zcGFtIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgYWN0aXYmZWFjdXRlOyBldCBsZXMgYWRtaW5pc3RyYXRldXJzIGR1IHNpdGUgZW4gb250ICZlYWN1dGU7dCZlYWN1dGU7IGluZm9ybSZlYWN1dGU7cy4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnRGUgcG9zc2libGVzIHNwYW1zIHByb3ZlbmFudCBkZSBsJiMwMzk7SVAgJXMgb250ICZlYWN1dGU7dCZlYWN1dGU7IHN0b3BwJmVhY3V0ZTtzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUiZlYWN1dGU7b3JnYW5pc2VyIGxlcyBjaGFtcHMnOwokbGFuZ1snY2FuY2VsJ10gPSAnQW5udWwmZWFjdXRlOyc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWxldXIgZG9ubiZlYWN1dGU7ZSA6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmYW1wO3F1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJmFtcDtxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJmFtcDtxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZhbXA7cXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPgo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdVbmUgZXhwcmVzc2lvbiByZWd1bGkmZWdyYXZlO3JlIHBvdXIgZmlsdHJlciBwYXIgbm9tIGxlcyBpdGVtcyBkZSBDYXRhbG9nZXInOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdMYSBoYXV0ZXVyIGR1IGNoYW1wIG11bHRpcGxlJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdOb20gZGUgbCYjMDM5O2V4cHJlc3Npb24gcmVndWxpJmVncmF2ZTtyZSBwb3VyIENhdGFsb2dlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdIYXV0ZXVyIGR1IGNoYW1wJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rvc3NpZXIgZGUgZGVzdGluYXRpb24gcG91ciBsZXMgZmljaGllcnMgY3ImZWFjdXRlO2VzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnQmFsaXNlIHV0aWxpc2F0ZXVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIGRlIHJldG91ciBwb3VyIGxlcyBsaWVucyBkJiMwMzk7dXBsb2FkcyAoZW52b2lzKSc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ0Vudm95JmVhY3V0ZTsgYXZlYyBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnQ2F0JmVhY3V0ZTtnb3JpZSBkJiMwMzk7VXBsb2FkcyAoZW52b2lzKSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ0Vudm95ZXIgY2UgZmljaGllciBhdSBtb2R1bGUgZCYjMDM5O3VwbG9hZCc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGUnXSA9ICdBdXRvcmlzZXIgbCYjMDM5OyZlYWN1dGU7Y3Jhc2VtZW1udCBkZXMgZmljaGllcnMgZCZlYWN1dGU7aiZhZ3JhdmU7IGV4aXRhbnQgbG9ycyBkZSBsJiMwMzk7dXBsb2FkID8nOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlX2xvbmcnXSA9ICdMZSBmaWNoaWVyIHVwbG9hZCZlYWN1dGU7IGRvaXQtaWwgJmVhY3V0ZTtjcmFzZXIgbGUgZmljaGllciBwciZlYWN1dGU7YyZlYWN1dGU7ZGVtbWVudCB1cGxvYWQmZWFjdXRlOyBzJiMwMzk7aWwgYSBsZSBtJmVjaXJjO21lIG5vbSA/JzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ1Blcm1ldCBsZSByZW1wbGFjZW1lbnQnOwokbGFuZ1snbm9vdmVyd3JpdGUnXSA9ICdOb24gcmVtcGxhYyZlYWN1dGU7JzsKJGxhbmdbJ2ZpbGVfYWxyZWFkeV9leGlzdHMnXSA9ICdMZSBmaWNoaWVyICVzIGV4aXN0ZSBkJmVhY3V0ZTtqJmFncmF2ZTssIGV0IG5lIHBldXQgcGFzICZlY2lyYzt0cmUgJmVhY3V0ZTtjcmFzJmVhY3V0ZTsuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcmVuYW1lJ10gPSAnTm9tIGR1IGZpY2hpZXIgZ2FiYXJpdCc7CiRsYW5nWydvcmlnaW5hbF9maWxlX2V4dGVuc2lvbiddID0gJ0V4dGVuc2lvbiBvcmlnaW5hbGUgZHUgZmljaGllciAobGUgJnF1b3Q7LiZxdW90OyBjb21wcmlzKSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19maWxlbmFtZSddID0gJ1N1cHByaW1lciBsZSBub20gZGUgZmljaGllciBkYW5zIGRlcyBsZXMgbWFpbHMgZXQgZGFucyBsZXMgZm9ybXVsYWlyZXMgcG91ciBsJiMwMzk7dXRpbGlzYXRldXIgZmluYWwnOwokbGFuZ1snZmlsZV9yZW5hbWVfaGVscCddID0gJ1BvdXIgcmVub21tZXIgdW4gZmljaGllciBwb3VyIGwmIzAzOTt1cGxvYWQsIGNyJmVhY3V0ZTtleiBsZSBnYWJhcml0IGljaS4gTGFpc3NleiB2aWRlIHBvdXIgcHImZWFjdXRlO3NlcnZlciBsZSBub20gZHUgZmljaGllciBvcmlnaW5hbCc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMJmVhY3V0ZTtnZW5kZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ0xvbmd1ZXVyIG1heGltdW0mbmJzcDsnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdJbnRpdHVsJmVhY3V0ZTsgZGUgbGEgIGJvaXRlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnSW50aXR1bCZlYWN1dGU7IGR1IGJvdXRvbiByYWRpbyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsZXVyIHYmZWFjdXRlO3JpZmkmZWFjdXRlO2UmbmJzcDsnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsZXVyIG5vbi12JmVhY3V0ZTtyaWZpJmVhY3V0ZTtlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEJmVhY3V0ZTt0YWlscyBkZXMgZ3JvdXBlcyBkZXMgYm9pdGVzIGRlIHYmZWFjdXRlO3JpZmljYXRpb25zJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1N1cHByaW1lciA/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHRlIHBlcnNvbm5hbGlzYWJsZSAmcXVvdDtzJmVhY3V0ZTtsZWN0aW9uJnF1b3Q7Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1ZhbGV1ciBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7ZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdOb20gZCYjMDM5O2FmZmljaGFnZSBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU3VqZXQgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnUyZlYWN1dGU7bGVjdGlvbiBwYXIgZCZlYWN1dGU7ZmF1dCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1MmZWFjdXRlO2xlY3Rpb24gcGFyIGQmZWFjdXRlO2ZhdXQmbmJzcDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTJmVhY3V0ZTtsZWN0aW9uIHBhciBkJmVhY3V0ZTtmYXV0Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTm9tIGRlIGwmIzAzOTtvcHRpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsZXVyIHNvdW1pc2UnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ09wdGlvbnMgcGFyIG1lbnUgZCZlYWN1dGU7cm91bGFudCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnT3B0aW9ucyBkZSBTJmVhY3V0ZTtsZWN0aW9uIG11bHRpcGxlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdBZHJlc3NlIG1haWwgZGUgZGVzdGluYXRpb24mbmJzcDsnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdOb20gZHUgZmljaGllciBkZSBkZXN0aW5hdGlvbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcm9tIE5vbSZxdW90OyBwb3VyIGxlIG1haWwmbmJzcDsnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1ZhbGlkYXRpb24gYWRyZXNzZSBtYWlsIHBsdXMgc291cGxlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0F1dG9yaXNlciBsZXMgYWRyZXNzZXMgbWFpbCBzYW5zIGV4dGVuc2lvbiAoYy5hLmQgOiBhY2NlcHRlciAmcXVvdDtub21AZG9tYWluZSZxdW90OyAmYWdyYXZlOyBsYSBwbGFjZSBkZSAmcXVvdDtub21AZG9tYWluZS5jb20mcXVvdDsgcmVxdWlzIHBhciBkJmVhY3V0ZTtmYXV0KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIEFkcmVzc2UmcXVvdDsgcG91ciBNYWlsIGRlIGwmIzAzOTtleHAmZWFjdXRlO2RpdGV1ciZuYnNwOyc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VuY29kYWdlIGRlcyBjYXJhY3QmZWdyYXZlO3JlcyBkdSBtYWlsJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdNZW51IGQmZWFjdXRlO3JvdWxhbnQgYmFzJmVhY3V0ZTsgc3VyIGxlcyBkJmVhY3V0ZTt0YWlscyBkZSBsJiMwMzk7ZW1haWwmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnTm9tIGR1IGZpY2hpZXImbmJzcDsnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0xpZ25lIGR1IHN1amV0IGRhbnMgbGUgbWFpbCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOb20gZHUgRm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXR1dCBkdSBGb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUHImZWNpcmM7dCAmYWdyYXZlOyAmZWNpcmM7dHJlIGQmZWFjdXRlO3Bsb3kmZWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnUGFzIHByJmVjaXJjO3QnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgZGUgcmVkaXJlY3Rpb24gYXByJmVncmF2ZTtzIGwmIzAzOTtlbnZvaSBkdSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdBam91dGVyIHVuIGNoYW1wIGF1IGZvcm11bGFpcmUgcG91ciBwb3V2b2lyIG1vZGlmaWVyIGxlcyBjb250cmlidXRpb25zIGRlcyB1dGlsaXNhdGV1cnMuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnVXRpbGlzZXIgY2UgcmFjY291cmNpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdBbGlhcyBkdSBGb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMgJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnQ2hhbXBzIGR1IEZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJRCBkdSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ01vbnRyZXIgbGVzIGNoYW1wcyBBbGlhcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ29jaGVyIGNldHRlIGNhc2UgbW9udHJlcmEgbGVzIGNoYW1wcyBBbGlhcyBsb3JzIGRlIGwmIzAzOTsmZWFjdXRlO2RpdGlvbiBkZSBjZSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdOb20gZGUgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdBbGlhcyBkdSBjaGFtcCBldCBJZCBET00gKGlkIENTUykmbmJzcDsnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnRCZlYWN1dGU7dGFpbHMgZGVzIGdyb3VwZXMgZGUgYm91dG9ucyByYWRpbyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVHlwZSBkZSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAncG91ciBjciZlYWN1dGU7ZXIgdW4gZm9ybXVsYWlyZSByYXBpZGVtZW50Lic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBam91dGVyIHVuIG5vdXZlYXUgZm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdNb250cmVyIGxhIHZlcnNpb24gZGUgRm9ybSBCdWlsZGVyID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdDZWxhIGluZGlxdWVyYSBkYW5zIHVuIGNvbW1lbnRhaXJlIGxhIHZlcnNpb24gaW5zdGFsbCZlYWN1dGU7ZSBkdSBtb2R1bGUgRm9ybSBCdWlsZGVyLiBQYXJmb2lzIHV0aWxlIHBvdXIgZCZlYWN1dGU7YnVnZ2VyLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWpvdXRlciB1biBub3V2ZWF1IGNoYW1wJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1RleHRlIGR1IGJvdXRvbiBkJiMwMzk7ZW52b2kgZHUgZm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ1RleHRlIGR1IGJvdXRvbic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0Fqb3V0ZXIgZHUgSmF2YXNjcmlwdCBhdSBib3V0b24gZCYjMDM5O2Vudm9pIGZpbmFsIHBvdXIgYWlkZXIgJmFncmF2ZTsgbGEgcHImZWFjdXRlO3ZlbnRpb24gZGVzIGVudm9pcyBtdWx0aXBsZXMgKHNwYW0pID8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0Fqb3V0ZXIgdW4gc2NyaXB0IHMmZWFjdXRlO2N1cmlzJmVhY3V0ZTsmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHRlIGR1IGJvdXRvbiAmcXVvdDtzdWl2YW50JnF1b3Q7IGR1IGZvcm11bGFpcmUgKHV0aWxpcyZlYWN1dGU7IHBvdXIgbGVzIGZvcm11bGFpcmVzIGNvbXByZW5hbnQgcGx1c2lldXJzIHBhZ2VzKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnVGV4dGUgZHUgYm91dG9uICZxdW90O3ByJmVhY3V0ZTtjJmVhY3V0ZTtkZW50JnF1b3Q7IGR1IGZvcm11bGFpcmUgKHV0aWxpcyZlYWN1dGU7IHBvdXIgbGVzIGZvcm11bGFpcmVzIGNvbXByZW5hbnQgcGx1c2lldXJzIHBhZ2VzKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnVmFsaWRhdGlvbiBkdSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0NoYW1wICZhZ3JhdmU7IHZhbGlkZXImbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnSWQgQ1NTIHBvdXIgY2UgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDbGFzc2UgQ1NTIGRlIGNlIGZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ2xhc3NlIENTUyBkZSBjZSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnQmFsaXNlIHV0aWxpc2F0ZXVyICZhZ3JhdmU7IGFwcGVsZXIgYXZhbnQgZCYjMDM5O2FmZmljaGVyIGxlIGZvcm11bGFpcmUgbGEgcHJlbWkmZWdyYXZlO3JlIGZvaXMgKGFwcGVsJmVhY3V0ZTtlIHVuZSBzZXVsZSBmb2lzKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdCYWxpc2UgdXRpbGlzYXRldXIgJmFncmF2ZTsgYXBwZWxlciBhdmFudCBkJiMwMzk7YWZmaWNoZXIgbGUgZm9ybXVsYWlyZSAoYXBwZWwmZWFjdXRlO2UgJmFncmF2ZTsgY2hhcXVlIHBhZ2UgcG91ciBsZXMgZm9ybXVsYWlyZXMgbXVsdGlwYWdlcykmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICdCYWxpc2UgdXRpbGlzYXRldXIgJmFncmF2ZTsgYXBwZWxlciBwZW5kYW50IGxhIHZhbGlkYXRpb24gZHUgZm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbGUgaW5kaXF1YW50IHVuIGNoYW1wIG9ibGlnYXRvaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdDZSBjaGFtcCBleGlnZSB1bmUgciZlYWN1dGU7cG9uc2Ugb2JsaWdhdG9pcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0ludGl0dWwmZWFjdXRlOyBjYWNoJmVhY3V0ZTsmbmJzcDsnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnTWFzcXVlciBsZSBub20gZGUgY2UgY2hhbXAgZGFucyBsZSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCddID0gJ0xhIGxvbmd1ZXVyIG1heGltYWxlIGR1IGNvbnRlbnUgZCYjMDM5O3VuIGNoYW1wICgwIG91IHZpZGUgcGFzIGRlIGxpbWl0ZSknOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1RleHRlIHN0YXRpcXVlICZhZ3JhdmU7IGFmZmljaGVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTm9tYnJlIGRlIGxpZ25lcyAmYWdyYXZlOyBhZmZpY2hlciZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdMZWN0dXJlIHNldWxlJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdQYXMgZGUgcyZlYWN1dGU7bGVjdGlvbiBwYXIgZCZlYWN1dGU7ZmF1dCZuYnNwOyc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgZGUgcmVkaXJlY3Rpb24gYXByJmVncmF2ZTtzIGFjY2VwdGF0aW9uJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdDZXR0ZSBleHByZXNzaW9uIHImZWFjdXRlO2d1bGkmZWdyYXZlO3JlIHNlcmEgc2V1bGVtZW50IHV0aWxpcyZlYWN1dGU7ZSBzaSAmcXVvdDt0eXBlIGRlIHZhbGlkYXRpb24mcXVvdDsgZXN0IG1pcyBzdXIgdW5lIG9wdGlvbiBhcHBhcmVudCZlYWN1dGU7ZSByZWdleC4gSW5jbHV0IHVuIHN0eWxlIFBlcmwgcmVnZXggY29tcGxldCwgaW5jbHVhbnQgbGVzIHNsYXNoZXMgZGUgZCZlYWN1dGU7YnV0IGV0IGZpbiBhaW5zaSBxdWUgbGVzIGZsYWdzIChleGVtcGxlIDogJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXF1aXMnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdDYWNoZXIgbGVzIGVycmV1cnMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ1R5cGUgZCYjMDM5O2FmZmljaGFnZSBkdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdDYWNoZXIgYXV4IHV0aWxpc2F0ZXVycyBsJiMwMzk7YWZmaWNoYWdlIGRlcyBtZXNzYWdlcyBkJiMwMzk7ZXJyZXVyIG91IGRlIGRlYnVnYWdlLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZHUgbWFpbCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdUYWlsbGUgTWF4aW11bSBwb3VyIGwmIzAzOTtlbnZvaSBkZSBmaWNoaWVyIChraWxvYnl0ZXMpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnQ2V0dGUgbGltaXRhdGlvbiBlc3QgZW4gc3VzIGRlcyBsaW1pdGVzIHBocCBvdSBkZSBjZWxsZXMgZGUgbGEgY29uZmlndXJhdGlvbiBkdSBzZXJ2ZXVyIHdlYic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnUiZlYWN1dGU7cGVydG9pcmUgZCYjMDM5O2VucmVnaXN0cmVybWVudCBkZXMgZmljaGllcnMmbmJzcDsnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zIGF1dG9yaXMmZWFjdXRlO2VzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRyZXIgdW5lIGxpc3RlIHMmZWFjdXRlO3BhciZlYWN1dGU7ZSBwYXIgdW4gY2FyYWN0JmVncmF2ZTtyZSBhdXRyZSBxdWUgbGUgcG9pbnQsIChleGVtcGxlIDogJnF1b3Q7anBnLCBnaWYsIGpwZWcmcXVvdDspLiBMZXMgZXNwYWNlcyBzZXJvbnQgaWdub3ImZWFjdXRlO3MuIExhaXNzZXIgdmllcmdlIHNpZ25pZmllICZxdW90O2F1Y3VuZSByZXN0cmljdGlvbiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnQWZmaWNoZXIgbGVzIHJlc3RyaWN0aW9ucyA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0FmZmljaGVyIGxlcyByZXN0cmljdGlvbnMgZGUgdGFpbGxlcyBldCBkJiMwMzk7ZXh0ZW5zaW9ucyBwb3VyIGxlIGNoYW1wIGQmIzAzOTt1cGxvYWQgPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCAmYWdyYXZlOyB1dGlsaXNlciBwb3VyIGFmZmljaGVyIGxlIGZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIHN1ciAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnQ2hhbXAgc2FucyBvcHRpb24gYXZhbmMmZWFjdXRlO2UuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0ZSAmYWdyYXZlOyByZW52b3llciBwb3VyIGxlcyB2YWxldXJzIGRlIGNoYW1wIG5vbiBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7ZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0F1dG9yaXNlciBsJiMwMzk7YWpvdXQgcmFwaWRlIGRlcyBjaGFtcHMgZGUgZm9ybXVsYWlyZSAmYWdyYXZlOyBsJiMwMzk7YWlkZSBkJiMwMzk7dW4gbWVudSBkJmVhY3V0ZTtyb3VsYW50ID8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdBY2MmZWdyYXZlO3MgcmFwaWRlIGF1IGZvcm11bGFpcmUgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnQWpvdXQgcmFwaWRlIGR1IGNoYW1wJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ29jaGVyIGNldHRlIGNhc2UgbGltaXRlcmEgJmFncmF2ZTsgMTAgZW1haWxzIHBhciBoZXVyZSBsYSB0cmFuc21pc3Npb24gZGVzIGZvcm11bGFpcmVzIHBvdXIgdW5lIG0mZWNpcmM7bWUgYWRyZXNzZSBJUC4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnT3B0ZXIgcG91ciBkZXMgcmVzdHJpY3Rpb25zIGFudGktc3BhbSA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdNb250cmVyIGxlcyBJRCBkZXMgY2hhbXBzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NvY2hlciBjZXR0ZSBjYXNlIGF1dG9yaXNlcmEgbCYjMDM5O2FmZmljaGFnZSBkZXMgSUQgZGUgY2hhbXBzIHBlbmRhbnQgbCYjMDM5O2Fqb3V0IG91IGwmIzAzOTsmZWFjdXRlO2RpdGlvbiBkdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdJbXBvcnRlciB1biBmb3JtdWxhaXJlICZhZ3JhdmU7IHBhcnRpciBkJiMwMzk7dW4gZmljaGllciBYTUwmbmJzcDsnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1V0aWxpc2VyIGNlIG5vbSBkZSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdJbXBvcnRlciB1biBmb3JtdWxhaXJlIGRlIGZvcm1hdCBYTUwmbmJzcDsnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVdGlsaXNlciBjZXQgYWxpYXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0cmZWFjdXRlO24mZWFjdXRlO3JlciB1biBtYWlsIGVuIEhUTUwgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ1JlbXBsaXIgYXV0b21hdGlxdWVtZW50ID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ1JlbXBsaXIgYXV0b21hdGlxdWVtZW50IGF2ZWMgbCYjMDM5O1VSTCBkZSBsYSBwYWdlIGNvbnRhbnQgbGUgZm9ybXVsYWlyZSA/IChDZWNpIHImZWFjdXRlOyZlYWN1dGU7Y3JpcmEgbGUgbGllbiBkZSBsYSBwYWdlIGNpLWRlc3NvdXMpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0xpZW4gVVJMIHBhciBkJmVhY3V0ZTtmYXV0Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1RleHRlIHBhciBkJmVhY3V0ZTtmYXV0IGR1IGxpZW4mbmJzcDsnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpZW4gcG91ciBsYSBwYWdlIGR1IHNpdGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnVm91cyBwb3V2ZXogdXRpbGlzZXI8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHBvdXIgcHJvdCZlYWN1dGU7Z2VyIGwmIzAzOTtlbnZvaSBkZSB2b3MgZm9ybXVsYWlyZXMgZW4gaW5zdGFsbGFudCBsZSBtb2R1bGUgQ2FwdGNoYS4gUG91ciBwbHVzIGQmIzAzOTtpbmZvcm1hdGlvbnMsIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPnN1aXZleiBsZSBwcm9qZXQgZHUgQ2FwdGNoYTwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXRpbGlzZXIgQ2FwdGNoYSBwb3VyIHByb3QmZWFjdXRlO2dlciBsJiMwMzk7ZW52b2kgZGUgdm9zIGZvcm11bGFpcmVzID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ1YmZWFjdXRlO3JpZmllciBpY2kgY29tbWVudCBwcm90JmVhY3V0ZTtnZXIgdm9zIGZvcm11bGFpcmVzIGF2ZWMgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVmV1aWxsZXogY29uZmlybWVyIHF1ZSB2b3VzIG4mIzAzOTsmZWNpcmM7dGVzIHBhcyB1biBhdXRvbWF0ZSBlbiByZWNvcGlhbnQgbGVzIGNhcmFjdCZlZ3JhdmU7cmVzIHByJmVhY3V0ZTtzZW50cyBzdXIgbCYjMDM5O2ltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdFY2hlYyBkZSBsYSB2JmVhY3V0ZTtyaWZpY2F0aW9uIENhcHRjaGEmbmJzcDsnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0xlIGNvZGUgcmVudHImZWFjdXRlOyBkaWZmJmVncmF2ZTtyZSBkZSBsJiMwMzk7aW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1RleHRlIGQmIzAzOTthaWRlIGNvbmNlcm5hbnQgQ2FwdGNoYSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdOZSBwYXMgZW52b3llciBsZXMgdmFsZXVycyBub24tY29jaCZlYWN1dGU7ZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDb2NoZXogY2VjaSBzaSB2b3VzIHZvdWxleiBzZXVsZW1lbnQgcXVlIGxlcyBjYXNlcyBjb2NoJmVhY3V0ZTtlcyByZXRvdXJuZW50IGRlcyB2YWxldXJzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGFiZWwgZHUgbGllbiZuYnNwOyc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnVVJMIGRlIGRlc3RpbmF0aW9uIGR1IGxpZW4mbmJzcDsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdTJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7IHBhciBkJmVhY3V0ZTtmYXV0ID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ0hldXJlcyBkZSAwICZhZ3JhdmU7IDI0ID8gJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0gYXZhbnQgbWlkaSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0gYXByJmVncmF2ZTtzIG1pZGknOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdBdmVjIGRlcyBiYWxpc2VzIFNtYXJ0eSBkYW5zIGxlcyBjaGFtcHMgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnTGlnbmVzIChub3RlIDogcGV1dCAmZWNpcmM7dHJlIG1vZGlmaSZlYWN1dGU7IHZpYSBDU1MpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2xvbm5lcyAobm90ZSA6IHBldXQgJmVjaXJjO3RyZSBtb2RpZmkmZWFjdXRlOyB2aWEgQ1NTKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdBY2N1ZWlsIC0gRCZlYWN1dGU7dGFpbHMgZHUgRm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQgJmFncmF2ZTsgdmlkZSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdQYXIgZCZlYWN1dGU7ZmF1dCAmYWdyYXZlOyB2aWRlIChkJmVhY3V0ZTtjb2NoJmVhY3V0ZTsgcGFyIGQmZWFjdXRlO2ZhdXQgJmFncmF2ZTsgbGEgZGF0ZSBkdSBqb3VyKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnQWZmaWNoYWdlIGxvZ2luIHV0aWxpc2F0ZXVyID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnQWZmaWNoYWdlIHByJmVhY3V0ZTtub20gdXRpbGlzYXRldXIgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0FmZmljaGFnZSBub20gdXRpbGlzYXRldXIgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0xpc3RlIGRlcyB1dGlsaXNhdGV1cnMgcG91ciBsZSBncm91cGUgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdEb25uJmVhY3V0ZTtlcyBjcnlwdCZlYWN1dGU7ZXMgZW5yZWdpc3RyJmVhY3V0ZTtlcyBkYW5zIGxhIGJhc2UgZGUgZG9ubiZlYWN1dGU7ZXMnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ0NlcnRpZmljYXQgZGUgY3J5cHRhZ2UgZGVzIGRvbm4mZWFjdXRlO2VzJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1BocmFzZSBzZWNyJmVncmF2ZTt0ZSBvdSBjaGVtaW4gdmVycyBsZSBmaWNoaWVyIGNvbnRlbmFudCBsYSBwaHJhc2UuIChTaSB2b3VzIHV0aWxpc2V6IE9wZW5TU0wsIGMmIzAzOTtlc3QgbGEgcGhyYXNlIHNlY3ImZWdyYXZlO3RlIHBvdXIgbGEgY2wmZWFjdXRlOyBwcml2JmVhY3V0ZTtlKSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYWNoZXIgbGVzIGNoYW1wcyBkZSB0cmkgPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ0NsJmVhY3V0ZTsgcHJpdiZlYWN1dGU7ZSAmYWdyYXZlOyB1dGlsaXNlciBwb3VyIGxlIGNyeXB0YWdlIGRlcyBkb25uJmVhY3V0ZTtlcyc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ0NlY2kgaGFjaGUgbGVzIGNoYW1wcyBkZSB0cmksIG1haXMgbGFpc3NlIGxlcyBwcmVtaSZlZ3JhdmU7cmVzIGxldHRyZXMgbm9uIGNyeXB0JmVhY3V0ZTtlcy4gQ3J5cHRvZ3JhcGhpcXVlbWVudCwgY2VsYSBjciZlYWN1dGU7ZSB1bmUgdnVsbiZlYWN1dGU7cmFiaWxpdCZlYWN1dGU7LCBtYWlzIHJlc3RlIHVuIGNvbXByb21pcyBhY2NlcHRhYmxlIHBvdXIgdW5lIG1ham9yaXQmZWFjdXRlOyBkJiMwMzk7dXRpbGlzYXRldXJzIGVudHJlIGxhIHMmZWFjdXRlO2N1cml0JmVhY3V0ZTsgZXQgbGEgcG9zc2liaWxpdCZlYWN1dGU7IGRlIHRyaWVyIGxlcyBlbnJlZ2lzdHJlbWVudHMuIExlIHRyaSBkZXZpZW50IGFwcHJveGltYXRpZiwgbWFpcyBkZW1ldXJlIGRlIHF1YWxpdCZlYWN1dGU7IGNvcnJlY3RlLiBTaSB2b3VzIG4mIzAzOTt1dGlsaXNleiBwYXMgY2V0dGUgb3B0aW9uLCBsZXMgY2hhbXBzIGRlIHRyaSBzb250IGVucmVnaXN0ciZlYWN1dGU7cyBlbiB0ZXh0ZSBicnV0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ0VucmVnaXN0cmVtZW50IGNyeXB0JmVhY3V0ZTsgbm9uIGRpc3BvbmlibGUnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdNZXJjaSBkJiMwMzk7aW5zdGFsbGVyIGxlIG1vZHVsZSBPcGVuU1NMIG91IG1jcnlwdCBzaSB2b3VzIHNvdWhhaXRleiBhY3RpdmVyIGxlIGNyeXB0YWdlIGRlIGJhc2UgZGUgZG9ubiZlYWN1dGU7ZXMuJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ1YmZWFjdXRlO3JpZmlleiBxdWUgdm91cyBhdmV6IGxlcyBmb25jdGlvbnMgQ1VSTCBhY3RpdiZlYWN1dGU7cyBkYW5zIHZvdHJlIGluc3RhbGxhdGlvbiBkZSBQSFAuIFZvaXIgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnRXgmZWFjdXRlO2N1dGVyIGVuIG1vZGUgTUxFJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VtZW50cy9zdXBwb3J0IHBvdXIgQ01TTVMgTXVsdGlsaW5ndWUgRWRpdGlvbi4gTmUgY29jaGV6IHBhcyBjZXR0ZSBvcHRpb24gc2kgdm91cyBuJiMwMzk7dXRpbGlzZXogcGFzIGxhIHZlcnNpb24gTUxFLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdBc3N1cmV6LXZvdXMgcXVlIHZvdXMgcyZlYWN1dGU7bGVjdGlvbm5leiBsYSBjbCZlYWN1dGU7IHByaXYmZWFjdXRlO2UgcXVpIGVzdCBhcHByb3ByaSZlYWN1dGU7IHBvdXIgbGUgY2VydGlmaWNhdCBxdWUgdm91cyB1dGlsaXNleiBwb3VyIGxlIGNyeXB0YWdlICEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnQmlibGlvdGgmZWdyYXZlO3F1ZSBkZSBjcnlwdGFnZSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2xvbmcnXSA9ICdDb2NoZXogY2V0dGUgb3B0aW9uIHBvdXIgY3J5cHRlciBsZXMgZG9ubiZlYWN1dGU7ZXMgc3RvY2smZWFjdXRlO2VzLiBDZXR0ZSBvcHRpb24gcmVuZCBwbHVzIGRpZmZpY2lsZSAobWFpcyBwYXMgaW1wb3NzaWJsZSkgbCYjMDM5O2FmZmljaGFnZSBkZSBsJiMwMzk7aW5mb3JtYXRpb24gcG91ciBsZXMgcGlyYXRlcyBpbmZvcm1hdGlxdWVzLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ0xlcyBvcHRpb25zIGNpLWRlc3NvdXMgcyYjMDM5O2FwcGxpcXVlbnQgdW5pcXVlbWVudCBzaSB2b3VzIHV0aWxpc2V6IGxhIGJpYmxpb3RoJmVncmF2ZTtxdWUgZGUgY3J5cHRhZ2UgT3BlblNTTCc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdCaWJsaW90aCZlZ3JhdmU7cXVlIGRlIGNyeXB0YWdlJzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdCaWJsaW90aCZlZ3JhdmU7cXVlIE9wZW5TU0wgJzsKJGxhbmdbJ21jcnlwdCddID0gJ0JpYmxpb3RoJmVncmF2ZTtxdWUgUEhQIG1jcnlwdCAnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdJbnRlcmZhY2UgRnJvbnRlbmQgVXNlcic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ01lcmNpIGQmIzAzOTtpbnN0YWxsZXIgbGUgbW9kdWxlIEZyb250ZW5kIFVzZXIgcG91ciBjb25uZWN0ZXIgdW4gZm9ybXVsYWlyZSBldCBzZXMgZG9ubiZlYWN1dGU7ZXMgJmFncmF2ZTsgdW4gdXRpbGlzYXRldXIgc3AmZWFjdXRlO2NpZmlxdWUnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRfaGVscCddID0gJ0NvY2hleiBjZXR0ZSBvcHRpb24gcG91ciB2ZXJyb3VpbGxlciBsJiMwMzk7YWNjJmVncmF2ZTtzIGRlcyBkb25uJmVhY3V0ZTtlcyAmYWdyYXZlOyBsJiMwMzk7dXRpbGlzYXRldXIgY29ubmVjdCZlYWN1dGU7IHN1ciBsZSBzaXRlLic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uJ10gPSAnQ3J5cHRhZ2UnOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0ZXIgbGEgciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2UgZGUgZm9ybXVsYWlyZSB2ZXJzIHVuIFVEVCBlbiB0YW50IHF1ZSAkcGFyYW1zWyYjMDM5O0ZPUk0mIzAzOTtdPyAobmUgcGFzIGZhaXJlIGNlbGEgc2kgdm91cyB1dGlsaXNleiBwcmludF9yKCRwYXJhbXMpICknOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdVUkwgY29tcGwmZWdyYXZlO3RlIHkgY29tcHJpcyBsZSBwcm90b2NvbGUgZXQgbGUgY2hlbWluIChwYXIgZXhlbXBsZSwgaHR0cDovL215aG9zdC5jb20vZm9ybV9oYW5kbGVyLmNnaSknOwokbGFuZ1sndGl0bGVfdXJsJ10gPSAnVVJMIGR1IGZvcm11bGFpcmUgZGUgc291bWlzc2lvbic7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdNJmVhY3V0ZTt0aG9kZSBkdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdDYXJ0ZSBkdSBjaGFtcCAmcXVvdDslIHMmcXVvdDsgZHUgZm9ybXVsYWlyZSBkZSBzb3VtaXNzaW9uIGRlIGxhIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdTb3VtaXNzaW9uIGFkZGl0aW9ubmVsbGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnVG91dCBjZSBxdWkgcGV1dCAmZWNpcmM7dHJlIGFqb3V0JmVhY3V0ZTsgJmFncmF2ZTsgbGEgY2hhcmdlIGRlIGwmIzAzOTtlbnZvaSwgc291cyBmb3JtZSBkJiMwMzk7VVJMIChwYXIgZXguLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdXJlIGRhbnMgbGUgY2hhbXAgZGUgc291bWlzc2lvbic7CiRsYW5nWyd0aXRsZV9kYXRlX29yZGVyJ10gPSAnT3JkcmUgZHUgY2hhbXAgY29tcG9zYW50IGRhdGUgKHBvdXIgbCYjMDM5O2VudHImZWFjdXRlO2UpJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0xlcyBkb25uJmVhY3V0ZTtlcyBzZXJvbnQgc3RvY2smZWFjdXRlO2VzIGRhbnMgdW4gZm9ybWF0IFhNTCBkYW5zIGxhIHRhYmxlIGRlIGxhIGJhc2UgW3ByJmVhY3V0ZTtmaXhlXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0VycmV1ciAhIFNvaXQgbGUgZm9ybXVsYWlyZSBuZSBwb3NzJmVncmF2ZTtkZSBhdWN1biBhcnJhbmdlbWVudCBkZSBmb3JtX2J1aWxkZXIsIHNvaXQgaWwgYSAmZWFjdXRlO2Nob3UmZWFjdXRlOyAmYWdyYXZlOyBpbnN0YW5jaWVyIChlbiByYWlzb24gZGUgcHJvYmwmZWdyYXZlO21lcyBkZSBtJmVhY3V0ZTttb2lyZSA/KSc7CiRsYW5nWydoZWxwX2RhdGVfb3JkZXInXSA9ICdVdGlsaXNlciAmcXVvdDttJnF1b3Q7IGZvciBNb2lzLCAmcXVvdDtkJnF1b3Q7IG91ciBqb3VyLCBhbmQgJnF1b3Q7eSZxdW90OyBwb3VyIGFubiZlYWN1dGU7ZS4gUyZlYWN1dGU7cGFyZXogbGVzIGl0ZW1zIHBhciBkZXMgdGlyZXRzLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnU2V1bGVtZW50IHBvdXIgbGUgZ3JvdXBlICVzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0FmZmljaGFnZSB1dGlsaXNhdGV1ciA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3VzZV9yYW5kb21fZ2VuZXJhdG9yJ10gPSAnVXRpbGlzZXIgdW4gbm9tYnJlIGFsJmVhY3V0ZTthdG9pcmUgJmFncmF2ZTsgbGEgcGxhY2UgZCYjMDM5O3VuIG5vbWJyZSBzdGF0aXF1ZSc7CiRsYW5nWyd0aXRsZV9udW1iZXJzX3RvX2dlbmVyYXRlJ10gPSAnQ29tYmllbiBkZSBub21icmVzICZhZ3JhdmU7IGcmZWFjdXRlO24mZWFjdXRlO3JlciBkYW5zIGxlIHByb2Nlc3N1cyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdDZSBjaGFtcCBwZXV0ICZlY2lyYzt0cmUgbGFpc3MmZWFjdXRlOyB2aWRlJm5ic3A7JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBwb3VyIGdhYmFyaXQnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIGF1dG9yaXMmZWFjdXRlO2VzJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSBQSFAgJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBkJiMwMzk7ZW52b2knOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1ZvdHJlIHNlcnZldXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnQWRyZXNzZSBJUCBkZSBsYSBwZXJzb25uZSB1dGlsaXNhbnQgbGUgZm9ybXVsYWlyZSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgZGUgbGEgcGFnZSBjb250ZW5hbnQgbGUgZm9ybXVsYWlyZSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdWZXJzaW9uIGRlIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFidWxhdGlvbic7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKENlIGNoYW1wIGVzdCBpZ25vciZlYWN1dGU7IHNpIHZvdXMgdXRpbGlzZXogbGUgbW9kdWxlIFVwbG9hZHMgcG91ciBnJmVhY3V0ZTtyZXIgbGVzIGZpY2hpZXJzKSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0xlcyBhdXRyZXMgbm9tcyBkZSBjaGFtcHMgcGV1dmVudCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7cyBkZSBmYSZjY2VkaWw7b24gaW50ZXJjaGFuZ2VhYmxlIChwYXJ0aWN1bGkmZWdyYXZlO3JlbWVudCB1dGlsZSBzaSBTbWFydHkgYmxvcXVlIHN1ciBsZXMgY2FyYWN0JmVncmF2ZTtyZXMgQVNDSUkgZW4gZGVob3JzIGRlIDMyLTEyNikuIDxiciAvPkxlcyBhdXRyZXMgY2hhbXBzIHNlcm9udCBkaXNwb25pYmxlcyBzaSB2b3VzIGxlcyBham91dGVyIGF1IGZvcm11bGFpcmUuJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnVW5lIGF1dHJlIG1hbmkmZWdyYXZlO3JlIGQmIzAzOTthY2MmZWFjdXRlO2RlciBhdXggdmFsZXVycyBkZSBjaGFtcCBwZXV0IHNlIGZhaXJlIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgbyZ1Z3JhdmU7IGNoYXF1ZSBjaGFtcCBlc3QgdW4gb2JqZXQgY29udGVuYW50IDo8YnIgLz48dGFibGU+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+aWQ8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5wYXIgZXhlbXBsZTwvZW0+LCB2b3VzIHBvdXZleiB1dGlsaXNlciAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdDb25zdWx0ZXIgbGUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9mci9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PSJfYmxhbmsiPm1hbnVlbCBQSFA8L2E+IHBvdXIgdm91cyBhaWRlci4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUgJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0NoYW1wIHJlcHImZWFjdXRlO3NlbnQmZWFjdXRlOyZuYnNwOyc7CiRsYW5nWydoZWxwX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIGZpbGUgbG9jYXRlZCBpbiB0aGUgRm9ybUJ1aWxkZXIvdGVtcGxhdGVzLyBmb2xkZXIuIFRoaXMgZmllbGQgaXMgaWdub3JlZCBpZiB5b3UgdXNlIFRYVCBhcyB5b3VyIGZpbGUgdHlwZS4nOwokbGFuZ1snaGVscF9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ0Jhc2ljOiBVc2UgdGhlIHRleHRhcmVhIGJlbG93IHRvIGxheW91dCB0aGUgZmllbGQgbmFtZXMvdmFsdWVzIGluIGEgc2luZ2xlIGJsb2NrLjxiciAvPgpBZHZhbmNlZDogU3BlY2lmeSBTbWFydHkgdmFyaWFibGVzIGluIHRoZSBSVEYgVGVtcGxhdGUgRmlsZSBhcyB5b3Ugd291bGQgYmVsb3csIGJ1dCBhcnJhbmdlIHRoZW0gaG93ZXZlciB5b3UgbGlrZSBhbmQgYWRkIGZvcm1hdHRpbmcuPGJyIC8+CiZuYnNwO1lvdSBjYW4gc3RpbGwgdXNlIHRoZSAlJUhFQURFUiUlIGFuZCAlJUZPT1RFUiUlIHNlY3Rpb25zIGluIHRoZSBSVEYgZmlsZS4nOwokbGFuZ1snaGVscF91bmlxdWVfZmlsZV90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgSGVhZGVyIFRlbXBsYXRlLjxiciAvPgpGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGSUVMRFMlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUgaWYgUlRGIFRlbXBsYXRlIFR5cGUgaXMgc2V0IHRvICZxdW90O0Jhc2ljJnF1b3Q7LjxiciAvPgpUaGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZCBpZiB1c2luZyAmcXVvdDtSVEYmcXVvdDsgYXMgRmlsZSBUeXBlIGFuZCAmcXVvdDtBZHZhbmNlZCZxdW90OyBhcyBSVEYgVGVtcGxhdGUgVHlwZS4nOwokbGFuZ1snaGVscF9maWxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlSEVBREVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydoZWxwX2ZpbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGT09URVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBSZXRvdXIgYXUgRm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3ImZWFjdXRlO2VyIHVuIG1vZCZlZ3JhdmU7bGUgZGUgZ2FiYXJpdCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDciZlYWN1dGU7ZXIgdW4gbW9kJmVncmF2ZTtsZSBkZSBnYWJhcml0IEhUTUwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDciZlYWN1dGU7ZXIgdW4gbW9kJmVncmF2ZTtsZSBkJiMwMzk7ZW50JmVjaXJjO3RlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnQ3ImZWFjdXRlO2VyIHVuIGdhYmFyaXQgZGUgcGllZCBkZSBwYWdlICc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyJmVhY3V0ZTtlciB1biBtb2QmZWdyYXZlO2xlIGQmIzAzOTtlbnQmZWNpcmM7dGUnOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAndW5lIHRhYnVsYXRpb24nOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZCYjMDM5O3VuZSBsaWduZSBwb3VyIGxlcyBmaWNoaWVycyBjciZlYWN1dGU7ZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdHYWJhcml0IGR1IGhlYWRlciAoZW4tdCZlY2lyYzt0ZSkgZGVzIGZpY2hpZXJzIGNyJmVhY3V0ZTtlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ0dhYmFyaXQgcG91ciBsZSBwaWVkIGRlIHBhZ2UgZHUgZmljaGllciBkZSBzb3J0aSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIFJURiBmaWxlIHRvIHVzZSc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvdXRwdXQnOwokbGFuZ1sndGl0bGVfZmlsZV90eXBlJ10gPSAnQ2hvb3NlIGEgZmlsZSB0eXBlIHRvIHVzZSc7CiRsYW5nWyd0aXRsZV9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ0Nob29zZSBhbiBSVEYgdGVtcGxhdGUgdHlwZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMICZhZ3JhdmU7IHN1aXZyZSBwb3VyIGNvbmZpcm1lciBsZSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsZXVyIChyZWdhcmRleiBkYW5zIG9uZ2xldHMgJnF1b3Q7T3B0aW9ucyBhdmFuYyZlYWN1dGU7ZXMmcXVvdDsgc2kgdm91cyB1dGlsaXNleiBkZXMgYmFsaXNlcyBTbWFydHkpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRm9ybWF0IGQmIzAzOTthZmZpY2hhZ2UgZGUgbGEgKDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZnIvZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD0iX2JsYW5rIj5kYXRlIFBIUCBzdGFuZGFyZCA8L2E+KSZuYnNwOyc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1V0aWxpc2VyIHVuICZlYWN1dGU7ZGl0ZXVyIFdZU0lXWUcgcG91ciBsYSB6b25lIGRlIHRleHRlIChjb3QmZWFjdXRlOyBhZG1pbiBzZXVsZW1lbnQpID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdDb21wb3J0ZW1lbnQgbG9ycyBkZSBsJiMwMzk7ZW52b2kgZHUgRm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnTGFiZWxzIGRlcyBib3V0b25zIGRlIHNvdW1pc3Npb24nOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdUcmkgcGFyIGNoYW1wcyAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdDZXR0ZSBwYWdlIHZvdXMgcGVybWV0IGRlIHBlcnNvbm5hbGlzZXIgbGUgZm9ybXVsYWlyZS4gQ2VsYSBuZSBkJmVhY3V0ZTtmaW5pdCBwYXMgY2UgcXVlIGxlIG1vZHVsZSBGb3JtIEJ1aWxkZXIgZmFpdCBkZXMgZG9ubiZlYWN1dGU7ZXMgciZlYWN1dGU7Y29sdCZlYWN1dGU7ZXMuIExhIGRlc3RpbmF0aW9uIGRlcyBkb25uJmVhY3V0ZTtlcyBzZXJhIGQmZWFjdXRlO2ZpbmllIGRhbnMgbGVzIGNoYW1wcyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyAoY29tbWVuJmNjZWRpbDthbnQgcGFyICouLi4uICkuJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdBbm4mZWFjdXRlO2UgZGUgZCZlYWN1dGU7YnV0Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnQW5uJmVhY3V0ZTtlIGRlIGZpbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdBbm4mZWFjdXRlO2UgcGFyIGQmZWFjdXRlO2ZhdXQmbmJzcDsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcmbmJzcDsoTWV0dHJlIC0xIHBvdXIgc2lnbmlmaWVyIHF1ZSBsJiMwMzk7YW5uJmVhY3V0ZTtlIHBhciBkJmVhY3V0ZTtmYXV0IGVzdCBsJiMwMzk7YW5uJmVhY3V0ZTtlIGNvdXJhbnRlKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWN0aW9uIGFwciZlZ3JhdmU7cyBsJiMwMzk7ZW52b2kgZHUgZm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSJmVhY3V0ZTtwb25zZSAmYWdyYXZlOyBhZmZpY2hlciZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0RhdGUgRW52b3kmZWFjdXRlO2UnOwokbGFuZ1sndGl0bGVfYXBwcm92YWxfZGF0ZSddID0gJ0RhdGUgQXBwcm91diZlYWN1dGU7ZSAocGFyIGwmIzAzOTthZG1pbiknOwokbGFuZ1sndGl0bGVfdXNlcl9hcHByb3ZlZCddID0gJ0RhdGUgQXBwcm91diZlYWN1dGU7ZSAocGFyIGxhIHBlcnNvbm5lIHF1aSBsJiMwMzk7YSBzb3VtaXNlKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdBZmZpY2hlciB1biByJmVhY3V0ZTtzdW0mZWFjdXRlOyBkdSBmb3JtdWxhaXJlIGVudm95JmVhY3V0ZTsmbmJzcDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyaWdlciB2ZXJzIHVuZSBwYWdlIGR1IHNpdGUnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdDZSBnYWJhcml0IHNlcnQgJmFncmF2ZTsgbCYjMDM5O2FmZmljaGFnZSBwb3VyIGwmIzAzOTt1dGlsaXNhdGV1ciBhcHImZWdyYXZlO3MgbCYjMDM5O2Vudm9pIGR1IGZvcm11bGFpcmUuIENlIGdhYmFyaXQgbiYjMDM5O2EgYXVjdW4gZWZmZXQgbmkgc3VyIGxlcyBtYWlscywgbmkgc3VyIGQmIzAzOTthdXRyZXMgZm9ybXVsYWlyZXMgLSBWb3VzIHBsYWNlcmV6IGNlcyBnYWJhcml0cyAoanVkaWNpZXVzZW1lbnQpIGRhbnMgbCYjMDM5O29uZ2xldCAmcXVvdDtvcHRpb25zIGF2YW5jJmVhY3V0ZTtlcyZxdW90Oy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ1BhZ2UgZGUgZGVzdGluYXRpb24mbmJzcDsnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnTm9tbWFnZSBkZXMgY2hhbXBzIHJlcXVpcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0xlcyBjaGFtcHMgZG9pdmVudCBvYmxpZ2F0b2lyZW1lbnQgYXZvaXIgdW4gbm9tID8gKGNhc2UgY29jaCZlYWN1dGU7ZSA9IG91aSkmbmJzcDsnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdDaGFtcHMgJmFncmF2ZTsgbm9tIHVuaXF1ZSByZXF1aXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0xlcyBjaGFtcHMgZG9pdmVudCBhdm9pciBkZXMgbm9tcyBkaWZmJmVhY3V0ZTtyZW50cyAoY2FzZSBjb2NoJmVhY3V0ZTtlID0gb3VpKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSJmVhY3V0ZTtvcmdhbmlzZXIgbGVzIGNoYW1wcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnQ2hhcmdlciBsZSBnYWJhcml0ICZuYnNwOyc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBam91dGVyIHVuIGJvdXRvbiB0ZXh0ZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdTdXBwcmltZXIgdW4gYm91dG9uIHRleHRlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnVGV4dGUgZCYjMDM5O2FpZGUgJmFncmF2ZTsgYWZmaWNoZXIgYXZlYyBjZSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByJmVhY3V0ZTt0ZXIgbGVzIHZhcmlhYmxlcyBjb21tZSAmZWFjdXRlO3RhbnQgZGVzIG5vbWJyZXMgb3UgZGVzIGNoYSZpY2lyYztuZXMgZGUgY2FyYWN0JmVncmF2ZTtyZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdPcmRyZSBkJiMwMzk7aW50ZXJwciZlYWN1dGU7dGF0aW9uJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdTaSBwbHVzIGQmIzAzOTt1biBjaGFtcCBkZSBjYWxjdWwgZXhpc3RlLCBpbHMgc2Vyb250IGNhbGN1bCZlYWN1dGU7IGR1IHBsdXMgcGV0aXQgYXUgcGx1cyBncmFuZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdDaGluZSAocGFzIGQmIzAzOTtlc3BhY2VzIGVudHJlIGxlcyBjaGFtcHMpID8nOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbGV1ciBkZSBjYWxjdWwmbmJzcDsnOwokbGFuZ1sndGl0bGVfY29tcHV0ZSddID0gJ1V0aWxpc2F0aW9uIGRlIFBIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdDaGEmaWNpcmM7bmVzIGRlIGNhcmFjdCZlZ3JhdmU7cmVzJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmlxdWUnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdNb250cmVyIGxlIGZvcm11bGFpcmUgZW4gbGlnbmUgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnQ29jaCZlYWN1dGU7IHNpZ25pZmllIHF1ZSBsZSBmb3JtdWxhaXJlIHJlbXBsYWNlIGxhIGJhbGlzZSB7Y21zX21vZHVsZX0sIE5vbi1Db2NoJmVhY3V0ZTsgcmVtcGxhY2UgbGEgYmFsaXNlIHtjb250ZW50fS4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1ZhbGV1ciBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGxlIGNoYW1wJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdFZmZhY2VyIGxhIHZhbGV1ciBwYXIgZCZlYWN1dGU7ZmF1dCBwYXIgdW4gY2xpYyA/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NvY2hlciBjZXR0ZSBjYXNlIHBvdXIgZWZmYWNlciBsYSB2YWxldXIgcGFyIGQmZWFjdXRlO2ZhdXQgcXVhbmQgbCYjMDM5O3V0aWxpc2F0ZXVyIGNsaXF1ZXJhIGNlIGNoYW1wLiBQdWlzcXVlIGNlbGEgdXRpbGlzZSBsYSBjb21wYXJhaXNvbiBkZSBjaGEmaWNpcmM7bmUgZW4gamF2YXNjcmlwdCwgY2VsYSAmZWFjdXRlO2Nob3VlcmEgc2kgdm91cyBpbnMmZWFjdXRlO3JleiBkZXMgYmFsaXNlcyBkZSBjaXRhdGlvbiBzaW1wbGVzIGRhbnMgdm90cmUgdGV4dGUgcGFyIGQmZWFjdXRlO2ZhdXQuIFYmZWFjdXRlO3JpZmllciBsZXMgY2FyYWN0JmVncmF2ZTtyZXMgdXRpbGlzJmVhY3V0ZTtzIHBvdXIgJmVhY3V0ZTt2aXRlciBsZXMgZXJyZXVycy4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdTdXBwcmltZXIgbGVzIGZpY2hpZXJzIHVwbG9hZCZlYWN1dGU7cyBkZXB1aXMgbGUgc2VydmV1ciBhcHImZWFjdXRlO3MgZXgmZWFjdXRlO2N1dGlvbiAoZGlzcG9zaXRpb25zIGVtYWlsKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwb3VyIGxlIGNoYW1wJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ldHRyZSBsZSBjb2RlIEphdmFzY3JpcHQsIGluY2x1dCBsZXMgJmVhY3V0ZTt2JmVncmF2ZTtuZW1lbnRzLCBleCA6IG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtdWxhaXJlIGRlIHNvdW1pc3Npb24gSmF2YXNjcmlwdCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWV0dHJlIGxlIGNvZGUgSmF2YXNjcmlwdCwgZW4gaW5jbHVhbnQgbCYjMDM5OyZlYWN1dGU7diZlZ3JhdmU7bmVtZW50IHF1ZSB2b3VzIHZvdWxleiBwaSZlYWN1dGU7Z2VyLCBleCA6IG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+IE5lIGZvbmN0aW9ubmVyYSBwcm9iYWJsZW1lbnQgcGFzIGJpZW4gc2kgdm91cyB1dGlsaXNleiBsJiMwMzk7b3B0aW9uIGRlICZxdW90O3NjcmlwdCBzJmVhY3V0ZTtjdXJpdCZlYWN1dGU7JnF1b3Q7IGNpLWRlc3N1cy4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdOZSB2b3VzIGNvbnRlbnRleiBwYXMgZGUgY2hvaXNpciB1bmUgYWRyZXNzZSBhbCZlYWN1dGU7YXRvaXJlIGljaSAtLSBCZWF1Y291cCBkZSBmb3Vybmlzc2V1cnMgPGJyIC8+IG5lIGRpc3RyaWJ1ZXJvbnQgcGFzIGxlIGNvdXJyaWVyIHNpIHZvdXMgdXRpbGlzZXogdW4gbm9tIGRlIGRvbWFpbmUgZGlmZiZlYWN1dGU7cmVudCBxdWUgdm90cmUgPGJyIC8+IG5vbSBkJiMwMzk7aCZvY2lyYzt0ZSAocGFyIGV4ZW1wbGUsIHV0aWxpc2V6IHF1ZWxxdWUgY2hvc2UgY29tbWUgbm9tQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdCZXNvaW4gZGUgcGx1cyBkZSB0eXBlcyBkZSBjaGFtcHMgPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVHJvcCBkZSB0eXBlcyBkZSBjaGFtcCBjb25mdXMgPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdQYXNzZXIgZW4gbW9kZSBhdmFuYyZlYWN1dGU7JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnUGFzc2VyIGVuIG1vZGUgc2ltcGxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0Rvc3NpZXIgZGFucyBsZXF1ZWwgbGUgZmljaGllciBzZXJhIHNhdXYmZWFjdXRlOyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ0NlIGRvaXQgJmVjaXJjO3RyZSB1biBkb3NzaWVyIGRlIHZvdHJlIHNlcnZldXIgV2ViIGF2ZWMgZGVzIHBlcm1pc3Npb25zIGQmIzAzOTsmZWFjdXRlO2NyaXR1cmU8YnIgLz5QYXNzZXotbGUgZW4gQ0hNT0QgNzc3IHNpIHZvdXMgYXZleiBkZXMgcHJvYmwmZWdyYXZlO21lcyBvdSBkb3V0ZXMuPGJyIC8+RGUgcGx1cywgdiZlYWN1dGU7cmlmaWV6IHF1ZSB2b3VzIG4mIzAzOTthdmV6IHBhcyBkZSByZXN0cmljdGlvbiBkZSByJmVhY3V0ZTtwZXJ0b2lyZSBQSFAuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOb3V2ZWxsZSBsaWduZS9SZXRvdXIgJmFncmF2ZTsgbGEgbGlnbmUgZW4gcmVtcGxhY2VtZW50IGRlIGNhcmFjdCZlZ3JhdmU7cmVzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xhaXNzZXIgdmllcmdlIGxhIGxpZ25lIHBvdXIgcGVybWV0dHJlIHVuZSBOb3V2ZWxsZSBsaWduZS9SZXRvdXIgJmFncmF2ZTsgbGEgbGlnbmUnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ0Vudm95ZXIgdW5lIGNvcGllIGRlIGxhIHNvdW1pc3Npb24gJmFncmF2ZTsgbCYjMDM5O3V0aWxpc2F0ZXVyID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0V0aXF1ZXR0ZSBwb3VyIGNhc2UgJmFncmF2ZTsgY29jaGVyIChzaSBjaG9peCB1dGlsaXNhdGV1cikmbmJzcDsnOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdNJiMwMzk7ZW52b3llciB1bmUgY29waWUgZHUgZm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQXV0b3Jpc2VyIHF1ZSBsJiMwMzk7b2JqZXQgc29pdCBhbm51bCZlYWN1dGU7ID8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQXV0b3Jpc2VyICYjMDM5O0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGRzJiMwMzk7ICZhZ3JhdmU7IGwmIzAzOTtlbXBvcnRlciBzdXIgbGUgc3VqZXQgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyBkYW5zIGxlIG1lbnUgZCZlYWN1dGU7cm91bGFudC4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdBZmZpY2hhZ2UgZGUgbGEgbG9uZ3VldXInOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdMb25ndWV1ciBtaW5pbXVtIHBvdXIgbGEgciZlYWN1dGU7cG9uc2UnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ01hc3F1ZXIgbCYjMDM5O2VudHImZWFjdXRlO2UnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnQWZmaWNoZXIgbGVzIGNhcmFjdCZlZ3JhdmU7cmVzIGxvcnNxdWUgbCYjMDM5O3V0aWxpc2F0ZXVyIGVudHJlIHVuIG1vdCBkZSBwYXNzZSA/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnTGUgbW90IGRlIHBhc3NlIG5lIGNvcnJlc3BvbmQgcGFzICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnUmV0b3VyICZhZ3JhdmU7IGxhIHBhZ2UgcHJpbmNpcGFsZSBGb3JtQnVpbGRlcic7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ1F1ZWxsZXMgZW50JmVjaXJjO3RlcyBkZSBtZXNzYWdlcmllIGRldnJhaWVudCB1dGlsaXNlciBjZXR0ZSBlbnRyJmVhY3V0ZTtlID8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ04mIzAzOTthY2NlcHRleiBwYXMgZCYjMDM5O2VzcGFjZSB2aWRlIGNvbW1lIHImZWFjdXRlO3BvbnNlIHZhbGlkZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdTaSB1biBjaGFtcCBlc3QgcmVxdWlzLCBjb2NoZXIgY2VjaSBvYmxpZ2VyYSBsJiMwMzk7dXRpbGlzYXRldXIgJmFncmF2ZTsgcmVtcGxpciBhdmVjIGRlcyBjYXJhY3QmZWdyYXZlO3JlcyBhbHBoYW51bSZlYWN1dGU7cmlxdWVzLCBwYXMganVzdGUgZGVzIGVzcGFjZXMgJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ1ZvdXMgZGV2ZXogY2xpcXVlciBzdXIgdW4gZGVzIGJvdXRvbnMgJmxhcXVvO1NhdXZlZ2FyZGVyJnJhcXVvOyBwb3VyIHZhbGlkZXIgbGUgbm91dmVsIG9yZHJlIGRlcyBjaGFtcHMuJzsKJGxhbmdbJ3RpdGxlX2h0bWw1J10gPSAnVXRpbGlzZXIgSFRNTDUgYXUgbGlldSBkZSBKYXZhc2NyaXB0JzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdMZSBtb2R1bGUgQ29tcGFueSBEaXJlY3RvcnkgbiYjMDM5O2VzdCBwYXMgZGlzcG9uaWJsZSAhJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ0phbWFpcyc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdEb25uZSB1biBjaG9peCAmYWdyYXZlOyBsJiMwMzk7dXRpbGlzYXRldXIgKGNhc2UgJmFncmF2ZTsgY29jaGVyKSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnVG91am91cnMnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICdBZHJlc3NlIGVtYWlsIHBvdXIgJnF1b3Q7RnJvbSZxdW90OyAoRGUpJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJ0FkcmVzc2UgZW1haWwgcG91ciAmcXVvdDtSZXBseS1UbyZxdW90OyAoUiZlYWN1dGU7cG9uZHJlICZhZ3JhdmU7KSc7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ0FkcmVzc2VzIGVtYWlsIHBvdXIgJmFncmF2ZTsgbGEgZm9pcyAmcXVvdDtGcm9tJnF1b3Q7IGV0ICZxdW90O1JlcGx5LVRvJnF1b3Q7JzsKJGxhbmdbJ29wdGlvbl9kcm9wZG93biddID0gJ2xpc3QtYm94IGRlIHMmZWFjdXRlO2xlY3Rpb24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnTGlzdGUgc2ltcGxlJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ10gPSAnTGlzdGUgbXVsdGlwbGUnOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdHcm91cGUgZGUgYm91dG9ucyByYWRpbyc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdOb3RlIDogbGEgc29ydGllIGZvcm11bGFpcmUgc2VyYTxici8+JnF1b3Q7Y29tcGFueSBuYW1lJnF1b3Q7PT4mcXVvdDt2YWx1ZSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdDaG9pc2lzc2V6IHVuZSBjYXQmZWFjdXRlO2dvcmllIChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ0Rvbm5lIHVuIGNoYW1wIGRlIGQmZWFjdXRlO2Zpbml0aW9uIGRlIGxhIHZhbGV1ciAodW5pcXVlKSA8ZW0+b3B0aW9uPC9lbT4nOwokbGFuZ1sndGl0bGVfY2hvb3NlX3VzZXJfaW5wdXQnXSA9ICdDaG9pc2lyIHVuZSBlbnRyJmVhY3V0ZTtlIHV0aWxpc2F0ZXVyICc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcoVm91cyBwb3V2ZXogJmVhY3V0ZTtnYWxlbWVudCBuYXZpZ3VlciBkYW5zIGwmIzAzOTtvbmdsZXQgRm9ybXVsYWlyZSBkZSBzb3VtaXNzaW9uIHNpIHZvdXMgc291aGFpdGV6IGQmZWFjdXRlO2ZpbmlyIHVuZSBiYWxpc2UgdXRpbGlzYXRldXIgcG91ciBsZSBmb3JtdWxhaXJlIGRlIHZhbGlkYXRpb24pJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdGaW4gZGUgbCYjMDM5O2FubiZlYWN1dGU7ZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ0Rvbm4mZWFjdXRlO2VzIG91IGJhbGlzZXMgU21hcnR5IHF1aSBkb2l2ZW50ICZlY2lyYzt0cmUgZW52b3kmZWFjdXRlO3MgYXZlYyBjZSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnRG9ubiZlYWN1dGU7ZXMgU21hcnR5LCBqYXZhc2NyaXB0LCBvdSB0b3V0ZSBhdXRyZSBkb25uJmVhY3V0ZTtlIHF1ZSB2b3VzIHZvdWxleiBlbnZveWVyIGF2ZWMgY2UgY2hhbXAuPGJyIC8+UyYjMDM5O2V4JmVhY3V0ZTtjdXRlIHZpYSBsZSBjb21waWxldXIgc21hcnR5LCB1dGlsaXNlciBsZXMgYmFsaXNlcyB7bGl0ZXJhbH17L2xpdGVyYWx9IGF2ZWMgPCBzY3JpcHQgPjwgL3NjcmlwdCA+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdJbmNsdXQgbGVzIGludGl0dWwmZWFjdXRlO3MnOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnQWN0aXZlciBjZWNpIGluY2x1dCBsZXMgaW50aXR1bCZlYWN1dGU7cyAmYWdyYXZlOyBhcHBhcmEmaWNpcmM7dHJlLiBFeGVtcGxlIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnTGllIGNlIGNoYW1wICZhZ3JhdmU7IHNvbiBwYXJlbnQnOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ01lbnUgZCZlYWN1dGU7cm91bGFudCBxdWkgbGlzdGUgdG91cyBsZXMgcGFyZW50cyBkZSBjZSBjaGFtcCBldCB2b3VzIHBlcm1ldCBkZSBsaWVyIGNlIGNoYW1wIGF2ZWMgdW4gZGUgc2VzIHBhcmVudHMuIFJlbmQgcG9zc2libGUgZGUgY29udHImb2NpcmM7bGVyIGNlIGNoYW1wIGF2ZWMgbGVzIGNvbnRyJm9jaXJjO2xlcyBkdSBwYXJlbnQgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlOy4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXSA9ICdDYWNoZSBsZXMgYm91dG9ucyBkZSBjb250ciZvY2lyYztsZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9uc19oZWxwJ10gPSAnQ2FjaGUgbGVzIGJvdXRvbnMgZGUgY29udHImb2NpcmM7bGUgZGUgY2UgY2hhbXAgc3VyIGwmIzAzOTtpbnRlcmZhY2UgcHVibGlxdWUnOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ05vdGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ01vZGlmaWNhdGlvbiBkZSBsJiMwMzk7dW4gZGVzIGNoYW1wcyBjaS1kZXNzdXMgZCZlYWN1dGU7Y2xlbmNoZXJhIHVuZSByJmVhY3V0ZTstaW5kZXhhdGlvbiBkZSAqdG91cyogbGVzIGVucmVnaXN0cmVtZW50cywgY2VsYSBwb3VycmFpdCBwcmVuZHJlIHVuIGNlcnRhaW4gdGVtcHMuJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZSddID0gJ1RlbnRhdGl2ZSBkZSB0JmVhY3V0ZTtsJmVhY3V0ZTtjaGFyZ2VtZW50IGlsbCZlYWN1dGU7Z2FsIGRlIGZpY2hpZXJzIGRlIHR5cGUgKCVzKSBkZXB1aXMgJXMnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZSddID0gJ0ZhaXJlIGRlcyBlbnJlZ2lzdHJlbWVudHMgYWNjZXNzaWJsZXMgcG91ciBsZSBtb2R1bGUgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGVfaGVscCddID0gJ0VuIGNvY2hhbnQsIGNlbGEgcmVuZHJhIHRvdXRlcyBsZXMgZG9ubiZlYWN1dGU7ZXMgYWNjZXNzaWJsZXMgZGFucyBsZSBtb2R1bGUgZGUgcmVjaGVyY2hlLiBORSBQQVMgdXRpbGlzZXIgY2V0dGUgb3B0aW9uIHNpIHZvdXMgY3J5cHRleiB2b3MgZG9ubiZlYWN1dGU7ZXMgLS0gTGVzIGluZm9ybWF0aW9ucyBzZXJvbnQgc291bWlzZXMgJmFncmF2ZTsgbGEgcmVjaGVyY2hlIHNpIHZvdXMgY3J5cHRleiBvdSBub24gISc7CiRsYW5nWyd1cGxvYWRlZF9vdXRzaWRlX3dlYnJvb3QnXSA9ICclcyAoaG9ycyBkZSBsYSByYWNpbmUgZHUgc2l0ZSB3ZWIpJzsKJGxhbmdbJ3RpdGxlX2Zicl9lZGl0J10gPSAnJkVhY3V0ZTtkaXRhYmxlIGRhbnMgbCYjMDM5O2FkbWluaXN0cmF0aW9uIGR1IG1vZHVsZSBGb3JtQnJvd3NlciA/JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdMYSBiYWxpc2UgdXRpbGlzYXRldXIgYSByZXRvdXJuJmVhY3V0ZTsgdW5lIGVycmV1cic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnbGEgYmFsaXNlIHV0aWxpc2F0ZXVyICVzIHJldHVybmUgdW5lIGVycmV1ci4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5MZSBtb2R1bGUgQ2F0YWxvZ2VyIG5lIHNlbWJsZSBwYXMgJmVjaXJjO3RyZSBpbnN0YWxsJmVhY3V0ZTsvYWN0aWYuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdBVFRFTlRJT04gISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnR2FiYXJpdCB0YWJsZWF1LCBUaXRyZXMgJmFncmF2ZTsgZ2F1Y2hlJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgdGFibGVhdSwgVGl0cmVzIGVuIGhhdXQnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnR2FiYXJpdCB2ZW5hbnQgZGUgJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnXHUwMENBdGVzLXZvdXMgc1x1MDBGQnIgZGUgdm91bG9pciAmZWFjdXRlO2NyaXJlIHBhciBkZXNzdXMgdm90cmUgZ2FiYXJpdCBhdmVjIGxlIGdhYmFyaXQgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlOyA/IChtXHUwMEVBbWUgc2kgdm91cyBkaXRlcyBPSywgdm91cyBkZXZyZXogcXVhbmQgbVx1MDBFQW1lIHNhdXZlZ2FyZGVyIGxlIGNoYW5nZW1lbnQpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0VycmV1ciBkZSBjYWxjdWwgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdQYXMgZCYjMDM5O2luZm9ybWF0aW9uIEhUVFBfUkVGRVJFUiBkaXNwb25pYmxlIChwcm9iYWJsZW1lbnQgZCZ1Y2lyYzsgJmFncmF2ZTsgbCYjMDM5O3VzYWdlIGRlIHZhbGlkYXRpb24gZCYjMDM5O0VtYWlsIHV0aWxpc2F0ZXVyKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnRXJyZXVyIGR1IHBhcmFtJmVncmF2ZTt0cmUgZGUgdmFsaWRhdGlvbi4gViZlYWN1dGU7cmlmaWV6IHF1ZSB2b3VzIGF2ZXogcmVjb3BpJmVhY3V0ZTsgY29ycmVjdGVtZW50IGwmIzAzOTtVUkwgZGUgbCYjMDM5O2VtYWlsICEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0VycmV1ciBkZSByJmVhY3V0ZTtwb25zZSBkZSBsYSB2YWxpZGF0aW9uLiBWJmVhY3V0ZTtyaWZpZXogcXVlIHZvdXMgYXZleiByZWNvcGkmZWFjdXRlOyBjb3JyZWN0ZW1lbnQgbCYjMDM5O1VSTCBkZSBsJiMwMzk7ZW1haWwgISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnRXJyZXVyIGRlIHImZWFjdXRlO3BvbnNlIGRlIGxhIHZhbGlkYXRpb24uIEF1Y3VuIGNoYW1wIGRlIHZhbGlkYXRpb24gZCYjMDM5O2VtYWlsIGRhbnMgY2UgZm9ybXVsYWlyZSAhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdMZSBnYWJhcml0IGRlIGZvcm11bGFpcmUgYSAmZWFjdXRlO3QmZWFjdXRlOyBtaXMgJmFncmF2ZTsgam91ciBhdXRvbWF0aXF1ZW1lbnQgZGUgbGEgdmVyc2lvbiAwLjMgdmVycyBsYSB2ZXJzaW9uIDAuNC4gSWwgc2UgcGV1dCBxdWUgdm91cyBheWV6ICZhZ3JhdmU7IGZhaXJlIGNlcnRhaW5lcyBjb3JyZWN0aW9ucy4gU2kgdm91cyB1dGlsaXNleiBsZSBmb3JtdWxhaXJlIHBhciBkJmVhY3V0ZTtmYXV0LCByZW1wbGFjZXogc2ltcGxlbWVudCBjZSBnYWJhcml0IHBhciAmcXVvdDtkZWZhdWx0JnF1b3Q7IGVuIHV0aWxpc2FudCBsZSBtZW51IGQmZWFjdXRlO3JvdWxhbnQgY2ktZGVzc3VzLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBam91dCwgJmVhY3V0ZTtkaXRpb24gZXQgZ2VzdGlvbiBkZSBmb3JtdWxhaXJlcyBpbnRlcmFjdGlmcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ1NpIHZvdXMgdXRpbGlzZXogdW5lICZlYWN1dGU7dmFsdWF0aW9uIGRlIGNoYSZpY2lyYztuZSBkZSBjYXJhY3QmZWdyYXZlO3JlcywgbGEgc2V1bGUgb3AmZWFjdXRlO3JhdGlvbiBwb3NzaWJsZSBlc3QgbGEgY29uY2F0JmVhY3V0ZTtuYXRpb24gKCspLCBhbG9ycyBxdWUgc2kgdm91cyB1dGlsaXNleiB1bmUgJmVhY3V0ZTt2YWx1YXRpb24gbnVtJmVhY3V0ZTtyaXF1ZSwgdm91cyBhdmV6IGxlcyBzeW1ib2xlcyBkZSBiYXNlICgsICssIC0sICosIC8sICkuIFNpIHZvdXMgdXRpbGlzZXogbCYjMDM5OyZlYWN1dGU7dmFsdWF0aW9uIHBhciBsZSBQSFAsIHZvdXMgcG91dmV6IAp1dGlsaXNlciBuJiMwMzk7aW1wb3J0ZSBxdWVsbGUgZm9uY3Rpb24gdm91cyB2b3VsZXosIG1haXMgdm91cyBhdmV6IGJlc29pbiBkZSBjaXRlciBkZXMgY2hvc2VzIChsYSBzdWJzdGl0dXRpb24gc2UgcHJvZHVpdCBhdmFudCBsJiMwMzk7JmVhY3V0ZTt2YWx1YXRpb24pLCBwYXIgZXhlbXBsZSwgc3Vic3RyICgmIzAzOTskZmxkXzIyJiMwMzk7LDAsMikuJiMwMzk7JGZsZF8yMyYjMDM5Oy4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnVXRpbGlzZXIgbGUgbW9kdWxlIGQmIzAzOTtpbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5DZSBjaGFtcCBlc3QgdXRpbGlzJmVhY3V0ZTsgY29tbWUgdW4gcG9udCB2ZXJzIGxlcyBhdXRyZXMgbW9kdWxlcyAhPC9iPgpVdGlsaXNlei1sZSBlbiBjciZlYWN1dGU7YW50IHZvcyAmZWFjdXRlO2wmZWFjdXRlO21lbnRzIGRlIGZvcm11bGFpcmUgZGFucyBsZXMgZ2FiYXJpdHMgZGUocykgbCYjMDM5O2F1dHJlKHMpIG1vZHVsZShzKSBxdWUgdm91cyB2b3VsZXogaW5jb3Jwb3JlciwgZXQgdXRpbGlzZXogPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHBvdXIgbGUgbGllciBlbiByZXRvdXIgdmVycyBGb3JtQnVpbGRlci4gUGFyIGV4ZW1wbGUsIHBvdXIgaW5jbHVyZSBsZSBmb3JtdWxhaXJlIGQmIzAzOTtvcHRpb25zIGJhcyZlYWN1dGU7IHN1ciBsZSBtb2R1bGUgUHJvZHVjdHMsIGNyJmVhY3V0ZTtleiBsZSBnYWJhcml0IHN1aXZhbnQgZGFucyBQcm9kdWN0cyA6PGJyLz4KPHByZT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5OyYjMDM5O30KCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyYjMDM5O30KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9CgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5Ozo6JiMwMzk7fGV4cGxvZGU6JE1EYXRhfQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7IGNoZWNrZWQ9JnF1b3Q7Y2hlY2tlZCZxdW90OyYjMDM5O30KCQkJey9pZn0KCQl7L2ZvcmVhY2h9Cgk8ZGl2IGNsYXNzPSZxdW90O1Byb2R1Y3REaXJlY3RvcnlJdGVtJnF1b3Q7PgoJCTxpbnB1dCB0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7IHZhbHVlPSZxdW90O3skZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9JnF1b3Q7IG5hbWU9JnF1b3Q7eyRGQmlkfVtdJnF1b3Q7IHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgJnBvdW5kO3skZW50cnktPnByaWNlfSAgICAKCTwvZGl2Pgp7L2ZvcmVhY2h9CjwvcHJlPgo8YnIvPgpvJnVncmF2ZTsgdm91cyBwb3V2ZXogbWV0dHJlIGRhbnMgbCYjMDM5O2VudHImZWFjdXRlO2UgY2ktZGVzc291cyBxdWVscXVlIGNob3NlIGNvbW1lIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSZxdW90O2NhdCZxdW90OyBzdW1tYXJ5dGVtcGxhdGU9JnF1b3Q7WW91cl9GQl90ZW1wbGF0ZSZxdW90O308L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ0Fqb3V0ZXIgdm90cmUgYmFsaXNlJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnZpZXInOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0YmZWFjdXRlO3ZyaWVyJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJzJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBdnJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01haSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdWluJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1aWxsZXQnOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBbyZ1Y2lyYzt0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYnJlJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9icmUnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYnJlJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEJmVhY3V0ZTtjZW1icmUnOwokbGFuZ1snQUYnXSA9ICdBZmdoYW5pc3RhbiAnOwokbGFuZ1snQVgnXSA9ICdBbGFuZCBJc2xhbmRzICc7CiRsYW5nWydBTCddID0gJ0FsYmFuaWUgJzsKJGxhbmdbJ0RaJ10gPSAnQWxnJmVhY3V0ZTtyaWUgJzsKJGxhbmdbJ0FTJ10gPSAnQW1lcmljYW4gU2Ftb2EgJzsKJGxhbmdbJ0FEJ10gPSAnQW5kb3JyZSAnOwokbGFuZ1snQU8nXSA9ICdBbmdvbGEgJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEgJzsKJGxhbmdbJ0FRJ10gPSAnQW50YXJjdGlxdWUnOwokbGFuZ1snQUcnXSA9ICdBbnRpZ3VhIGFuZCBCYXJidWRhICc7CiRsYW5nWydBUiddID0gJ0FyZ2VudGluYSAnOwokbGFuZ1snQU0nXSA9ICdBcm1lbmlhICc7CiRsYW5nWydBVyddID0gJ0FydWJhICc7CiRsYW5nWydBVSddID0gJ0F1c3RyYWxpZSAnOwokbGFuZ1snQVQnXSA9ICdBdXRyaWNoZSAnOwokbGFuZ1snQVonXSA9ICdBemVyYmFpamFuICc7CiRsYW5nWydCUyddID0gJ0JhaGFtYXMgJzsKJGxhbmdbJ0JIJ10gPSAnQmFocmFpbiAnOwokbGFuZ1snQkInXSA9ICdCYXJiYWRlcyc7CiRsYW5nWydCRCddID0gJ0JhbmdsYWRlc2ggJzsKJGxhbmdbJ0JZJ10gPSAnQmVsYXJ1cyAnOwokbGFuZ1snQkUnXSA9ICdCZWxnaXF1ZSAnOwokbGFuZ1snQlonXSA9ICdCZWxpemUgJzsKJGxhbmdbJ0JKJ10gPSAnQiZlYWN1dGU7bmluICc7CiRsYW5nWydCTSddID0gJ0Jlcm11ZGVzICc7CiRsYW5nWydCVCddID0gJ0JodXRhbiAnOwokbGFuZ1snQlcnXSA9ICdCb3Rzd2FuYSAnOwokbGFuZ1snQk8nXSA9ICdCb2xpdmllICc7CiRsYW5nWydCQSddID0gJ0Jvc25pZSBldCBIZXJ6JmVhY3V0ZTtnb3ZpbmUgJzsKJGxhbmdbJ0JWJ10gPSAnQm91dmV0IElzbGFuZCAnOwokbGFuZ1snQlInXSA9ICdCciZlYWN1dGU7c2lsJzsKJGxhbmdbJ0lPJ10gPSAnQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5ICc7CiRsYW5nWydCTiddID0gJ0JydW5laSBEYXJ1c3NhbGFtICc7CiRsYW5nWydCRyddID0gJ0J1bGdhcmllJzsKJGxhbmdbJ0JGJ10gPSAnQnVya2luYSBGYXNvICc7CiRsYW5nWydCSSddID0gJ0J1cnVuZGkgJzsKJGxhbmdbJ0tIJ10gPSAnQ2FtYm9kZ2UgJzsKJGxhbmdbJ0NNJ10gPSAnQ2FtZXJvb24gJzsKJGxhbmdbJ0NBJ10gPSAnQ2FuYWRhICc7CiRsYW5nWydDViddID0gJ0NhcGUgVmVyZGUgJzsKJGxhbmdbJ0tZJ10gPSAnQ2F5bWFuIElzbGFuZHMgJzsKJGxhbmdbJ0NGJ10gPSAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljICc7CiRsYW5nWydURCddID0gJ0NoYWQgJzsKJGxhbmdbJ0NMJ10gPSAnQ2hpbGkgJzsKJGxhbmdbJ0NOJ10gPSAnQ2hpbmEgJzsKJGxhbmdbJ0NYJ10gPSAnQ2hyaXN0bWFzIElzbGFuZCAnOwokbGFuZ1snQ0MnXSA9ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcyAnOwokbGFuZ1snQ08nXSA9ICdDb2xvbWJpYSAnOwokbGFuZ1snS00nXSA9ICdDb21vcm9zICc7CiRsYW5nWydDRyddID0gJ0NvbmdvICc7CiRsYW5nWydDRCddID0gJ0NvbmdvLCAgRGVtb2NyYXRpYyBSZXB1YmxpYyAnOwokbGFuZ1snQ0snXSA9ICdDb29rIElzbGFuZHMgJzsKJGxhbmdbJ0NSJ10gPSAnQ29zdGEgUmljYSAnOwokbGFuZ1snQ0knXSA9ICdJdm9pcmUgKEMmb2NpcmM7dGUgZCYjMDM5O2l2b2lyZSkgJzsKJGxhbmdbJ0hSJ10gPSAnQ3JvYXRpZSAoSHJ2YXRza2EpICc7CiRsYW5nWydDVSddID0gJ0N1YmEgJzsKJGxhbmdbJ0NZJ10gPSAnQ2h5cHJlJzsKJGxhbmdbJ0NaJ10gPSAnQ3plY2ggUmVwdWJsaWMgJzsKJGxhbmdbJ0RLJ10gPSAnRGFuZW1hcmsgJzsKJGxhbmdbJ0RKJ10gPSAnRGppYm91dGkgJzsKJGxhbmdbJ0RNJ10gPSAnRG9taW5pcXVlICc7CiRsYW5nWydETyddID0gJ0RvbWluaWNhbiBSZXB1YmxpYyAnOwokbGFuZ1snVFAnXSA9ICdFYXN0IFRpbW9yICc7CiRsYW5nWydFQyddID0gJ0VxdWF0ZXVyICc7CiRsYW5nWydFRyddID0gJ0VneXB0ZSAnOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvciAnOwokbGFuZ1snR1EnXSA9ICdFcXVhdG9yaWFsIEd1aW5lYSAnOwokbGFuZ1snRVInXSA9ICdFcml0ciZlYWN1dGU7ZSc7CiRsYW5nWydFRSddID0gJ0VzdG9uaWUgJzsKJGxhbmdbJ0VUJ10gPSAnRXRoaW9waWUgJzsKJGxhbmdbJ0ZLJ10gPSAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpICc7CiRsYW5nWydGTyddID0gJ0Zhcm9lIElzbGFuZHMgJzsKJGxhbmdbJ0ZKJ10gPSAnRmlqaSAnOwokbGFuZ1snRkknXSA9ICdGaW5sYW5kZSAnOwokbGFuZ1snRlInXSA9ICdGcmFuY2UgJzsKJGxhbmdbJ0ZYJ10gPSAnRnJhbmNlLCAgTSZlYWN1dGU7dHJvcG9saXRhaW5lICc7CiRsYW5nWydHRiddID0gJ0d1ZXJuc2V5ICc7CiRsYW5nWydQRiddID0gJ0ZyZW5jaCBQb2x5bmVzaWEgJzsKJGxhbmdbJ1RGJ10gPSAnRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzICc7CiRsYW5nWydNSyddID0gJ0YuWS5SLk8uTS4gKE1hY2Vkb25pYSkgJzsKJGxhbmdbJ0dBJ10gPSAnR2Fib24gJzsKJGxhbmdbJ0dNJ10gPSAnR2FtYmllICc7CiRsYW5nWydHRSddID0gJ0cmZWFjdXRlO29yZ2llICc7CiRsYW5nWydERSddID0gJ0dlcm1hbnkgJzsKJGxhbmdbJ0dIJ10gPSAnR2hhbmEgJzsKJGxhbmdbJ0dJJ10gPSAnR2licmFsdGFyICc7CiRsYW5nWydHQiddID0gJ0dycmVhdCBCcml0YWluIChVSykgJzsKJGxhbmdbJ0dSJ10gPSAnR3ImZWdyYXZlO2NlICc7CiRsYW5nWydHTCddID0gJ0dybyZldW1sO25sYW5kICc7CiRsYW5nWydHRCddID0gJ0dyZW5hZGUgJzsKJGxhbmdbJ0dQJ10gPSAnR3VhZGVsb3VwZSAnOwokbGFuZ1snR1UnXSA9ICdHdWFtICc7CiRsYW5nWydHVCddID0gJ0d1YXRlbWFsYSAnOwokbGFuZ1snR04nXSA9ICdHdWluJmVhY3V0ZTtlICc7CiRsYW5nWydHVyddID0gJ0d1aW4mZWFjdXRlO2UtQmlzc2F1ICc7CiRsYW5nWydHWSddID0gJ0d1eWFuZSAnOwokbGFuZ1snSFQnXSA9ICdIYSZpdW1sO3RpICc7CiRsYW5nWydITSddID0gJ0hlYXJkIGFuZCBNY0RvbmFsZCBJc2xhbmRzICc7CiRsYW5nWydITiddID0gJ0hvbmR1cmFzICc7CiRsYW5nWydISyddID0gJ0hvbmcgS29uZyAnOwokbGFuZ1snSFUnXSA9ICdIb25ncmllICc7CiRsYW5nWydJUyddID0gJ0lzbGFuZGUnOwokbGFuZ1snSU4nXSA9ICdJbmRlICc7CiRsYW5nWydJRCddID0gJ0luZG9uJmVhY3V0ZTtzaWUgJzsKJGxhbmdbJ0lSJ10gPSAnSXJhbiAnOwokbGFuZ1snSVEnXSA9ICdJcmFxICc7CiRsYW5nWydJRSddID0gJ0lybGFuZGUgJzsKJGxhbmdbJ0lMJ10gPSAnSXNyYSZldW1sO2wgJzsKJGxhbmdbJ0lNJ10gPSAnSXNsZSBvZiBNYW4gJzsKJGxhbmdbJ0lUJ10gPSAnSXRhbGllICc7CiRsYW5nWydKRSddID0gJ0plcnNleSAnOwokbGFuZ1snSk0nXSA9ICdKYW1hJml1bWw7cXVlJzsKJGxhbmdbJ0pQJ10gPSAnSmFwb24gJzsKJGxhbmdbJ0pPJ10gPSAnSm9yZGFuICc7CiRsYW5nWydLWiddID0gJ0themFraHN0YW4gJzsKJGxhbmdbJ0tFJ10gPSAnS2VueWEgJzsKJGxhbmdbJ0tJJ10gPSAnS2lyaWJhdGkgJzsKJGxhbmdbJ0tQJ10gPSAnS29yZWEgKE5vcnRoKSAnOwokbGFuZ1snS1InXSA9ICdLb3JlYSAoU291dGgpICc7CiRsYW5nWydLVyddID0gJ0t1d2EmaXVtbDt0ICc7CiRsYW5nWydLRyddID0gJ0t5cmd5enN0YW4gJzsKJGxhbmdbJ0xBJ10gPSAnTGFvcyAnOwokbGFuZ1snTFYnXSA9ICdMYXR2aWUgJzsKJGxhbmdbJ0xCJ10gPSAnTGliYW4gJzsKJGxhbmdbJ0xJJ10gPSAnTGllY2h0ZW5zdGVpbiAnOwokbGFuZ1snTFInXSA9ICdMaWImZWFjdXRlO3JpYSAnOwokbGFuZ1snTFknXSA9ICdMeWJpYSAnOwokbGFuZ1snTFMnXSA9ICdMZXNvdGhvICc7CiRsYW5nWydMVCddID0gJ0xpdGh1YW5pZSAnOwokbGFuZ1snTFUnXSA9ICdMdXhlbWJvdXJnICc7CiRsYW5nWydNTyddID0gJ01hY2F1ICc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXIgJzsKJGxhbmdbJ01XJ10gPSAnTWFsYXdpICc7CiRsYW5nWydNWSddID0gJ01hbGF5c2llICc7CiRsYW5nWydNViddID0gJ01hbGRpdmVzICc7CiRsYW5nWydNTCddID0gJ01hbGkgJzsKJGxhbmdbJ01UJ10gPSAnTWFsdGUgJzsKJGxhbmdbJ01IJ10gPSAnTWFyc2hhbGwgSXNsYW5kcyAnOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlICc7CiRsYW5nWydNUiddID0gJ01hdXJpdGFuaWUgJzsKJGxhbmdbJ01VJ10gPSAnTWF1cml0aXVzICc7CiRsYW5nWydZVCddID0gJ01heW90dGUgJzsKJGxhbmdbJ01YJ10gPSAnTWV4aXF1ZSc7CiRsYW5nWydGTSddID0gJ01pY3JvbiZlYWN1dGU7c2llJzsKJGxhbmdbJ01DJ10gPSAnTW9uYWNvICc7CiRsYW5nWydNRCddID0gJ01vbGRhdmllICc7CiRsYW5nWydNQSddID0gJ01hcm9jICc7CiRsYW5nWydNTiddID0gJ01vbmdvbGllICc7CiRsYW5nWydNUyddID0gJ01vbnRzZXJyYXQgJzsKJGxhbmdbJ01aJ10gPSAnTW96YW1iaXF1ZSAnOwokbGFuZ1snTU0nXSA9ICdNeWFubWFyICc7CiRsYW5nWydOQSddID0gJ05hbWliaWUgJzsKJGxhbmdbJ05SJ10gPSAnTmF1cnUgJzsKJGxhbmdbJ05QJ10gPSAnTiZlYWN1dGU7cGFsICc7CiRsYW5nWydOTCddID0gJ05ldGhlcmxhbmRzICc7CiRsYW5nWydBTiddID0gJ05ldGhlcmxhbmRzIEFudGlsbGVzICc7CiRsYW5nWydOVCddID0gJ05ldXRyYWwgWm9uZSAnOwokbGFuZ1snTkMnXSA9ICdOb3V2ZWxsZSBDYWwmZWFjdXRlO2RvbmllICc7CiRsYW5nWydOWiddID0gJ05vdXZlbGxlIFomZWFjdXRlO2xhbmRlIChBb3RlYXJvYSkgJzsKJGxhbmdbJ05JJ10gPSAnTmljYXJhZ3VhICc7CiRsYW5nWydORSddID0gJ05pZ2VyICc7CiRsYW5nWydORyddID0gJ05pZyZlYWN1dGU7cmlhICc7CiRsYW5nWydOVSddID0gJ05pdWUgJzsKJGxhbmdbJ05GJ10gPSAnTm9yZm9sayBJc2xhbmQgJzsKJGxhbmdbJ01QJ10gPSAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzICc7CiRsYW5nWydOTyddID0gJ05vcnYmZWdyYXZlO2dlICc7CiRsYW5nWydPTSddID0gJ09tYW4gJzsKJGxhbmdbJ1BLJ10gPSAnUGFraXN0YW4gJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUgJzsKJGxhbmdbJ1BTJ10gPSAnUGFsZXN0aW5pYW4gVGVycml0b3J5ICc7CiRsYW5nWydQQSddID0gJ1BhbmFtYSAnOwokbGFuZ1snUEcnXSA9ICdQYXB1YSBOZXcgR3VpbmVhICc7CiRsYW5nWydQWSddID0gJ1BhcmFndWF5ICc7CiRsYW5nWydQRSddID0gJ1AmZWFjdXRlO3JvdSAnOwokbGFuZ1snUEgnXSA9ICdQaGlsaXBwaW5lcyAnOwokbGFuZ1snUE4nXSA9ICdQaXRjYWlybiAnOwokbGFuZ1snUEwnXSA9ICdQb2xhbmQgJzsKJGxhbmdbJ1BUJ10gPSAnUG9ydHVnYWwgJzsKJGxhbmdbJ1BSJ10gPSAnUG9ydG8gUmljbyAnOwokbGFuZ1snUUEnXSA9ICdRYXRhciAnOwokbGFuZ1snUkUnXSA9ICdSJmVhY3V0ZTt1bmlvbiAnOwokbGFuZ1snUk8nXSA9ICdSb3VtYW5pZSAnOwokbGFuZ1snUlUnXSA9ICdSdXNzaWFuIEZlZGVyYXRpb24gJzsKJGxhbmdbJ1JXJ10gPSAnUndhbmRhICc7CiRsYW5nWydHUyddID0gJ1MuIEdlb3JnaWEgYW5kIFMuIFNhbmR3aWNoIElzbHMuICc7CiRsYW5nWydLTiddID0gJ1NhaW50IEtpdHRzIGV0IE5ldmlzICc7CiRsYW5nWydMQyddID0gJ1NhaW50IEx1Y2llICc7CiRsYW5nWydWQyddID0gJ1NhaW50IFZpbmNlbnQgZXQgbGVzIEdyZW5hZGluZXMgJzsKJGxhbmdbJ1dTJ10gPSAnU2Ftb2EgJzsKJGxhbmdbJ1NNJ10gPSAnU2FuIE1hcmlubyAnOwokbGFuZ1snU1QnXSA9ICdTYW8gVG9tZSBldCBQcmluY2lwZSAnOwokbGFuZ1snU0EnXSA9ICdTYXVkaSBBcmFiaWEgJzsKJGxhbmdbJ1NOJ10gPSAnUyZlYWN1dGU7biZlYWN1dGU7Z2FsICc7CiRsYW5nWydTQyddID0gJ1NleWNoZWxsZXMgJzsKJGxhbmdbJ1NMJ10gPSAnU2llcnJhIExlb25lICc7CiRsYW5nWydTRyddID0gJ1NpbmdhcG9yZSAnOwokbGFuZ1snU0knXSA9ICdTbG92JmVhY3V0ZTtuaWUgJzsKJGxhbmdbJ1NLJ10gPSAnU2xvdmFrIFJlcHVibGljICc7CiRsYW5nWydTQiddID0gJ1NvbG9tb24gSXNsYW5kcyAnOwokbGFuZ1snU08nXSA9ICdTb21hbGllICc7CiRsYW5nWydaQSddID0gJ1NvdXRoIEFmcmljYSAnOwokbGFuZ1snRVMnXSA9ICdTcGFpbiAnOwokbGFuZ1snTEsnXSA9ICdTcmkgTGFua2EgJzsKJGxhbmdbJ1NIJ10gPSAnU3QtSCZlYWN1dGU7bCZlZ3JhdmU7bmUgJzsKJGxhbmdbJ1BNJ10gPSAnU3QtUGllcnJlIGV0IE1pcXVlbG9uICAnOwokbGFuZ1snU0QnXSA9ICdTb3VkYW4gJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbWUgJzsKJGxhbmdbJ1NKJ10gPSAnU3ZhbGJhcmQgJmFtcDsgSmFuIE1heWVuIElzbGFuZHMgJzsKJGxhbmdbJ1NaJ10gPSAnU3dhemlsYW5kICc7CiRsYW5nWydTRSddID0gJ1N1JmVncmF2ZTtkZSAnOwokbGFuZ1snQ0gnXSA9ICdTd2l0emVybGFuZCAnOwokbGFuZ1snU1knXSA9ICdTeXJpZSAnOwokbGFuZ1snVFcnXSA9ICdUYSZpdW1sO3dhbiAnOwokbGFuZ1snVEonXSA9ICdUYWppa2lzdGFuICc7CiRsYW5nWydUWiddID0gJ1RhbnphbmllICc7CiRsYW5nWydUSCddID0gJ1RoYSZpdW1sO2xhbmRlICc7CiRsYW5nWydURyddID0gJ1RvZ28gJzsKJGxhbmdbJ1RLJ10gPSAnVG9rZWxhdSAnOwokbGFuZ1snVE8nXSA9ICdUb25nYSAnOwokbGFuZ1snVFQnXSA9ICdUcmluaWRhZCBldCBUb2JhZ28gJzsKJGxhbmdbJ1ROJ10gPSAnVHVuaXNpZSAnOwokbGFuZ1snVFInXSA9ICdUdXJxdWllJzsKJGxhbmdbJ1RNJ10gPSAnVHVya21lbmlzdGFuICc7CiRsYW5nWydUQyddID0gJ1R1cmtzIGV0IENhaWNvcyc7CiRsYW5nWydUViddID0gJ1R1dmFsdSAnOwokbGFuZ1snVUcnXSA9ICdVZ2FuZGEgJzsKJGxhbmdbJ1VBJ10gPSAnVWtyYWluZSAnOwokbGFuZ1snQUUnXSA9ICcgVW5pdGVkIEFyYWIgRW1pcmF0ZXMnOwokbGFuZ1snVUsnXSA9ICdVbml0ZWQgS2luZ2RvbSAnOwokbGFuZ1snVVMnXSA9ICdVbml0ZWQgU3RhdGVzICc7CiRsYW5nWydVTSddID0gJ1VTIE1pbm9yIE91dGx5aW5nIElzbGFuZHMgJzsKJGxhbmdbJ1VZJ10gPSAnVXJ1Z3VheSAnOwokbGFuZ1snVVonXSA9ICdVemJla2lzdGFuICc7CiRsYW5nWydWVSddID0gJ1ZhbnVhdHUgJzsKJGxhbmdbJ1ZBJ10gPSAnVmF0aWNhbiBDaXR5IFN0YXRlIChIb2x5IFNlZSkgJzsKJGxhbmdbJ1ZFJ10gPSAnVmVuZXp1ZWxhICc7CiRsYW5nWydWTiddID0gJ1ZpZXQgTmFtICc7CiRsYW5nWydWRyddID0gJ1ZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSAnOwokbGFuZ1snVkknXSA9ICdWaXJnaW4gSXNsYW5kcyAoVS5TLikgJzsKJGxhbmdbJ1dGJ10gPSAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyAnOwokbGFuZ1snRUgnXSA9ICdXZXN0ZXJuIFNhaGFyYSAnOwokbGFuZ1snWUUnXSA9ICdZZW1lbiAnOwokbGFuZ1snWVUnXSA9ICdZdWdvc2xhdmlhICc7CiRsYW5nWydaTSddID0gJ1phbWJpYSAnOwokbGFuZ1snWlcnXSA9ICdaaW1iYWJ3ZSAnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0QmZWFjdXRlO3NvbCZlYWN1dGU7ICEgVW5lIGVycmV1ciBhIGVtcCZlY2lyYztjaCZlYWN1dGU7IGxhIHRyYW5zbWlzc2lvbiBkdSBmb3JtdWxhaXJlLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdFcnJldXIgZGUgc291bWlzc2lvbiBGb3JtQnVpbGRlciA6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJldXIgZW4gc291bWV0dGFudCB1biBmaWNoaWVyIGF1IG1vZHVsZSBkJiMwMzk7dXBsb2FkIDogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTW9kdWxlIGQmIzAzOTt1cGxvYWQgaW50cm91dmFibGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0VycmV1ciBkJiMwMzk7VXBsb2FkL0F0dGFjaGVtZW50IHN1ciBsZSBmaWNoaWVyICVzICh0bXBfbmFtZSA6ICVzLCBkZSB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0VycmV1ci4gSW1wb3NzaWJsZSBkJiMwMzk7b2J0ZW5pciBsZSBibG9jYWdlIGR1IGZpY2hpZXIuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQgOiBkJmVhY3V0ZTtjb2NoJmVhY3V0ZTsnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQgOiBjb2NoJmVhY3V0ZTsnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1NvdW1pc3Npb24gcGFyIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkdhYmFyaXQgZHUgbWFpbCBwYXMgZW5jb3JlIGQmZWFjdXRlO2ZpbmkgISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlciA6IGltcG9zc2libGUgZGUgdHJvdXZlciBsZSBtb2R1bGUgQ01TTWFpbGVyIHJlcXVpcyAhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1V0aWxpc2F0ZXVyIGFwcHJvdXZhbnQgbGEgc291bWlzc2lvbiAlcyBkZSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXYmZWFjdXRlO25lbWVudCBkJmVhY3V0ZTtjbGVuY2gmZWFjdXRlOyBsb3JzcXUmIzAzOTt1biBmb3JtdWxhaXJlIEZvcm1CdWlsZGVyIGVzdCBlbnZveSZlYWN1dGU7JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2JmVhY3V0ZTtuZW1lbnQgZCZlYWN1dGU7Y2xlbmNoJmVhY3V0ZTsgcyYjMDM5O2lsIHkgYSB1bmUgZXJyZXVyIGxvcnNxdSYjMDM5O3VuIGZvcm11bGFpcmUgRm9ybUJ1aWxkZXIgZXN0IGVudm95JmVhY3V0ZTsnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdiZlYWN1dGU7bmVtZW50IGQmZWFjdXRlO2NsZW5jaCZlYWN1dGU7IGxvcnNxdSYjMDM5O3VuIGZvcm11bGFpcmUgRm9ybUJ1aWxkZXIgZXN0IGFmZmljaCZlYWN1dGU7JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdiZlYWN1dGU7bmVtZW50IGQmZWFjdXRlO2NsZW5jaCZlYWN1dGU7IGxvcnNxdSYjMDM5O3VuIGZvcm11bGFpcmUgRm9ybUJ1aWxkZXIgZXN0IGVudm95JmVhY3V0ZTsuPC9wPgo8aDQ+UGFyYW0mZWdyYXZlO3RyZXM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBMZSBub20gZHUgZm9ybXVsYWlyZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gTCYjMDM5O2lkIGludGVybmUgZHUgZm9ybXVsYWlyZSAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBGb3Vybml0IHVuZSB2YWxldXIgcGFyIGQmZWFjdXRlO2ZhdXQgJmFncmF2ZTsgdW4gY2hhbXAgYXZlYyBsZSBub20gcHImZWFjdXRlO2NpcyZlYWN1dGU7LjwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdiZlYWN1dGU7bmVtZW50IGQmZWFjdXRlO2NsZW5jaCZlYWN1dGU7IHMmIzAzOTtpbCB5IGEgdW5lIGVycmV1ciBsb3JzcXUmIzAzOTt1biBmb3JtdWxhaXJlIEZvcm1CdWlsZGVyIGVzdCBlbnZveSZlYWN1dGU7PC9wPgo8aDQ+UGFyYW0mZWdyYXZlO3RyZXM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBMZSBub20gZHUgZm9ybXVsYWlyZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gTCYjMDM5O2lkIGludGVybmUgZHUgZm9ybXVsYWlyZSAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIFVuZSBsaXN0ZSBkZSB0b3V0ZXMgbGVzIGVycmV1cnMgY29ubnVlcyAoc3RyaW5nKTwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2JmVhY3V0ZTtuZW1lbnQgZCZlYWN1dGU7Y2xlbmNoJmVhY3V0ZTsgbG9yc3F1JiMwMzk7dW4gZm9ybXVsYWlyZSBGb3JtQnVpbGRlciBlc3QgYWZmaWNoJmVhY3V0ZTs8L3A+CjxoND5QYXJhbSZlZ3JhdmU7dHJlczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIExlIG5vbSBkdSBmb3JtdWxhaXJlIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBMJiMwMzk7aWQgaW50ZXJuZSBkdSBmb3JtdWxhaXJlIChpbnQpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ0lELiBkZSBsYSByJmVhY3V0ZTtwb25zZSB1dGlsaXMmZWFjdXRlO2UgcGFyIGxlIG1vZHVsZSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnVmFsZXVycyBkdSBjaGFtcCBwYXIgZCZlYWN1dGU7ZmF1dDsgdm9pciBsZSBtb2R1bGUgZCYjMDM5O2FpZGUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnSUQgZHUgY2hhbXAgcG91ciBsZXMgb3AmZWFjdXRlO3JhdGlvbnMgaW50ZXJuZXMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ05vbSBkdSBmb3JtdWxhaXJlJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnSUQgZHUgZm9ybXVsYWlyZSBwb3VyIGxlcyBvcCZlYWN1dGU7cmF0aW9ucyBpbnRlcm5lcyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ1BhcmFtJmVncmF2ZTt0cmVzIGcmZWFjdXRlO24mZWFjdXRlO3JhdXggcG91ciBsZXMgb3AmZWFjdXRlO3JhdGlvbnMgaW50ZXJuZXMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5WYXJpYWJsZXMgZHUgR2FiYXJpdCBkZSBGb3JtdWxhaXJlPC9oMz4KPHA+Vm91cyBwb3V2ZXogbCYjMDM5OyZlYWN1dGU7ZGl0ZXIgcG91ciBxdWUgbGEgcHImZWFjdXRlO3NlbnRhdGlvbiBkZSB2b3RyZSBmb3JtdWxhaXJlIHNvaXQgY29uZm9ybWUgJmFncmF2ZTsgdm9zIHNvdWhhaXRzLgogICBQb3VyIHF1ZSBsZSBmb3JtdWxhaXJlIGZvbmN0aW9ubmUsIHZvdXMgZGV2cmV6IHRvdWpvdXJzIGluY2x1cmUgbGVzIHRhZ3MgeyRmYl9oaWRkZW59IGV0IHskc3VibWl0fS48L3A+Cgo8cD5Wb3VzIHBvdXZleiBhY2MmZWFjdXRlO2RlciAmYWdyYXZlOyB2b3MgY2hhbXBzIGRlIGZvcm11bGFpcmUgZW4gdXRpbGlzYW50IHNvaXQgbCYjMDM5O29yZHJlICRmaWVsZHMgc29pdCBkaXJlY3RlbWVudCBwYXIgbGV1cnMgbm9tcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5Wb2ljaSBsZXMgZGlmZiZlYWN1dGU7cmVudGVzIHZhbGV1cnMgYXBwbGljYWJsZXMgYXV4IGNoYW1wcyA6PC9wPgo8dGFibGU+Cjx0cj48dGg+Q2hhbXA8L3RoPjx0aD5WYWxldXI8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIHBvdXIgYWZmaWNoZXIgbGUgY2hhbXAsIHNpbm9uIDA8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBzaSBsZSBjaGFtcCBlc3QgcmVxdWlzLCBzaW5vbiAwPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD5MZSBzeW1ib2xlIHNpZ25hbGFudCBsZXMgY2hhbXBzIG9ibGlnYXRvaXJlczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+TGEgY2xhc3NlIENTUyBkZSBjZSBjaGFtcDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIHNpIGxlIGNoYW1wICZlYWN1dGU7dCZlYWN1dGU7IHZhbGlkZSwgc2lub24gMDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0ZSBwb3VyIGxlcyBwcm9ibCZlZ3JhdmU7bWVzIGRlIHZhbGlkYXRpb24sIGF1IGNhcyBvJnVncmF2ZTsgbGUgY2hhbXAgbmUgc2VyYWl0IHBhcyB2YWxpZCZlYWN1dGU7PC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIHNpIGxlIG5vbSBkdSBjaGFtcHMgZG9pdCByZXN0ZXIgY2FjaCZlYWN1dGU7LCBzaW5vbiAwPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIHNpIGxlIHR5cGUgZGUgY2hhbXAgYSB1biBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBzaSBsZSBjaGFtcCBkb2l0ICZlY2lyYzt0cmUgaW50JmVhY3V0ZTtnciZlYWN1dGU7IGRhbnMgdW4gRElWIChvdSBkYW5zIHVuZSBsaWduZSBkZSB0YWJsZWF1LCBzaSBjJiMwMzk7ZXN0IHZvdHJlIGNob2l4KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPkxlIG5vbSBkdSBjaGFtcDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD5MZSBjaGFtcCBkZSB0ZXh0ZSBkJiMwMzk7YWlkZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD5MYSB2YWxldXIgZGUgY29udHImb2NpcmM7bGUgZHUgY2hhbXAgKGV4LiA6IGxhIHZhbGV1ciBkdSBjaGFtcCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+dW4gYm91dG9uIGRlIGNvbnRyJm9jaXJjO2xlIGFzc29jaSZlYWN1dGU7IGF1IGNoYW1wIHNpIGMmIzAzOTtlc3QgcG9zc2libGUgKGV4LiA6IGxlIGJvdXRvbiBzdXBwcmltZXIgcG91ciB1biBjaGFtcCB0ZXh0ZSk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+bCYjMDM5OyBJRCBkdSBjaGFtcCAodXRpbGUgcG91ciB1biBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+bCYjMDM5O2FsaWFzIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTsgcG91ciBjZSBjaGFtcDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD5sJiMwMzk7aWQgaW50ZXJuZSAvIG9wYXF1ZSBxdWUgRm9ybUJ1aWxkZXIgdXRpbGlzZSBwb3VyIGNlIGNoYW1wPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+bGUgdHlwZSBkZSBkb25uJmVhY3V0ZTtlcyBkdSBjaGFtcDwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIHNpIGxlIGNoYW1wLT5pbnB1dCBlc3QgdW5lIGNvbGxlY3Rpb24gZGUgY29udHImb2NpcmM7bGVzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgc2kgbGEgY29sbGVjdGlvbiBkZSBjb250ciZvY2lyYztsZXMgYSBkZXMgbGFiZWxzIHMmZWFjdXRlO3BhciZlYWN1dGU7cyBwb3VyIGNoYXF1ZSBjb250ciZvY2lyYztsZTwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkRhbnMgbGUgY2FzIGQmIzAzOTt1biBmb3JtdWxhaXJlICZhZ3JhdmU7IHBsdXNpZXVycyBwYWdlcywgdm91cyBhdXJleiBhdXNzaSBhY2MmZWdyYXZlO3MgJmFncmF2ZTsgbGEgdmFsZXVyIGRlcyBjaGFtcHMgcHImZWFjdXRlO2MmZWFjdXRlO2RlbnRzLiBJbHMgc29udCBkYW5zICRwcmV2aW91cyBhcnJheSwgb3UgYWNjZXNzaWJsZXMgcGFyIGxldXJzIG5vbXMgKGV4LiA6ICZhbXA7IzEyMzskbXlmaWVsZC0+dmFsdWV9ICkuClZvdXMgcG91dmV6IGF1c3NpIHV0aWxpc2VyIFN0YXRpYyBUZXh0IGZpZWxkcywgY2UgcXVpIGNvbnN0aXR1ZSB1bmUgYm9ubmUgZmEmY2NlZGlsO29uIGRlIHBlcnNvbm5hbGlzZXIgdm9zIGZvcm11bGFpcmVzICE8L3A+Cgo8cD5EYW5zIGNlcnRhaW5zIGNhcywgZmllbGQtPmlucHV0IGVzdCBlbiBmYWl0IHVuIGdyb3VwZSBkJiMwMzk7b2JqZXRzIHBsdXQmb2NpcmM7dCBxdSYjMDM5O3VuZSBlbnRyJmVhY3V0ZTtlLiAmQ2NlZGlsO2EgYXJyaXZlLCBwYXIgZXhlbXBsZSwgZGFucyBDaGVja0JveEdyb3VwcyBvdSBSYWRpb0J1dHRvbkdyb3Vwcy4gRGFucyBjZSBjYXMsIHZvdXMgcG91dmV6IGxlcyByJmVhY3V0ZTtwJmVhY3V0ZTt0ZXIgYXZlYyBmaWVsZC0+aW5wdXQtPm5hbWUgZXQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPlZvaWNpIGxlcyB2YXJpYWJsZXMgc21hcnR5IGNvbXBsJmVhY3V0ZTttZW50YWlyZXMgcXVlIHZvdXMgcG91dmV6IHV0aWxpc2VyIDo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbGV1cjwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm5vbWJyZSBkZSBwYWdlcyBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGktcGFnZXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtJmVhY3V0ZTtybyBkZSBsYSBwYWdlIGNvdXJyYW50ZSBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGktcGFnZXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5hZmZpY2hlICZxdW90O3BhZ2UgeCBkZSB5JnF1b3Q7IHBvdXIgdW4gZm9ybXVsYWlyZSBtdWx0aS1wYWdlczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5MYSBjbGFzc2UgQ1NTIHBvdXIgbGUgZm9ybXVsYWlyZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Ob20gZHUgZm9ybXVsYWlyZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+SUQgZGUgbGEgYmFzZSBkZSBkb25uJmVhY3V0ZTtlcyBkdSBmb3JtdWxhaXJlPC90ZD48L3RyPgoKPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgU2kgbGUgZm9ybXVsYWlyZSBlc3QgYWZmaWNoJmVhY3V0ZTsgJmFncmF2ZTsgcGFydGlyIGRlIEZvcm1Ccm93c2VyPC90ZD48L3RyPgo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBTaSBsZSBmb3JtdWxhaXJlIGVzdCB2aXN1YWxpcyZlYWN1dGU7IGRlIGwmIzAzOTthZG1pbmlzdHJhdGlvbiBkZSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5JRCBkZSByZXRvdXIgc2kgbGUgZm9ybXVsYWlyZSBlc3QgYWZmaWNoJmVhY3V0ZTsgJmFncmF2ZTsgcGFydGlyIGRlIEZvcm1Ccm93c2VyPC90ZD48L3RyPgoKPHRyPjx0ZD5wcmV2PC90ZD48dGQ+Qm91dG9uICZxdW90O1JlY3VsZXImcXVvdDsgcG91ciB1biBmb3JtdWxhaXJlIG11bHRpcGxlPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPkJvdXRvbiAmcXVvdDtTdWl2YW50JnF1b3Q7IG9yICZxdW90O0Vudm95ZXImcXVvdDsgIHBvdXIgdW4gZm9ybXVsYWlyZSBtdWx0aXBsZSwgYWp1c3RlciBhdXRvbWF0aXF1ZW1lbnQ8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkplIG5lIHNhaXMgcGFzIHBvdXJxdW9pIHZvdXMgdm91bGlleiAmY2NlZGlsO2EsIG1haXMgbGVzIHZvaWwmYWdyYXZlOy4uLjwvcD4KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJ0Zvcm1CdWlsZGVyIGVzdCBpbnN0YWxsJmVhY3V0ZTsuIE1lcmNpIGRlIGNvbnN1bHRlciBsJiMwMzk7YWlkZSBkdSBtb2R1bGUgcG91ciBsYSBkb2N1bWVudGF0aW9uLic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/PC9oMz4KPHA+TGUgbW9kdWxlIEZvcm0gQnVpbGRlciB2b3VzIHBlcm1ldCBkZSBjciZlYWN1dGU7ZXIgZGVzIGZvcm11bGFpcmVzIChpbCBzJiMwMzk7YWdpdCBlbiBmYWl0IGR1IHJlbXBsYSZjY2VkaWw7YW50IGR1IG1vZHVsZSBGZWVkYmFjayBGb3JtIGQmIzAzOTtvcmlnaW5lKSwgYXZlYyBsYSBwdWlzc2FuY2Ugc3VwcGwmZWFjdXRlO21lbnRhaXJlIGR1IHN0b2NrYWdlIHN1ciBiYXNlIGRlIGRvbm4mZWFjdXRlO2VzLiBBdmVjIHNvbiBtb2R1bGUgYXNzb2NpJmVhY3V0ZTsgRm9ybSBCcm93c2VyLCB2b3VzIHBvdXZleiBsJiMwMzk7dXRpbGlzZXIgcG91ciBjciZlYWN1dGU7ZXIgZGVzIGFwcGxpY2F0aW9ucyBzaW1wbGVzIGRlIGJhc2UgZGUgZG9ubiZlYWN1dGU7ZXMuPC9wPgo8cD5MZXMgZm9ybXVsYWlyZXMgY3ImZWFjdXRlOyZlYWN1dGU7cyBwYXIgbGUgbW9kdWxlIEZvcm0gQnVpbGRlciBwZXV2ZW50ICZlY2lyYzt0cmUgaW5zJmVhY3V0ZTtyJmVhY3V0ZTtzIGRhbnMgZGVzIGdhYmFyaXRzIGV0L291IGRlcyBwYWdlcyBkZSBjb250ZW51LiBMZXMgZm9ybXVsYWlyZXMgcGV1dmVudCBjb250ZW5pciBkZSBub21icmV1eCB0eXBlcyBkJiMwMzk7ZW50ciZlYWN1dGU7ZXMsIGV0IHBldXZlbnQgYXZvaXIgZGVzIHZhbGlkYXRpb25zIGFwcGxpcXUmZWFjdXRlO2VzICZhZ3JhdmU7IGNlcyBlbnRyJmVhY3V0ZTtlcy4gTGUgciZlYWN1dGU7c3VsdGF0IGRlIGNlcyBmb3JtdWxhaXJlcyBwZXV2ZW50ICZlY2lyYzt0cmUgZyZlYWN1dGU7ciZlYWN1dGU7cyBkZSBkaWZmJmVhY3V0ZTtyZW50ZXMgbWFuaSZlZ3JhdmU7cmVzLjwvcD4KCjxoMz5Db21tZW50IGwmIzAzOTt1dGlsaXNlciA/PC9oMz4KPHA+SW5zdGFsbGV6LWxlLCBldCBmb3VpbmV6IGRhbnMgbGVzIG1lbnVzLiBKb3VleiBhdmVjLiBFc3NheWV6IGRlIGNyJmVhY3V0ZTtlciBkZXMgZm9ybXVsYWlyZXMsIGV0IGRlIGxlcyBham91dGVyICZhZ3JhdmU7IHZvdHJlIGNvbnRlbnUuClNpIHZvdXMgJmVjaXJjO3RlcyBjb2luYyZlYWN1dGU7cywgdmVuZXogZGlzY3V0ZXIgYXZlYyBtb2kgc3VyIGxlIGNhbmFsICNjbXMgc3VyIElSQywgcG9zZXogdW5lIHF1ZXN0aW9uIHN1ciBsZSBmb3J1bSwgZW52b3llei1tb2kgdW4gZW1haWwsIG91LCBzaSB2b3VzICZlY2lyYzt0ZXMgdnJhaW1lbnQgZCZlYWN1dGU7c2VzcCZlYWN1dGU7ciZlYWN1dGU7LCBlc3NheWV6IGRlIGxpcmUgbGVzIGluc3RydWN0aW9ucyBzdXIgbGUgcmVzdGUgZGUgY2V0dGUgcGFnZS48L3A+Cgo8aDM+Q29tbWVudCBjciZlYWN1dGU7ZXIgdW4gZm9ybXVsYWlyZSA/PC9oMz4KPHA+RGFucyBsZSBtZW51IGQmIzAzOTthZG1pbmlzdHJhdGlvbiBkdSBDTVMsIHZvdXMgZGV2cmlleiBhdm9pciB1bmUgbm91dmVsbGUgZW50ciZlYWN1dGU7ZSBhcHBlbCZlYWN1dGU7ZSBGb3JtQnVpbGRlci4gQ2xpcXVleiBkZXNzdXMuIERhbnMgbGEgcGFnZSBxdWkgcyYjMDM5O2FmZmljaGUsIGRlcyBvcHRpb25zIGFwcGFyYWlzc2VudCAoZW4gYmFzIGRlIGxhIGxpc3RlIGRlcyBmb3JtdWxhaXJlcykgcG91ciBham91dGVyIHVuIG5vdXZlYXUgZm9ybXVsYWlyZSBvdSBtb2RpZmllciBsYSBjb25maWd1cmF0aW9uLjwvcD4KCjxoMz5Bam91dGVyIHVuIGZvcm11bGFpcmUgJmFncmF2ZTsgdW5lIFBhZ2U8L2gzPgo8cD5EYW5zIGxhIHBhZ2UgcHJpbmNpcGFsZSBkJiMwMzk7YWRtaW5pc3RyYXRpb24gZGUgRm9ybUJ1aWxkZXIsIHZvdXMgcG91dmV6IHZvaXIgdW4gZXhlbXBsZSBkZSBiYWxpc2UgdXRpbGlzJmVhY3V0ZTsgcG91ciBhZmZpY2hlciBjaGFxdWUgZm9ybXVsYWlyZS4gJkNjZWRpbDthIHJlc3NlbWJsZSAmYWdyYXZlOyBxdWVscXVlIGNob3NlIGNvbW1lICZjY2VkaWw7YSA6IHtGb3JtQnVpbGRlciBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4KPHA+Q29waWVyIGNldHRlIGJhbGlzZSBkYW5zIGxlIGNvbnRlbnUgZCYjMDM5O3VuZSBwYWdlLCBvdSBkYW5zIHVuIGdhYmFyaXQsIHZlcnJhIGxlIGZvcm11bGFpcmUgYWZmaWNoJmVhY3V0ZTsuCkVuIHRoJmVhY3V0ZTtvcmllLCB2b3VzIHBvdXZleiBhdm9pciBkZSBtdWx0aXBsZSBmb3JtdWxhaXJlcyBkYW5zIHVuZSBwYWdlIHNpIHZvdXMgeSB0ZW5leiB2cmFpbWVudC4gU295ZXogdmlnaWxhbnQgc2kgdm91cyBjb2xsZXogbGEgYmFsaXNlIGRhbnMgbGEgcGFnZSBkdSBjb250ZW51ICZhZ3JhdmU7IGwmIzAzOTthaWRlIGQmIzAzOTsmZWFjdXRlO2RpdGV1cnMgV1lTSVdZRyBjb21tZSBUaW55TUNFLCBGQ0tFZGl0LCBvdSBIVE1MQXJlYS4gQ2VzICZlYWN1dGU7ZGl0ZXVycyBwb3VycmFpZW50IGZ1cnRpdmVtZW50IGNoYW5nZXIgbGUgZ3VpbGxlbWV0ICgmcXVvdDspIGVuIGVudGl0JmVhY3V0ZTsgSFRNTCAoJmFtcDtxdW90OyksIGV0IGxlcyBmb3JtdWxhaXJlcyBuZSBzJiMwMzk7YWZmaWNoZXJhaWVudCBwbHVzLiBFc3NheWV6IGQmIzAzOTt1dGlsaXNlciBkZXMgZ3VpbGxlbWV0cyBzaW1wbGVzICgmIzAzOTspIG91ICZlYWN1dGU7ZGl0ZXogZGlyZWN0ZW1lbnQgbGUgSFRNTC48L3A+Cgo8aDM+VHJhdmFpbGxlciBhdmVjIGxlcyBmb3JtdWxhaXJlczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PlNvdW1pc3Npb24gZGVzIGZvcm11bGFpcmVzPC9oND4KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+CjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoJnF1b3Q7UHJldmlvdXMmcXVvdDssICZxdW90O25leHQmcXVvdDssICZxdW90O3N1Ym1pdCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4KPGg0Pk9wdGlvbiBkJiMwMzk7YWZmaWNoYWdlIGR1IGZvcm11bGFpcmU8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Y29uZmlndXJhdGlvbiBDYXB0Y2hhPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+R2FiYXJpdCBkZSBmb3JtdWxhaXJlPC9oND4KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJiMwMzk7cyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+CjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+CjxoND5Tb3VtaXNzaW9uIGR1IGdhYmFyaXQ8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCjwvcD4KCjxoMz5Bam91dGVyIGRlcyBjaGFtcHMgZGFucyB2b3RyZSBmb3JtdWxhaXJlPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+Cgo8bGk+UGFzc3dvcmQuIFRoaXMgaXMgYW4gYXN0ZXJpc2tlZC1vdXQgdGV4dCBmaWVsZCwgdXNlZnVsIGZvciBwYXNzd29yZHMuPC9saT4KPGxpPlBhc3N3b3JkIEFnYWluICh2ZXJpZnkpLiBUaGlzIGlzIGEgZmllbGQgdGhhdCBtdXN0IG1hdGNoIGEgUGFzc3dvcmQgZmllbGQgZm9yIHN1Ym1pc3Npb24KdG8gc3VjY2VlZC48L2xpPgoKPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPgo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPgo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+CjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+CjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPgo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzCjx1bD48bGk+RW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPgo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4KPGxpPi1Vc2VyIFRhZy4gVGhpcyBjYWxscyB0aGUgc3BlY2lmaWVkIFVzZXIgRGVmaW5lZCBUYWcsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+CjwvdWw+PC9saT4KPGxpPi1Nb2R1bGUgSW5jbHVkZSBUYWcuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBvdGhlciBtb2R1bGUgb3V0cHV0IGludG8geW91ciBmb3JtLCBlLmcuLCBhIGxpc3Qgb2YgcHJvZHVjdHMgZnJvbSB0aGUgUHJvZHVjdHMgbW9kdWxlLjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLCBhbmQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9hbGlhcyYjMDM5O10gKGlmIGRlZmluZWQpLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCBkZXNjcmliZWQgYWJvdmUsIGJ1dCBpdCBwcm92aWRlcyBvcHRpb25zIGZvciBzZW5kaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0cyB0byB0aGUgdXNlci48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUKZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gPHN0cm9uZz5EZXByZWNhdGVkLjwvc3Ryb25nPiBVc2UgU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIGluc3RlYWQhIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPgo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkKc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjAuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgaXMgdGhlIG9ubHkgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3Nlci4gU2VlIHNlY3Rpb24gYmVsb3cuPC9saT4KPGxpPipTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uLiBDcmFmdCBhbiBIVFRQIEdFVCBvciBQT1NULCBhbmQgdHJhbnNtaXQgaXQgdXNpbmcgY1VSTCB0byB0aGUgc3BlY2lmaWVkIFVSTC4gVGhpcyBsZXRzIHlvdSB1c2UgRm9ybUJ1aWxkZXIgYXMgYSBmcm9udC1lbmQgdG8gYW55IENHSSBvciBGb3JtIEhhbmRsaW5nIHNjcmlwdCBvdXQgdGhlcmUuPC9saT4KCjwvdWw+PC9saT48L3VsPgoKCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUKYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4KPHA+e0Zvcm1CdWlsZGVyIGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbgphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+CjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdHMgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy4gQXMgb2YgdmVyc2lvbiAwLjUsIHZhcmlhYmxlcyBhbHNvIGhhdmUgYWxpYXNlcywgd2hpY2ggeW91IGNhbiB1c2UuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPlVzZSB3aXRoIEZvcm1Ccm93c2VyIHYzPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgc3BlY2lhbCBmZWF0dXJlcyB3aGVuIHVzaW5nIEZvcm1CdWlsZGVyIHdpdGggRm9ybUJyb3dzZXIuIFRoZSBuZXcgYXBwcm9hY2ggc3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gWE1MLCBzbyB0aGF0IGZhciBmZXdlcgpxdWVyaWVzIGFyZSBuZWVkZWQgdG8gcmV0cmlldmUgcmVjb3Jkcy4gVGhpcyBtZWFucyB5b3UgY2FuIHVzZSBGb3JtQnJvd3NlciB3aXRoIGh1bmRyZWRzIG9yIGV2ZW4gdGhvdXNhbmRzIG9mIHJlY29yZHMuIEl0IGFsc28gbWVhbnMgeW91CndpbGwgaGF2ZSB0byBjaG9vc2UgdXAgZnJvbnQgd2hpY2ggZmllbGRzIHlvdSB3aWxsIHdhbnQgdG8gYmUgYWJsZSB0byBzb3J0IGJ5LiBZb3UgY2FuIGNob29zZSB1cCB0byBmaXZlLiBDaGFuZ2luZyB0aGVzZSBhZnRlciB0aGVyZSBhcmUgc3VibWl0dGVkIHJlY29yZHMgd2lsbCByZXN1bHQgaW4gaW1wcm9wZXIgc29ydGluZyEgQSByZS1pbmRleCBmdW5jdGlvbiB3aWxsIGJlIGFkZGVkIHRvIGEgZnV0dXJlIHZlcnNpb24uPC9wPgo8cD5JbiBhZHZhbmNlZCBvcHRpb25zLCB5b3UgY2FuIHRpZSBhIGZvcm0gdG8gRnJvbnRlbmQgVXNlcnMuIFRoYXQgbWVhbnMgZWFjaCB1c2VyIGdldHMgb25lIHJlY29yZCBmb3IgdGhlIGZvcm07IHRoZXkgY2FuIGNyZWF0ZSBpdAphIHNpbmdsZSB0aW1lLCBzdWJzZXF1ZW50IHRpbWVzIHRoZXkgd2lsbCBiZSBlZGl0aW5nIHRoZWlyIHJlY29yZC4gVGhlIHJlY29yZCB3aWxsIG5vdCBiZSB2aXNpYmxlIHRvIGFueSBvdGhlciB1c2VycyAoZXhjbHVkaW5nIGFkbWlucykuClRoaXMgZm9ybSBzaG91bGQgYmUgYWRkZWQgdG8geW91ciBwYWdlIHVzaW5nIHRoZSBzeW50YXgge0Zvcm1CdWlsZGVyIGFjdGlvbj0mIzAzOTtmZXVzZXJmb3JtJiMwMzk7IGZvcm09JiMwMzk7Zm9ybV9uYW1lJiMwMzk7fS48L3A+CjxwPkZvciBncmVhdGVyIGRhdGEgc2FmZXR5LCB5b3UgY2FuIGVuY3J5cHQgdGhlIHN0b3JlZCBmb3JtcyBpbiB0aGUgZGF0YWJhc2UuIFlvdSBjYW4gdXNlIHRoZSBidWlsdC1pbiBteWNyeXB0IGxpYnJhcnkgb3IgdGhlIE9wZW5TU0wgbW9kdWxlLgpJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0CmZpbGUgd2lsbCBiZSB1c2VkIGFzIHRoZSBwYXNzcGhyYXNlIGZvciBlbmNyeXB0aW5nLjwvcD4KPHA+SWYgeW91IGVuY3J5cHQsIGJlIGF3YXJlIHRoYXQgdGhlIGZpZWxkcyB5b3UgdXNlIGZvciBzb3J0aW5nIGFyZSA8c3Ryb25nPm5vdDwvc3Ryb25nPiBlbmNyeXB0ZWQuIFlvdSBjYW4gY2hvb3NlIHRvIGhhc2ggdGhlbTsgdGhlIGNoZWF0IGhlcmUKaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdApleHBvc2VzIHNvbWUgY2xlYXJ0ZXh0LCBidXQgaXQgaXMgYmV0dGVyIHRoYW4gbm90aGluZy48L3A+CjxwPjxzdHJvbmc+RElTQ0xBSU1FUjwvc3Ryb25nPi4gVGhlIGVuY3J5cHRpb24gb2ZmZXJlZCBoZXJlIHNob3VsZCBiZSBjb25zaWRlcmVkIGp1c3Qgb25lIG1vcmUgaHVyZGxlIGZvciBhIGhhY2tlciwgbm90IGFzIGEgZ3VhcmFudGVlIHRoYXQKeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQKdGhlIG1vZHVsZSBzb3VyY2UgY29kZSwgYW5kIGZpbmQgdGhlaXIgd2F5IHRvIHRoZSBwYXNzcGhyYXNlLiBUaGlzIHdpbGwgbm90IHByb3RlY3QgeW91IGFnYWluc3QgYW4gZW5lbXkgd2hvIGhhcyBmdWxsIGFjY2VzcyB0byB5b3VyCnNlcnZlciwgc29tZSBmYW1pbGlhcml0eSB3aXRoIFBIUCwgYW5kIHRoZSB0aW1lIHRvIHBva2UgYXJvdW5kLiA8ZW0+PHN0cm9uZz5EbyBub3Q8L3N0cm9uZz4gdXNlIHRoaXMgdG8gcHJvdGVjdCBoaWdoLXZhbHVlIGluZm9ybWF0aW9uIHN1Y2ggYXMgZmluYW5jaWFsIGRhdGEsCnNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lCmNhcnRlbC48L2VtPjwvcD4KPGgzPlVzaW5nIHdpdGggVXNlciBEZWZpbmVkIFRhZ3MgKFVEVHMpPC9oMz4KPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPgoKPHVsPjxsaT5DYWxsIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIGZpZWxkIHR5cGUgc3VibWl0cyB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQKVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9uYW1lJiMwMzk7XSwgYW5kCmFzICRwYXJhbXNbJiMwMzk7ZmllbGRfYWxpYXMmIzAzOTtdIChpZiBkZWZpbmVkKS4gQXMgcGVyIGEgc3VnZ2VzdGlvbiwgaXQgYWxzbyBwb3B1bGF0ZXMgYWxsIG9mIHRoZSBTbWFydHkgdmFsdWVzIHRoYXQgd291bGQgYmUgdmlzaWJsZSB0byB0aGUgU3VibWlzc2lvbiBUZW1wbGF0ZSB0b28hPC9saT4KPGxpPlVzZXIgVGFnIEZpZWxkLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVURULCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cJiMwMzk7cyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcgp2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZAp2YWx1ZSBiZWluZyBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L2xpPgo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMKaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5Cm9mIHRoZSBmb3JtLjwvbGk+CjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UKZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZApldmVyeSB0aW1lIGFueSBwYWdlIG9mIHRoZSBmb3JtIGlzIGRpc3BsYXllZCAoaW5jbHVkaW5nIHdoZW4gdmFsaWRhdGlvbiBmYWlscykuPC9saT4KPC91bD4KCjxoMz5Db25maWd1cmF0aW9uPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPgo8dWw+CjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPgo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPgo8L3VsPgo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4KPHA+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIApzdGF0aWMgdGV4dCBmaWVsZHMuIEluc3RlYWQsIGl0IGNyZWF0ZXMgYSBzdHlsZXNoZWV0IGNhbGxlZCAmcXVvdDtGb3JtQnVpbGRlciBEZWZhdWx0JnF1b3Q7IHRoYXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGFjaCB0byB0aGUgcGFnZSB0ZW1wbGF0ZQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+CgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCjxoMz5DcmVkaXRzPC9oMz4KPHA+TWFueSBwZW9wbGUgaGF2ZSBjb250cmlidXRlZCBjb2RlLCBidWcgcmVwb3J0cywgY2FzaCwgYW5kIGlkZWFzIHRvIEZvcm1CdWlsZGVyLiBBbW9uZyB0aGVtIChhbHBoYWJldGljYWxseSk6Cjx1bD4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYnB0aS5ldSI+QmFsdGljIGluc3RpdHV0ZSBvZiBhZHZhbmNlZCB0ZWNobm9sb2d5PC9hPiAtIGNvZGUsIGZ1bmRpbmcgPC9saT4KPGxpPkplcmVteSBCYXNzIC0gY29kZSBhbmQgc3VnZ2VzdGlvbnM8L2xpPgo8bGk+QWxiZXJ0byBCZW5hdGkgLSBjb2RlPC9saT4KPGxpPlR5bGVyIEJvZXNwZmx1ZyAtIGZ1bmRpbmcgYW5kIGlkZWFzPC9saT4KPGxpPkplZmYgQm9zY2ggLSBVRFQgVmFsaWRhdGlvbjwvbGk+CjxsaT5Sb2JlcnQgQ2FtcGJlbGwgLSBudW1lcm91cyBjb2RlIGNvbnRyaWJ1dGlvbnM8L2xpPgo8bGk+UGlvdHJhcyBDaW1tcGVybWFuIC0gY29kZTwvbGk+CjxsaT5OdW5vIENvc3RhIC0gc3VnZ2VzdGlvbnM8L2xpPgo8bGk+UnlhbiBGb3N0ZXIgLSBjb2RlPC9saT4KPGxpPk1hcmMgR2VsZG9uIC0gY29kZTwvbGk+CjxsaT5LZXZpbiBHcmFuZG9uIC0gY29kZTwvbGk+CjxsaT5Sb25ueSBLcmlqdCAtIGNvZGU8L2xpPgo8bGk+UGF1bCBOb29uZSAtIENTUyBhbmQgaWRlYXM8L2xpPgo8bGk+TW9ydGVuIFBvdWxzZW4gLSBjb2RlPC9saT4KPGxpPlBydWUgUm93bGFuZCAtIGJ1ZyBmaXhlczwvbGk+CjxsaT5TaW1vbiBTY2hhdWZlbGJlcmdlciAtIGNvZGU8L2xpPgo8L3VsPgo8cD5JIGFwb2xvZ2l6ZSBmb3IgYW55IG9taXNzaW9ucyAtIG5vdGlmeSBtZSwgYW5kIEkmIzAzOTtsbCBjb3JyZWN0IHRoZSBvbWlzc2lvbiE8L3A+CjxoMz5NaXNjZWxsYW5lb3VzIE5vdGVzPC9oMz4KPHVsPgo8bGk+QW55IGZpZWxkcyB0aGF0IHNlbmRzIGVtYWlsIHRvIGEgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBhbHNvIGFjY2VwdCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcy48L2xpPgo8L3VsPgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPgo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPgo8L3VsPgoKPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+CjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+CjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+CjxsaT4gTWFrZSBzdXJlIHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNlbmQgZW1haWwgdmlhIHRoZSB0ZXN0IGluIHRoZSBDTVNNYWlsZXIgTW9kdWxlLiBJdCYjMDM5O3Mgc2ltcGx5IGFtYXppbmcgaG93IG1hbnkgcHJvYmxlbXMgYm9pbCBkb3duIHRvIGEgbWlzY29uZmlndXJlZCBDTVNNYWlsZXIuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+Q2UgbW9kdWxlIG5lIGNvbnRpZW50IGF1Y3VuIHN1cHBvcnQgY29tbWVyY2lhbC4gQ2VwZW5kYW50LCBjZXMgcmVzc291cmNlcyBzb250IGRpc3BvbmlibGVzIHBvdXIgdm91cyBhaWRlciA6PC9wPgo8dWw+CjxsaT5Qb3VyIGxhIGRlcm5pJmVncmF2ZTtyZSB2ZXJzaW9uIGRlIGNlIG1vZHVsZSwgbGVzIEZBUXMsIG91IHBvdXIgYW5ub25jZXIgdW4gYnVnLCB2ZXVpbGxleiB2aXNpdGVyIGxlIHNpdGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5wb3VyIG9idGVuaXIgdW4gc3VwcG9ydCBjb21tZXJjaWFsLCBtZXJjaSBkZSBjb250YWN0ZXIgbCYjMDM5O2F1dGV1ciBwYXIgbWFpbCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj5zamdAY21zbW9kdWxlcy5jb208L2E+LjwvbGk+CjxsaT5EZXMgZGlzY3Vzc2lvbnMgY29tcGwmZWFjdXRlO21lbnRhaXJlcyByZWxhdGl2ZXMgJmFncmF2ZTsgY2UgbW9kdWxlIHBldXZlbnQgYXVzc2kgJmVjaXJjO3RyZSB0cm91diZlYWN1dGU7ZXMgc3VyIGxlcyA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkZvcnVtcyBDTVMgTWFkZSBTaW1wbGU8L2E+LjwvbGk+CjxsaT5MJiMwMzk7YXV0ZXVyLGVzdCBzb3V2ZW50IHN1ciBJUkMgc3VyIGNhbmFsIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+RXQgZW5maW4sIHZvdXMgcG91dmV6IHJlbmNvbnRyZXIgdW4gY2VydGFpbiBzdWNjJmVncmF2ZTtzIGVuIGVudm95YW50IHVuIGVtYWlsIGRpcmVjdGVtZW50ICZhZ3JhdmU7IGwmIzAzOTthdXRldXIuPC9saT4KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPgo8L3VsPgo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgPGVtPmh1bmRyZWRzIGFuZCBodW5kcmVkcyBvZiBob3VyczwvZW0+IGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLgpQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbgpmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMKZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGEKc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pgo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtjbWQmcXVvdDsgdmFsdWU9JnF1b3Q7X3MteGNsaWNrJnF1b3Q7Pgo8aW5wdXQgdHlwZT0mcXVvdDtpbWFnZSZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlQ0NfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+CjxpbWcgYWx0PSZxdW90OyZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYmcXVvdDsgd2lkdGg9JnF1b3Q7MSZxdW90OyBoZWlnaHQ9JnF1b3Q7MSZxdW90Oz4KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7ZW5jcnlwdGVkJnF1b3Q7IHZhbHVlPSZxdW90Oy0tLS0tQkVHSU4gUEtDUzctLS0tLU1JSUhUd1lKS29aSWh2Y05BUWNFb0lJSFFEQ0NCendDQVFFeGdnRXdNSUlCTEFJQkFEQ0JsRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjBDQVFBd0RRWUpLb1pJaHZjTkFRRUJCUUFFZ1lBSU5uQldiL1hNNGxtdkxHSGw5UmQxY3ZMNXRycVJoYzcrRm9HSDVMdG9mUWlWcmdGU3ZoN2gxb2pnNVN6VHhiZ3RpMzJaRjAvdWN1cS9PUVNEK1Z6dXVBRjF2NndWcnR5T2VDUEVBdzhqODFESk9YVmpKSHNJWTJtdmlvclBqb2xMUWtGbnYxMnlSVHB1RldGbjRaWGU1K3ZuQ2pYcUJ5MEVFL2FoekVNTW56RUxNQWtHQlNzT0F3SWFCUUF3Z2N3R0NTcUdTSWIzRFFFSEFUQVVCZ2dxaGtpRzl3MERCd1FJY0tOTndPUEZvd3VBZ2FpdlM3djBqMlhGeVE5ZHI4bmk5Rzk1ZUU3WXFvZ0dsSzl3dVNwbGxPZzlsbnJ1dm5FUXFzbVJtUW50aFFxV0NUYlp6RzIrSUV0ZU00SVVzeEV1R1RydzhwWkNVMjRUTkRja25LVXg5VXozdlN4T2gzZ3U5NXlKeUR3b2VNdmFFQTI0YnMxNFFFYkpiaE5qWTZXeEh6OStpL2xWQURCanlBT0RZTXV6YWxEa3ZkdXZ3ZUdOWms5bFlMUlJDb1BQTmlsRzFQZjZ3ODdCSHBrU004V1ExTEM5K1JXZFhmWmNtK2VnZ2dPSE1JSURnekNDQXV5Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRVUZBRENCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3SGhjTk1EUXdNakV6TVRBeE16RTFXaGNOTXpVd01qRXpNVEF4TXpFMVdqQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTUZIVHQzOFJNeExYSnlPMlNtUytOZGw3MlQ3b0tKNHU0dXcrNmF3bnRBTFdoMDNQZXdtSUp1emJBTFNjc1RTNHNab1MxZktjaUJHb2gxMWdJZkh6eWx2a2ROZS9oSmw2Ni9SR3FyajVyRmIwOHNBQUJOVHpEVGlxcU5wSmVCc1lzL2MyYWlHb3pwdFgyUmxuQmt0SCtTVU5wQWFqVzcyNE52Mld2aGlmNnNGQWdNQkFBR2pnZTR3Z2Vzd0hRWURWUjBPQkJZRUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJNSUc3QmdOVkhTTUVnYk13Z2JDQUZKYWZmTHZHYnhlOVdUOVMxd29iN0JEV1pKUnJvWUdVcElHUk1JR09NUXN3Q1FZRFZRUUdFd0pWVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGakFVQmdOVkJBY1REVTF2ZFc1MFlXbHVJRlpwWlhjeEZEQVNCZ05WQkFvVEMxQmhlVkJoYkNCSmJtTXVNUk13RVFZRFZRUUxGQXBzYVhabFgyTmxjblJ6TVJFd0R3WURWUVFERkFoc2FYWmxYMkZ3YVRFY01Cb0dDU3FHU0liM0RRRUpBUllOY21WQWNHRjVjR0ZzTG1OdmJZSUJBREFNQmdOVkhSTUVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJCUVVBQTRHQkFJRmZPbGFhZ0ZybDcxK2pxNk9LaWRiV0ZTRStRNEZxUk92ZGdJT050aCs4a1NLLy9ZLzRpaHVFNFltdnpuNWNlRTNTL2lCU1FRTWp5dmIrczJUV2JRWUR3Y3AxMjlPUEliRDllcGRyNHRKT1VOaVNvanc3Qkh3WVJpUGg1OFMxeEdsRmdIRlh3ckVCYjNkZ05iTVVhK3U0cWVjdHNNQVhwVkhuRDl3SXlmbUhNWUlCbWpDQ0FaWUNBUUV3Z1pRd2dZNHhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJRXdKRFFURVdNQlFHQTFVRUJ4TU5UVzkxYm5SaGFXNGdWbWxsZHpFVU1CSUdBMVVFQ2hNTFVHRjVVR0ZzSUVsdVl5NHhFekFSQmdOVkJBc1VDbXhwZG1WZlkyVnlkSE14RVRBUEJnTlZCQU1VQ0d4cGRtVmZZWEJwTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzF5WlVCd1lYbHdZV3d1WTI5dEFnRUFNQWtHQlNzT0F3SWFCUUNnWFRBWUJna3Foa2lHOXcwQkNRTXhDd1lKS29aSWh2Y05BUWNCTUJ3R0NTcUdTSWIzRFFFSkJURVBGdzB3T0RBM01ERXdNelU1TXpsYU1DTUdDU3FHU0liM0RRRUpCREVXQkJRTTBMVjMwZkxYY0g5TTVkTW11VEJMbnNGUTRqQU5CZ2txaGtpRzl3MEJBUUVGQUFTQmdCRXoyWHFNTXFGYnVVaGorTDEyOEN3MnU4U2hPS1F0dHJLci9oaTBXUmVlbkhEWUJpSE9TdGw2M1J2NzZRMm1wZDQ1M1J2Q2o1bXE3ZFJ0dVJCNnBmSEdSRGtVWDZOMStPT0lvSWZyb0JaSUFUTmh6OUNFSHdFRmtOallnMEVHTUFHK2pjYkFqMURKalI3M2N4YmFOclhXUHhBK2hpUWhIbEFyclpBN3JGVjUtLS0tLUVORCBQS0NTNy0tLS0tCiZxdW90Oz4gCjwvZm9ybT4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDksIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+Q2UgbW9kdWxlIGVzdCBkaXN0cmlidSZlYWN1dGU7IHNvdXMgbGEgbGljZW5jZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFZvdXMgZGV2ZXogYWdyJmVhY3V0ZTtlciBhdXggdGVybWVzIGRlIGNldHRlIGxpY2VuY2UgcG91ciBwb3V2b2lyIHV0aWxpc2VyIGNlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE1Mzg4NTMxNDktMTI5NDA3ODM2ODE2Nic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyOTQzMzI1MzkuNy4zLnV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vcHJvamVjdC9saXN0JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTUxNTI2NjI0OC4xMjkyNTE3MDgyLjEyOTQ5MjU0NTUuMTI5NTU0NDAwMi4xOCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/hu_HU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gc3plcmtlc3p0xZEnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdBIG1lesWRIHQmaWFjdXRlO3B1c2EgbmluY3MgYmUmYWFjdXRlO2xsJmlhY3V0ZTt0dmEnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU2VsZWN0IG9uZSAob3IgbW9yZSkgY2F0YWxvZ2VyIGl0ZW1zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmllbGRzZXQgRW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1GaWVsZHNldCBTdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnQ291bnRyeSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpbWUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRW1haWwgdG8gQ01TIEFkbWluIFVzZXInOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBBZ2FpbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGljIFRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGljIExpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rIChVc2VyLWVudGVyZWQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctSGlkZGVuIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1Db21wdXRlZCBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdObyBWYWxpZGF0aW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZWdlcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1Bob25lIE51bWJlciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c3QgQmUgQ2hlY2tlZCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0RvZXNuJiMwMzk7dCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdXBwbGllZCBmb3IgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0smZWFjdXRlO3JqJnV1bWw7aywgdCZvdW1sO2x0c2Uga2kgYXogYWwmYWFjdXRlO2JiaSBtZXrFkSAmZWFjdXRlO3J0JmVhY3V0ZTtrJmVhY3V0ZTt0OiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdQbGVhc2UgZW50ZXIgYSBudW1iZXIgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVudHJ5IGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRW1haWwgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBpbiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgbm8gbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdBIG1lesWRc29yZW5kZXQgZnJpc3MmaWFjdXRlO3RldHQmdXVtbDtrLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdBIGZvcm1vdCB0Jm91bWw7ciZvdW1sO2x0JnV1bWw7ay4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0EgbWV6xZF0IHQmb3VtbDtyJm91bWw7bHQmdXVtbDtrLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdBIGtvbmZpZ3VyJmFhY3V0ZTtjaSZvYWN1dGU7dCBmcmlzcyZpYWN1dGU7dGV0dCZ1dW1sO2suJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnWW91IG11c3QgY2hlY2sgJnF1b3Q7JXMmcXVvdDsgaW4gb3JkZXIgdG8gY29udGludWUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZmllbGQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMZW46ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXSA9ICdTb3JyZW5kJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25pbmNzIG1lZ2FkdmFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnaG96eiZhYWN1dGU7YWR2YSc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnZnJpc3MmaWFjdXRlO3R2ZSc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdLJmVhY3V0ZTtyaiZ1dW1sO2ssIHYmYWFjdXRlO2xhc3N6b24nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ0lnZW4nOwokbGFuZ1snbm8nXSA9ICdOZW0nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ2MmaWFjdXRlO216ZXR0ZWsnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdNZW50JmVhY3V0ZTtzJzsKJGxhbmdbJ2FkZCddID0gJ0hvenomYWFjdXRlO2FkJmFhY3V0ZTtzJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0ZyaXNzJmlhY3V0ZTt0JmVhY3V0ZTtzJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnTWVudCZlYWN1dGU7cyAmZWFjdXRlO3MgYSBzemVya2VzenQmZWFjdXRlO3MgZm9seXRhdCZhYWN1dGU7c2EnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm0mYWFjdXRlO2NpJm9hY3V0ZTsnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlrdXMnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3Jtb2snOwokbGFuZ1snZm9ybSddID0gJ0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyJmFhY3V0ZTtjaSZvYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdBIG1lesWRIGsmb3VtbDt0ZWxlesWRcyZlYWN1dGU7Z2kgJmFhY3V0ZTtsbGFwb3QmYWFjdXRlO3QgZnJpc3MmaWFjdXRlO3RldHQmdXVtbDtrLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIG0mZWFjdXRlO3JldCc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0tpdGVyamVzenQmZWFjdXRlO3Nlayc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnTWVnZW5nZWRldHQgZiZhYWN1dGU7amwgdCZpYWN1dGU7cHVzb2snOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnRmVsdCZvdW1sO2x0JmVhY3V0ZTtzJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdBIGZvcm1vdCBpbXBvcnQmYWFjdXRlO2x0dWsuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgc29yJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBvc3psb3AnOwokbGFuZ1snMTJfaG91ciddID0gJzEyICZvYWN1dGU7ciZhYWN1dGU7cyAmb2FjdXRlO3JhJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCAmb2FjdXRlO3ImYWFjdXRlO3MgJm9hY3V0ZTtyYSc7CiRsYW5nWydob3VyJ10gPSAnJk9hY3V0ZTtyYSc7CiRsYW5nWydtaW4nXSA9ICdQZXJjJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1RhcnRvbSZhYWN1dGU7bnk6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnSyZvdW1sO3N6Jm91bWw7bmomdXVtbDtrISBWJmFhY3V0ZTtsYXN6YWl0IHRvdiZhYWN1dGU7YmImaWFjdXRlO3RvdHR1ay4nOwokbGFuZ1snZWRpdCddID0gJ1N6ZXJrZXN6dCc7CiRsYW5nWydkZWxldGUnXSA9ICdUJm91bWw7cmwmZWFjdXRlO3MnOwokbGFuZ1snZGF5J10gPSAnTmFwJzsKJGxhbmdbJ21vbiddID0gJ0gmb2FjdXRlO25hcCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkVhY3V0ZTt2JzsKJGxhbmdbJ25vbmUnXSA9ICcoJnV1bWw7cmVzKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVmlzc3phLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdFbGsmdXVtbDtsZCc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdUb3YmYWFjdXRlO2JiLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ01haW4nOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm0gRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybSBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBZHZhbmNlZCBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FkZCBNb3JlIE9wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdEZWxldGUgTWFya2VkIE9wdGlvbnMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZGQgTW9yZSBDaGVja2JveGVzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRGVsZXRlIE1hcmtlZCBDaGVja2JveGVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWRkIEFub3RoZXIgQWRkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0RlbGV0ZSBNYXJrZWQgQWRkcmVzc2VzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJyZVYWN1dGU7amFiYiBjJmVhY3V0ZTtsIGhvenomYWFjdXRlO2FkJmFhY3V0ZTtzYSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdLaWplbCZvdW1sO2x0IGMmZWFjdXRlO2xvayB0Jm91bWw7cmwmZWFjdXRlO3NlJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnQXogYWwmYWFjdXRlO2JiaSBJUCBjJmlhY3V0ZTttZXQgc3BhbS1neWFuJnVhY3V0ZTsgbWlhdHQgYmxva2tvbHR1azogJXMnOwokbGFuZ1sncmVvcmRlciddID0gJ01lesWRayAmYWFjdXRlO3RyZW5kZXomZWFjdXRlO3NlJzsKJGxhbmdbJ2NhbmNlbCddID0gJ00mZWFjdXRlO2dzZW0nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnQmUmYWFjdXRlO2xsJmlhY3V0ZTt0b3R0ICZlYWN1dGU7cnQmZWFjdXRlO2s6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+Cjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0EgcmVndWxhciBleHByZXNzaW9uIHRvIGFsbG93IGZpbHRlcmluZyBjYXRhbG9nZXIgaXRlbXMgYnkgbmFtZSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ1RoZSBoZWlnaHQgb2YgdGhlIG11bHRpc2VsZWN0IGZpZWxkJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGaWVsZCBIZWlnaHQnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGVzdGluYXRpb24gRGlyZWN0b3J5IGZvciBvdXRwdXQgZmlsZXMnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVc2VyIERlZmluZWQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ0EgJnF1b3Q7SyZlYWN1dGU7cmomdXVtbDtrLCB2JmFhY3V0ZTtsYXNzem9uJnF1b3Q7IHN6Jm91bWw7dmVnZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm0gRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdTaG93IEZpZWxkIEFsaWFzZXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBkaXNwbGF5IGZpZWxkIGFsaWFzZXMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdGaWVsZCBBbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxJiMwMzk7ZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdkZS4nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ2R1Lic7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPgo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTeiZvdW1sO3ZlZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpa3VzJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnU3dpdGNoIHRvIEFkdmFuY2VkIE1vZGUnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdTd2l0Y2ggdG8gU2ltcGxlIE1vZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93ICYjMDM5O0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGRzJiMwMzk7IHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHdheXMnOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyeSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcmNoJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01heSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5lJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bHknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2N0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IHVuY2hlY2tlZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiBjaGVja2VkJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxiciAvPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucwpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPGJyIC8+ClBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48YnIgLz4KQWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQKb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPgo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZAppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+Cgo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+CjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUKcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPgoKPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPgo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQpDb25maWd1cmF0aW9uLjwvcD4KCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcwpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5CmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPgo8aDQ+TWFpbjwvaDQ+CjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPgo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+CjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pgo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCjwvcD4KCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+CjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgo8L3VsPgo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLApidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbgp3cml0ZSB5b3VyIENTUy48L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0cwo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPgo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPgo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+CjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPGxpPkVtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+CjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+CjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1bJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10uPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHkuIFRoaXMgd29ya3MgbGlrZSB0aGUgRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyB3aWxsIGJlY29tZSB0aGUgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3NlciBpbiB0aGUgbmV4dCByZWxlYXNlLjwvbGk+Cgo8L3VsPjwvbGk+PC9saT48L3VsPgoKCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUKYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbgphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+CjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+CjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+Cgo8aDM+Q29uZmlndXJhdGlvbjwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4KPHVsPgo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPgo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+CjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4KPC91bD4KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CjxwPkFmdGVyIGEgYml0IG9mIG5hZ2dpbmcgb24gdGhlIHBhcnQgb2YgcGVvcGxlIHdobyBhY3R1YWxseSByZXNwZWN0IHN0YW5kYXJkcywgRm9ybUJ1aWxkZXIgbm8gbG9uZ2VyIGVuY291cmFnZXMgdHJpY2tzIGxpa2UgZW1iZWRkaW5nIENTUyBpbiAKc3RhdGljIHRleHQgZmllbGRzLiBJbnN0ZWFkLCBpdCBjcmVhdGVzIGEgc3R5bGVzaGVldCBjYWxsZWQgJnF1b3Q7Rm9ybUJ1aWxkZXIgRGVmYXVsdCZxdW90OyB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUKdGhhdCB5b3UgdXNlIGZvciBwYWdlcyB0aGF0IGNvbnRhaW4geW91ciBmb3JtLjwvcD4gIAo8cD5UaGlzIGRlZmF1bHQgQ1NTIHdhcyBncmFjaW91c2x5IHByb3ZpZGVkIGJ5IFBhdWwgTm9vbmUuPC9wPgoKCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+CgoKPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBNYWtlIHN1cmUgeW91IGNhbiBzdWNjZXNzZnVsbHkgc2VuZCBlbWFpbCB2aWEgdGhlIHRlc3QgaW4gdGhlIENNU01haWxlciBNb2R1bGUuIEl0JiMwMzk7cyBzaW1wbHkgYW1hemluZyBob3cgbWFueSBwcm9ibGVtcyBib2lsIGRvd24gdG8gYSBtaXNjb25maWd1cmVkIENNU01haWxlci48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbgp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8bGk+RG9uYXRpb25zIGFyZSBnb29kIG1vdGl2YXRvcnMsIHRvby4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGRvbGxhciBpcyB3ZWFrLCBhbmQgaWYgeW91IGFyZSBub3QgaW4gdGhlIFVTLCB5b3VyIGRvbmF0aW9uIGdldHMgbWFnbmlmaWVkLjwvbGk+CjwvdWw+CjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCBodW5kcmVkcyBhbmQgaHVuZHJlZHMgb2YgaG91cnMgaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuIFBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igc2VuZCB5b3VyIHF1ZXN0aW9ucyB3cml0dGVuIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNoZWNrcyBvciBjYXNoKS4gQW0gSSBzb3VuZGluZyBsaWtlIGEgYnJva2VuIHJlY29yZD8gRG8geW91IGtpZHMgdGhlc2UgZGF5cyBldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYSBzYW1wbGUgdGhhdCBnb3Qgc3R1Y2sgb24gbG9vcD8gRGFtbiwgSSBhbSBnZXR0aW5nIG9sZC4gU28gaXMgdGhpcyBwYXJhZ3JhcGguIFRpbWUgdG8gbW92ZSBvbiwgaGVyZS48L3A+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTUzMzYwNTk1OS4xMjI0NzQyNTQ0LjEyMjczNTAyOTkuMTIyNzQyMjg5MS40JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIyNDc0MjU0Ni4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1RpcG8gZGVsIGNhbXBvIG5vbiBzZXR0YXRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2F0YWxvZ2VySXRlbXNGaWVsZCddID0gJ1NlbGV6aW9uYSB1bm8gKG8gcGkmdWdyYXZlOykgaXRlbSBkaSBjYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW5lIEdydXBwbyBDYW1waSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctSW5pemlvIEdydXBwbyBDYW1waSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ0lucHV0IHRlc3R1YWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ0lucHV0IFRlc3R1YWxlIChNdWx0aXBsbyknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnQXJlYSBkaSBUZXN0byc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdHcnVwcG8gZGkgQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ01lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZXppb25lJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBTdGF0aSBVLlMuQS4nOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnU2VsZXppb25lIHByb3ZpbmNpZSBDYW5hZGVzaSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBOYXppb25lJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnU2VsZXppb25lIERhdGEnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTZWxlemlvbmUgT3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnR3J1cHBvIGRpIFJhZGlvIEJ1dHRvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqSW52aWEgcGVyIEVtYWlsIGkgUmlzdWx0YXRpIGluIGJhc2UgYWwgbWVudSBhIHRlbmRpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYWx2YSBpIHJpc3VsdGF0aSBpbiBiYXNlIGFsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYWx2YSBpIHJpc3VsdGF0aSBpbiB1biBmaWxlIGluIGJhc2UgYWwgbWVudSBhIHRlbmRpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZXppb25hIGxhIHBhZ2luYSBtb2RpZmljYW5kbyBsYSBzZWxlemlvbmUgZGVsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypJbnZpYSBwZXIgRW1haWwgaSByaXN1bHRhdGkgcGVyIGltcG9zdGFyZSBsJiMwMzk7aW5kaXJpenpvL2knOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYSB0cmFtaXRlIGluZGlyaXp6byBFbWFpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTY3JpdmkgaSByaXN1bHRhdGkgaW4gdW4gZmlsZSBzZW1wbGljZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqTWVtb3JpenphIGkgcmlzdWx0YXRpIG5lbCBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqTWVtb3JpenphIGkgcmlzdWx0YXRpIHBlciBpbCBtb2R1bG8gRm9ybUJyb3dzZXInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqSW52b2NhIHVuIFRhZyBkZWZpbml0byBkYWxsJiMwMzk7dXRlbnRlIGNvbiBpIHJpc3VsdGF0aSBkZWwgbW9kdWxvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypJbnZpYSBwZXIgZW1haWwgYWxsJiMwMzk7aW5kaXJpenpvIGZvcm5pdG8gZGFsbCYjMDM5O3V0ZW50ZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRW1haWwgYWxsJiMwMzk7YWRtaW4gZGVsIENNUyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUludGVycnV6aW9uZSBkaSBwYWdpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdDYXJpY2EgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0ludmlhIHBlciBFbWFpbCBpbCBjYW1wbyAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0ludmlhIHBlciBFbWFpbCBpbCBjYW1wbyAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgZGkgbnVvdm8nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdJbnZpYSBwZXIgRW1haWwgaWwgY2FtcG8gJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnSW52aWEgcGVyIEVtYWlsIGlsIGNhbXBvICZxdW90O1N1YmplY3QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctVGVzdG8gU3RhdGljbyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1MaW5rIFN0YXRpY28nOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rIChpbnNlcml0byBkYWxsJiMwMzk7dXRlbnRlKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLUNhbXBvIE5hc2Nvc3RvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1DYW1wbyBDb21waWxhdG8nOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctSW50ZXJvIFVuaWNvIChTZXJpYWxlKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdOZXNzdW5hIHZhbGlkYXppb25lJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWNvJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVybyc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdJbmRpcml6em8gRW1haWwnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnTnVtZXJvIHRlbGVmb25pY28gKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEZXZlIGVzc2VyZSBzcHVudGF0byc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnQ29pbmNpZGUgY29uIHVuJiMwMzk7RXNwcmVzc2lvbmUgUmVnb2xhcmUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTm9uIGNvaW5jaWRlIGNvbiB1biYjMDM5O0VzcHJlc3Npb25lIFJlZ29sYXJlJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdVbiB2YWxvcmUgbm9uICZlZ3JhdmU7IHN0YXRvIGluc2VyaXRvIHBlciB1biBjYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdJbnNlcmlyZSB1biB2YWxvcmUgcGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0luc2VyaXJlIHVuIG51bWVybyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnSW5zZXJpcmUgdW4gdmFsb3JlIHZhbGlkbyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdJbnNlcmlyZSB1biB2YWxvcmUgaW50ZXJvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdJbnNlcmlyZSB1biBpbmRpcml6em8gZW1haWwgdmFsaWRvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnSW5kaXJpenpvIEVtYWlsIG5vbiBjb2luY2lkZSBjb24gdmFsb3JlIGluICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnSW5zZXJpcmUgdW4gbnVtZXJvIGRpIHRlbGVmb25vIHZhbGlkbyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbm9uIHNlbWJyYSBlc3NlcmUgdW4gaW5kaXJpenpvIGVtYWlsIHZhbGlkbyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ0luc2VyaXJlIHVuIHZhbG9yZSBsdW5nbyBub24gcGkmdWdyYXZlOyBkaSAlcyBjYXJhdHRlcmknOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDYXJhdHRlcmUgZGEgdXNhcmUgY29tZSBkZWxpbWl0YXRvcmUgbmVpIHJpc3VsdGF0aSBjaGUgcml0b3JuYW5vIGNvbiBwaSZ1Z3JhdmU7IGRpIHVuIHZhbG9yZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnQXZldGUgYmlzb2dubyBkZWwgcGVybWVzc28gJnF1b3Q7JXMmcXVvdDsgcGVyIGVzZWd1aXJlIHF1ZXN0YSBvcGVyYXppb25lLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NwaWFjZW50ZSEgTm9uIGF2ZXRlIGkgcHJpdmlsZWdpIG5lY2Vzc2FyaSBwZXIgYWNjZWRlcmUgYSBxdWVzdGEgc2V6aW9uZS4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ09yZGluZSBkZWkgY2FtcGkgYWdnaW9ybmF0by4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybSBjYW5jZWxsYXRvLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnQ2FtcG8gY2FuY2VsbGF0by4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhemlvbmUgYWdnaW9ybmF0YS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdEb3ZldGUgc2VsZXppb25hcmUgJnF1b3Q7JXMmcXVvdDsgcGVyIGNvbnRpbnVhcmUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEb3ZldGUgc3BlY2lmaWNhcmUgYWxtZW5vIHVuIGluZGlyaXp6byBkaSBkZXN0aW5hemlvbmUhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ1NpZXRlIHNpY3VyaSBkaSB2b2xlciBjYW5jZWxsYXJlIGlsIGZvcm0gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXIgY2FuY2VsbGFyZSBpbCBjYW1wbyAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnT3B6aW9uaSBhdmFuemF0ZSBub24gc29ubyBkaXNwb25pYmlsaSBmaW5vIGFsbGEgc2NlbHRhIGRlbCB0aXBvIGRpIGNhbXBvLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0lsIG5vbWUgZGVsIGNhbXBvICZxdW90OyVzJnF1b3Q7ICZlZ3JhdmU7IGdpJmFncmF2ZTsgaW4gdXNvLiBTaSBwcmVnYSBkaSB1c2FyZSBub21pIGRlaSBjYW1waSB1bml2b2NpLCBvIGRpc2FiaWxpdGFyZSBub21pIGRlaSBjYW1waSB1bml2b2NpIG5lbGxhIGNvbmZpZ3VyYXppb25lIGRpIEZvcm0gQnVpbGRlci4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0kgY2FtcGkgZGV2b25vIGF2ZXJlIHVuIG5vbWUsIGEgbWVubyBkaSBkaXNhYmlsaXRhcmUgbCYjMDM5O29wemlvbmUgbmVsbGEgY29uZmlndXJhemlvbmUgZGkgRm9ybSBCdWlsZGVyLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaW1vJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMdW5naGV6emE6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgY2FzZWxsZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJSBvcHppb25pJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJSBjYXJhdHRlcmkuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkaW5lJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25vbiBzcGVjaWZpY2F0b10nOwokbGFuZ1snYWRkZWQnXSA9ICdhZ2dpdW50byc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWdnaW9ybmF0byc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcmRpbmEgbGUgb3B6aW9uaSBuZWxsJiMwMzk7b3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlemlvbmFyZSB1bm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlemlvbmFyZSB0aXBvJzsKJGxhbmdbJ3RvJ10gPSAnQSc7CiRsYW5nWyd5ZXMnXSA9ICdTJmlncmF2ZTsnOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnZGVzdGluYXRhcmknOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyUgcG9zc2liaWxpIGZpbGUnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hemlvbmknOwokbGFuZ1snc2F2ZSddID0gJ1NhbHZhJzsKJGxhbmdbJ2FkZCddID0gJ0FnZ2l1bmdpJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FnZ2lvcm5hJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2FsdmEgZSBjb250aW51YSBjb24gbGEgbW9kaWZpY2EnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hemlvbmUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljbyc7CiRsYW5nWydmb3JtcyddID0gJ01vZHVsaSc7CiRsYW5nWydmb3JtJ10gPSAnTW9kdWxvICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF6aW9uZSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnU3RhdG8gZGVsIGNhbXBvIHJpY2hpZXN0byBhZ2dpb3JuYXRvLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdEaW1lbnNpb25lIG1hc3NpbWEnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFc3RlbnNpb25pJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUaXBpIGRpIGZpbGUgcGVybWVzc2knOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdJbCBmaWxlIGNhcmljYXRvICZlZ3JhdmU7IHRyb3BwbyBncmFuZGUhIExhIGRpbWVuc2lvbmUgbWFzc2ltYSAmZWdyYXZlOzonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdRdWVzdG8gdGlwbyBkaSBmaWxlIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSBjYXJpY2F0by4gU2kgcHJlZ2EgZGkgdmVyaWZpY2FyZSBjaGUgbCYjMDM5O2VzdGVuc2lvbmUgc2lhIGNvcnJldHRhLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdDYXJpY2EnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0YXRvLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnRhemlvbmUgZGVsIEZvcm0gZmFsbGl0YSEgQyYjMDM5OyZlZ3JhdmU7IHVuIHByb2JsZW1hIGNvbiBpbCBmb3JtYXRvIGRlbCBmaWxlIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpZ2hlJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBjb2xvbm5lJzsKJGxhbmdbJzEyX2hvdXInXSA9ICdGb3JtYXRvIDEyIG9yZSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnRm9ybWF0byAyNCBvcmUnOwokbGFuZ1snaG91ciddID0gJ09yZSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dGknOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbm8nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0dhbW1hIFZhbG9yaTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdHcmF6aWUhIElsIHZvc3RybyBpbnNlcmltZW50byAmZWdyYXZlOyBzdGF0byByaWNldnV0by4nOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0VsaW1pbmEnOwokbGFuZ1snZGF5J10gPSAnR2lvcm5vJzsKJGxhbmdbJ21vbiddID0gJ01lc2UnOwokbGFuZ1sneWVhciddID0gJ0Fubm8nOwokbGFuZ1snbm9uZSddID0gJyhuZXNzdW5vKSc7CiRsYW5nWydjc3MnXSA9ICdTdGlsaSBDU1MnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bG8gZGlzaW5zdGFsbGF0by4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnVmVyc2lvbmUgbW9kdWxvICVzIGluc3RhbGxhdGEuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxvIGFnZ2lvcm5hdG8gYWxsYSB2ZXJzaW9uZSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnSW5kaWV0cm8uLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ0ludmlhIEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnQ29udGludWEuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1NlbGV6aW9uYXRvJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0Rlc2VsZXppb25hdG8nOwokbGFuZ1sndGFiX21haW4nXSA9ICdQcmluY2lwYWxlJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdJbXBvc3RhemlvbmkgZGkgdmlzdWFsaXp6YXppb25lIGRlbCBGb3JtJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdJbnZpbyBkZWwgRm9ybSc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0ltcG9zdGF6aW9uaSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0ltcG9zdGF6aW9uaSBBdmFuemF0ZSc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdNb2RlbGxvIEZvcm0nOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ01vZGVsbG8gcGVyIGwmIzAzOTtpbnZpbyc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlZhcmlhYmlsaSBzbWFydHkgc29ubyB2YWxpZGUgaW4gcXVlc3RvIGNhbXBvLjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZ2dpdW5nZXJlIHBpJnVncmF2ZTsgb3B6aW9uaSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0NhbmNlbGxhcmUgbGUgb3B6aW9uaSBzZWxlemlvbmF0ZSc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FnZ2l1bmdlcmUgcGkmdWdyYXZlOyBDYXNlbGxlIGEgc3B1bnRhJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRWxpbWluYXJlIGxlIENhc2VsbGUgc2VsZXppb25hdGUnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBZ2dpdW5nZXJlIGFsdHJvIEluZGlyaXp6byc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0NhbmNlbGxhcmUgZ2xpIEluZGlyaXp6aSBzZWxlemlvbmF0aSc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZ2dpdW5nZXJlIGFsdHJvIERlc3RpbmF0YXJpbyc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdDYW5jZWxsYXJlIGkgRGVzdGluYXRhcmkgc2VsZXppb25hdGknOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUcm9wcGUgbWFpbCBnZW5lcmF0ZSBkYWwgVm9zdHJvIGluZGlyaXp6byBJUC4gSWwgY29kaWNlIEFudGktU3BhbSBoYSBpbXBlZGl0byBsYSBzcGVkaXppb25lLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdGZXJtYXRvIHVuIHNvc3BldHRvIHNwYW0gZGFsbCYjMDM5O2luZGlyaXp6byBJUCAlcyAuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSaW9yZGluYSBjYW1waSc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxsYSc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWxvcmUgc2V0dGF0bzogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4KPGJyLz4KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4KPGJyLz4KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnVW5hIGVzcHJlc3Npb25lIHJlZ29sYXJlIHBlciBwZXJtZXR0ZXJlIGlsIGZpbHRyYWdnaW8gZGVnbGkgSXRlbSBkaSBDYXRhbG9nZXIgcGVyIG5vbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdMYSBhbHRlenphIGRlbCBjYW1wbyBtdWx0aXNlbGVjdCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnRXNwcmVzc2lvbmUgcmVnb2xhcmUgZGVnbGkgSXRlbSBuYW1lIGRpIENhdGFsb2dlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdDYW1wbyBBbHRlenphJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0NhcnRlbGxhIGRpIGRlc3RpbmF6aW9uZSBwZXIgaSBmaWxlIGRpIHVzY2l0YSc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1RhZyBEZWZpbml0byBkYWxsJiMwMzk7VXRlbnRlJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdpbmEgZGkgcml0b3JubyBjb24gaWwgbGluayBkaSB1cGxvYWQnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdJbnZpYXRvIGNvbiBGb3JtQnVpZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEgZGkgVXBsb2FkJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnSW52aWEgcXVlc3RvIGZpbGUgYWwgbW9kdWxvIGRpIHVwbG9hZCc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWFzc2ltYSBsdW5naGV6emEnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdFdGljaGV0dGEgZGVsIENoZWNrYm94JzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnRXRpY2hldHRhIGRlbCBSYWRpbyBCdXR0b24nOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbG9yZSBxdWFuZG8gc2VsZXppb25hdG8nOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsb3JlIHF1YW5kbyBub24gc2VsZXppb25hdG8uJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXR0YWdsaSBkZWwgR3J1cHBvIGRpIENoZWNrYm94JzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0VsaW1pbmFyZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGVzdG8gJnF1b3Q7U2VsZXppb25hcmUgVW5vJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1ZhbG9yZSBzZWxlemlvbmF0byc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlemlvbmEgaWwgbm9tZSBkYSB2aXN1YWxpenphcmUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlemlvbmUgT2dnZXR0byc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU2VsZXppb25lIHByZWRlZmluaXRhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU2VsZXppb25lIHByZWRlZmluaXRhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnU2VsZXppb25lIHByZWRlZmluaXRhJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTm9tZSBvcHppb25lJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbG9yZSBpbnZpYXRvJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdPcHppb25pIFB1bGxkb3duJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdPcHppb25pIE11bHRpc2VsZWN0JzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdJbmRpcml6em8gZW1haWwgZGkgZGVzdGluYXppb25lJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTm9tZSBmaWxlIGRlc3RpbmF6aW9uZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcm9tIG5hbWUmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2EgdW5hIHZhbGlkYXppb25lIHNlbXBsaWNlIGRpIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzYSB1bmEgdmFsaWRhemlvbmUgc2VtcGxpY2UgZGkgZW1haWwgKGVzLiwgcGVybWV0dGUgJnF1b3Q7eEB5JnF1b3Q7IGludmVjZSBkaSByaWNoaWVkZXJlICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0luZGlyaXp6byBGcm9tJnF1b3Q7IHBlciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0luc2llbWUgZGkgY2FyYXR0ZXJpIGRpIGVuY29kaW5nIHBlciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnVGVuZGluYSBkZWkgZGV0dGFnbGkgZGVnbGkgRW1haWxlcic7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOb21lIEZpbGUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ09nZ2V0dG8gZGVsbGEgRW1haWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnTm9tZSBGb3JtJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnU3RhdG8gZGVsIEZvcm0nOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdQcm9udG8gcGVyIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vbiBwcm9udG8nOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2kgZGEgcmlkaXJpZ2VyZSBkb3BvIHVuIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXImIzAzOTtzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzYSBxdWVzdGEgc2NvcmNpYXRvaWEnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdDYW1waSBGb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSWQgY2FtcG8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdNb3N0cmEgQ2FtcGkgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2sgc3UgcXVlc3RvIHZpc3VhbGl6emEgY2FtcGkgYWxpYXNlcyBxdWFuZG8gYWdnaXVuZ2kgbyBtb2RpZmljaGkgdW4gZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTm9tZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0NhbXBvIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldHRhZ2xpbyBkZWwgZ3J1cHBvIFJhZGlvIEJ1dHRvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVGlwbyBjYW1wbyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnY3JlYSB1biBjYW1wbyBwZXIgdGVuZXJlIGlsIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FnZ2l1bmdlcmUgbnVvdm8gRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdNb3N0cmEgbGEgdmVyc2lvbmUgZGkgRm9ybSBCdWlsZGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1F1ZXN0byBpbnNlcmlzY2UgbGEgdmVyc2lvbmUgaW5zdGFsbGF0YSBkaSBGb3JtIEJ1aWxkZXIgaW4gdW4gY29tbWVudG8gcGVyIGFpdXRhcmUgaWwgZGVidWcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FnZ2l1bmdlcmUgbnVvdm8gY2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVGVzdG8gZGVsIGJvdHRvbmUgZGkgSW52aW8gZGVsIEZvcm0nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZ2dpdW5nbyBjb2RpY2UgSmF2YXNjcmlwdCBhbCBib3R0b25lIGRpIEludmlvIHBlciBldml0YXJlIGVycm9yaSBkaSBpbnZpaSBtdWx0aXBsaT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FnZ2l1bmdlIHNjcmlwdCBpbiBtb2RvIHNpY3Vybyc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdWYWxpZGF6aW9uZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0NhbXBvIGRhIHZhbGlkYXJlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0lEIENTUyAgcGVyIHF1ZXN0byBjYW1wbyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ1N0aWxlIENTUyBwZXIgcXVlc3RvIEZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnU3RpbGUgQ1NTIHBlciBxdWVzdG8gQ2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ1VzZXIgRGVmaW5lZCBUYWcgZGEgY2hpYW1hcmUgUFJJTUEgY2hlIGlsIGZvcm0gdmVuZ2EgdmlzdWFsaXp6YXRvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU2ltYm9sbyBwZXIgbWFyY2FyZSBpbCBDYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JpY2hpZWRlIHVuYSByaXNwb3N0YSBwZXIgcXVlc3RvIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdFdGljaGV0dGEgbmFzY29zdGEnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnTmFzY29uZGUgaWwgbm9tZSBkZWwgQ2FtcG8gbmVsIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1Rlc3RvIHN0YXRpY28gZGEgdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnUmVnZXggZGkgdmFsaWRhemlvbmUnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWVybyBkaSBsaW5lZSBkYSB2aXN1YWxpenphcmUnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05lc3N1biBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnaW5hIGRvdmUgcmVkaXJpZ2VyZSBkb3BvIGwmIzAzOTthcHByb3ZhemlvbmUnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1F1ZXN0YSBlc3ByZXNzaW9uZSByZWdvbGFyZSBzYXImYWdyYXZlOyB1dGlsaXp6YXRhIHNvbG8gc2UgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIGNvbmZpZ3VyYXRvIGNvbiBsJiMwMzk7b3B6aW9uZSByZWdleC1yZWxhdGVkLiBJbmNsdWRlIHVuIHJlZ2V4IHN0aWxlIFBlcmwsIGluY2x1c28gYW5jaGUgbGUgYmFycmUgc3RhcnQvc3RvcCBlIGZsYWdzIChlcy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmljaGllc3RvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnTm9zY29uZGkgZ2xpIEVycm9yaSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVGlwbyBkaSBGb3JtIGRhIHZpc3VhbGl6emFyZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmllbmUgaSBtZXNzYWdnaSBkaSBkZWJ1ZyAvIGVycm9yZSBkYSBlc3NlcmUgdmlzaWJpbGkgYWxsJiMwMzk7dXRlbnRlLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ01vZGVsbG8gRW1haWwnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnRGltZW5zaW9uZSBtYXNzaW1hIGRlbCBmaWxlIGRpIHVwbG9hZCAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1F1ZXN0YSBsaW1pdGF6aW9uZSBzaSBhZ2dpdW5nZSBhIHF1YWxzaWFzaSBsaW1pdGUgZGVsbGEgY29uZmlndXJhemlvbmUgZGkgcGhwIG8gZGVsIHdlYiBzZXJ2ZXInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFc3RlbnNpb25pIHBlcm1lc3NlJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdJbnNlcmlyZSB1bmEgbGlzdGEgc2VwYXJhdGEgZGEgdmlyZ29sZSwgZXNjbHVkZW5kbyBpIHB1bnRpIChlcy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIEdsaSBzcGF6aSBzYXJhbm5vIGlnbm9yYXRpLiBMYXNjaWFuZG8gdnVvdG8gc2lnbmlmaWNhIGNoZSBub24gY2kgc2FyYW5ubyByZXN0cml6aW9uaS4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ1Zpc3VhbGl6emF6aW9uZSByaXN0cmV0dGE/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ1Zpc3VhbGl6emFyZSBxdWFsc2lhc2kgcmVzdHJpemlvbmUgZGVsbGUgZGltZW5zaW9uZSBlIGVzdGVuc2lvbmUgY29uIGlsIGNhbXBvIHVwbG9hZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHVzYXRvIHBlciBpbCBGb3JtIGRpIHZpc3VhbGl6emF6aW9uZSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2luYSAlcyBkaSAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnSWwgY2FtcG8gbm9uIGhhIG9wemlvbmkgYXZhbnphdGUuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXN0byBkaSByaXRvcm5vIHBlciB1biB2YWxvcmUgZGkgY2FtcG8gbm9uIHNwZWNpZmljYXRvJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdBYmlsaXRvIGwmIzAzOTthZGRpemlvbmUgdmVsb2NlIGRlbGxlIHRlbmRpbmUgZGVpIEZvcm0/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnQWJpbGl0byBsJiMwMzk7YWRkaXppb25lIHZlbG9jZSBkZWxsYSB0ZW5kaW5lPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ1NlbGV6aW9uYW5kbyBxdWVzdG8gcGVybWV0dGVyJmFncmF2ZTsgc29sbyAxMCBlbWFpbHMgZGkgZXNzZXJlIGF0dGl2YXRlIGRhIHVuIGRhdG8gaW5kaXJpenpvIElQIChwZXIgb3JhKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnQWJpbGl0byBwcmltaXRpdmUgZGVnbGkgYW50aS1zcGFtPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnTW9zdHJhIElEIGRlaSBjYW1waSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBkYSBmaWxlIFhNTCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNhIHF1ZXN0byBub21lIEZvcm0nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIHBlciBJbXBvcnRhcmUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2EgcXVlc3RvIEZvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVybyBlbWFpbCBkaSB0aXBvIEhUTUw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnUG9wb2xhcmUgYXV0b21hdGljYW1lbnRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnSW5kaXJpenpvIFVSTCBwcmVkZWZpbml0byBkZWkgbGluayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdUZXN0byBwcmVkZWZpbml0byBkZWkgbGluayc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBhZCB1bmEgcGFnaW5hIGRlbCBzaXRvJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzYSBDYXB0Y2hhIHBlciBwcm90ZWdnZXJlIGwmIzAzOTtpbnZpbyBkZWkgZm9ybT8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ1Rlc3RvIGZhbGxpdG8gcGVyIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgbm9uIGVyYSBjb3JyZXR0by4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVGVzdG8gZGkgYWl1dG8gcGVyIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnRXRpY2hldHRhIHBlciBMaW5rJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1V0aWxpenpvIGZvcm1hdG8gMjQtb3JlPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUmlnaGUgKG5vdGE6IHB1Jm9ncmF2ZTsgZXNzZXJlIHNvdnJhc2NyaXR0byB2aWEgU3RpbGUgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sb25uZSAobm90YTogcHUmb2dyYXZlOyBlc3NlcmUgc292cmFzY3JpdHRvIHZpYSBTdGlsZSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IGxvZ2luIG5hbWUgYXMgd2VsbCBhcyBGaXJzdCBOYW1lL0xhc3QgTmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1NvbG8gaW4gZ3J1cHBvICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnUXVlc3RvIGNhbXBvIHB1Jm9ncmF2ZTsgZXNzZXJlIGxhc2NpYXRvIHZ1b3RvJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmlsaSBwZXIgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFiaWxpIHV0aWxpenphYmlsaSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAndmFyaWFiaWxlIFBIUCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGEgZGkgSW52aW8nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1Zvc3RybyBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSW5kaXJpenpvIElQIGRlbGxhIHBlcnNvbmEgY2hlIHN0YSB1c2FuZG8gaWwgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnVmVyc2lvbmUgRm9ybUJ1aWxkZXInOwokbGFuZ1snaGVscF90YWInXSA9ICdDYXJhdHRlcmUgVGFidWxhdG9yZSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPgo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1ZlZGVyZSBpbCAgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+TWFudWFsZSBQSFA8L2E+IHBlciB1biBhaXV0byBzdWxsYSBmb3JtYXR0YXppb25lLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJpbGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEluZGlldHJvIGFsIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICd1biBjYXJhdHRlcmUgdGFidWxhdG9yZSc7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnUGFydGVuemEgZGVsbCYjMDM5O2ludGVydmFsbG8gQW5ubyc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0ZpbmUgZGVsbCYjMDM5O2ludGVydmFsbG8gQW5ubyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdBbm5vIHByZWRlZmluaXRvJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldHRhIGEgLTEgYWZmaW5jaCZlZ3JhdmU7IGwmIzAzOTthbm5vIHByZWRlZmluaXRvIHNpYSBxdWVsbG8gY29ycmVudGUpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdEb3BvIGNoZSBpbCBmb3JtICZlZ3JhdmU7IGludmlhdG8nOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmlzdWx0YXRvIGRhIHZpc3VhbGl6emFyZSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdNb3N0cmEgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJpZ2UgYWQgdW5hIHBhZ2luYSBkZWwgc2l0byc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnUGFnaW5hIGRpIGRlc3RpbmF6aW9uZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdOb21lIGRlbCBjYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSaWNoaWVkaSBjaGUgaSBjYW1iaSBhYmJpYW5vIHVuIG5vbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmljaGllZGkgbm9taSBkZWkgY2FtcGkgdW5pdm9jaSc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnSSBjYW1waSByaWNoaWVzdGkgaGFubm8gdW4gbm9tZSB1bml2b2NvPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSaW9yZGluYSBpIGNhbXBpJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdDYXJpY2EgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWdnaXVuZ2VyZSB1biBib3R0b25lIHRlc3R1YWxlJzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1Rlc3RvIGRlbCBib3R0b25lIGRpIENhbmNlbGxhemlvbmUnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVyZSBkYSBjYWxjb2xhcmUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nYSc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpY28nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdNb3N0cmEgaWwgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgc2lnbmlmaWNhIEZvcm0gY2hlIHJpcG9zaXppb25hbm8gaWwgdGFnIHtjbXNfbW9kdWxlfSwgbm9uLWlubGluZSByaXBvc2l6aW9uYW5vIGlsIHRhZyB7Y29udGVudH0uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGlsIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgcGVyIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnQ29tbXV0YSBhbCBtb2RvIEF2YW56YXRvJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnQ29tbXV0YSBhbCBtb2RvIFNlbXBsaWNlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZSBhIGNvcHkgb2YgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOZXZlcic7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdHaXZlIHVzZXIgYSBjaG9pY2UgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWx3YXlzJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdVc2VyIGRlZmluZWQgdGFnIHJldHVybmVkIGFuIGVycm9yJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQVJOSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgcHJlZGVmaW5pdG8nOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGNvbiB0YWJlbGxlLCBUaXRvbGkgc3VsbGEgc2luaXN0cmEnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgY29uIHRhYmVsbGUsIFRpdG9sbyBpbiB0ZXN0YSc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBkYSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXIgc292cmFzY3JpdmVyZSBpbCB2b3N0cm8gTW9kZWxsbyBjb24gcXVlbGxvIHNlbGV6aW9uYXRvPyAoQW5jaGUgZGljZW5kbyBTJmlncmF2ZTssIGRvdmV0ZSBzYWx2YXJlIGlsIGNhbWJpYW1lbnRvKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05lc3N1bmEgaW5mb3JtYXppb25lIEhUVFBfUkVGRVJFUiB1dGlsaXp6YWJpbGUgKHByb2JhYmlsbWVudGUgZG92dXRhIGFsbCYjMDM5O3VzbyBkZWxsYSBWYWxpZGF6aW9uZSBFbWFpbCBVdGFudGUpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdFcnJvcmUgZGkgdmFsaWRhemlvbmUgUGFyYW1ldHJvLiBTaSBwcmVnYSBkaSBjb250cm9sbGFyZSBsJiMwMzk7ZXNhdHRlenphIGRlbGxhIGNvcGlhIGRlbGwmIzAzOTtpbmRpcml6em8gVVJMIGRhbGxhIHZvc3RyYSBlbWFpbCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0Vycm9yZSBkaSB2YWxpZGF6aW9uZSBuZWxsYSByaXNwb3N0YS4gU2kgcHJlZ2EgZGkgY29udHJvbGxhcmUgbCYjMDM5O2VzYXR0ZXp6YSBkZWxsYSBjb3BpYSBkZWxsJiMwMzk7aW5kaXJpenpvIFVSTCBkYWxsYSB2b3N0cmEgZW1haWwhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdFcnJvcmUgZGkgdmFsaWRhemlvbmUgbmVsbGEgcmlzcG9zdGEuIE5lc3N1biBjYW1wbyBlbWFpbCB2YWxpZGF0byBpbiBxdWVzdG8gZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgJmVncmF2ZTsgc3RhdG8gYWdnaW9ybmF0byBhdXRvbWF0aWNhbWVudGUgZGFsbGEgdmVyc2lvbmUgMC4zIGFsbGEgdmVyc2lvbmUgMC40LiBEb3ZldGUgcGVyJm9ncmF2ZTsgZWZmZXR0dWFyZSBhbGN1bmkgZml4LiBTZSBzdGF0ZSB1c2FuZG8gaWwgRm9ybSBkaSBkZWZhdWx0LCByaXBvc2l6aW9uYXRlIHF1ZXN0byBUZW1wbGF0ZSBjb24gJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2FuZG8gbGEgdGVuZGluYSBzZWd1ZW50ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWdnaXVuZ2VyZSwgbW9kaWZpY2FyZSBlIGdlc3RpcmUgZm9ybSBpbnRlcmF0dGl2aSc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ1NlIHN0YXRlIHVzYW5kbyBsYSB2YWx1dGF6aW9uZSBTdHJpbmdhLCBsYSBzb2xhIG9wZXJhemlvbmUgdXRpbGl6emFiaWxlICZlZ3JhdmU7IGxhIGNvbmNhdGVuYXppb25lICgrKSwgbWVudGUgc2UgdXNhdGUgbGEgdmFsdXRhemlvbmUgTnVtZXJvIGF2ZXRlIHVuIHNlbXBsaWNlIG9wZXJhemlvbmUgbWF0ZW1hdGljYSAoKywgLSwgKiwgLyknOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnR2VubmFpbyc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmViYnJhaW8nOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnpvJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbGUnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWdnaW8nOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnR2l1Z25vJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0x1Z2xpbyc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0Fnb3N0byc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NldHRlbWJyZSc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPdHRvYnJlJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJyZSc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGljZW1icmUnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NwaWFjZW50ZSEgQyYjMDM5OyZlZ3JhdmU7IHN0YXRvIHVuIGVycm9yZSBuZWxsJiMwMzk7aW52aW8gZGVsIGZvcm0uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIGVycm9yZSBkaSBpbnZpbzogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yZSBuZWwgZmlsZSBwYXNzYXRvIGFsIG1vZHVsbyBVcGxvYWRzOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdOb24gdHJvdm8gaWwgbW9kdWxvIFVwbG9hZHMnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0Vycm9yZSBuZWwgVXBsb2FkL0FsbGVnYXRvIHN1bCBmaWxlICVzICh0bXBfbmFtZTogJXMsIGRpIHRpcG8gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3JlLiBOb24gcmllc2NvIGFkIG90dGVuZXJlIHVuIGxvY2sgcGVyIGlsIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZGVmaW5pdG86IG5vbiBtYXJjYXRvJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRlZmluaXRvOiBtYXJjYXRvJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIgLz5Nb2RlbGxvIHBlciBFbWFpbCBub24gYW5jb3JhIHNldHRhdG8hJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBub24gcG9zc28gdHJvdmFyZSBpbCBtb2R1bG8gcmljaGllc3RvIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSaXNwb3N0YSBJRC4gVXNhdGEgZGEgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnQ2FtcG8gSUQgcGVyIG9wZXJhemlvbmkgaW50ZXJuZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnTm9tZSBGb3JtJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBwZXIgb3BlcmF6aW9uaSBpbnRlcm5lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPkVzc2VyZSBzaWN1cmkgZGkgc2V0dGFyZSBpIHBlcm1lc3NpICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXIgZ2xpIHV0ZW50aSBjaGUgYW1taW5pc3RyYW5vIGkgZm9ybXMuIFNlIHZvbGV0ZSBlc3NlcmUgYXZ2aXNhdGkgdmlhIGVtYWlsIGRlZ2xpIGluc2VyaW1lbnRpLCBhZ2dpb3JuYXJlIGluIG1hbmllcmEgYXBwcm9wcmlhdGEgbGEgQ29uZmlndXJhemlvbmUuPC9wPgo8cD5TaSBwcmVnYSBkaSBwcmVzdGFyZSBhdHRlbnppb25lIGNoZSB1biBmb3JtIGRpIGZlZWRiYWNrIG5vbiBkb3ZyZWJiZSBlc3NlcmUgYXR0aXZvIChjaW8mZWdyYXZlOyBwdWJibGljbykgbWVudHJlIG1vZGlmaWNhdGUgaWwgZm9ybS4gRG92cmVzdGUgY3JlYXJlIGlsIGZvcm0gZSBwb2kgcG9zaXppb25hcmUgaWwgdGFnIG5lbGxhIHBhZ2luYSBxdWFuZG8gdGVybWluYXRvLiBBbHRyaW1lbnRpIHBvc3Nvbm8gdG9ybmFyZSBkZWkgcmlzdWx0YXRpIGVycmF0aS48L3A+CjxwPkluIGFnZ2l1bnRhLCBxdWVzdGEgdmVyc2lvbmUgbm9uIHN1cHBvcnRhIGxlIG1vZGlmaWNoZSBpbiBwYXJhbGxlbG8gZGVpIGZvcm1zLiBTaSBwcmVnYSBxdWluZGkgY2hlIHNvbG8gdW4gYWRtaW4gYWxsYSB2b2x0YSBtb2RpZmljaGkgdW4gZGF0byBmb3JtLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPgo8aDQ+TWFpbjwvaDQ+CjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPgo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+CjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pgo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCjwvcD4KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPC91bD48L2xpPjwvbGk+PC91bD4KCgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPgo8cHJlPgoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCglmb3JtIHttYXJnaW4tdG9wOjB9Cglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0KCWZpZWxkc2V0IGRpdiB7CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW07Cgl9CglmaWVsZHNldCBkaXYgZGl2IHsKCQltYXJnaW4tdG9wOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbQoJfQoJZmllbGRzZXQgewoJCW1hcmdpbi1ib3R0b206MWVtOwoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsKCQlwYWRkaW5nOjAuNWVtCgl9CglmaWVsZHNldCBsYWJlbCB7CgkJd2lkdGg6YXV0bzsKCX0KCWxlZ2VuZCB7CgkJY29sb3I6I0ZGRjsKCQliYWNrZ3JvdW5kOiNGNjA7CgkJZm9udC1zdHlsZTppdGFsaWM7CgkJZm9udC1zaXplOjEuMmVtOwoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJcGFkZGluZzowLjJlbTsKCQl3aWR0aDphdXRvOwoJCWJvcmRlcjoxcHggc29saWQgI0NDQwoJfQoJdGV4dGFyZWEgewoJCW1hcmdpbjogMC41ZW0gMDsKCQl3aWR0aDo5OCU7CgkJaGVpZ2h0OiA2ZW0KCX0KCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0KCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLwoJLmNhcHRjaGEgewoJCW1hcmdpbjowLjVlbSAwOwoJCXdpZHRoOjIwMHB4OwoJCXRleHQtYWxpZ246Y2VudGVyCgl9CgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0KCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19CjwvcHJlPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8L3VsPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjU2ODcyNzkzNy4xMjM2MzQwMTcxLjEyMzYzNDAxNzEuMTIzNjM0MDE3MS4xJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMzYzNDAxNzEuMS4xLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ja_JP.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAn44OG44Kt44K544OIJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ+ODhuOCreOCueODiCAo6KSH5pWwKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICfjg4bjgq3jgrnjg4jjgqjjg6rjgqInOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAn44OB44Kn44OD44Kv44Oc44OD44Kv44K5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAn44OB44Kn44OD44Kv44Oc44OD44Kv44K544O744Kw44Or44O844OXJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ+ODl+ODq+ODgOOCpuODsyc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICfopIfmlbDpgbjmip4nOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnQ291bnRyeSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpbWUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqQ01TIEFkbWluIFVzZXLjgbjjg6Hjg7zjg6vjgZnjgosnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAn44OV44Kh44Kk44Or44Ki44OD44OX44Ot44O844OJJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAn44Oh44O844Or44GuICJGcm9tIEFkZHJlc3MiIOmgheebric7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ+ODoeODvOODq+OBriAiRnJvbSBOYW1lIiDpoIXnm64nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICfjg6Hjg7zjg6vjga4gIlN1YmplY3QiIOmgheebric7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy0g6Z2Z55qE44OG44Kt44K544OIJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLSDpnZnnmoTjg6rjg7Pjgq8nOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICfjg6rjg7Pjgq8gKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy0g6Z2e6KGo56S66aCF55uuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gQ29tcHV0ZWQgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctVW5pcXVlIEludGVnZXIgKFNlcmlhbCknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAn5YWl5Yqb44OB44Kn44OD44Kv44Gq44GXJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ+aVsOWApCc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ+ODoeODvOODq+OCouODieODrOOCuSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICfpm7voqbHnlarlj7cgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICflv4XpoIjjg4Hjgqfjg4Pjgq8nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ01hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdEb2VzblwndCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdXBwbGllZCBmb3IgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbnRyeSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBwaG9uZSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnIiVzIiBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsdWUgdGhhdCBpcyBubyBsb25nZXIgdGhhbiAlcyBjaGFyYWN0ZXJzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgIiVzIiBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb25cJ3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGaWVsZCBvcmRlciB1cGRhdGVkLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICfjg5Xjgqnjg7zjg6DjgpLliYrpmaTjgZfjgb7jgZfjgZ/jgIInOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ+mgheebruOCkuWJiumZpOOBl+OBvuOBl+OBn+OAgic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICfoqK3lrprmg4XloLHjgpLmm7TmlrDjgZfjgb7jgZfjgZ/jgIInOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAiJXMiIGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICfplbfjgZU6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1t1bnNwZWNpZmllZF0nOwokbGFuZ1snYWRkZWQnXSA9ICfov73liqDjgZfjgb7jgZfjgZ/jgIInOwokbGFuZ1sndXBkYXRlZCddID0gJ+abtOaWsOOBl+OBvuOBl+OBn+OAgic7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICfjgbLjgajjgaTjgpLpgbjmip4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ+OBr+OBhCc7CiRsYW5nWydubyddID0gJ+OBhOOBhOOBiCc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgcG9zc2libGUgZmlsZXMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddID0gJ+S/neWtmCc7CiRsYW5nWydhZGQnXSA9ICfov73liqAnOwokbGFuZ1sndXBkYXRlJ10gPSAn5pu05pawJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAn5L+d5a2Y44GX44CB57eo6ZuG44KS57aa44GR44KLJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAn5oOF5aCxJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICfoqK3lrprmg4XloLEnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ+acgOWkp+OCteOCpOOCuic7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICfjgqLjg4Pjg5fjg63jg7zjg4knOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMg6KGMJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyDliJcnOwokbGFuZ1snMTJfaG91ciddID0gJzEy5pmC6ZaT6KGo56S6JzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNOaZgumWk+ihqOekuic7CiRsYW5nWydob3VyJ10gPSAn5pmCJzsKJGxhbmdbJ21pbiddID0gJ+WIhic7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICfnr4Tlm7I6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ+e3qOmbhic7CiRsYW5nWydkZWxldGUnXSA9ICfliYrpmaQnOwokbGFuZ1snZGF5J10gPSAn5pelJzsKJGxhbmdbJ21vbiddID0gJ+aciCc7CiRsYW5nWyd5ZWFyJ10gPSAn5b+1JzsKJGxhbmdbJ25vbmUnXSA9ICco44Gq44GXKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ+ODouOCuOODpeODvOODq+OCkuOCouODs+OCpOODs+OCueODiOODvOODq+OBl+OBvuOBl+OBn+OAgic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ+aIu+OCiy4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU3VibWl0IEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAn57aa44GR44KLLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICfjg4Hjgqfjg4Pjgq8nOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAn6Z2e44OB44Kn44OD44KvJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAn44Oh44Kk44OzJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICfjg5Xjgqnjg7zjg6Djga7ooajnpLroqK3lrponOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGHoqK3lrponOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAn44OV44Kp44O844Og44O744OG44Oz44OX44Os44O844OIJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ+OCquODl+OCt+ODp+ODs+OCkui/veWKoCc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ+mBuOaKnuOBl+OBn+OCquODl+OCt+ODp+ODs+OCkuWJiumZpCc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ+ODgeOCp+ODg+OCr+ODnOODg+OCr+OCueOCkui/veWKoCc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ+mBuOaKnuOBl+OBn+ODgeOCp+ODg+OCr+ODnOODg+OCr+OCueOCkuWJiumZpCc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ+OCreODo+ODs+OCu+ODqyc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAicmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlIjxici8+Cjxici8+CjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggIm11bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyI8YnIvPgo8YnIvPgo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPgo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAn6aCF55uu44Gu6auY44GVJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAn44Om44O844K25a6a576p44K/44KwJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICfjgqvjg4bjgrTjg6rjga7jgqLjg4Pjg5fjg63jg7zjg4knOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAn5pyA5aSn6ZW3JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAn44OB44Kn44OD44Kv44Oc44OD44Kv44K544O744Op44OZ44OrJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAn44Op44K444Kq44Oc44K/44Oz44O744Op44OZ44OrJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAn5YmK6Zmk44GX44G+44GZ44GL77yfJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyJTZWxlY3QgT25lIiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1NlbGVjdGlvbiBWYWx1ZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ09wdGlvbiBOYW1lJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbHVlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnUHVsbGRvd24gT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGlzZWxlY3QgT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICciRnJvbSBuYW1lIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAieEB5IiBpbnN0ZWFkIG9mIHJlcXVpcmluZyAieEB5LnRsZCIpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJ+ODoeODvOODq+OBriJGcm9tIGFkZHJlc3MiJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ+ODleOCoeOCpOODq+WQjSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAn44Oh44O844Or44K144OW44K444Kn44Kv44OI5ZCNJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ+ODleOCqeODvOODoOWQjSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ+ODleOCqeODvOODoOOCueODhuODvOOCv+OCuSc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ+ODh+ODl+ODreOCpOOBp+OBjeOBvuOBmeOAgic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAn44OH44OX44Ot44Kk44Gn44GN44G+44Gb44KT44CCJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXJcJ3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ+ODleOCqeODvOODoOOCqOOCpOODquOCouOCuSc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ+ODleOCqeODvOODoOmgheebric7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ+mgheebrklEJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICfpoIXnm67lkI0nOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICfpoIXnm67jgqjjgqTjg6rjgqLjgrknOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ+mgheebruWeiyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAn44OV44Kp44O844Og44Gu6L+95YqgJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICfpoIXnm67jga7ov73liqAnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZGQgSmF2YXNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAiTmV4dCIgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gIlByZXZpb3VzIiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAn6aCF55uu44Gu5YWl5Yqb44OB44Kn44OD44KvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAn5b+F6aCIJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ+mdnuihqOekuuODqeODmeODqyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGRcJ3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAn6KGM55Wq5Y+344KS6KGo56S6JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgInZhbGlkYXRpb24gdHlwZSIgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgIi9pbWFnZVxcLihcXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxXCdkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAn44Ko44Op44O844KS6Z2e6KGo56S6JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICfjg6Hjg7zjg6vjg4bjg7Pjg5fjg6zjg7zjg4gnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAianBnLGdpZixqcGVnIikuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICfpoIXnm65JROOCkuimi+OCiyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1M44OV44Kp44O844Og44Gu44Kk44Oz44Od44O844OIJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnSFRNTOODoeODvOODq+OCkuS9nOaIkOOBl+OBvuOBmeOBi++8nyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICfjg4fjg5Xjgqnjg6vjg4jjg6rjg7Pjgq9VUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAn44OH44OV44Kp44Or44OI44Oq44Oz44Kv44OG44Kt44K544OIJzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiJDYXB0Y2hhIjwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEg44Gv5Yip55So44Gn44GN44G+44Gb44KT44CCJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb25cJ3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ+ODquODs+OCr+ODqeODmeODqyc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICfljYjliY0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ+WNiOW+jCc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlclwncyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXJcJ3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXJcJ3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPgo8dHI+PHRkIGNsYXNzPSJvZGQiPm5hbWU8L3RkPjx0ZCBjbGFzcz0ib2RkIj5GaWVsZCBOYW1lPC90ZD48L3RyPgo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSJvZGQiPmlkPC90ZD48dGQgY2xhc3M9Im9kZCI+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0ib2RkIj52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9Im9kZCI+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICJ7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnwqsg44OV44Kp44O844Og44G45oi744KLJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICfjgrXjg7Pjg5fjg6vjg4bjg7Pjg5fjg6zjg7zjg4jjga7kvZzmiJAnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAn44K144Oz44OX44OrSFRNTOODhuODs+ODl+ODrOODvOODiOOBruS9nOaIkCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ+OCteODs+ODl+ODq+ODmOODg+ODgOOBruS9nOaIkCc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICfml6Xku5jlnosgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuXCd0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgIkRpc3Bvc2l0aW9uIiBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAn5bm044Gu5aeL44G+44KKJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAn5bm044Gu57WC44KP44KKJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ+ODh+ODleOCqeODq+ODiOW5tCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAn44K144Kk44OI44G444Oq44OA44Kk44Os44Kv44OI44GZ44KLJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgImFkdmFuY2VkIiB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAn5b+F6aCI5YWl5Yqb44Gu6aCF55uu5ZCNJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAn5b+F6aCI5YWl5Yqb44CB5LiA5oSP44Gu6aCF55uu5ZCNJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ+ODhuODs+ODl+ODrOODvOODiOOBruiqreOBv+i+vOOBvyc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ+aWh+Wtl+WIlyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAn5pWw5YCkJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9InlvdXJmbigpIic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSJ5b3VyZm4oKSIuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgInNhZmV0eSBzY3JpcHQiIG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ+ODh+ODleOCqeODq+ODiOODhuODs+ODl+ODrOODvOODiCc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAn44OG44Oz44OX44Os44O844OI44OV44Kp44O844OgICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICIlcyIuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3VcJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAiZGVmYXVsdCIgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnMeaciCc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnMuaciCc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnM+aciCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnNOaciCc7CiRsYW5nWydkYXRlX21heSddID0gJzXmnIgnOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnNuaciCc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICc35pyIJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnOOaciCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJznmnIgnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnMTDmnIgnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJzEx5pyIJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICcxMuaciCc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICfjg4fjg5Xjgqnjg6vjg4g6IOmdnuODgeOCp+ODg+OCryc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICfjg4fjg5Xjgqnjg6vjg4g6IOODgeOCp+ODg+OCryc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ+ODleOCqeODvOODoOWQjSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdVwnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJ3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkXCdzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkXCdzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9IiI+KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICJwYWdlIHggb2YgeSIgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiJCYWNrIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4iQ29udGludWUiIG9yICJTdWJtaXQiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3VcJ2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgIk1vZGlmeSBGb3JtcyIgcGVybWlzc2lvbnMKb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91XCdsbCBiZSBlbWFpbGluZyBmb3JtCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPgo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPgo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdApvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdFwncyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+CjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4KCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3VcJ3JlCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPVwnRm9ybUJ1aWxkZXJcJyBmb3JtPVwnc2FtcGxlX2Zvcm1cJ308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlXCdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoIikgaW50byBIVE1MIGVudGl0aWVzICgmcXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzIChcJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+Cgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtXCdzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPgo8aDQ+TWFpbjwvaDQ+CjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91XCdsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgImZhc3QgZmllbGQgYWRkZXIiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlclwncyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgiUHJldmlvdXMiLCAibmV4dCIsICJzdWJtaXQiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm1cJ3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPgo8cD5Vbmxlc3MgeW91XCdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb25cJ3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCBcJ0Rpc3BsYXkgIlN1Ym1pc3Npb24gVGVtcGxhdGUiLCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPgo8cD5JZiB5b3VcJ3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91XCdyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0XCdzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbgppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXRcJ3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCAiUmVxdWlyZWQiLCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAidmlldyBzb3VyY2UiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+CjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICJGcm9tIiBmaWVsZC48L2xpPgo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICJTdWJqZWN0IiBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPgo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+CjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdVwncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJ3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+CjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+CjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1bXCdmaWVsZF9uYW1lXCddLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICJEaXJlY3RvciIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICJhcHByb3ZlZCwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICJvdXRwdXQiIGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlXCdzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIHdpbGwgYmVjb21lIHRoZSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyIGluIHRoZSBuZXh0IHJlbGVhc2UuPC9saT4KCjwvdWw+PC9saT48L2xpPjwvdWw+CgoKPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPgo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPgo8cD57Y21zX21vZHVsZSBtb2R1bGU9XCdGb3JtQnVpbGRlclwnIGZvcm09XCdteV9mb3JtXCcgdmFsdWVfPGk+RklFTEROQU1FPC9pPj1cJ2RlZmF1bHRfdmFsdWVcJ308L3A+CjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byBcJ2RlZmF1bHRfdmFsdWVcJy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvblwndCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT1cJ0Zvcm1CdWlsZGVyXCcgZm9ybT1cJ215X2Zvcm1cJyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PVwnZGVmYXVsdF92YWx1ZVwnfTwvcD4KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwKYW5kIGNoZWNrICJTaG93IEZpZWxkIElEcyI8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRcJ3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGUiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPlRvIHRoZSByaWdodCwgeW91XCdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdVwndmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0XCdzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPgo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICJDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUiIGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3VcJ3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4KPC91bD4KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+CjxwcmU+CgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8KCWZvcm0ge21hcmdpbi10b3A6MH0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9Cglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQoJZmllbGRzZXQgZGl2IHsKCQltYXJnaW4tYm90dG9tOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbTsKCX0KCWZpZWxkc2V0IGRpdiBkaXYgewoJCW1hcmdpbi10b3A6MC41ZW07CgkJbWFyZ2luLWxlZnQ6MWVtCgl9CglmaWVsZHNldCB7CgkJbWFyZ2luLWJvdHRvbToxZW07CgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOwoJCXBhZGRpbmc6MC41ZW0KCX0KCWZpZWxkc2V0IGxhYmVsIHsKCQl3aWR0aDphdXRvOwoJfQoJbGVnZW5kIHsKCQljb2xvcjojRkZGOwoJCWJhY2tncm91bmQ6I0Y2MDsKCQlmb250LXN0eWxlOml0YWxpYzsKCQlmb250LXNpemU6MS4yZW07CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQlwYWRkaW5nOjAuMmVtOwoJCXdpZHRoOmF1dG87CgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDCgl9Cgl0ZXh0YXJlYSB7CgkJbWFyZ2luOiAwLjVlbSAwOwoJCXdpZHRoOjk4JTsKCQloZWlnaHQ6IDZlbQoJfQoKCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMKCQl0byBoZWxwIGFsaWdubWVudCAqLwoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwKCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQoKCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovCgkuY2FwdGNoYSB7CgkJbWFyZ2luOjAuNWVtIDA7CgkJd2lkdGg6MjAwcHg7CgkJdGV4dC1hbGlnbjpjZW50ZXIKCX0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQoKCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLwoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0KPC9wcmU+Cgo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91XCdkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91XCdsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdFwncyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0iIj4pPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdVwnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+CgoKPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuXCd0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdVwncmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+CjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdVwncmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkXCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdVwncmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdFwncyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+VW5jaGVjayB0aGUgIkhpZGUgRXJyb3JzIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIElcJ3ZlIGRvbmUgYWxsIEkgY2FuCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwphdGUgdGhlIG5laWdoYm9yXCdzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPC91bD4KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHdyaXRlIHlvdXIgcXVlc3Rpb25zIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNhc2gpLjwvcD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCDCqSAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+CjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4yLiAyNSBNYXkgMDguIEJ1Z2ZpeGVzLiBSZWxlYXNlIGluIHByZXBhcmF0aW9uIGZvciBzdWJzdGFudGlhbCByZXdvcmtpbmcgZm9yIDAuNjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xLiAzMCBBcHJpbCAwOC4gQnVnZml4ZXMsIHJld3JvdGUgc29tZSBvZiB0aGUgRmlsZSBVcGxvYWQgY29kZSB0byBwcmV2ZW50IHdoaXRlIHNjcmVlbiBvZiBhbm5veWFuY2UuPC9saT4KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPgo8bGk+VmVyc2lvbiAwLjQuNC4gMjYgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHJhZGlvIGJ1dHRvbiBncm91cHMsIGZpeCBmb3IgdmFsaWRhdGlvbiBvZiBEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC40LjEuIEJ1Z2ZpeGVzIGZvciBGaWxlIERpc3Bvc2l0aW9uIFR5cGVzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNAoJPHVsPgoJCTxsaT5VcHBlZCBtaW5pbXVtIENNUyB2ZXJzaW9uIHRvIDEuMTwvbGk+CgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPgoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4KCQk8bGk+QWRkZWQgZmllbGQgdHlwZXM6ICJUZXh0RmllbGQgKE11bHRpcGxlKSIgYW5kICJDb21wdXRlZCBGaWVsZCI8L2xpPgoJCTxsaT5BZGRlZCBkaXNwb3NpdGlvbnM6ICJTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93biIgYW5kICJTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zIihDYWxndXkpPC9saT4KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPgoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSJ2YWx1ZSIgc3ludGF4IChDYWxndXkpPC9saT4KCQk8bGk+QWRkZWQgb3B0aW9uIHRvIGRpc3BsYXkgZmllbGQgaWRzIGluIGFkbWluIChDYWxndXkpPC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMwogICA8dWw+CiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+CiAgICAgIDxsaT5SZXdvcmtlZCBsYWJlbGluZyBvZiBmb3JtIGVsZW1lbnRzIHRvIGJlIFhIVE1MIGNvbXBsaWFudDwvbGk+CiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lXCdzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+CiAgICAgIDxsaT5JbXBsZW1lbnRhdGlvbiBvZiBFbWFpbCBTdWJqZWN0IEZpZWxkPC9saT4KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPgogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPgogICAgICA8bGk+QWRkZWQgRHJhZ1wnblwnRHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+CiAgICAgIDxsaT5BZGRlZCBub24tYmxhbmsgZmllbGQgbmFtZSBhbmQgdW5pcXVlIGZpZWxkIG5hbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPgogICAgICA8bGk+PC9saT4KICAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNwogICA8cD5CaWcgcmVsZWFzZTo8dWw+CiAgIDxsaT5BZGRlZCAiRW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MiIGRpc3Bvc2l0aW9uLjwvbGk+CiAgIDxsaT5BZGRlZCAiVGltZVBpY2tlciIgZmllbGQgdHlwZS4gU3BsaXQgIkxpbmsiIGZpZWxkIGludG8gYSAiVXNlci1zdXBwbGllZCBMaW5rIiBmaWVsZCBhbmQgYSAiU3RhdGljIExpbmsiIGZpZWxkLjwvbGk+CiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPgogICA8L3VsPgogICA8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4zCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuMgogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToKICAgPHVsPgogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+CiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZAogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLgogICAgICA8L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbAogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+CiAgICAgIDwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICYgdHN3XCdzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+CjwvdWw+Cic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjExOTM3NTY5NjkuMTE5OTY5ODI3Ni4xMjEzMzE4NzIxLjEyMTMzMjI5MzguNic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTMzMjI5MzguNi40LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1vcyc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0xhdWtlbGlvIHRpcGFzIG5lbnVzdGF0eXRhcyc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBwYWJhaWdhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1GaWVsZHNldCBwcmFkemlhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkRmllbGQnXSA9ICdQYXNzd29yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ1Bhc3N3b3JkIEFnYWluICh2ZXJpZnkpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHQgSW5wdXQgKE11bHRpcGxlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ0J1dHRvbic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnSkFWIHZhbHN0aWrFsyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnJlNjYXJvbjthbGllcyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRvcyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdMYWlrbyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVB1c2xhcGlvIHRyxatraXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdCeWxvcyBhdHNpdW50aW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VsIHBhJnNjYXJvbjt0byAmcXVvdDtOdW8gQWRyZXNhcyZxdW90OyBsYXVrZWxpcyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRWwgcGEmc2Nhcm9uO3RvICZxdW90O051byBWYXJkYXMmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbC4gcGEmc2Nhcm9uO3RvICZxdW90O1RlbWEmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGluaXMgdGVrc3Rhcyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aW7ElyBudW9yb2RhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTnVvcm9kYSAoxK52ZWRhIGxhbmt5dG9qYXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdQYXNsxJdwdGFzIGxhdWthcyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQ29tcHV0ZWQgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctVW5pcXVlIEludGVnZXIgKFNlcmlhbCknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTmV0aWtyaW50aSc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ1N2ZWlrYXMgc2thacSNaXVzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VsIHBhJnNjYXJvbjt0byBhZHJlc2FzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbC4gbnIuIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnVHVyaSBixat0IHBhxb55bcSXdGFzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnUHJpdmFsb21hbSBsYXVrdWkgbmVidXZvIHN1dGVpa3RhIHZlcnTElyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgc2thacSNacWzICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgZ2FsaW9qYW7EjWnEhSByZWlrJnNjYXJvbjttxJkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQcmEmc2Nhcm9uO29tZSDEr3Zlc3RpIHN2ZWlrxIUgc2thacSNacWzIGxhdWtlbHlqZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQcmEmc2Nhcm9uO29tZSDEr3Zlc3RpIGdhbGlvamFudMSvIGVsIHBhJnNjYXJvbjt0byBhZHJlc8SFJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0VtYWlsIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggdmFsdWUgaW4gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQcmEmc2Nhcm9uO29tLCDEr3Zlc2tpdGUgdGVpc2luZ8SFIHRlbGVmb25vIG51bWVyxK8gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmVwYW5hJnNjYXJvbjt1cyDEryBnYWxpb2phbnTEryBlbCBwYSZzY2Fyb247dG8gYWRyZXPEhSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgbmVkYXVnaWF1IGthaXAgICVzIHNpbWJvbGnFsyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnTGF1a2VsacWzIHR2YXJrYSBhdG5hdWppbnRhLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtYSBwYSZzY2Fyb247YWxpbnRhLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnTGF1a2VsaXMgcGEmc2Nhcm9uO2FsaW50YXMuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ051c3RhdHltYWkgYXRuYXVqaW50aS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdUdXJpdGUgcGHFvnltxJd0aSAmcXVvdDslcyZxdW90OyBqZWkgbm9yaXRlIHTEmXN0aSc7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXIgasWrcyDEr3NpdGlraW7EmXMsIGthZCBub3JpdGUgaSZzY2Fyb247dHJpbnRpIGZvcm3EhSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyIGrFq3MgxK9zaXRpa2luxJlzLCBrYWQgbm9yaXRlIGkmc2Nhcm9uO3RyaW50aSBsYWlrZWzEryAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbmltYXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25lbnVyb2R5dGFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAncHJpZMSXdGEnOwokbGFuZ1sndXBkYXRlZCddID0gJ2F0bmF1amludGEnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnUGFzaXJpbmtpdGUgdmllbsSFJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnUGFzaXJpbmtpdGUgdGlwxIUnOwokbGFuZ1sndG8nXSA9ICdLYW0nOwokbGFuZ1sneWVzJ10gPSAnVGFpcCc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNpcGllbnRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnU2F1Z290aSc7CiRsYW5nWydhZGQnXSA9ICdQcmlkxJd0aSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBdG5hdWppbnRpJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F1Z290aSBpciB0xJlzdGkgcmVkYWdhdmltxIUnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2lqYSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWMnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3Jtb3MnOwokbGFuZ1snZm9ybSddID0gJyVzIGZvcm1hJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWfFq3JhY2lqYSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBkeWRpcyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1BsxJd0aW5pYWknOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ2xlaWTFvmlhbWkgYnlsxbMgdGlwYWknOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICfErmtlbHRhIGJ5bGEgeXJhIHBlciBkaWRlbMSXLiBNYWtzaW1hbHVzIGR5ZGlzIHlyYTonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUaGlzIHR5cGUgb2YgZmlsZSBtYXkgbm90IGJlIHVwbG9hZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgZXh0ZW5zaW9uIGlzIGNvcnJlY3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ8Sua2VsdGknOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm1hIGltcG9ydHVvdGEnOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybSBpbXBvcnQgZmFpbGVkISBUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm1hdCBvZiB0aGUgWE1MIGZpbGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBlaWx1xI1pxbMnOwokbGFuZ1snY29scyddID0gJyVzIHN0dWxwZWxpxbMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyLW9zIHZhbGFuZMWzIGxhaWtyb2Rpcyc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtacWzIHZhbGFuZMWzIGxhaWtyb2Rpcyc7CiRsYW5nWydob3VyJ10gPSAnVmFsYW5kYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dMSXJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1J1b8W+YXM6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnQcSNacWrISBKxatzxbMgcGF0ZWlraW1hcyBidXZvIGdhdXRhcy4nOwokbGFuZ1snZWRpdCddID0gJ1JlZGFndW90aSc7CiRsYW5nWydkZWxldGUnXSA9ICdUcmludGknOwokbGFuZ1snZGF5J10gPSAnRGllbmEnOwokbGFuZ1snbW9uJ10gPSAnTcSXbnVvJzsKJGxhbmdbJ3llYXInXSA9ICdNZXRhaSc7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsaXMgaW5zdGFsaXVvdGFzJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsaW8gJXMgdmVyc2lqYSBpbnN0YWxpdW90YS4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGlzIGF0bmF1amludGFzIGlraSAlcyB2ZXJzaWpvcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnQXRnYWwuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1BhdGVpa3RpIGZvcm3EhSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdUxJlzdGkuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1Bhxb55bcSXdGEnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmVwYcW+eW3El3RhJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUGFncmluZGluaXMnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm1vcyByb2R5bW8gbnVzdGF0eW1haSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybW9zIHBhdGVpa2ltYXMnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIG51c3RhdHltYWknOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnUGFwaWxkb21pIFNudXN0YXR5bWFpJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1RlbXBsYXRlIExheW91dCBPcHRpb25zJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdQYXRlaWtpbW8gJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ1ByaWTEl3RpIGRhdWdpYXUgcGFzaXJpbmtpbcWzJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVHJpbnRpIHBhxb55bcSXdHVzIHBhc2lyaW5raW11cyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ1ByaWTEl3RpIGRhdWdpYXUgQ2hlY2tib3ggbGF1a8WzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnSSZzY2Fyb247dHJpbnRpIHBhxb55bcSXdHVzIENoZWNrYm94IGxhdWt1cyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ByaWTEl3RpIGtpdMSFIGFkcmVzxIUnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdJJnNjYXJvbjt0cmludGkgcGHFvnltxJd0dXMgYWRyZXN1cyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdQcmlkxJd0aSBraXTEhSBwYXNreXJpbW8gdmlldMSFJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0kmc2Nhcm9uO3RyaW50aSBwYcW+eW3El3RhcyBwYXNreXJpbW8gdmlldGFzJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU3VzcGVjdGVkIHNwYW0gZnJvbSBJUCAlcyBzdG9wcGVkLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUGFrZWlzdGkgbGF1a8WzIGVpbGkmc2Nhcm9uO2t1bcSFJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F0JnNjYXJvbjthdWt0aSc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdOdXN0YXR5dGEgdmVydMSXOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPgo8YnIvPgo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPgpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4KPGJyLz4KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPgo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnTGF1a28gYXVrJnNjYXJvbjt0aXMnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGVzdGluYXRpb24gRGlyZWN0b3J5IGZvciBvdXRwdXQgZmlsZXMnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVc2VyIERlZmluZWQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1BhdGVpa3RhIG5hdWRvamFudCBmb3JiYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnxK5rxJdsaW3FsyBrYXRlZ29yaWphJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2nFs3N0aSAmc2Nhcm9uO8SvICBmYWlsxIUgxK8gdXBsb2FkcyBtb2R1bMSvJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdEaWTFvmlhdXNpYXMgaWxnaXMnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdDaGVja2JveCBldGlrZXTElyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlvIEJ1dHRvbiBldGlrZXTElyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmVydMSXIGthaSBwYcW+eW3El3RhJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZlcnTElyBrYWkgbmVwYcW+eW3El3RhJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0kmc2Nhcm9uO3RyaW50aT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7UGFzaXJpbmt0aSB2aWVuxIUmcXVvdDsgdGVrc3Rhcyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnTmF1ZG90aSBzdXBhcHJhc3RpbnTEhSBlLiBwYSZzY2Fyb247dG8gYWRyZXNvIHRpa3JpbmltxIUnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGYWlsbyBwYXZhZGluaW1hcyc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRS4gcGEmc2Nhcm9uO3RvIHRlbW9zIGxpbmlqYSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3Jtb3MgcGF2YWRpbmltYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3Jtb3MgYsWrc2VuYSc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOZXBhcmVuZ3RhJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXImIzAzOTtzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ251ZG90aSAmc2Nhcm9uO8SvIHRydW1waW7Eryc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybW9zIGFsaWFzYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3Jtb3MgbGF1a2FpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnTGF1a28gSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdSb2R5dGkgZm9ybW9zIGFsaWFzdXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBkaXNwbGF5IGZpZWxkIGFsaWFzZXMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0xhdWtvIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnTGF1a28gYWxpYXNhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnTGF1a28gdGlwYXMnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ1ByaWTEl3RpIG5hdWrEhSBmb3JtxIUnOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnUm9keXRpICZxdW90O0Zvcm3FsyBrxatyaW1vJnF1b3Q7IHZlcnNpasSFID8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ1ByaWTEl3RpIG5hasSFIGxhdWtlbMSvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm1vcyBwYXRlaWtpbW8gbXlndHVrbyB0ZWtzdGFzJzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnTXlndHVrbyB0ZWtzdGFzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gU3VibWl0IEJ1dHRvbiB0byBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnUHJpZMSXdGkgc2F1Z3VtbyBza3JpcHTEhSc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdMYXVrbyB0aWtyaW5pbWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnTGF1a2FzIHBhdGlrcmluaW11aSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgSUQgJnNjYXJvbjtpYW0gbGF1a3VpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIGtsYXPElyAmc2Nhcm9uO2lhaSBmb3JtYWknOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIGtsYXPElyAmc2Nhcm9uO2lhbSBsYXVrdWknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTaW1ib2xpcyBwcml2YWxvbcWzIGxhdWvFsyDFvnltxJdqaW11aSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1ByaXZhbG9tYXMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1ByaXZhbG9tYXMgbGF1a2FzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdTbMSXcHRpIGV0aWtldMSZJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aW5pcyB0ZWtzdGFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVGlrcmluaW1vIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdSb2RvbcWzIGxpbmlqxbMgc2thacSNaXVzJzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ1RpayBza2FpdHltdWknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdQcml2YWxvbWFzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnU2zEl3B0aSBrbGFpZGFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3Jtb3Mgcm9keW1vIHRpcGFzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0UuIGxhaSZzY2Fyb247a28gJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3NpbWFsdXMgxK9rZWxpYW1vIGZhaWxvIGR5ZGlzIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUHVzbGFwaXMgJXMgaSZzY2Fyb247ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdSb2R5dGkgbGF1a8WzIElEJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICfErnZlc2tpdGUgcmFpZMSXcyBpJnNjYXJvbjsgcGF2ZWlrc2xpdWtvLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb24mIzAzOTt0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ0RlZmF1bHQgdG8gYmxhbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnRGVmYXVsdCB0byBibGFuayAodW5jaGVjayB0byBkZWZhdWx0IHRvIHRvZGF5JiMwMzk7cyBkYXRlKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdFbmNyeXB0IGRhdGEgc3RvcmVkIGluIGRhdGFiYXNlJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2F0ZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1Bhc3NwaHJhc2Ugb3IgcGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgcGFzc3BocmFzZSBmb3IgcHJpdmF0ZSBrZXknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCBzb3J0IGZpZWxkcz8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRlIEtleSB0byB1c2UgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1RoaXMgaGFzaGVzIHRoZSBzb3J0IGZpZWxkcywgYnV0IGxlYXZlcyB0aGUgZmlyc3QgZmV3IGxldHRlcnMgdW5lbmNyeXB0ZWQuIENyeXB0b2dyYXBoaWNhbGx5LCB0aGlzIGNyZWF0ZXMgYSB2dWxuZXJhYmlsaXR5LCBidXQgZm9yIG1vc3QgdXNlcnMgaXQgaXMgYW4gYWNjZXB0YWJsZSB0cmFkZW9mZiBiZXR3ZWVuIHNlY3VyaXR5IGFuZCB0aGUgYWJpbGl0eSB0byBzb3J0IHJlY29yZHMuIFNvcnRpbmcgYmVjb21lcyBhcHByb3hpbWF0ZSwgYnV0IHdpbGwgcmVtYWluIHByZXR0eSBnb29kLiBJZiB5b3UgZG8gbm90IHVzZSB0aGlzIG9wdGlvbiwgc29ydCBmaWVsZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU3RvcmFnZSBFbmNyeXB0aW9uIFVuYXZhaWxhYmxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIE9wZW5TU0wgbW9kdWxlIG9yIG1jcnlwdCBzdXBwb3J0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBkYXRhYmFzZSBlbmNyeXB0aW9uLic7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ1J1biBpbiBNTEUgTW9kZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aW9uJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1RpayAlcyBncnVwxJdqZSc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdSb2R5dGkgbmF1ZG90b2rEhT8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnJlNjYXJvbjtpcyBsYXVrYXMgZ2FsaSBixat0aSB0dSZzY2Fyb247xI1pYXMnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAga2ludGFtYXNpcyc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ1BhdGVpa2ltbyBkYXRhJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdKxatzxbMgc2VydmVyaXMnOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lqYSc7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPgo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnS2ludGFtYXNpcyc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTC1FbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnTnVtYXR5dGkgbWV0YWknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdOdWtyZWlwdGkgxK8gc3ZldGFpbsSXcyBwdXNsYXDEryc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hlbHAtdGV4dCB0byBkaXNwbGF5IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdFaWx1dMSXJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdTa2FpxI1pdXMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnTnVtYXR5dGEgbGF1a28gdmVydMSXJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ1JlaWtpYSBkYXVnaWF1IGxhdWvFsyB0aXDFsz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1BlcmRhdWcgbGF1a8WzIHRpcMWzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdQZXJqdW5ndGkgxK8gaSZzY2Fyb247cGzEl3N0aW7EmSBtb2TEhSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1Blcmp1bmd0aSDEryBwYXByYXN0xIUgbW9kxIUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTacWzc3RpIGZvcm1vcyBrb3BpasSFIG1hbic7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0Rpc3BsYXkgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJXMnOwokbGFuZ1snJ10gPSAnJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05pZWthZGEnOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ1Zpc2FkYSc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnRMSWTUVTSU8hJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdOdW1hdHl0YXMgJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICcmU2Nhcm9uO2FibG9uYXMgaSZzY2Fyb247ICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnU2F1c2lzJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdWYXNhcmlzJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdLb3Zhcyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQmFsYW5kaXMnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdHZWd1xb7Elyc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdCaXLFvmVsaXMnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnTGllcGEnOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdSdWdwasWrdGlzJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnUnVnc8SXamlzJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ1NwYWxpcyc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTGFwa3JpdGlzJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdHcnVvZGlzJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdEZWphISDErnZ5a28ga2xhaWRhIHBhdGVpa2lhbnQgasWrc8WzIGF0c2FreW11cy4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm1vcyBwYXZhZGluaW1hcyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucwpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPgo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPgo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdApvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPgo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZAppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+Cgo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+CjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUKcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPgoKPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPgo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQpDb25maWd1cmF0aW9uLjwvcD4KCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcwpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0Ugb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuCgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KPGg0Pk1haW48L2g0Pgo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy4gWW91IGFsc28gc2VsZWN0IHRoZSBkaXNwbGF5IHR5cGUuIFlvdXIgY2hvaWNlcyBhcmU6PC9wPgo8dWw+CjxsaT5UYWJsZS9DU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQgdXNpbmcgSFRNTCB0YWJsZXMuIElmIHlvdSBkb24mIzAzOTt0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPgo8bGk+UHVyZSBDU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQsIHdpdGggYWxsIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiA8ZGl2PiB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4KPGxpPkN1c3RvbSBUZW1wbGF0ZS4gQmFzaWNhbGx5LCB5b3UgZ2V0IGEgc21hcnR5IHRlbXBsYXRlLCBhIGJ1bmNoIG9mIHZhcmlhYmxlcywgYW5kIHlvdSYjMDM5O3JlIG9uIHlvdXIgb3duLiBZb3UgaGF2ZSB0aGUgcG93ZXIgdG8gY3JlYXRlIHdoYXRldmVyIHlvdSB3YW50LjwvbGk+CjwvdWw+CjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTZXR0aW5nczwvaDQ+CjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+CjxoND5UYWJsZS1iYXNlZCBMYXlvdXQgT3B0aW9uczwvaDQ+CjxwPlRhYmxlLWxheW91dHMgaGF2ZSBnb3R0ZW4gc2ltcGxlciwgc28geW91ciBvbmx5IG9wdGlvbiBoZXJlIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbmFtZXMgcmVsYXRpdmUgdG8gdGhlIGlucHV0cy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgYSBUYWJsZS9DU1MgbGF5b3V0LCB5b3UgY2FuIHVzZSB0aGlzIHRhYiB0byBzZWxlY3QgdGhlIGZpZWxkIG5hbWUgcG9zaXRpb25zLjwvcD4KPGg0PlRlbXBsYXRlIExheW91dCBPcHRpb25zPC9oND4KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgaWYgeW91ciBmb3JtIHVzZXMgYSBDdXN0b20gVGVtcGxhdGUuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBzbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LiBVbmxlc3MgeW91JiMwMzk7cmUgYSBzbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIHNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbgppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcgplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPgo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHAKZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUKc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+CjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cKY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+SGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+CjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+CjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPC91bD48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+Cjx1bD48bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUKZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8L3VsPjwvbGk+PC9saT48L3VsPgoKPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+Cgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+CjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbgp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8L3VsPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydxY2EnXSA9ICdQMC01MDM1NjE2MTgtMTI1MzYzMjkwODIyNCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjU3OTU2NjczNC4xMjUzODMxNDAyLjEyNTcwOTY3NzAuMTI1Nzc4NTQwMy4xNCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNTc3ODU0MDMuMTQuMTMudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL3RvcGljLDM4ODc1LjAvdG9waWNzZWVuLmh0bWx8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NramVtYSBCeWdnZXInOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdGZWx0dHlwZSBpa2tlIHNhdHQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVmVsZyBlbiAoZWxsZXIgZmxlcmUpIGNhdGFsb2dlciBhcnRpa2xlcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnRmVsdGdydXBwZSBTbHV0dCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICdGZWx0Z3J1cHBlIFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3QgaW5uc2tyaXZpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNU51bWJlckZpZWxkJ10gPSAnSFRNTDUgQW50YWxsIElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVFbWFpbEZpZWxkJ10gPSAnSFRNTDUgRS1wb3N0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddID0gJ0hUTUw1IFVSTCBJbnB1dCAnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnUGFzc29yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ0dqZW50YSBwYXNzb3JkICh2ZXJpZmlzZXIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1Rla3N0IGlubnNrcml2aW5nIChGbGVyZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RvbXImYXJpbmc7ZGUnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ0tuYXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0F2a3J5c25pbmdzYm9rcyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0F2a3J5c25pbmdzYm9rcyBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJyZBcmluZztyIG5lZHRyZWtrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdBbWVyaWthbnNrIHN0YXQgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0thbmFkaXNrIHByb3ZpbnMgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZCB2ZWxnZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRvIHZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHMtdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW9rbmFwcCBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKlNlbmRlIHJlc3VsdGF0ZXIgdmlhIGVwb3N0IGJhc2VydCBwJmFyaW5nOyBOZWR0cmVrayc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKkxhZ3JlIHJlc3VsdGF0ZXQgdGlsIGZpbCBCYXNlcnQgcCZhcmluZzsgbmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKkxhZ3JlIHJlc3VsdGF0ZXQgdGlsIGZpbChlcikgQkFzZXJ0IHAmYXJpbmc7IEZsZXJlIFZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKk9tZGlyaWdlciB0aWwgU2lkZSBCYXNlcnQgcCZhcmluZzsgTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKlNlbmRlIHJlc3VsdGF0ZXIgdmlhIGVwb3N0IHRpbCBiZXN0ZW10ZSBhZHJlc3Nlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRlcmluZy1tZWQtZXBvc3RhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRXBvc3QgZnJhIGFkcmVzc2UmcXVvdDsgZmVsdCwgb2cgc2VuZCBrb3BpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0ZXIgdGlsIGZsYXQgZmlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25VbmlxdWVGaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0IHRpbCBlbiBVbmlrIGZsYXQgZmlsIGZvciBodmVydCBpbm5sZWdnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypMYWdyZSByZXN1bHRhdGVyIGkgZGF0YWJhc2VuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypMYWdyZSByZXN1bHRhdGVyIGZvciBGb3JtQnJvd3NlciBtb2R1bGVuIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypLYWxsIG9wcCBlbiBCcnVrZXJkZWZpbmVydCBUYWdnIG1lZCBza2plbWEgcmVzdWx0YXRlbmUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqIFNlbmQgdGlsIGVuIHZpbGsmYXJpbmc7cmxpZyBza2plbWFoYW5kbGluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRXBvc3QgdGlsIEJydWtlci1PcHBnaXR0IEVwb3N0YWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRXBvc3QgdGlsIENNUyBBZG1pbiBicnVrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQmFzZWRGcm9udGVuZEZpZWxkcyddID0gJypFLXBvc3QgcmVzdWx0YXRlciBiYXNlcnQgcCZhcmluZzsgRnJvbnRlbmQgZmVsdGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2lkZXNraWZ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsIG9wcGxhc3RpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFcG9zdCAmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFcG9zdCAmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBJZ2plbiBGZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRXBvc3QgJnF1b3Q7RnJhIG5hdm4mcXVvdDsgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0Vwb3N0ICZxdW90O0VtbmUmcXVvdDsgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aXNrIHRla3N0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2sgbGVua2UnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMZW5rZSAoQnJ1a2VyLW9wcGdpdHQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctU2tqdWx0IEZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUJlcmVnbmV0IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctVW5payBJbnRlZ2VyIChTZXJpZWxsKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy1CcnVrZXIgRGVmaW5lcnQgVGFnZyhVRFQpIGthbGwnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDb21wYW55IERpcmVjdG9yeSBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWwgZ3JlbnNlc25pdHRzZmVsdCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2YWxpZGVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVnZXIgJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0Vwb3N0YWRyZXNzZSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdUZWxlZm9ubnVtbWVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTSZhcmluZzsgYXZrcnlzc2VzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdTYW1zdmFyZXIgdmFubGlnIHV0dHJ5a2snOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnU2Ftc3ZhcmVyIGlra2UgbWVkIHZhbmxpZyB1dHRyeWtrJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdFbiB2ZXJkaSBlciBpa2tlIG9wcGdpdHQgZm9yIGV0ICYjMDM5O24mb3NsYXNoO2R2ZW5kaWcmIzAzOTstZmVsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZW4gdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZXQgdGFsbCBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBlbiBneWxkaWcgdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnVmVubmxnaXN0IHNrcml2IGlubiBlbiBpbnRlZ2VyIHZlcmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIGd5bGRpZyBlcG9zdGFkcmVzc2UgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdFcG9zdGFkcmVzc2VuIGVyIGlra2UgbGlrIHZlcmRpZW4gc2F0dCBpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnVmVubmxpZ3N0IG9wcGdpIGV0IGd5bGRpZyBVUyB0ZWxlZm9ubnVtbWVyIGZvciZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ1Zlbm5saWdzdCBsb2dnIGlubiBmb3IgJmFyaW5nOyBiZW55dHRlIGRldHRlIHNramVtYSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBzZXIgaWtrZSB1dCB0aWwgJmFyaW5nOyB2JmFlbGlnO3JlIGVuIGd5bGRpZyBlcG9zdGFkcmVzc2UhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdWZW5ubGlnc3Qgb3BwZ2kgZW4gdmVyZGkgc29tIGlra2UgZXIgbGVuZ3JlIGVubiAlcyBib2tzdGF2ZXInOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnVmVubmxpZ3N0IG9wcGdpIGVuIHZlcmRpIHNvbSBiZXN0JmFyaW5nO3IgYXYgbWluc3QgJXMgYm9rc3RhdmVyJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVnbiAmYXJpbmc7IGJydWtlIHNvbSBhdmRlbGVyIGkgcmVzdWx0YXRlciBzb20gaGFyIGZsZXJlIHZlcmRpZXInOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0R1IHRyZW5nZXIgJnF1b3Q7JXMmcXVvdDsgcmV0dGlnaGV0ZW4gZm9yIGt1bm5lIHV0ZiZvc2xhc2g7cmUgZGVuIGhhbmRsaW5nZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnQmVrbGFnZXIhIER1IGhhciBpa2tlIG5vayByZXR0aWdoZXRlciBmb3IgJmFyaW5nOyBmJmFyaW5nOyBhZGdhbmcgdGlsIGRlbiBhdmRlbGluZ2VuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsdCByZWtrZWYmb3NsYXNoO2xnZSBvcHBkYXRlcnQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ1NramVtYSBzbGV0dGV0Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmVsdCBzbGV0dGV0JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXNqb24gb3BwZGF0ZXJ0Lic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0R1IG0mYXJpbmc7IGtyeXNzZSBhdiAmcXVvdDslcyZxdW90OyBmb3IgJmFyaW5nOyBmb3J0c2V0dGUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nOyBvcHBnaSBpIGRldCBtaW5zdGUgZW4gbSZhcmluZztsLWFkcmVzc2UhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgc2xldHRlIHNramVtYWV0ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuc2VydGUgdmFsZyBlciBpa2tlIHRpbGdqZW5nZWxpZyBmJm9zbGFzaDtyIGZlbHQtdHlwZSBoYXIgYmxpdHQgc2F0dC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGZWx0IG5hdm5ldCAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWsuIFZlbm5saWdzdCBicnVrIHVuaWtlIGZlbHRuYXZuLCBlbGxlciBzbCZhcmluZzsgYXYga3JhdmV0IHRpbCB1bmlrZSBmZWx0bmF2biBpIFNramVtYWJ5Z2dlciBrb25maWd1cmFzam9uZW4uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGZWx0ZXIgTSZBcmluZzsgbmF2bmVzLCBvbSBkdSBpa2tlIHNsJmFyaW5nO3IgYXYgZGV0dGUgaSBGb3JtIEJ1aWxkZXIga29uZmlndXJhc2pvbmVuLic7CiRsYW5nWydub19maWVsZF9hc3NpZ25lZCddID0gJ0luZ2VuIGZlbHQgdGlsZWduZXQgZm9yICVzJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bSc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuZ2RlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJva3Nlcic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGJva3N0YXZlcic7CiRsYW5nWydvcmRlciddID0gJ1Jla2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3VzcGVzaWZpc2VydF0nOwokbGFuZ1snYWRkZWQnXSA9ICdMYWd0IHRpbCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnT3BwZGF0ZXJ0JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnRlcmluZ3NtdWxpZ2hldGVyIGZvciB1dGRhdGEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZlbGcgZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdWZWxnIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdUaWwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWknOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vdHRha2VyZSc7CiRsYW5nWydmaWVsZHMnXSA9ICdmZWx0ZXInOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG11bGlnZSBmaWxlcic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIG0mYXJpbmc7bCc7CiRsYW5nWydzYXZlJ10gPSAnTGFncmUnOwokbGFuZ1snYWRkJ10gPSAnTGFnZyB0aWwnOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BwZGF0ZXInOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdMYWdyZSBvZyBmb3J0c2V0dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXNqb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ1NramVtYSc7CiRsYW5nWydmb3JtJ10gPSAnU2tqZW1hICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmFzam9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWx0IG4mb3NsYXNoO2R2ZW5kaWctc3RhdHVzIG9wcGRhdGVydCc7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzLiBzdCZvc2xhc2g7cnJlbHNlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRmlsZW5kZWxzZXInOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0xvdmxpZ2UgZmlsdHlwZXInOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdPcHBsYXN0ZXQgZmlsIGVyIGZvciBzdG9yISBNYWtzaW11bSBzdCZvc2xhc2g7cnJlbHNlIGVyOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIHZpbCBpa2tlIGJsaSBsYXN0ZXQgb3BwLiBWZW5ubGlnc3Qgc2pla2sgYXQgZmlsZW5kZWxzZW4gZXIga29ycmVrdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTGFzdCBvcHAnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ1NramVtYSBpbXBvcnRlcnQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ1NramVtYSBpbXBvcnQgZmVpbGV0ISBEZXQgb3Bwc3RvZCBldCBwcm9ibGVtIG1lZCBmb3JtYXR0ZXQgcCZhcmluZzsgWE1MIGZpbGVuLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcmFkZXInOwokbGFuZ1snY29scyddID0gJyVzIGtvbG9ubmVyJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMi10aW1lcnMga2xva2tlJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC10aW1lcnMga2xva2tlJzsKJGxhbmdbJ2hvdXInXSA9ICdUaW1lJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0dCc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuKEFNL1BNKSc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnSW50ZXJ2YWxsOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1Rha2shIERpbiBpbm5zZW5kaW5nIGhhciBibGl0dCBtb3R0YXR0Lic7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcic7CiRsYW5nWydkZWxldGUnXSA9ICdTbGV0dCc7CiRsYW5nWydkYXknXSA9ICdEYWcnOwokbGFuZ1snbW9uJ10gPSAnTSZhcmluZztuZWQnOwokbGFuZ1sneWVhciddID0gJyZBcmluZztyJzsKJGxhbmdbJ25vbmUnXSA9ICcoaW5nZW4pJzsKJGxhbmdbJ2NzcyddID0gJ1N0aWxhcmsgKENTUyknOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBhdmluc3RhbGxlcnQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnNqb24gJXMgaW5zdGFsbGVydC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBvcHBncmFkZXJ0IHRpbCB2ZXJzam9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUaWxiYWtlLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTZW5kIHNramVtYSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdGb3J0c2V0dC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQXZrcnlzc2V0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0lra2UgYXZrcnlzc2V0JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSG92ZWQnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ1NramVtYXZpc25pbmdzIGlubnN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ1NramVtYSBpbm5zZW5kaW5nJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0F2YW5zZXJ0ZSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ01hbCBsYXlvdXQgdmFsZyc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnSW5uc2VuZGluZ3MgbWFsJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgaW50ZWdyYXNqb24nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVyIGVyIGd5bGRpZ2UgaSBkZXR0ZSBmZWx0ZXQuPGVtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0xlZ2cgdGlsIGZsZXJlIHZhbGcnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdTbGV0dCBtYXJrZXJ0ZSB2YWxnJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTGVnZyB0aWwgZmxlcmUgYXZrcnlzbmluZ3Nib2tzZXInOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdTbGV0dCBtYXJrZXJ0ZSBhdmtyeXNuaW5nc2Jva3Nlcic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0xlZ2cgdGlsIGFubmVuIGFkcmVzc2UnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdTbGV0dCBtYXJrZXJ0IGFkcmVzc2UnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGVnZyB0aWwgYW5uZXQgbSZhcmluZztsJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1NsZXR0IG1hcmtlcnRlIG0mYXJpbmc7bCc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ0ZvciBtYW5nZSBlLXBvc3RlciBlciBibGl0dCBnZW5lcmVydCBmcmEgZGluIElQLWFkcmVzc2UuIEFudGktU3BhbSBrb2RlIGhhciBzdG9wcGV0IGxldmVyaW5nZW4uJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01pc3RlbmtlbGlnIHNwYW0gZnJhIElQICVzIGJsZSBzdG9wcGV0Lic7CiRsYW5nWydyZW9yZGVyJ10gPSAnT21zb3J0ZXIgZmVsdGVyJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWZXJkaSBzYXR0OiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnTmVkZW5mb3IgZXIgZW4gbGlzdGUgbWVkIGF0cmlidXR0ZW5lIHNvbSBlciB0aWxnamVuZ2VsaWdlIGZyYSBDYXRhbG9nZXIgbW9kdWxlbi48YnIvPgpEdSBrYW4gdmFsZ2ZyaXR0IHNwZXNpZmlzZXJlIGd5bGRpZ2UgdXR2YWxnLCB2ZXJkaWVyIGVsbGVyIGZsZXJlIHZlcmRpZXIgc29tIHNrYWwgYmVueXR0ZXMgZm9yICZhcmluZzsgZmlsdHJlcmUgbGlzdGVuIG1lZCBlbmhldGVyIHNvbSB2aXNlcyB0aWwgYnJ1a2VyZW4uPGJyLz4KPGJyLz4KPHN0cm9uZz5VdHZhbGc6PC9zdHJvbmc+PGJyLz4KVXR2YWxnKFJhbmdlcykga2FuIHNwZXNpZmlzZXJlcyB2ZWQgJmFyaW5nOyBpbXBsaXNlcmUgZW4gbWluaW11bSBvZyBtYWtzaW11bSB2ZXJkaSB2ZWQgJmFyaW5nOyBiZW55dHRlIGRlbm5lIHN5bnRha3NlbjogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4KPGJyLz4KPHN0cm9uZz5GbGVyZSB2ZXJkaWVyOjwvc3Ryb25nPjxici8+CkZvciAmYXJpbmc7IHNwZXNpZmlzZXJlIGZsZXJlIHZlcmRpZXIgZm9yIGVuIGF0cmlidXR0IGJlbnl0dGVyIGR1IHN5bnRha3NlbiAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPlZlcmRpZXIgZnJhIHNranVsdGUgZmVsdDwvc3Ryb25nPjxici8+CkZvciAmYXJpbmc7IHNwZXNpZmlzZXJlIGVuIHZlcmRpIGZyYSBldCBza2p1bHQgZmVsdCBiZW55dHRlciBkdSBzeW50YWtzZW4geyRmbGRfaWR9PGJyLz4KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnRW4gcmVndWxhciBleHByZXNzaW9uIGZvciAmYXJpbmc7IHRpbGxhdGUgZmlsdHJlcmluZyBhdiBjYXRhbG9nZXIgYXJ0aWtsZXIgZXR0ZXIgbmF2bic7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ0gmb3NsYXNoO3lkZSBwJmFyaW5nOyBmbGVydmFsZ3MgZmVsdGV0JzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIHZhbmxpZyB1dHRyeWtrJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0ZlbHQgaCZvc2xhc2g7eWRlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ00mYXJpbmc7bGthdGFsb2cgZm9yIHV0c2VuZGluZyBhdiBmaWxlcic7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ0JydWtlcmRlZmluZXJ0IFRhZ2cnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1NpZGUgJmFyaW5nOyByZXR1cm5lcmUgdGlsIG1lZCBvcHBsYXN0aW5ncyBsZW5rZW4nOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdJbm5zZW5kdCBtZWQgU2tqZW1hQnlnZ2VyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdPcHBsYXN0aW5ncyBLYXRlZ29yaSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgZGVubmUgZmlsZW4gdGlsIG9wcGxhc3RpbmdzIG1vZHVsZW4nOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlJ10gPSAnVGlsbGF0IG9wcGxhc3RpbmcgJmFyaW5nOyBvdmVyc2tyaXZlIGVrc2lzdGVyZW5kZSBmaWxlcj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlX2xvbmcnXSA9ICdTa2FsIG9wcGxhc3RldCBmaWwgb3ZlcnNrcml2ZSB0aWRsaWdlcmUgb3BwbGFzdGV0IGZpbCBvbSBkZSBoYXIgc2FtbWUgbmF2bj8nOwokbGFuZ1snb3ZlcndyaXRlJ10gPSAnVGlsbGF0ZXIgb3ZlcnNrcml2aW5nJzsKJGxhbmdbJ25vb3ZlcndyaXRlJ10gPSAnSW5nZW4gb3ZlcnNrcml2aW5nJzsKJGxhbmdbJ2ZpbGVfYWxyZWFkeV9leGlzdHMnXSA9ICdGaWxlbiAlcyBla3Npc3RlcmVyIGFsbGVyZWRlLCBvZyBmJmFyaW5nO3IgaWtrZSBvdmVyc2tyaXZlcy4nOwokbGFuZ1sndGl0bGVfZmlsZV9yZW5hbWUnXSA9ICdGaWxuYXZuLW1hbCc7CiRsYW5nWydvcmlnaW5hbF9maWxlX2V4dGVuc2lvbiddID0gJ09yaWdpbmFsIGZpbGVuZGVsc2UgKGlua2x1ZGVydCAmcXVvdDsuJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19maWxlbmFtZSddID0gJ1VuZGVydHJ5a2sgZmlsbmF2biBpIGUtcG9zdCBvZyBza2plbWFlciBzbHV0dGJydWtlcmVuIHZpbCBzZSc7CiRsYW5nWydmaWxlX3JlbmFtZV9oZWxwJ10gPSAnRm9yICZhcmluZzsgZW5kcmUgbmF2biBwJmFyaW5nOyBlbiBmaWwgdmVkIG9wcGxhc3RpbmcsIG9wcHJldHRlciBkdSBtYWxlbiBoZXIuIExhIHN0JmFyaW5nOyB0b210IGZvciAmYXJpbmc7IGJldmFyZSBvcHByaW5uZWxpZ2UgZmlsbmF2bic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdGZWx0Z3J1cHBldGl0dGVsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWFrc2ltdW0gbGVuZ2RlJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQXZrcnlzbmluZ3Nib2tzIGV0aWtldHQnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpb2tuYXBwIGV0aWtldHQnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZlcmRpIG4mYXJpbmc7ciBhdmtyeXNzZXQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmVyZGkgbiZhcmluZztyIGlra2UgYXZrcnlzc2V0JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdBdmtyeXNuaW5nc2Jva3MgZ3J1cHBlIGRldGFsamVyJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1NsZXR0Pyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtWZWxnICZlYWN1dGU7biZxdW90OyBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1V0dmFsZyB2ZXJkaSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdVdHZhbGcgVmlzbmluZ3MgTmF2bic7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1V0dmFsZyBlbW5lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTdGFuZGFyZCB1dHZhbGcnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTdGFuZGFyZCB1dHZhbGcnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTdGFuZGFyZCB1dHZhbGcnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdWYWxnIG5hdm4nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmVyZGkgc2VuZHQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ05lZHRyZWtrcyB2YWxnJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdGbGVydmFsZyB2YWxnJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdNJmFyaW5nO2wgZXBvc3RhZHJlc3NlJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTSZhcmluZztsIEZpbG5hdm4nOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJhIG5hdm4mcXVvdDsgZm9yIGVwb3N0JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdCcnVrIGVua2VsIGVwb3N0IHZlcmlmaXNlcmluZyc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdCcnVrIGVua2VsIGVwb3N0YWRyZXNzZSB2ZXJpZmlzZXJpbmcgKGYuZWtzLiB0aWxsYXQgJnF1b3Q7eEB5JnF1b3Q7IGlzdGVkZXQgZm9yICZhcmluZzsga3JldmUgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJhIGFkcmVzc2UmcXVvdDsgZm9yIGVwb3N0JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRXBvc3QgdGVnbnNldHQga29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdOZWR0cmVray1iYXNlcnRlIGVwb3N0IGRldGFsamVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbG5hdm4nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0Vwb3N0IEVtbmUgbGluamUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRnJhIG5hdm4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdTa2plbWEgc3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnRmVyZGlnIGZvciBhbnZlbmRlbHNlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdJa2tlIGZlcmRpZyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2lkZSAmYXJpbmc7IHZpZGVyZXNlbmRlIHRpbCBldHRlciBza2plbWEgc2VuZHQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1Zlbm5saWdzdCBsZWdnIHRpbCBldCBmZWx0IHRpbCBza2plbWFldCBzJmFyaW5nOyBicnVrZXJlbnMgaW5uc2tyaXZpbmcgYmxpciBiZWhhbmRsZXQuIER1IGthbiAnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdicnVrIGRlbm5lIHNuYXJ2ZWllbic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnU2tqZW1hIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMgJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnU2tqZW1hZmVsdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmllbHQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdWaXMgZmVsdCBhbGlhc2VyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICcmQXJpbmc7IHZlbGdlIGRldHRlIHZpbCB2aXNlIGZlbHQgYWxpYXNlciBuJmFyaW5nO3IgZW4gbGVnZ2VyIHRpbCBlbGxlciByZWRpZ2VyZXIgZXQgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGZWx0IG5hdm4nOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdGZWx0IGFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlva25hcHAgZ3J1cHBlIGRldGFsamVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGZWx0IHR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2ZvciAmYXJpbmc7IGxhZ2UgZXQgc2tqZW1hIGJlaGFuZGxpbmcgZmVsdCc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdMZWdnIHRpbCBueXR0IHNramVtYSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdWaXMgU2tqZW1hIEJ5Z2dlciB2ZXJzam9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ0RldHRlIHZpbCBpbm5rYXBzbGUgZGl0dCB2ZXJzam9uc251bW1lciBmb3IgU2tqZW1hIGJ5Z2dlciBtb2R1bGVuIGkgZW4ga29tbWVudGFyLCBmb3IgJmFyaW5nOyBoamVscGUgaSBmZWlscyZvc2xhc2g7a2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnTGVnZyB0aWwgbnl0dCBmZWx0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1NramVtYSAmcXVvdDtTZW5kJnF1b3Q7IHRla3N0IGZvciBrbmFwcCc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ1Rla3N0IGZvciBrbmFwcCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0xlZ2cgdGlsIGV0dCBKYXZhc2NyaXB0IHRpbCBVdGYmb3NsYXNoO3Iga25hcHBlbiBmb3IgJmFyaW5nOyB1bm5nJmFyaW5nOyBnamVudGF0dGUgaW5uc2VuZGluZ2VyPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnTGVnZyB0aWwgU2lra2VyaGV0cyBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1NramVtYSAmcXVvdDtOZXN0ZSZxdW90OyB0ZWtzdCBmb3Iga25hcHAgKGJydWt0IHAmYXJpbmc7IGZsZXJzaWRlcnMgc2tqZW1hZXIpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdTa2plbWEgJnF1b3Q7Rm9ycmlnZSZxdW90OyB0ZWtzdCBmb3Iga25hcHAgKGJydWt0IHAmYXJpbmc7IGZsZXJzaWRlcnMgc2tqZW1hZXIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGZWx0c2pla2snOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdGZWx0ICZhcmluZzsgc2pla2tlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgZGV0dGUgZmVsdGV0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIGtsYXNzZSBmb3IgZGV0dGUgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzc2UgZm9yIGRldHRlIGZlbHQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ0JydWtlciBkZWZpbmVydCB0YWdnKFVzZXIgRGVmaW5lZCBUYWcvVURUKSAmYXJpbmc7IGthbGxlIGYmb3NsYXNoO3Igc2tqZW1hZXQgdmlzZXMgZiZvc2xhc2g7cnN0ZSBnYW5nIChrYWxsZXMga3VuIGVuIGdhbmcpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCddID0gJ0JydWtlciBEZWZpbmVydGUgVGFnZyhVRFQpICZhcmluZzsga2FsbGUgb3BwIGYmb3NsYXNoO3Igc2tqZW1hIHZpc2VzIChibGlyIGthbGx0IG9wcCBmb3IgaHZlciBzaWRlIGZvciBmbGVyc2lkZS1za2plbWFlciknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICdCcnVrZXJkZWZpbmVydCB0YWdnKFVEVCkgJmFyaW5nOyBrYWxsZSBvcHAgdW5kZXIgc2tqZW1hIHZhbGlkZXJpbmcnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgZm9yICZhcmluZzsgbWVya2UgbiZvc2xhc2g7ZHZlbmRpZ2UgZmVsdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ04mb3NsYXNoO2R2ZW5kaWcnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ0tyZXYgZW4gcmVzcG9ucyBmb3IgZGV0dGUgZmVsdCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnU2tqdWwgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdTa2p1bCBkZXR0ZSBmZWx0ZXRzIG5hdm4gcCZhcmluZzsgc2tqZW1hZXQnOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJ10gPSAnTWFrc2ltYWwgbGVuZ2RlIHAmYXJpbmc7IGZlbHRpbm5ob2xkICgwIGVsbGVyIGJsYW5rIGJldHlyIGluZ2VuIGdyZW5zZSknOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpc2sgdGVrc3QgJmFyaW5nOyB2aXNlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnKFJlZ2V4KSBzamVrayc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQW50YWxsIGxpbmplciAmYXJpbmc7IHZpc2UnOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnU2tyaXZlYmVza3l0dGV0JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdJbmdlbiBzdGFuZGFyZCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1NpZGUgJmFyaW5nOyB2aWRlcmVzZW5kZSB0aWwgZXR0ZXIgZ29ka2plbm5pbmcnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RldHRlIHZhbmxpZ2UgdXR0cnlra2V0IHZpbCBiYXJlIGJsaSBicnVrdCBvbSAmcXVvdDt2YWxpZGVyaW5ncyB0eXBlJnF1b3Q7IGVyIHNhdHQgdGlsIHJlZ2V4LXJlbGF0ZXJ0IHZhbGcuIElua2x1ZGVyIGZ1bGwgUGVybC1zdGlsIHJlZ2V4LCBpbmtsdWRlcnQgc3RhcnQvc3RvcHAgc2xhc2hlciBvZyBmbGFnZyAoZi5la3MuICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnT2JsaWcuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnU2tqdWwgZmVpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnU2tqZW1hIHZpc25pbmdzIHR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0hpbmRyZSBmZWlscyZvc2xhc2g7a2luZyAvIGZlaWwtbWVsZGluZ2VyIGZyYSAmYXJpbmc7IHZpc2VzIHRpbCBicnVrZXJlbi4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFcG9zdCBtYWwnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWFrc2ltdW0gb3BwbGFzdGluZyBmaWxzdCZvc2xhc2g7cnJlbHNlIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnRGVubmUgYmVncmVuc25pbmcgZXIgZXQgdGlsbGVnZyB0aWwgZW5odmVyIGdyZW5zZSBzYXR0IGF2IHBocCBlbGxlciB3ZWJzZXJ2ZXIga29uZmlndXJhc2pvbmVuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZGVzdGluYXRpb24nXSA9ICdLYXRhbG9nIGh2b3IgZmlsZXIgc2thbCBsYWdyZXMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdHb2RramVudGUgZmlsZW5kZWxzZXInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1Nrcml2IGVuIGtvbW1hLXNlcGFyZXJ0IGxpc3RlLCB1dGVsYXR0IHB1bmt0dW0gKGYuZWtzLiAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBNZWxsb21yb20gdmlsIGJsaSBpZ25vcmVydC4gJkFyaW5nOyBsYSBkZXR0ZSB2JmFlbGlnO3JlIHRvbXQgdmlsIHNpIGluZ2VuIHJlc3RyaWtzam9uZXIuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdWaXMgcmVzdHJpa3Nqb25lcj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnVmlzIHN0Jm9zbGFzaDtycmVsc2UgZWxsZXIgZmlsZW5kZWxzZS1yZXN0cmlrc2pvbmVyIHAmYXJpbmc7IG9wcGxhc3RpbmdzZmVsdGV0Pyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnTWFsICZhcmluZzsgYnJ1a2UgZm9yICZhcmluZzsgdmlzZSBza2plbWEnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTaWRlICVzIGF2ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGZWx0ZXQgaGFyIGluZ2VuIGF2YW5zZXJ0ZSB2YWxnLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGVrc3QgJmFyaW5nOyB2aXNlIGZvciB1c3Blc2lmaXNlcnRlIGZlbHQgdmVyZGllcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTXVsaWdnaiZvc2xhc2g7ciByYXNrIGZlbHQtdGlsbGVnZ2luZyBtZWQgbmVkdHJla2sgZm9yIHNramVtYWVyPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ011bGlnZ2omb3NsYXNoO3IgbmVkdHJla2sgZm9yIGh1cnRpZyB0aWxsZWdnaW5nIGF2IGZlbHRlcj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0h1cnRpZy10aWxsZWdnIGF2IGZlbHRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJyZBcmluZzsgaGFrZSBhdiBkZXR0ZSB2aWwga3VuIHRpbGxhdGUgYXQgMTAgZS1wb3N0ZXIgJmFyaW5nOyBibGlyIGdlbmVyZXJ0IGZyYSBlbiBnaXR0IElQIGFkcmVzc2UgKHByIHRpbWUpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdTbCZhcmluZzsgcCZhcmluZzsgcHJpbWl0aXZlIGFudGlzcGFtIGVnZW5za2FwZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdWaXMgRmVsdCBJRGVyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJyZBcmluZzsgaGFrZSBhdiBkZXR0ZSB2aWwgdGlsbGF0ZSB2aXNuaW5nIGF2IGZlbHQgaWRlciB1bmRlciBvcHByZXR0ZWxzZSBlbGxlciByZWRpZ2VyaW5nIGF2IGV0IHNramVtYSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnTGFzdCBvcHAgc2tqZW1hIHNvbSBYTUwgZmlsJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdCZW55dHQgZGV0dGUgc2tqZW1hbmF2bmV0JzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgU2tqZW1hIGltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0Jlbnl0dCBkZXR0ZSBza2plbWEgYWxpYXNldCc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJlciBIVE1MIGVwb3N0Pyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0Z5bGwgdXQgYXV0b21hdGlzaz8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0Z5bGwgdXQgYXV0b21hdGlzayBtZWQgVVJMJiMwMzk7ZW4gdGlsIHNpZGVuIHNvbSBpbm5laG9sZGVyIHNramVtYWV0PyAoZGV0dGUgb3ZlcnN0eXJlciBMZW5rZSB0aWwgbmV0dHN0ZWQgc2lkZSB2YWxnZXQgbmVkZW5mb3IpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYXJkIGxlbmtlIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFyZCBsZW5rZSB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGVua2UgdGlsIG5ldHRzdGVkIHNpZGUnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnRHUga2FuIGJlbnl0dGUgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiBmb3IgJmFyaW5nOyBiZXNreXR0ZSBza2plbWEgaW5uc2VuZGluZ2VyIG9tIGR1IGluc3RhbGxlcmVyIENhcHRjaGEgbW9kdWxlbi4gRm9yIG1lcmUgaW5mb3JtYXNqb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0JydWtlIENhcHRjaGEgZm9yICZhcmluZzsgYmVza3l0dGUgc2tqZW1hIGlubnNlbmRpbmdlcj8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0hhayBhdiBoZXIgZm9yICZhcmluZzsgYmVza3l0dGUgZGl0dCBza2plbWEgbWVkIGVuIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1Zlbm5saWdzdCBiZWtyZWZ0IGF0IGR1IGlra2UgZXIgZXQgc2tyaXB0IHZlZCAmYXJpbmc7IHNrcml2ZSBpbm4gYm9rc3RhdmVuZSBmcmEgYmlsZGV0Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGZWlsIHRla3N0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHRla3N0ZW4gYmxlIGlra2Uga29ycmVrdCBpbm5za3JldmV0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIamVscGV0ZWtzdCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdJa2tlIHNlbmQgdmVyZGllciBmb3IgaWtrZS1hdmtyeXNzZWRlIGJva3Nlcic7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0hhayBhdiBkZW5uZSBvbSBkdSBrdW4gdmlsIGF0IGF2a3J5c3NlZGUgYm9rc2VyIHNrYWwgZ2kgdmVyZGllci4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xlbmtlIGV0aWtldHQnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xlbmtlIG0mYXJpbmc7bCBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdBdmtyeXNzZXQgc29tIHN0YW5kYXJkPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnQmVueXR0IDI0LXRpbWVycyBrbG9ra2U/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0gJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSAnOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9zZXNzZXIgc21hcnR5IHRhZ2dlciBpbm5pIGZlbHRlcj8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JhZGVyIChtZXJrOiBkZXR0ZSBrYW4gYmxpIG92ZXJzdHlydCBhdiBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdLb2xvbm5lciAobWVyazogZGV0dGUga2FuIGJsaSBvdmVyc3R5cnQgYXYgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdIb3ZlZCBTa2plbWEgRGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ1N0YW5kYXJkIGVyIGJsYW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ1N0YW5kYXJkIGVyIGJsYW5rIChmamVybiBhdmhha2luZyBmb3IgJmFyaW5nOyBiZW55dHRlIGRhZ2VucyBkYXRvIHNvbSBzdGFuZGFyZCknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ1ZpcyBJbm5sb2dnaW5nc25hdm4obG9naW4gbmFtZSk/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ1ZpcyBicnVrZXJlbnMgZm9ybmF2bj8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdWaXMgYnJ1a2VyZW5zIGV0dGVybmF2bj8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdCZWdyZW5zIGJydWtlcmxpc3RlbiB0aWwgYnJ1a2VyZSBpIGVuIHNwZXNpZmlrIGdydXBwZSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdLcnlwdGVyIGRhdGEgbGFncmV0IGkgZGF0YWJhc2VuJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdTZXJ0aWZpa2F0IGZvciBrcnlwZXRlcmluZyBhdiBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1Bhc3NvcmRmcmFzZSBlbGxlciBzdGkgdGlsIGZpbCBzb20gaW5uZWhvbGRlciBwYXNzb3JkZnJhc2UuIChPbSBPcGVuU1NMIGJlbnl0dGVzIGVyIGRldHRlIHBhc3NvcmRmcmFzZW4gZm9yIHByaXZhdG4mb3NsYXNoO2trZWxlbiknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnU2xhZGQgc29ydGVyaW5nc2ZlbHRlcj8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRuJm9zbGFzaDtra2VsICZhcmluZzsgYmVueXR0ZSBmb3IgJmFyaW5nOyBrcnlwdGVyZSBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJ10gPSAnRGV0dGUgc2xhZGRlciBzb3J0ZXJpbmdzZmVsdGVuZSwgbWVuIGxhciBkZSBmJm9zbGFzaDtyc3RlIGYmYXJpbmc7IGJva3N0YXZlbmUgdiZhZWxpZztyZSB1a3J5cHRlcnRlLCBkZXR0ZSBnaXIgZW4gcyZhcmluZztyYmFyaGV0LCBtZW4gZm9yIGRlIGZsZXN0ZSBicnVrZXJlIGVyIGRldHRlIGVuIGFrc2VwdGFiZWwgbWlkZGVsdmVpIG1lbGxvbSBzaWtrZXJoZXQgb2cgbXVsaWdoZXRlbiB0aWwgJmFyaW5nOyBzb3J0ZXJlIHBvc3Rlci4gU29ydGVyaW5nZW4gYmxpciBzJmFyaW5nO25uIG9tdHJlbnQsIG1lbiBmb3JibGlyIGdhbnNrZSBnb2QuIE9tIGR1IGlra2UgYmVueXR0ZXIgZGV0dGUgdmFsZ2V0IHMmYXJpbmc7IHZpbCBzb3J0ZXJpbmdzZmVsdGVyIGJsaSBsYWdyZXQgaSBrbGFydGVrc3QuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnTGFncmluZ3NrcnlwdGVyaW5nIGlra2UgdGlsZ2plbmdlbGlnJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnVmVubmxpZ3N0IGluc3RhbGxlciBPcGVuU1NMIG1vZHVsZW4gZWxsZXIgbWNyeXB0LXN0Jm9zbGFzaDt0dGUgb20gZHUgJm9zbGFzaDtuc2tlciAmYXJpbmc7IGJlbnl0dGUgZGF0YWJhc2VrcnlwdGVyaW5nLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdLb250cm9sbGVyIGF0IGR1IGhhciBDVVJMIHN0Jm9zbGFzaDt0dGUgYWt0aXYgaSBkaW4gUEhQIGluc3RhbGxhc2pvbi4gU2UgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnS2omb3NsYXNoO3IgaSBNTEUtbW9kdXMnOwokbGFuZ1sndGl0bGVfbWxlX3ZlcnNpb25fbG9uZyddID0gJ0VuZHJpbmdlci9zdCZvc2xhc2g7dHRlIGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIElra2UgaGFrIGF2IGZvciBkZXR0ZSBvbSBkdSBpa2tlIGtqJm9zbGFzaDtyZXIgTUxFIHZlcnNqb25lbi4nOwokbGFuZ1sndGl0bGVfZW5zdXJlX2NlcnRfa2V5X21hdGNoJ10gPSAnViZhZWxpZztyIHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2ZWxnZXIgZGVuIHByaXZhdGUgbiZvc2xhc2g7a2tlbGVuIHNvbSB0aWxoJm9zbGFzaDtyZXIgc2VydGlmaWthdGV0IGR1IGJlbnl0dGVyIGZvciBrcnlwdGVyaW5nZW4hJzsKJGxhbmdbJ2Nob29zZV9jcnlwdCddID0gJ0tyeXB0ZXJpbmdzYmlibGlvdGVrJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0hhayBhdiBkZW5uZSBmb3IgJmFyaW5nOyBrcnlwdGVyZSBkZSBsYWdyZWRlIGRhdGEuIERldHRlIGdqJm9zbGFzaDtyIGRldCBtZXIgdmFuc2tlbGlnIChtZW4gaWtrZSB1bXVsaWcpIGZvciBoYWNrZXJlICZhcmluZzsgbGVzZSBpbmZvcm1hc2pvbmVuLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ1ZhbGdlbmUgbmVkZW5mb3IgZXIga3VuIGd5bGRpZ2Ugb20gZHUgYmVueXR0ZXIgT3BlblNTTCBFbmNyeXB0aW9uIGJpYmxpb3Rla2V0JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ0tyeXB0ZXJpbmdzYmlibGlvdGVrJzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdPcGVuU1NMIGJpYmxpb3Rlayc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IGJpYmxpb3Rlayc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ0Zyb250ZW5kIFVzZXIgdGlsa29ibGluZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ1Zlbm5saWdzdCBpbnN0YWxsZXIgRnJvbnRlbmQgVXNlciBtb2R1bGVuIGZvciAmYXJpbmc7IGtvYmxlIGV0IHNramVtYSBvZyBkZXRzIGRhdGEgdGlsIGVuIHNwZXNpZmlrIGJydWtlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnSGFrIGF2IGRlbm5lIGZvciAmYXJpbmc7IGwmYXJpbmc7c2UgZnJvbnQtZW5kIHRpbGdhbmcgdGlsIGRhdGEgaSBkZXR0ZSBza2plbWEgdGlsIGRlbiBpbm5sb2dnZWRlIGZyb250LWVuZCBicnVrZXJlbi4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0tyeXB0ZXJpbmcnOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRWtzcG9ydGVyZSBza2plbWFyZWZmZXJhbnNlIHRpbCBVRFQgc29tICRwYXJhbXNbJiMwMzk7Rk9STSYjMDM5O10/IChpa2tlIGdqJm9zbGFzaDtyIGRldHRlIG9tIGR1IHNrYWwga2omb3NsYXNoO3JlICBwcmludF9yKCRwYXJhbXMpICknOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdIZWxlIG5ldHRhZHJlc3NlbiwgaW5rbHVkZXJ0IHByb3Rva29sbGVuIG9nIGJhbmUgKGYuZWtzLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdTa2plbWFpbm5zZW5kaW5ncyBVUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnU2tqZW1hIG1ldG9kZSc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnS29ibGUgZmVsdGV0ICZxdW90OyVzJnF1b3Q7IHRpbCBza2plbWFpbm5zZW5kaW5ncyB2YXJpYWJlbGVuJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdZdHRlcmxpZ2VyZSBpbm5zZW5kaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWxfaGVscCddID0gJ05vZSAmYXJpbmc7IGJsaSBsYWd0IHRpbCBpbm5zZW5kaW5ncyBwYXlsb2FkIGkgVVJMLWtvZGV0IGZvcm0gKEVrc2VtcGVsICZxdW90O3VzZXI9c3RldmUram9icyZhbXA7ZW1wbG95ZWVfbnVtYmVyPTEpJzsKJGxhbmdbJ3RpdGxlX2luY2x1ZGVfaW5fc3VibWlzc2lvbiddID0gJ0lua2x1ZGVyIGZlbHRldCBpIGlubnNlbmRpbmdlbic7CiRsYW5nWyd0aXRsZV9kYXRlX29yZGVyJ10gPSAnUmVra2VmJm9zbGFzaDtsZ2UgZm9yIGRhdG8ga29tcG9uZW50LWZlbHRldCAoZm9yIGlubnNrcml2aW5nKSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdEYXRhIHZpbCBibGkgbGFncmV0IGkgZXQgWE1MIGZvcm1hdCBpIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJlbGxlbi4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRmVpbCEgRW50ZW4gc2tqZW1hZXQgaGFyIGluZ2VuIGZvcm1fYnVpbGRlciBkaXNwb3Npc2pvbiwgZWxsZXIgZGV0IGZlaWxldCBpIGxhc3RpbmcgKHBnYSBtaW5uZSBwcm9ibGVtZXI/KSc7CiRsYW5nWydoZWxwX2RhdGVfb3JkZXInXSA9ICdCZW55dHQgJnF1b3Q7bSZxdW90OyBmb3IgbSZhcmluZztuZWQsICZxdW90O2QmcXVvdDsgZm9yIGRhZywgb2cgJnF1b3Q7eSZxdW90OyBmb3IgJmFyaW5nO3IuIFNraWxsIGVsZW1lbnRlbmUgbWVkIGJpbmRlc3RyZWsuJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdLdW4gaSBncnVwcGUgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnVmlzIHRpbCBicnVrZXI/JzsKJGxhbmdbJ3RpdGxlX3VzZV9yYW5kb21fZ2VuZXJhdG9yJ10gPSAnQmVueXR0IHRpbGZlbGRpZyBudW1tZXJnZW5lcmF0b3IgaSBzdGVkZXQgZm9yIHN0YXRpc2snOwokbGFuZ1sndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZSddID0gJ0h2b3IgbWFuZ2UgbnVtbWVyIHNrYWwgZ2VuZXJlcmVzIGkgcHJvc2Vzc2VuJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0RldHRlIGZlbHRldCBrYW4gZHUgbGEgdiZhZWxpZztyZSBibGFua3QnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVyIGZvciBtYWwnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVGlsZ2plbmdlbGlnZSB2YXJpYWJsZXInOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJlbCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdG8gZm9yIGlubmxldmVyaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkcmVzc2UgdGlsIHBlcnNvbmVuIHNvbSBicnVrZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnTGluayB0aWwgc2lkZW4gc29tIGlubmVob2xkZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2pvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYnVsYXIgdGVnbic7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKERldHRlIGZlbHRldCBibGlyIGlnbm9yZXJ0IGh2aXMgZHUgYnJ1a2VyIE9wcGxhc3RpbmcgbW9kdWxlbiB0aWwgJmFyaW5nOyBiZWhhbmRsZSBmaWxlciknOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlbmF0aXZlIGZlbHRuYXZuIGthbiBiZW55dHRlcyB1dGJ5dHRiYXJ0IChzcGVzaWVsdCBueXR0aWcgb20gU21hcnR5IHByb3Rlc3RlcmVyIHAmYXJpbmc7IGJva3N0YXZlciB1dGVuZm9yIEFTQ0lJIDMyLTEyNikuIDxiciAvPkFuZHJlIGZlbHQgdmlsIGJsaSB0aWxnamVuZ2VsaWdlIG4mYXJpbmc7ciBkdSBsZWdnZXIgZGVtIHRpbCBza2plbWFldC4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmc6PGJyIC8+PHRhYmxlPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPgo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlIDxhIGhyZWY9JiMwMzk7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCYjMDM5OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdGVyaW5ncyBoamVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFiZWwnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmVsdCByZXByZXNlbnRlcnQnOwokbGFuZ1snaGVscF9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ1NwZXNpZmlzZXIgZW4gZmlsIGkgRm9ybUJ1aWxkZXIvdGVtcGxhdGVzLyBtYXBwZW4uIERldHRlIGZlbHRldCBibGlyIGlnbm9yZXJ0IG9tIGRlIGJlbnl0dGVyIFRYVCBzb20gZGluIGZpbHR5cGUuJzsKJGxhbmdbJ2hlbHBfcnRmX3RlbXBsYXRlX3R5cGUnXSA9ICdCYXNpYzogQnJ1ayB0ZWtzdGZlbHRldCBuZWRlbmZvciB0aWwgbGF5b3V0IGZlbHRuYXZuZW5lL3ZlcmRpZXIgaSAmZWFjdXRlO24gZW5rZWx0IGJsb2trIDxiciAvPi4KQXZhbnNlcnQ6IEFuZ2kgU21hcnR5IHZhcmlhYmxlciBpIFJURiBtYWxmaWwgc29tIGR1IHZpbGxlIGdqb3J0IG5lZGVuZm9yLCBtZW4gb3JkbmUgZGVtIHNsaWsgZHUgdmlsIG9nIGxlZ2dlIHRpbCBmb3JtYXRlcmluZyA8YnIgLz4uCkR1IGthbiBmb3J0c2F0dCBicnVrZSUlIEhFQURFUiUlIG9nJSVGT09URVIlJSBzZWtzam9uZXIgaSBSVEYtZmlsZW4uJzsKJGxhbmdbJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB2aWwgZGV0dGUgdiZhZWxpZztyZSB1bWlkZGVsYmFydCBldHRlciBIZWFkZXIgTWFsLiA8YnIgLz4KRm9yIFJURiwgdmlsIGRlbm5lIGVyc3RhdHRlJSVGSUVMRFMlJSBzdHJlbmcgaSBtYWxmaWxlbiBodmlzIFJURiBUZW1wbGF0ZSBUeXBlIGVyIHNhdHQgdGlsICZxdW90O0Jhc2ljJnF1b3Q7LiA8YnIgLz4KRGV0dGUgZmVsdGV0IHZpbCBibGkgaWdub3JlcnQgaHZpcyBkdSBicnVrZXIgJnF1b3Q7UlRGJnF1b3Q7IHNvbSBmaWx0eXBlIG9nICZxdW90O0FkdmFuY2VkJnF1b3Q7IHNvbSBSVEYgbWFsdHlwZS4nOwokbGFuZ1snaGVscF9maWxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHZpbCBkZXR0ZSB2JmFlbGlnO3JlIHBsYXNzZXJ0IHAmYXJpbmc7IHRvcHBlbiBhdiBmaWxlbi4gRm9yIFJURiwgdmlsIGRlbm5lIGVyc3RhdHRlJSVIRUFERVIlJSBzdHJlbmcgaSBtYWxlbiBmaWxlbi4nOwokbGFuZ1snaGVscF9maWxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHZpbCBkZW5uZSBibGkgcGxhc3NlcnQgcCZhcmluZzsgYnVubmVuIGF2IGZpbGVuLiBGb3IgUlRGLCB2aWwgZGVubmUgZXJzdGF0dGUlJUZPT1RFUiUlIHN0cmVuZyBpIG1hbGZpbGVuLic7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsYmFrZSB0aWwgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdMYWcgZWtzZW1wZWxtYWwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnT3BwcmV0dCBFa3NlbXBlbCBIVE1MLWVwb3N0IG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ09wcHJldHQgRWtzZW1wZWwgSGVhZGVyIG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ09wcHJldHQgRWtzZW1wZWwgRm9vdGVyIG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0xhZyBla3NlbXBlbCBvdmVyc2tyaWZ0JzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2V0IHRhYnVsYXRvciB0ZWduJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdNYWwgZm9yICZlYWN1dGU7biBsaW5qZSBhdiB1dGRhdGEgZmlsZW4nOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdNYWwgZm9yIGhvZGV0IHAmYXJpbmc7IHV0ZGF0YSBmaWxlbic7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ01hbCBmb3IgYnVubnRla3N0ZW4gcCZhcmluZzsgdXRkYXRhIGZpbGVuJzsKJGxhbmdbJ3RpdGxlX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnTWFsIFJURiBmaWwgJmFyaW5nOyBiZW55dHRlJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnTWFsIGZvciB1dGRhdGEnOwokbGFuZ1sndGl0bGVfZmlsZV90eXBlJ10gPSAnVmVsZyBlbiBmaWx0eXBlICZhcmluZzsgYmVueXR0ZSc7CiRsYW5nWyd0aXRsZV9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ1ZlbGcgZW4gUlRGIG1hbHR5cGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ0xpbmsgJmFyaW5nOyBrbGlra2UgZm9yIHNramVtYSBiZWtyZWZ0ZWxzZSc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZlcmRpIChzZSBBdmFuc2VydCBmbGlrZW4gb20gZHUgYmVueXR0ZXIgU21hcnR5IHRhZ2dlciknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRvIGZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnQnJ1a2UgV1lTSVdZRyByZWRpZ2VyZXIgZm9yIHRla3N0IG9tciZhcmluZztkZXQ/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnT3BwZiZvc2xhc2g7cnNlbCBmb3IgU2tqZW1hIElubnNlbmRpbmcnOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ0V0aWtldHQgZm9yIElubnNlbmRpbmdza25hcHBlbic7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRlcmJhcnQgZmVsdCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdEZW5uZSBzaWRlbiBsYXIgZGVnIHRpbHBhc3NlIFNramVtYSBJbm5zZW5kaW5nLiBEZXQgYmVzdGVtbWVyIGlra2UgaHZhIFNramVtYSBCeWdnZXIgZ2omb3NsYXNoO3IgbWVkIGRlIGlubnNlbmR0ZSBkYXRhLiBEZXR0ZSBrYW4gZHUgc2V0dGUgb3BwIHZlZCAmYXJpbmc7IGxlZ2dlIHRpbCAmcXVvdDtEaXNwb3Npc2pvbiZxdW90OyhnZW15dHQpIGZlbHRlciB0aWwgZGl0dCBza2plbWEuJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICcmQXJpbmc7cnNpbnRlcnZhbGwgc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICcmQXJpbmc7cnNpbnRlcnZhbGwgc2x1dHQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnU3RhbmRhcmQgJmFyaW5nO3InOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0dCB0aWwgLTEgZm9yIGF0IHN0YW5kYXJkICZhcmluZztyIHNrYWwgYmxpIG4mYXJpbmc7diZhZWxpZztyZW5kZSAmYXJpbmc7ciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0V0dGVyIHNramVtYWV0IGVyIHNlbmR0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnMgc29tIHNrYWwgdmlzZXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICdEYXRvIGlubnNlbmR0JzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdEYXRvIGdvZGtqZW50IChhdiBhZG1pbiknOwokbGFuZ1sndGl0bGVfdXNlcl9hcHByb3ZlZCddID0gJ0RhdG8gZ29ka2plbnQgKGF2IGlubnNlbmRlciknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnVmlzICZxdW90O0lubnNlbmRpbmdzIG1hbCZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnT21kaXJpZ2VyIHRpbCBuZXR0c2lkZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ0Rlbm5lIG1hbGVuIGVyIGZvciBkZXQgc29tIHNrYWwgdmlzZXMgdGlsIGJydWtlcmVuIGV0dGVyIGV0IHNramVtYSBlciBpbm5zZW5kdC4gRGVubmUgbWFsZW4gaGFyIGluZ2VuIHZpcmtuaW5nIHAmYXJpbmc7IGVwb3N0IHNvbSBnZW5lcmVyZXMgZWxsZXIgYW5kcmUgc2tqZW1hZ2VteXR0ZXIgIC0tIGR1IHNldHRlciBkZSBtYWxlbmUgKGh2b3IgZGV0IGVyIHJlbGV2YW50KSBpICZxdW90O2F2YW5zZXJ0JnF1b3Q7IGZsaWtlbiBwJmFyaW5nOyBkaXNzZSBnZW15dHRlbmVzIGZlbHRlci4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ00mYXJpbmc7bCBTaWRlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ0tyZXYgRmVsdG5hdm4nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdLcmV2IGF0IGZlbHRlciBza2FsIGhhIGV0dCBuYXZuPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ0tyZXYgdW5pa2UgZmVsbmF2bic7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnS3JldiBhdCBmZWx0ZXIgc2thbCBoYSB1bmlrZSBmZWx0bmF2bj8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnT21zb3J0ZXIgZmVsdGVyJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYXN0IG1hbCc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdMZWdnIHRpbCBLbmFwcCB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdTbGV0dCBLbmFwcCB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hqZWxwZXRla3N0ICZhcmluZzsgdmlzZSBmb3IgZGV0dGUgZmVsdGV0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ZvcnRvbGsgdmFyaWFibGVyIHRpbCAmYXJpbmc7IHYmYWVsaWc7cmUgbnVtbWVyIGVsbGVyIHN0cmVuZ2VyJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnVG9sa25pbmdzcmVra2VyZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdPbSBtZXIgZW5uIGV0IEJlcmVnbmV0IGZlbHQgZWtzaXN0ZXJlciwgdmlsIGRlIGJsaSBiZXJlZ25ldCBmcmEgZGV0IGxhdmVzdGUgcmVra2VmJm9zbGFzaDtsZ2VudW1tZXJldCB0aWwgZGV0IGgmb3NsYXNoO3llc3RlIHJla2tlZiZvc2xhc2g7bGdlbnVtbWVyZXQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJ10gPSAnU3RyZW5nIChpbmdlbiBtZWxsb21yb20gbWVsbG9tIGZlbHRlcik/JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWZXJkaSAmYXJpbmc7IGJlcmVnbmUnOwokbGFuZ1sndGl0bGVfY29tcHV0ZSddID0gJ0JlcmVnbmVkZS9QSFAnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyZW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1tZXJpc2snOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdWaXMgc2tqZW1hIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ01lZCBJbmxpbmUgbWVuZXMgYXQgZW5odmVyIG9wcGYmb3NsYXNoO2xnaW5nIGVyc3RhdHRlciB7Y21zX21vZHVsZX0gdGFnZ2VuLCBub24taW5saW5lIGVyc3RhdHRlciB7Y29udGVudH0gdGFnZ2VuLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnU3RhbmRhcmQgdmVyZGkgZm9yIGZlbHQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ3Qmb3NsYXNoO20gc3RhbmRhcmQgdmVkIGtsaWtrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdIYWsgYXYgZGVubmUgb20gZHUgdmlsIGF0IHN0YW5kYXJkIHZlcmRpIHNrYWwgZmplcm5lcyBuJmFyaW5nO3IgYnJ1a2VyZW4ga2xpa2tlciBpIGRldHRlIGZlbHRldC4gU2lkZW4gZGV0dGUgYmVueXR0ZXIgZW4gamF2YXNrcmlwdCBzdHJpbmcgc2FtbWVubGlnbmluZyB2aWwgZGV0dGUgZmVpbGUgb20gZHUgc2V0dGVyIGVua2xlIGFuZiZvc2xhc2g7cnNlbHN0ZWduIGkgZGluIHN0YW5kYXJkdGVrc3QuIEFuZHJlIGlra2UtamF2YXNrcmlwdCBlZ25lZGUgdGVnbiBrYW4gb2dzJmFyaW5nOyBmJmFyaW5nOyBkZXR0ZSB0aWwgJmFyaW5nOyBmZWlsZS4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdTbGV0dCBvcHBsYXN0ZWRlIGZpbGVyIGZyYSBzZXJ2ZXJlbiBldHRlciBwcm9zZXNzZXJpbmcgKGVwb3N0IGRpc3Bvc2lzam9uZXIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmZWx0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ0dqJm9zbGFzaDtyIGRldHRlIHRpbCBkZXQgZnVsbHN0ZW5kaWdlIGphdmFza3JpZnB0a2FsbGV0LCBpbmtsdWRlcnQgaGVuZGVsc2VuIGR1IHZpbCBmYW5nZSwgZi5la3MuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnU2tqZW1haW5uc2VuZGluZ3MgamF2YXNrcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnR2omb3NsYXNoO3IgZGV0dGUgdGlsIGRldCBmdWxsc3RlbmRpZ2UgamF2YXNrcmlmcHRrYWxsZXQsIGlua2x1ZGVydCBoZW5kZWxzZW4gZHUgdmlsIGZhbmdlLCBmLmVrcy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+RGV0dGUgdmlsIHRyb2xpZyBpa2tlIGZ1bmdlcmUgZ29kdCBvbSBkdSBiZW55dHRlciAmcXVvdDtTaWtrZWhldHNrcmlwdCZxdW90OyBvcHNqb25lbiBvdmVuZm9yLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0lra2Ugc2V0dCBlbiB0aWxmZWxkaWcgYWRyZXNzZSBoZXIgLS0gbWFuZ2UgSVNQZXIgdmlsbDxiciAvPmlra2UgbGV2ZXJlIGVwb3N0ZW4gb20gZHUgYmVueXR0ZXIgZXQgYW5uZXQgZG9tZW5lbmF2biBlbm4gZGl0dCBmYWt0aXNrZTxiciAvPnZlcnRzbmF2biAoZi5la3MuIGJlbnl0dCBub2Ugc29tIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ0JlaG92IGZvciBmbGVyZSB0ZWx0dHlwZXI/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdGb3IgbWFuZ2UgZm9ydmlycmVuZGUgZmVsdHR5cGVyPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdCeXR0IHRpbCBhdmFuc2VydCBtb2R1cyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ0J5dHQgdGlsIGVua2VsIG1vZHVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0thdGFsb2cgJmFyaW5nOyBsYWdyZSBmaWxlbiBpJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnRGV0dGUgbSZhcmluZzsgdiZhZWxpZztyZSBlbiBrYXRhbG9nIHNvbSB3ZWJzZXJ2ZXJlbiBoYXIgcmV0dGlnaGV0ZXIgdGlsICZhcmluZzsgc2tyaXZlIGkuIDxiciAvPgpDaG1vZCBkZW5uZSB0aWwgNzc3IGh2aXMgZHUgaGFyIHByb2JsZW1lci9lciBpIHR2aWwuIDxiciAvPgpTamVrayBvZ3MmYXJpbmc7IGZvciAmYXJpbmc7IHNlIGF0IGR1IGlra2UgaGFyIFBIUCBrYXRhbG9nIHJlc3RyaWtzam9uZXIuIDxiciAvPgpEZXJzb20gZmVsdGV0IGVyIHRvbXQsIHZpbCBkZXR0ZSBiZW55dHRlIHN0YW5kYXJkIHVwbG9hZHMga2F0YWxvZ2VuICgkIGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdKS4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ055IGxpbmplL0xpbmplc2tpZnQoTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4pIGVyc3RhdG5pbmdzdGVnbic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMYSBkZXR0ZSB2JmFlbGlnO3JlIGJsYW5rdCBmb3IgJmFyaW5nOyB0aWxsYXRlIE55IGxpbmplL0xpbmplc2tpZnQgaSByZXN1bHRhdHZpc25pbmdlbic7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBicnVraWVyZW4gZW4ga29waSBhdiBpbm5zZW5kaW5nZW4/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdFdGlrZXR0IGZvciBhdmtyeXNzbmluZ3Nib2tzIChvbSBicnVrZXJlbiB2ZWxnZXIpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZWcgZW4ga29waSBhdiBza2plbWFldCc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnVGlsbGF0IEVtbmUoc3ViamVjdCkgJmFyaW5nOyBibGkgb3ZlcnN0eXJ0Pyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdUaWxsYXQgJiMwMzk7RXBvc3QgJnF1b3Q7U3ViamVjdCZxdW90OyBmZWx0ZXImIzAzOTsgJmFyaW5nOyBvdmVyc3R5cmUgRW1uZShzdWJqZWN0KSBzcGVzaWZpc2VydCBpIG5ldHJla2tzdmFsZ2V0Lic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0xlbmdkZSAmYXJpbmc7IHZpc2UnOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdNaW5pbXVtIGxlbmdkZSBwJmFyaW5nOyBzdmFyJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdTa2p1bCBpbm5kYXRhJzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1ZpcyBzeW1ib2xlciBpIHN0ZWRldCBmb3IgdGVrc3QgbiZhcmluZztyIGJydWtlciBza3JpdmVyIHBhc3NvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc29yZCBzYW1zdmFyZXIgaWtrZSBtZWQgJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdUaWxiYWtlIHRpbCBGb3JtQnVpbGRlciBob3ZlZHNpZGVuJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnSHZpbGtlIGUtcG9zdCBob2RlciBiJm9zbGFzaDtyIGRldHRlIGlubmRhdGFmZWx0IGZ5bGxlIHV0Pyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnSWtrZSBnb2R0YSBtZWxsb21yb20gc29tIGd5bGRpZyBzdmFyJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ09tIGV0IGZlbHQgZXIgcCZhcmluZztrcmV2ZCwgdmlsIGF2a3J5c3NpbmcgYXYgZGV0dGUgdmFsZyBrcmV2ZSBhdCBmb2xrIHNrcml2ZXIgaW5uIGFsZmFudW1tZXJpc2tlIGJva3N0YXZlciBvZyBpa2tlIGJhcmUgbWVsbG9tcm9tJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ0R1IG0mYXJpbmc7IGtsaWtrZSBlbiBhdiAmcXVvdDtsYWdyZSZxdW90Oy1rbmFwcGVuZSBmb3IgJmFyaW5nOyBnaiZvc2xhc2g7cmUgZGluIG55ZSBmZWx0cmVra2VmJm9zbGFzaDtsZ2UgcGVybWFuZW50Lic7CiRsYW5nWyd0aXRsZV9odG1sNSddID0gJ0JydWsgSFRNTDUgcGxhc3Nob2xkZXJ0ZWtzdCBpIHN0ZWRldCBmb3IgSmF2YXNjcmlwdCc7CiRsYW5nWydlcnJvcl9Db21wYW55RGlyZWN0b3J5X21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlbiBlciBpa2tlIHRpbGdqZW5nZWxpZyEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnQWxkcmknOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2kgYnJ1a2VyZW4gZXQgdmFsZyAoYXZrcnlzc25pbmdzYm9rcyknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0FsbHRpZCc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0ZyYSZxdW90OyBlLXBvc3RhZHJlc3NlJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O1N2YXItdGlsJnF1b3Q7IGUtcG9zdGFkcmVzc2UnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdCJmFyaW5nO2RlICZxdW90O0ZyYSZxdW90OyBvZyAmcXVvdDtTdmFyLXRpbCZxdW90OyBlLXBvc3RhZHJlc3NlbmUnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnTmVkdHJla2snOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnVmFsZ2xpc3RlIChlbmtlbHQpJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ10gPSAnVmFsZ2xpc3RlIChmbGVyZSknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpb2tuYXBwZ3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZSddID0gJ01lcms6IFV0ZGF0YSB2aWwgdiZhZWxpZztyZSBwJmFyaW5nOyBmb3JtZW48YnIvPiZxdW90O2Zpcm1hbmF2biZxdW90Oz0+JnF1b3Q7dmVyZGkmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnVmVsZyBlbiBrYXRlZ29yaSAoZmxlcmUpJzsKJGxhbmdbJ3RpdGxlX3BpY2tfZmllbGRkZWYnXSA9ICdWZWxnIGV0IGZlbHQgRGVmaW5pc2pvbnN2ZXJkaSAoZW5rZWwpIDxlbT52YWxnZnJpdHQ8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ1ZlbGcgYnJ1a2VyLWlubmRhdGEnOwokbGFuZ1sndGl0bGVfc2VlX2Fsc29fdWR0J10gPSAnKFRhIG9ncyZhcmluZzsgZW4gdGl0dCBwJmFyaW5nOyBTa2plbWFpbm5zZW5kaW5nc2ZhbmVuIG9tIGR1ICZvc2xhc2g7bnNrZXIgJmFyaW5nOyBzZXR0ZSBlbiBVRFQgZm9yIHNramVtYXZhbGlkZXJpbmcpJzsKJGxhbmdbJ3RpdGxlX3llYXJfZW5kX21lc3NhZ2UnXSA9ICdTbHV0dCAmYXJpbmc7cic7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpYyddID0gJ1NtYXJ0eSBkYXRhIGVsbGVyIGxvZ2lrayBzb20gZXIgbWVudCBmb3IgJmFyaW5nOyBibGkgc2VuZHQgbWVkIGRldHRlIGZlbHRldCc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAnS2FuIHYmYWVsaWc7cmUgc21hcnR5ZGF0YSwgamF2YXNrcmlwdCBlbGxlciBub2UgYW5uZW4gZGF0YSBkdSB2aWwgc2VuZGUgc2FtbWVuIG1lZCBkZXR0ZSBmZWx0ZXQuPGJyIC8+RyZhcmluZztyIGdqZW5ub20gc21hcnR5IGtvbXBpbGVyZXJlbiwgcyZhcmluZzsgaHVzayAmYXJpbmc7IGJlbnl0dGV7bGl0ZXJhbH17L2xpdGVyYWx9IHRhZ2dlciBzYW1tZW4gbWVkIDxzY3JpcHQ+PC9zY3JpcHQ+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdJbmtsdWRlciBldGlrZXR0ZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnJkFyaW5nOyBha3RpdmVyZSBkZXR0ZSBpbmtsdWRlcmVyIGV0aWtldHRlciBpIHV0ZGF0YS4gRWtzZW1wZWwgLSBldGlrZXR0OiB2ZXJkaSxldGlrZXR0MjogdmVyZGkyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnTGVuayBkZXR0ZSBmZWx0IHRpbCBkZXRzIGV0dGVyZiZvc2xhc2g7bGdlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9zaWJsaW5nc19oZWxwJ10gPSAnTmVkdHJla2tzbGlzdGUgbGlzdGVyIGFsbGUgZXR0ZXJmJm9zbGFzaDtsZ2VyZSBhdiBkZXR0ZSBmZWx0IG9nIHRpbGxhdGVyIGRlZyAmYXJpbmc7IGxlbmtlIGRldHRlIGZlbHRldCB0aWwgZW4gYXYgZGV0cyBldHRlcmYmb3NsYXNoO2xnZXJlLiBEZXR0ZSBnaiZvc2xhc2g7ciBkZXQgbXVsaWcgJmFyaW5nOyBrb250cm9sbGVyZSBkZXR0ZSBmZWx0ZXQgbWVkIHZhbGd0ZSBldHRlcmYmb3NsYXNoO2xnZXIga29udHJvbGxlci4nOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnMnXSA9ICdTa2p1bCBrb250cm9sbGtuYXBwZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddID0gJ1NranVsZXIga29udHJvbGxrbmFwcGVyIGZvciBkZXR0ZSBmZWx0IHAmYXJpbmc7IGZyb25lbmQnOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ01lcmsnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJyZBcmluZzsgZW5kcmUgbm9lbiBhdiBkZSBvdmVubmV2bnRlIGZlbHRlbmUgdmlsIHV0bCZvc2xhc2g7c2UgZW4gUmVpbmRleCBhdiAmIzAzOTthbGxlJiMwMzk7IGxhZ3JlZGUgcG9zdGVyLCBzJmFyaW5nOyBkZXR0ZSBrYW4gdGEgZW4gc3R1bmQuJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZSddID0gJ0ZvcnMmb3NsYXNoO2t0ZSBvcHBsYXN0aW5nIGF2IHVsb3ZsaWcgZmlsdHlwZSAoJXMpIGZyYSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnR2omb3NsYXNoO3IgcG9zdGVyIHRpbGdqZW5nZWxpZyBmb3IgcyZvc2xhc2g7a2Vtb2R1bGVuJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGVfaGVscCddID0gJ0hha2UgYXYgZGV0dGUgdmlsIGdqJm9zbGFzaDtyZSBhbGxlIGlubnNlbmR0ZSBkYXRhIHRpbGdqZW5nZWxpZyBmb3IgcyZvc2xhc2g7a2Vtb2R1bGVuLiBJS0tFIEJSVUsgZGVubmUgaHZpcyBkdSBrcnlwdGVyZXIgZGluZSBkYXRhIC0tIGluZm9ybWFzam9uZW4gYmxpciB0aWxnamVuZ2VsaWcgZm9yIHMmb3NsYXNoO2sgb20gZGVuIGVyIGtyeXB0ZXJ0IGVsbGVyIGlra2UhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzICh1dGVuZm9yIHdlYiByb3QpJzsKJGxhbmdbJ3RpdGxlX2Zicl9lZGl0J10gPSAnUmVkaWdlcmJhcnQgaSBGb3JtQnJvd3NlciBhZG1pbmlzdHJhc2pvbmVuPyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnQnJ1a2VyIGRlZmluZXJ0IHRhZ2coVXNlciBEZWZpbmVkIFRhZy9VRFQpIHJldHVybmVydGUgZW4gZmVpbCc7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnQnJ1a2VyIGRlZmluZXJ0IHRhZ2coVXNlciBEZWZpbmVkIFRhZy9VRFQpICVzIHJldHVybmVydGUgZW4gZmVpbC4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlbiBzZXIgaWtrZSB1dCB0aWwgJmFyaW5nOyB2JmFlbGlnO3JlIGluc3RhbGxlcnQvYWt0aXYuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdBRFZBUlNFTCEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIG1hbCc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxsIG1hbCwgRXRpa2V0dCB0aWwgdmVuc3RyZSc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJlbGwgbWFsLCBFdGlrZXR0IG92ZXJmb3InOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnTWFsIGZyYSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIG92ZXJza3JpdmUgZGluIG1hbCBtZWQgZGVuIHZhbGd0ZSBtYWxlbj8gKFNlbHYgb20gZHUgc3ZhcmVyIE9LLCB2aWwgZHUgZm9ydHNhdHQgbSZhcmluZzt0dGUgbGFncmUgZW5kcmluZ2VuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGZWlsIHVuZGVyIGJlcmVnbmluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0luZ2VuIEhUVFBfUkVGRVJFUiBpbmZvcm1hc2pvbiB0aWxnamVuZ2VsaWcnOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ0d5bGRpZ2hldHNzamVrayBQYXJhbWV0ZXIgZmVpbC4gVmVubmxpZ3N0IHNqZWtrIGF0IGR1IGtvcGllcnRlIGxpbmtlbiBmcmEgZGluIGVwb3N0IGtvcnJla3QhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUmVzcG9ucyBmZWlsLiBWZW5ubGlnc3Qgc2pla2sgYXQgZHUga29waWVydGUgbGlua2VuIGZyYSBkaW4gZXBvc3Qga29ycmVrdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0d5bGRpZ2hldHNzamVrayBSZXNwb25zIGZlaWwuIEluZ2VuIGVwb3N0LXNqZWtrIGZlbHQgaSBkZXR0ZSBza2plbWEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ1NramVtYSBtYWxlbiBibGUgb3BwZGF0ZXJ0IGF1dG9tYWdpc2sgc29tIGRlbCBhdiBvcHBncmFkZXJpbmcgZnJhIHZlcnNqb24gMC4zIHRpbCB2ZXJzam9uIDAuNC4gRHUgdHJlbmdlciBrYW5za2plICZhcmluZzsgZ2omb3NsYXNoO3JlIG5vZW4gbWFudWVsbGUgZmlrc2VyLiBPbSBkdSBiZW55dHRlciBzdGFuZGFyZHNramVtYWV0LCBrYW4gZHUgZW5rZWx0IGJ5dHRlIGRldCBtZWQgJnF1b3Q7ZGVmYXVsdCZxdW90OyB2ZWQgJmFyaW5nOyBiZW55dHRlIG5lZHRyZWtrbWVueWVuIG92ZW5mb3IuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0xlZ2cgdGlsLCByZWRpZ2VyIG9nIGgmYXJpbmc7bmR0ZXIgaW50ZXJha3RpdmUgc2tqZW1hZXInOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdIdmlzIGR1IGJydWtlciBTdHJpbmcgZXZhbHVlcmluZywgdmlsIGRlbiBlbmVzdGUgb3BlcmFzam9uZW4gc29tIGVyIHRpbGdqZW5nZWxpZyB2JmFlbGlnO3JlIHNhbW1lbnNldG5pbmcgKCspLiBIdmlzIGR1IGJlbnl0dGVyIE51bW1lcihOdW1iZXIpIGV2YWx1ZXJpbmcgcyZhcmluZzsgaGFyIGR1IGRlIGhlbHQgZW5rbGUgbWF0ZW1hdGlza2UgKCwrLCAtLCAqLCAvLCkuIEh2aXMgZHUgYnJ1a2VyIEJlcmVnbmVkZS9QSFAgZXZhbHVlcmluZywga2FuIGR1CmJydWtlIGRlIGZ1bmtzam9uZW5lIGR1IHZpbCwgbWVuIGR1IG0mYXJpbmc7IHNpdGVyZSB0aW5nIChzdWJzdGl0dXNqb24gc2tqZXIgZiZvc2xhc2g7ciBldmFsdWVyaW5nKSwgZm9yIGVrc2VtcGVsIHN1YnN0cigmIzAzOTskZmxkXzIyJiMwMzk7LDAsMikuJiMwMzk7JGZsZF8yMyYjMDM5Oy4nOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlJ10gPSAnQmVueXR0ZSBtb2R1bGdyZW5zZXNuaXR0JzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+RGV0dGUgZmVsdGV0IGJydWtlcyBzb20gZW4gaW5uZ2FuZ3Nwb3J0IHRpbCBhbmRyZSBtb2R1bGVyITwvYj4KQmVueXR0IGRldCB2ZWQgJmFyaW5nOyBvcHByZXR0ZSBkaW5lIHNramVtYWVsZW1lbnRlciBpIG1hbGVuZSBpIGFuZHJlIG1vZHVsZXIgZHUgJm9zbGFzaDtuc2tlciAmYXJpbmc7IGlubmxlbW1lLCBvZyBiZW55dHQgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IGZvciAmYXJpbmc7IGtvYmxlIGRldHRlIHRpbGJha2UgdGlsIEZvcm1CdWlsZGVyLiBGLmVrcy4gZm9yICZhcmluZzsgaW5rbHVkZXJlIHNramVtYSBhbHRlcm5hdGl2ZXIgYmFzZXJ0IHAmYXJpbmc7IFByb2R1Y3RzIG1vZHVsZW4sIG9wcHJldHQgZiZvc2xhc2g7bGdlbmRlIG1hbCBpIFByb2R1Y3RzOjxici8+CjxwcmU+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTsmIzAzOTt9Cgl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsmIzAzOTt9CgkJe2ZvcmVhY2ggZnJvbT0kRkJ2YWx1ZSBpdGVtPU1EYXRhfQoJCQl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT0mIzAzOTs6OiYjMDM5O3xleHBsb2RlOiRNRGF0YX0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyBjaGVja2VkPSZxdW90O2NoZWNrZWQmcXVvdDsmIzAzOTt9CgkJCXsvaWZ9CgkJey9mb3JlYWNofQoJPGRpdiBjbGFzcz0mcXVvdDtQcm9kdWN0RGlyZWN0b3J5SXRlbSZxdW90Oz4KCQk8aW5wdXQgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyB2YWx1ZT0mcXVvdDt7JGVudHJ5LT5wcmljZX06OnskZW50cnktPmlkfSZxdW90OyBuYW1lPSZxdW90O3skRkJpZH1bXSZxdW90OyB7JENkfSAvPnskZW50cnktPnByb2R1Y3RfbmFtZX0gKHskZW50cnktPndlaWdodH17JHdlaWdodF91bml0c30pICZwb3VuZDt7JGVudHJ5LT5wcmljZX0gICAgCgk8L2Rpdj4Key9mb3JlYWNofQo8L3ByZT4KPGJyLz4KaHZvciBkdSBpIGlubmRhdGEgbmVkZW5mb3Igc2V0dGVyIGlubiBub2Ugc2xpa3Qgc29tICA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0mcXVvdDtjYXQmcXVvdDsgc3VtbWFyeXRlbXBsYXRlPSZxdW90O1lvdXJfRkJfdGVtcGxhdGUmcXVvdDt9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdTZXR0IGlubiBkaW4gdGFnZyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXInOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsICc7CiRsYW5nWydkYXRlX21heSddID0gJ01haSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QgJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyICc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlciAnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0Rlc2VtYmVyJzsKJGxhbmdbJ0FGJ10gPSAnQWZnaGFuaXN0YW4gJzsKJGxhbmdbJ0FYJ10gPSAnJkFyaW5nO2xhbmQnOwokbGFuZ1snQUwnXSA9ICdBbGJhbmlhICc7CiRsYW5nWydEWiddID0gJ0FsZ2VyaWUnOwokbGFuZ1snQVMnXSA9ICdBbWVyaWthbnNrIFNhbW9hJzsKJGxhbmdbJ0FEJ10gPSAnQW5kb3JyYSAnOwokbGFuZ1snQU8nXSA9ICdBbmdvbGEgJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEgJzsKJGxhbmdbJ0FRJ10gPSAnQW50YXJrdGlzJzsKJGxhbmdbJ0FHJ10gPSAnQW50aWd1YSBvZyBCYXJidWRhJzsKJGxhbmdbJ0FSJ10gPSAnQXJnZW50aW5hICc7CiRsYW5nWydBTSddID0gJ0FybWVuaWEgJzsKJGxhbmdbJ0FXJ10gPSAnQXJ1YmEgJzsKJGxhbmdbJ0FVJ10gPSAnQXVzdHJhbGlhICc7CiRsYW5nWydBVCddID0gJyZPc2xhc2g7c3RlcmlrZSc7CiRsYW5nWydBWiddID0gJ0F6ZXJiYWlqYW4gJzsKJGxhbmdbJ0JTJ10gPSAnQmFoYW1hcyAnOwokbGFuZ1snQkgnXSA9ICdCYWhyYWluICc7CiRsYW5nWydCQiddID0gJ0JhcmJhZG9zICc7CiRsYW5nWydCRCddID0gJ0JhbmdsYWRlc2ggJzsKJGxhbmdbJ0JZJ10gPSAnQmVsYXJ1cyAnOwokbGFuZ1snQkUnXSA9ICdCZWxnaWEnOwokbGFuZ1snQlonXSA9ICdCZWxpemUgJzsKJGxhbmdbJ0JKJ10gPSAnQmVuaW4gJzsKJGxhbmdbJ0JNJ10gPSAnQmVybXVkYSAnOwokbGFuZ1snQlQnXSA9ICdCaHV0YW4gJzsKJGxhbmdbJ0JXJ10gPSAnQm90c3dhbmEgJzsKJGxhbmdbJ0JPJ10gPSAnQm9saXZpYSAnOwokbGFuZ1snQkEnXSA9ICdCb3NuaWEgb2cgSGVyemVnb3ZpbmEnOwokbGFuZ1snQlYnXSA9ICdCb3V2ZXQgSXNsYW5kICc7CiRsYW5nWydCUiddID0gJ0JyYXNpbCc7CiRsYW5nWydJTyddID0gJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSAnOwokbGFuZ1snQk4nXSA9ICdCcnVuZWkgRGFydXNzYWxhbSAnOwokbGFuZ1snQkcnXSA9ICdCdWxnYXJpYSAnOwokbGFuZ1snQkYnXSA9ICdCdXJraW5hIEZhc28gJzsKJGxhbmdbJ0JJJ10gPSAnQnVydW5kaSAnOwokbGFuZ1snS0gnXSA9ICdDYW1ib2RpYSAnOwokbGFuZ1snQ00nXSA9ICdDYW1lcm9vbiAnOwokbGFuZ1snQ0EnXSA9ICdDYW5hZGEgJzsKJGxhbmdbJ0NWJ10gPSAnQ2FwZSBWZXJkZSAnOwokbGFuZ1snS1knXSA9ICdDYXltYW4gSXNsYW5kcyAnOwokbGFuZ1snQ0YnXSA9ICdTZW50cmFsIEFmcmlrYW5za2UgUmVwdWJsaWtrJzsKJGxhbmdbJ1REJ10gPSAnQ2hhZCAnOwokbGFuZ1snQ0wnXSA9ICdDaGlsZSAnOwokbGFuZ1snQ04nXSA9ICdLaW5hJzsKJGxhbmdbJ0NYJ10gPSAnQ2hyaXN0bWFzIElzbGFuZCAnOwokbGFuZ1snQ0MnXSA9ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcyAnOwokbGFuZ1snQ08nXSA9ICdDb2xvbWJpYSAnOwokbGFuZ1snS00nXSA9ICdDb21vcm9zICc7CiRsYW5nWydDRyddID0gJ0tvbmdvJzsKJGxhbmdbJ0NEJ10gPSAnS29uZ28sICBEZW1vY3JhdGljIFJlcHVibGljJzsKJGxhbmdbJ0NLJ10gPSAnQ29vayBJc2xhbmRzICc7CiRsYW5nWydDUiddID0gJ0Nvc3RhIFJpY2EgJzsKJGxhbmdbJ0NJJ10gPSAnSXZvaXJlIChJdm9yeSBDb2FzdCkgJzsKJGxhbmdbJ0hSJ10gPSAnS3JvYXRpYSAoSHJ2YXRza2EpJzsKJGxhbmdbJ0NVJ10gPSAnQ3ViYSAnOwokbGFuZ1snQ1knXSA9ICdDeXBydXMgJzsKJGxhbmdbJ0NaJ10gPSAnQ3plY2ggUmVwdWJsaWMgJzsKJGxhbmdbJ0RLJ10gPSAnRGFubWFyayc7CiRsYW5nWydESiddID0gJ0RqaWJvdXRpICc7CiRsYW5nWydETSddID0gJ0RvbWluaWNhICc7CiRsYW5nWydETyddID0gJ0RvbWluaWthbnNrZSBSZXB1Ymxpa2snOwokbGFuZ1snVFAnXSA9ICcmT3NsYXNoO3N0IFRpbW9yJzsKJGxhbmdbJ0VDJ10gPSAnRWN1YWRvciAnOwokbGFuZ1snRUcnXSA9ICdFZ3lwdCAnOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvciAnOwokbGFuZ1snR1EnXSA9ICdFcXVhdG9yaWFsIEd1aW5lYSAnOwokbGFuZ1snRVInXSA9ICdFcml0cmVhICc7CiRsYW5nWydFRSddID0gJ0VzdG9uaWEgJzsKJGxhbmdbJ0VUJ10gPSAnRXRoaW9waWEgJzsKJGxhbmdbJ0ZLJ10gPSAnRmFsa2xhbmRzJm9zbGFzaDt5ZW5lIChNYWx2aW5hcyknOwokbGFuZ1snRk8nXSA9ICdGYXJvZSBJc2xhbmRzICc7CiRsYW5nWydGSiddID0gJ0ZpamkgJzsKJGxhbmdbJ0ZJJ10gPSAnRmlubGFuZCAnOwokbGFuZ1snRlInXSA9ICdGcmFua3Jpa2UnOwokbGFuZ1snRlgnXSA9ICdGcmFua3Jpa2UsICBNZXRyb3BvbGl0YW4nOwokbGFuZ1snR0YnXSA9ICdHdWVybnNleSAnOwokbGFuZ1snUEYnXSA9ICdGcmFuc2sgUG9seW5lc2lhJzsKJGxhbmdbJ1RGJ10gPSAnRnJhbnNrIFNvdXRoZXJuIFRlcnJpdG9yaWVzJzsKJGxhbmdbJ01LJ10gPSAnRi5ZLlIuTy5NLiAoTWFjZWRvbmlhKSAnOwokbGFuZ1snR0EnXSA9ICdHYWJvbiAnOwokbGFuZ1snR00nXSA9ICdHYW1iaWEgJzsKJGxhbmdbJ0dFJ10gPSAnR2VvcmdpYSAnOwokbGFuZ1snREUnXSA9ICdUeXNrbGFuZCc7CiRsYW5nWydHSCddID0gJ0doYW5hICc7CiRsYW5nWydHSSddID0gJ0dpYnJhbHRhciAnOwokbGFuZ1snR0InXSA9ICdTdG9yYnJpdGFubmlhIChVSyknOwokbGFuZ1snR1InXSA9ICdIZWxsYXMnOwokbGFuZ1snR0wnXSA9ICdHciZvc2xhc2g7bm5sYW5kJzsKJGxhbmdbJ0dEJ10gPSAnR3JlbmFkYSAnOwokbGFuZ1snR1AnXSA9ICdHdWFkZWxvdXBlICc7CiRsYW5nWydHVSddID0gJ0d1YW0gJzsKJGxhbmdbJ0dUJ10gPSAnR3VhdGVtYWxhICc7CiRsYW5nWydHTiddID0gJ0d1aW5lYSAnOwokbGFuZ1snR1cnXSA9ICdHdWluZWEtQmlzc2F1ICc7CiRsYW5nWydHWSddID0gJ0d1eWFuYSAnOwokbGFuZ1snSFQnXSA9ICdIYWl0aSAnOwokbGFuZ1snSE0nXSA9ICdIZWFyZCBhbmQgTWNEb25hbGQgJk9zbGFzaDt5ZW5lJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMgJzsKJGxhbmdbJ0hLJ10gPSAnSG9uZyBLb25nICc7CiRsYW5nWydIVSddID0gJ1VuZ2Fybic7CiRsYW5nWydJUyddID0gJ0lzbGFuZCc7CiRsYW5nWydJTiddID0gJ0luZGlhICc7CiRsYW5nWydJRCddID0gJ0luZG9uZXNpYSAnOwokbGFuZ1snSVInXSA9ICdJcmFuICc7CiRsYW5nWydJUSddID0gJ0lyYWsnOwokbGFuZ1snSUUnXSA9ICdJcmxhbmQnOwokbGFuZ1snSUwnXSA9ICdJc3JhZWwgJzsKJGxhbmdbJ0lNJ10gPSAnSXNsZSBvZiBNYW4gJzsKJGxhbmdbJ0lUJ10gPSAnSXRhbGlhJzsKJGxhbmdbJ0pFJ10gPSAnSmVyc2V5ICc7CiRsYW5nWydKTSddID0gJ0phbWFpY2EgJzsKJGxhbmdbJ0pQJ10gPSAnSmFwYW4gJzsKJGxhbmdbJ0pPJ10gPSAnSm9yZGFuICc7CiRsYW5nWydLWiddID0gJ0themFraHN0YW4gJzsKJGxhbmdbJ0tFJ10gPSAnS2VueWEgJzsKJGxhbmdbJ0tJJ10gPSAnS2lyaWJhdGkgJzsKJGxhbmdbJ0tQJ10gPSAnS29yZWEgKE5vcmQpJzsKJGxhbmdbJ0tSJ10gPSAnS29yZWEgKFN5ZCkgJzsKJGxhbmdbJ0tXJ10gPSAnS3V3YWl0ICc7CiRsYW5nWydLRyddID0gJ0t5cmd5enN0YW4gJzsKJGxhbmdbJ0xBJ10gPSAnTGFvcyAnOwokbGFuZ1snTFYnXSA9ICdMYXR2aWEgJzsKJGxhbmdbJ0xCJ10gPSAnTGliYW5vbic7CiRsYW5nWydMSSddID0gJ0xpZWNodGVuc3RlaW4gJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpYSAnOwokbGFuZ1snTFknXSA9ICdMaWJ5YSAnOwokbGFuZ1snTFMnXSA9ICdMZXNvdGhvICc7CiRsYW5nWydMVCddID0gJ0xpdGF1ZW4nOwokbGFuZ1snTFUnXSA9ICdMdXhlbWJvdXJnICc7CiRsYW5nWydNTyddID0gJ01hY2F1ICc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXIgJzsKJGxhbmdbJ01XJ10gPSAnTWFsYXdpICc7CiRsYW5nWydNWSddID0gJ01hbGF5c2lhICc7CiRsYW5nWydNViddID0gJ01hbGRpdmVuZSc7CiRsYW5nWydNTCddID0gJ01hbGkgJzsKJGxhbmdbJ01UJ10gPSAnTWFsdGEgJzsKJGxhbmdbJ01IJ10gPSAnTWFyc2hhbGwgSXNsYW5kcyAnOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlICc7CiRsYW5nWydNUiddID0gJ01hdXJpdGFuaWEgJzsKJGxhbmdbJ01VJ10gPSAnTWF1cml0aXVzICc7CiRsYW5nWydZVCddID0gJ01heW90dGUgJzsKJGxhbmdbJ01YJ10gPSAnTWV4aWNvICc7CiRsYW5nWydGTSddID0gJ01pY3JvbmVzaWEgJzsKJGxhbmdbJ01DJ10gPSAnTW9uYWNvICc7CiRsYW5nWydNRCddID0gJ01vbGRvdmlhJzsKJGxhbmdbJ01BJ10gPSAnTW9yb2NjbyAnOwokbGFuZ1snTU4nXSA9ICdNb25nb2xpYSAnOwokbGFuZ1snTVMnXSA9ICdNb250c2VycmF0ICc7CiRsYW5nWydNWiddID0gJ01vemFtYmlxdWUgJzsKJGxhbmdbJ01NJ10gPSAnTXlhbm1hciAnOwokbGFuZ1snTkEnXSA9ICdOYW1pYmlhICc7CiRsYW5nWydOUiddID0gJ05hdXJ1ICc7CiRsYW5nWydOUCddID0gJ05lcGFsICc7CiRsYW5nWydOTCddID0gJ05lZGVybGFuZCc7CiRsYW5nWydBTiddID0gJ05ldGhlcmxhbmRza2UgQW50aWxsZW5lJzsKJGxhbmdbJ05UJ10gPSAnTmV1dHJhbCBab25lICc7CiRsYW5nWydOQyddID0gJ05ldyBDYWxlZG9uaWEgJzsKJGxhbmdbJ05aJ10gPSAnTmV3IFplYWxhbmQgKEFvdGVhcm9hKSAnOwokbGFuZ1snTkknXSA9ICdOaWNhcmFndWEgJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXIgJzsKJGxhbmdbJ05HJ10gPSAnTmlnZXJpYSAnOwokbGFuZ1snTlUnXSA9ICdOaXVlICc7CiRsYW5nWydORiddID0gJ05vcmZvbGsgSXNsYW5kICc7CiRsYW5nWydNUCddID0gJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyAnOwokbGFuZ1snTk8nXSA9ICdOb3JnZSc7CiRsYW5nWydPTSddID0gJ09tYW4gJzsKJGxhbmdbJ1BLJ10gPSAnUGFraXN0YW4gJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUgJzsKJGxhbmdbJ1BTJ10gPSAnUGFsZXN0aW5zayB0ZXJyaXRvcml1bSc7CiRsYW5nWydQQSddID0gJ1BhbmFtYSAnOwokbGFuZ1snUEcnXSA9ICdQYXB1YSBOZXcgR3VpbmVhICc7CiRsYW5nWydQWSddID0gJ1BhcmFndWF5ICc7CiRsYW5nWydQRSddID0gJ1BlcnUgJzsKJGxhbmdbJ1BIJ10gPSAnUGhpbGlwcGluZW5lJzsKJGxhbmdbJ1BOJ10gPSAnUGl0Y2Fpcm4gJzsKJGxhbmdbJ1BMJ10gPSAnUG9sZW4nOwokbGFuZ1snUFQnXSA9ICdQb3J0dWdhbCAnOwokbGFuZ1snUFInXSA9ICdQdWVydG8gUmljbyAnOwokbGFuZ1snUUEnXSA9ICdRYXRhciAnOwokbGFuZ1snUkUnXSA9ICdSZXVuaW9uICc7CiRsYW5nWydSTyddID0gJ1JvbWFuaWEgJzsKJGxhbmdbJ1JVJ10gPSAnUnVzc2lhbiBGZWRlcmF0aW9uICc7CiRsYW5nWydSVyddID0gJ1J3YW5kYSAnOwokbGFuZ1snR1MnXSA9ICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLiAnOwokbGFuZ1snS04nXSA9ICdTYWludCBLaXR0cyBhbmQgTmV2aXMgJzsKJGxhbmdbJ0xDJ10gPSAnU2FpbnQgTHVjaWEgJzsKJGxhbmdbJ1ZDJ10gPSAnU2FpbnQgVmluY2VudCAmYW1wOyB0aGUgR3JlbmFkaW5lcyAnOwokbGFuZ1snV1MnXSA9ICdTYW1vYSAnOwokbGFuZ1snU00nXSA9ICdTYW4gTWFyaW5vICc7CiRsYW5nWydTVCddID0gJ1NhbyBUb21lIGFuZCBQcmluY2lwZSAnOwokbGFuZ1snU0EnXSA9ICdTYXVkaSBBcmFiaWEgJzsKJGxhbmdbJ1NOJ10gPSAnU2VuZWdhbCAnOwokbGFuZ1snU0MnXSA9ICdTZXljaGVsbGVzICc7CiRsYW5nWydTTCddID0gJ1NpZXJyYSBMZW9uZSAnOwokbGFuZ1snU0cnXSA9ICdTaW5nYXBvcmUgJzsKJGxhbmdbJ1NJJ10gPSAnU2xvdmVuaWEgJzsKJGxhbmdbJ1NLJ10gPSAnU2xvdmFrIFJlcHVibGljICc7CiRsYW5nWydTQiddID0gJ1NvbG9tb24gSXNsYW5kcyAnOwokbGFuZ1snU08nXSA9ICdTb21hbGlhICc7CiRsYW5nWydaQSddID0gJ1N5ZC1BZnJpY2EnOwokbGFuZ1snRVMnXSA9ICdTcGFuaWEnOwokbGFuZ1snTEsnXSA9ICdTcmkgTGFua2EgJzsKJGxhbmdbJ1NIJ10gPSAnU3QuIEhlbGVuYSAnOwokbGFuZ1snUE0nXSA9ICdTdC4gUGllcnJlIGFuZCBNaXF1ZWxvbiAgJzsKJGxhbmdbJ1NEJ10gPSAnU3VkYW4gJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbWUgJzsKJGxhbmdbJ1NKJ10gPSAnU3ZhbGJhcmQgJmFtcDsgSmFuIE1heWVuICZvc2xhc2g7eWVuZSc7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCAnOwokbGFuZ1snU0UnXSA9ICdTdmVyaWdlJzsKJGxhbmdbJ0NIJ10gPSAnU3ZlaXRzJzsKJGxhbmdbJ1NZJ10gPSAnU3lyaWEgJzsKJGxhbmdbJ1RXJ10gPSAnVGFpd2FuICc7CiRsYW5nWydUSiddID0gJ1RhamlraXN0YW4gJzsKJGxhbmdbJ1RaJ10gPSAnVGFuemFuaWEgJzsKJGxhbmdbJ1RIJ10gPSAnVGhhaWxhbmQgJzsKJGxhbmdbJ1RHJ10gPSAnVG9nbyAnOwokbGFuZ1snVEsnXSA9ICdUb2tlbGF1ICc7CiRsYW5nWydUTyddID0gJ1RvbmdhICc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIGFuZCBUb2JhZ28gJzsKJGxhbmdbJ1ROJ10gPSAnVHVuaXNpYSAnOwokbGFuZ1snVFInXSA9ICdUeXJraWEnOwokbGFuZ1snVE0nXSA9ICdUdXJrbWVuaXN0YW4gJzsKJGxhbmdbJ1RDJ10gPSAnVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzICc7CiRsYW5nWydUViddID0gJ1R1dmFsdSAnOwokbGFuZ1snVUcnXSA9ICdVZ2FuZGEgJzsKJGxhbmdbJ1VBJ10gPSAnVWtyYWluYSc7CiRsYW5nWydBRSddID0gJ1VuaXRlZCBBcmFiIEVtaXJhdGVzICc7CiRsYW5nWydVSyddID0gJ1N0b3Jicml0YW5uaWEnOwokbGFuZ1snVVMnXSA9ICdGb3JlbnRlIFN0YXRlciBBbWVyaWNhJzsKJGxhbmdbJ1VNJ10gPSAnVVMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyAnOwokbGFuZ1snVVknXSA9ICdVcnVndWF5ICc7CiRsYW5nWydVWiddID0gJ1V6YmVraXN0YW4gJzsKJGxhbmdbJ1ZVJ10gPSAnVmFudWF0dSAnOwokbGFuZ1snVkEnXSA9ICdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSAnOwokbGFuZ1snVkUnXSA9ICdWZW5lenVlbGEgJzsKJGxhbmdbJ1ZOJ10gPSAnVmlldG5hbSc7CiRsYW5nWydWRyddID0gJ1ZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSAnOwokbGFuZ1snVkknXSA9ICdWaXJnaW4gSXNsYW5kcyAoVS5TLikgJzsKJGxhbmdbJ1dGJ10gPSAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyAnOwokbGFuZ1snRUgnXSA9ICdXZXN0ZXJuIFNhaGFyYSAnOwokbGFuZ1snWUUnXSA9ICdZZW1lbiAnOwokbGFuZ1snWVUnXSA9ICdZdWdvc2xhdmlhICc7CiRsYW5nWydaTSddID0gJ1phbWJpYSAnOwokbGFuZ1snWlcnXSA9ICdaaW1iYWJ3ZSAnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0Jla2xhZ2VyISBEZXQgc2tqZWRkZSBlbiBmZWlsIHVuZGVyIGJlaGFuZGxpbmcgYXYgZGluIHNramVtYSBpbm5zZW5kaW5nLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdTa2plbWFCeWdnZXIgU2VuZGVmZWlsOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRmVpbCB2ZWQgb3ZlcmYmb3NsYXNoO3JpbmcgYXYgZmlsYSB0aWwgb3BwbGFzdGluZ3Ntb2R1bGVuOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdLdW5uZSBpa2tlIGZpbm5lIE9wcGxhc3RpbmdzbW9kdWxlbic7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnT3BwbGFzdGluZy9WZWRsZWdnIGZlaWwgcCZhcmluZzsgZmlsICVzICh0ZW1wX25hdm46ICVzLCBhdiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZlaWwuIFVtdWxpZyAmYXJpbmc7IGVydmVydmUgbCZhcmluZztzIGZvciBmaWxlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFyZDogaWtrZSBhdmhha2V0JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBhdmhha2V0JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTa2plbWFCeWdnZXIgaW5uc2VuZGluZyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FcG9zdCBtYWwgZW5uJmFyaW5nOyAmYXJpbmc7aWtrZSBhbmdpdHQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ1NramVtYUJ5Z2dlcjogS2FuIGlra2UgZmlubmUgbiZvc2xhc2g7ZHZlbmRpZyBtb2R1bCBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0JydWtlciBnb2RramVudCBzZW5kaW5nICVzIGZyYSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgb20gZGV0IHNramVyIGVuIGZlaWwgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdIZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3QnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFfQnlnZ2VyIHNramVtYSBibGlyIHNlbmR0LjwvcD4KPGg0PlBhcmFtZXRlcmU8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBEZW4gaW50ZXJuZSBTa2plbWEgaWQgKGludCk8L2xpPgo8bGk+PGVtPnZhbHVlXyZhbXA7bHQ7bmFtZSZhbXA7Z3Q7PC9lbT4gLSBUaWxmJm9zbGFzaDtyIGVuIHN0YW5kYXJkIHZlcmRpIHRpbCBldCBmZWx0IG1lZCBkZXQgb3BnaXR0ZSBuYXZuZXQuPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG9tIGRldCBza2plciBlbiBmZWlsIG4mYXJpbmc7ciBldCBTa2plbWFCeWdnZXIgc2tqZW1hIGJsaXIgc2VuZHQ8L3A+CjxoND5QYXJhbWV0ZXJlPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gU2tqZW1hIG5hdm5ldCAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgc2tqZW1hIGlkIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gRW4gbGlzdGUgbWVkIGFsbGUga2plbnRlIGZlaWwgKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5IZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3Q8L3A+CjxoND5QYXJhbWV0ZXJlPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gU2tqZW1hIG5hdm5ldCAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgc2tqZW1hIGlkIChpbnQpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBCcnVrdCBhdiBTa2plbWFVdGZvcnNrZXIoRm9ybUJyb3dzZXIpJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdTdGFuZGFyZCBmZWx2ZXJkaWVyIC0gc2UgbW9kdWxoZWxwIGZvciBpbmZvJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZlbHQgSUQgZm9yIGludGVybmUgb3BlcmFzam9uZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ1NramVtYW5hdm4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdTa2plbWEgSUQgZm9yIGludGVybmUgb3BlcmFzam9uZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmVsbGUgcGFyYW1ldHJlIGZvciBpbnRlcm5lIG9wZXJhc2pvbmVyJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGhlbHAgdGV4dDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIHRoZSBjYXNlIG9mIGEgbXVsdGlwYWdlIGZvcm0sIHlvdSB3aWxsIGFsc28gaGF2ZSBhY2Nlc3MgdG8gdGhlIHZhbHVlIG9mIHByZXZpb3VzIGZpZWxkcy4gVGhleQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT52YWx1ZX0gKS4KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPgo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4nOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnRm9ybUJ1aWxkZXIgaW5zdGFsbGVydC4gVmVubmxpZ3N0IHNqZWtrIGkgbW9kdWxlbnMgSGplbHAtc2lkZSBmb3IgZG9rdW1lbnRhc2pvbi4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aAp0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge0Zvcm1CdWlsZGVyIGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDthbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPgo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+QnV0dG9uLiBUaGlzIGRvZW5zJiMwMzk7dCBkbyBhbnl0aGluZywgYnV0IHlvdSBjYW4gaG9vayBpdCBpbnRvIHNvbWUgSmF2YXNjcmlwdC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPgo8bGk+UGFzc3dvcmQgQWdhaW4gKHZlcmlmeSkuIFRoaXMgaXMgYSBmaWVsZCB0aGF0IG11c3QgbWF0Y2ggYSBQYXNzd29yZCBmaWVsZCBmb3Igc3VibWlzc2lvbgp0byBzdWNjZWVkLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPgo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+CjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjxsaT4tVXNlciBUYWcuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVc2VyIERlZmluZWQgVGFnLCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8L3VsPjwvbGk+CjxsaT4tTW9kdWxlIEluY2x1ZGUgVGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgb3RoZXIgbW9kdWxlIG91dHB1dCBpbnRvIHlvdXIgZm9ybSwgZS5nLiwgYSBsaXN0IG9mIHByb2R1Y3RzIGZyb20gdGhlIFByb2R1Y3RzIG1vZHVsZS48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9uYW1lJiMwMzk7XSwgYW5kIGFzICRwYXJhbXNbJiMwMzk7ZmllbGRfYWxpYXMmIzAzOTtdIChpZiBkZWZpbmVkKS48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weS4gVGhpcyB3b3JrcyBsaWtlIHRoZSBFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQgZGVzY3JpYmVkIGFib3ZlLCBidXQgaXQgcHJvdmlkZXMgb3B0aW9ucyBmb3Igc2VuZGluZyBhIGNvcHkgb2YgdGhlIHJlc3VsdHMgdG8gdGhlIHVzZXIuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHJlc3VsdHMgYmFzZWQgb24gZnJvbnRlbmQgZmllbGRzLiBUaGlzIGZpZWxkIGlzIGFuIGVtYWlsIGRpc3Bvc2l0aW9uIHRoYXQgYWxsb3dzIGZvcm0gZmllbGRzJiMwMzk7IHVzZXIgaW5wdXQgdG8gc3BlY2lmeSB0aGUgRW1haWwgU3ViamVjdCwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7LCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDssIGFuZCBEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzLjwvbGk+CjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gPHN0cm9uZz5EZXByZWNhdGVkLjwvc3Ryb25nPiBVc2UgU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIGluc3RlYWQhIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPgo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkKc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBhIFVuaXF1ZSBGbGF0IEZpbGUgZm9yIGVhY2ggc3VibWlzc2lvbi4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSB0byBhIHVuaXF1ZSB0ZXh0IGZpbGUgZm9yIGVhY2ggZm9ybSBzdWJtaXNzaW9uLgpZb3UgY2FuIHNwZWNpZnkgYSBmaWxlbmFtZSBwYXR0ZXJuIHVzaW5nIHZhbHVlcyBmcm9tIGZvcm0gZmllbGRzLCBzZXQgaXRzIGZvcm1hdCwgYW5kIHNldCB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBmaWxlcyB3aWxsIGJlIHN0b3JlZC48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4wLjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIGlzIHRoZSBvbmx5IGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIuIFNlZSBzZWN0aW9uIGJlbG93LjwvbGk+CjxsaT4qU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbi4gQ3JhZnQgYW4gSFRUUCBHRVQgb3IgUE9TVCwgYW5kIHRyYW5zbWl0IGl0IHVzaW5nIGNVUkwgdG8gdGhlIHNwZWNpZmllZCBVUkwuIFRoaXMgbGV0cyB5b3UgdXNlIEZvcm1CdWlsZGVyIGFzIGEgZnJvbnQtZW5kIHRvIGFueSBDR0kgb3IgRm9ybSBIYW5kbGluZyBzY3JpcHQgb3V0IHRoZXJlLjwvbGk+Cgo8L3VsPjwvbGk+PC9saT48L3VsPgoKPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPgo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPgo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+CjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53aWVsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+CjxwPntGb3JtQnVpbGRlciBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwKYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPgoKPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLiBBcyBvZiB2ZXJzaW9uIDAuNSwgdmFyaWFibGVzIGFsc28gaGF2ZSBhbGlhc2VzLCB3aGljaCB5b3UgY2FuIHVzZS48L3A+CjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+Cgo8aDM+VXNlIHdpdGggRm9ybUJyb3dzZXIgdjM8L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBzcGVjaWFsIGZlYXR1cmVzIHdoZW4gdXNpbmcgRm9ybUJ1aWxkZXIgd2l0aCBGb3JtQnJvd3Nlci4gVGhlIG5ldyBhcHByb2FjaCBzdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBYTUwsIHNvIHRoYXQgZmFyIGZld2VyCnF1ZXJpZXMgYXJlIG5lZWRlZCB0byByZXRyaWV2ZSByZWNvcmRzLiBUaGlzIG1lYW5zIHlvdSBjYW4gdXNlIEZvcm1Ccm93c2VyIHdpdGggaHVuZHJlZHMgb3IgZXZlbiB0aG91c2FuZHMgb2YgcmVjb3Jkcy4gSXQgYWxzbyBtZWFucyB5b3UKd2lsbCBoYXZlIHRvIGNob29zZSB1cCBmcm9udCB3aGljaCBmaWVsZHMgeW91IHdpbGwgd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgYnkuIFlvdSBjYW4gY2hvb3NlIHVwIHRvIGZpdmUuIENoYW5naW5nIHRoZXNlIGFmdGVyIHRoZXJlIGFyZSBzdWJtaXR0ZWQgcmVjb3JkcyB3aWxsIHJlc3VsdCBpbiBpbXByb3BlciBzb3J0aW5nISBBIHJlLWluZGV4IGZ1bmN0aW9uIHdpbGwgYmUgYWRkZWQgdG8gYSBmdXR1cmUgdmVyc2lvbi48L3A+CjxwPkluIGFkdmFuY2VkIG9wdGlvbnMsIHlvdSBjYW4gdGllIGEgZm9ybSB0byBGcm9udGVuZCBVc2Vycy4gVGhhdCBtZWFucyBlYWNoIHVzZXIgZ2V0cyBvbmUgcmVjb3JkIGZvciB0aGUgZm9ybTsgdGhleSBjYW4gY3JlYXRlIGl0CmEgc2luZ2xlIHRpbWUsIHN1YnNlcXVlbnQgdGltZXMgdGhleSB3aWxsIGJlIGVkaXRpbmcgdGhlaXIgcmVjb3JkLiBUaGUgcmVjb3JkIHdpbGwgbm90IGJlIHZpc2libGUgdG8gYW55IG90aGVyIHVzZXJzIChleGNsdWRpbmcgYWRtaW5zKS4KVGhpcyBmb3JtIHNob3VsZCBiZSBhZGRlZCB0byB5b3VyIHBhZ2UgdXNpbmcgdGhlIHN5bnRheCB7Rm9ybUJ1aWxkZXIgYWN0aW9uPSYjMDM5O2ZldXNlcmZvcm0mIzAzOTsgZm9ybT0mIzAzOTtmb3JtX25hbWUmIzAzOTt9LjwvcD4KPHA+Rm9yIGdyZWF0ZXIgZGF0YSBzYWZldHksIHlvdSBjYW4gZW5jcnlwdCB0aGUgc3RvcmVkIGZvcm1zIGluIHRoZSBkYXRhYmFzZS4gWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluIG15Y3J5cHQgbGlicmFyeSBvciB0aGUgT3BlblNTTCBtb2R1bGUuCkluIGVpdGhlciBjYXNlLCBmb3IgdGhlIHBhc3NwaHJhc2UsIHlvdSBjYW4gZWl0aGVyIGVudGVyIHRleHQgaW4gdGhlIGZpZWxkIG9yIGEgZmlsZSBuYW1lLiBJZiB5b3Ugc3BlY2lmeSBhIGZpbGUgbmFtZSwgdGhlIGNvbnRlbnRzIG9mIHRoYXQKZmlsZSB3aWxsIGJlIHVzZWQgYXMgdGhlIHBhc3NwaHJhc2UgZm9yIGVuY3J5cHRpbmcuPC9wPgo8cD5JZiB5b3UgZW5jcnlwdCwgYmUgYXdhcmUgdGhhdCB0aGUgZmllbGRzIHlvdSB1c2UgZm9yIHNvcnRpbmcgYXJlIDxzdHJvbmc+bm90PC9zdHJvbmc+IGVuY3J5cHRlZC4gWW91IGNhbiBjaG9vc2UgdG8gaGFzaCB0aGVtOyB0aGUgY2hlYXQgaGVyZQppcyB0aGF0IHRoZSBmaXJzdCBmb3VyIGxldHRlcnMgYXJlIGxlZnQgaW50YWN0IHRvIGFsbG93IGZvciBzb3J0aW5nLiBUaGUgc29ydGluZyBtYXkgbm90IGJlIHBlcmZlY3QsIGFuZCB0aGlzIHdlYWtlbnMgdGhlIHNlY3VyaXR5IHNpbmNlIGl0CmV4cG9zZXMgc29tZSBjbGVhcnRleHQsIGJ1dCBpdCBpcyBiZXR0ZXIgdGhhbiBub3RoaW5nLjwvcD4KPHA+PHN0cm9uZz5ESVNDTEFJTUVSPC9zdHJvbmc+LiBUaGUgZW5jcnlwdGlvbiBvZmZlcmVkIGhlcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQganVzdCBvbmUgbW9yZSBodXJkbGUgZm9yIGEgaGFja2VyLCBub3QgYXMgYSBndWFyYW50ZWUgdGhhdAp5b3VyIGluZm9ybWF0aW9uIHdpbGwgYmUgc2VjdXJlLiBBIHNtYXJ0IGhhY2tlciB3aG8gaGFzIGZvdW5kIHNvbWUgZXhwbG9pdCB0byB2aWV3IGRhdGFiYXNlIHJlY29yZHMgbWF5IHdlbGwgYmUgc21hcnQgZW5vdWdoIHRvIGdldCBhdAp0aGUgbW9kdWxlIHNvdXJjZSBjb2RlLCBhbmQgZmluZCB0aGVpciB3YXkgdG8gdGhlIHBhc3NwaHJhc2UuIFRoaXMgd2lsbCBub3QgcHJvdGVjdCB5b3UgYWdhaW5zdCBhbiBlbmVteSB3aG8gaGFzIGZ1bGwgYWNjZXNzIHRvIHlvdXIKc2VydmVyLCBzb21lIGZhbWlsaWFyaXR5IHdpdGggUEhQLCBhbmQgdGhlIHRpbWUgdG8gcG9rZSBhcm91bmQuIDxlbT48c3Ryb25nPkRvIG5vdDwvc3Ryb25nPiB1c2UgdGhpcyB0byBwcm90ZWN0IGhpZ2gtdmFsdWUgaW5mb3JtYXRpb24gc3VjaCBhcyBmaW5hbmNpYWwgZGF0YSwKc2Vuc2l0aXZlIHBvbGl0aWNhbCBpbmZvcm1hdGlvbiwgaHVtYW4gcmlnaHRzIGRhdGEsIG9yIGFueXRoaW5nIGVsc2UgdGhhdCBtaWdodCBiZSBvZiB2YWx1ZSB0byBhIHJlcHJlc3NpdmUgZ292ZXJubWVudCBvciBvcmdhbml6ZWQgY3JpbWUKY2FydGVsLjwvZW0+PC9wPgo8aDM+VXNpbmcgd2l0aCBVc2VyIERlZmluZWQgVGFncyAoVURUcyk8L2gzPgo8cD5TZXZlcmFsIG9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIGJlaGF2aW9yIHZpYSBVRFRzIGlzIHByb3ZpZGVkICh0aGFua3MgdG8ga2luZCBjb2RlIGNvbnRyaWJ1dGlvbnMsIHNlZSBjcmVkaXRzKS48L3A+Cgo8dWw+PGxpPkNhbGwgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgZmllbGQgdHlwZSBzdWJtaXRzIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZApUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLCBhbmQKYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9hbGlhcyYjMDM5O10gKGlmIGRlZmluZWQpLiBBcyBwZXIgYSBzdWdnZXN0aW9uLCBpdCBhbHNvIHBvcHVsYXRlcyBhbGwgb2YgdGhlIFNtYXJ0eSB2YWx1ZXMgdGhhdCB3b3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBTdWJtaXNzaW9uIFRlbXBsYXRlIHRvbyE8L2xpPgo8bGk+VXNlciBUYWcgRmllbGQuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVRFQsIGFuZCBkaXNwbGF5cyBhbnl0aGluZyBpdCByZXR1cm5zLiBUaGUgVURUIGdldHMgY2FsbGVkIGFueSB0aW1lIHRoZSBmaWVsZCB3b3VsZCBiZSB2aXNpYmxlLjwvbGk+CjxsaT5WYWxpZGF0aW9uIFVEVC4gU2V0IHRoaXMgZm9yIGEgZm9ybSwgYW5kIHRoZSBVRFQgd2lsbCByZWNlaXZlIGFsbCBvZiB0aGUgZm9ybVwmIzAzOTtzIGh1bWFuLXJlYWRhYmxlIHJlc3VsdHMuIFRoZSBVRFQgc2hvdWxkIGRvIHdoYXRldmVyCnZhbGlkYXRpb24gaXQgd2FudHMsIGFuZCByZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgZmlyc3QgdmFsdWUgYmVpbmcgdHJ1ZSBvciBmYWxzZSAoaW5kaWNhdGlvbiB3aGV0aGVyIHRoZSBmb3JtIHZhbGlkYXRlcyksIGFuZCB0aGUgc2Vjb25kCnZhbHVlIGJlaW5nIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvbGk+CjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIHRoZSBmaXJzdCB0aW1lIChvbmx5IGNhbGxlZCBvbmNlKS4gVGhpcwppcyBzZXQgaW4gdGhlIEZvcm0gQWRtaW4gaW4gdGhlIFVEVCBJbnRlZ3JhdGlvbiB0YWIuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgb24gdGhlIGZpcnN0IGRpc3BsYXkKb2YgdGhlIGZvcm0uPC9saT4KPGxpPlVzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgKGNhbGxlZCBvbiBldmVyeSBwYWdlIG9mIG11bHRpcGFnZQpmb3JtcykuIFRoaXMgaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkCmV2ZXJ5IHRpbWUgYW55IHBhZ2Ugb2YgdGhlIGZvcm0gaXMgZGlzcGxheWVkIChpbmNsdWRpbmcgd2hlbiB2YWxpZGF0aW9uIGZhaWxzKS48L2xpPgo8L3VsPgo8aDM+Q29uZmlndXJhdGlvbjwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4KPHVsPgo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4KPGxpPlJ1biBpbiBNTEUgTW9kZS4gVGhpcyBjaGFuZ2VzIHNvbWUgcXVlcmllcyBhZ2FpbnN0IHRoZSBjb250ZW50IHRhYmxlIHRvIHRyeSB0byBwcmV2ZW50IHVnbHkgY3Jhc2hlcyB1bmRlciB0aGUgTUxFIGZvcmsuIENoZWNraW5nIHRoaXMgd2lsbCBjYXVzZSB1Z2x5IGNyYXNoZXMgaWYgeW91IGFyZSBOT1QgcnVubmluZyB0aGUgTUxFIGZvcmsuPC9saT4KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIG5vIGxvbmdlciBzZXQgYnkgZGVmYXVsdC4gQ2hlY2tpbmcgaXQgd2lsbCBoaWRlIHRoZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0aGF0IHdvdWxkIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5BZnRlciBhIGJpdCBvZiBuYWdnaW5nIG9uIHRoZSBwYXJ0IG9mIHBlb3BsZSB3aG8gYWN0dWFsbHkgcmVzcGVjdCBzdGFuZGFyZHMsIEZvcm1CdWlsZGVyIG5vIGxvbmdlciBlbmNvdXJhZ2VzIHRyaWNrcyBsaWtlIGVtYmVkZGluZyBDU1MgaW4gCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICZxdW90O0Zvcm1CdWlsZGVyIERlZmF1bHQmcXVvdDsgdGhhdCB5b3UgYXJlIGVuY291cmFnZWQgdG8gYXR0YWNoIHRvIHRoZSBwYWdlIHRlbXBsYXRlCnRoYXQgeW91IHVzZSBmb3IgcGFnZXMgdGhhdCBjb250YWluIHlvdXIgZm9ybS48L3A+ICAKPHA+VGhpcyBkZWZhdWx0IENTUyB3YXMgZ3JhY2lvdXNseSBwcm92aWRlZCBieSBQYXVsIE5vb25lLjwvcD4KCgo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGhlbHAgdGV4dDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIHRoZSBjYXNlIG9mIGEgbXVsdGlwYWdlIGZvcm0sIHlvdSB3aWxsIGFsc28gaGF2ZSBhY2Nlc3MgdG8gdGhlIHZhbHVlIG9mIHByZXZpb3VzIGZpZWxkcy4gVGhleQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT52YWx1ZX0gKS4KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPgo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCjxoMz5DcmVkaXRzPC9oMz4KPHA+TWFueSBwZW9wbGUgaGF2ZSBjb250cmlidXRlZCBjb2RlLCBidWcgcmVwb3J0cywgY2FzaCwgYW5kIGlkZWFzIHRvIEZvcm1CdWlsZGVyLiBBbW9uZyB0aGVtIChhbHBoYWJldGljYWxseSk6Cjx1bD4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYnB0aS5ldSI+QmFsdGljIGluc3RpdHV0ZSBvZiBhZHZhbmNlZCB0ZWNobm9sb2d5PC9hPiAtIGNvZGUsIGZ1bmRpbmcgPC9saT4KPGxpPkplcmVteSBCYXNzIC0gY29kZSBhbmQgc3VnZ2VzdGlvbnM8L2xpPgo8bGk+QWxiZXJ0byBCZW5hdGkgLSBjb2RlPC9saT4KPGxpPlR5bGVyIEJvZXNwZmx1ZyAtIGZ1bmRpbmcgYW5kIGlkZWFzPC9saT4KPGxpPkplZmYgQm9zY2ggLSBVRFQgVmFsaWRhdGlvbjwvbGk+CjxsaT5Sb2JlcnQgQ2FtcGJlbGwgLSBudW1lcm91cyBjb2RlIGNvbnRyaWJ1dGlvbnM8L2xpPgo8bGk+UGlvdHJhcyBDaW1tcGVybWFuIC0gY29kZTwvbGk+CjxsaT5OdW5vIENvc3RhIC0gc3VnZ2VzdGlvbnM8L2xpPgo8bGk+UnlhbiBGb3N0ZXIgLSBjb2RlPC9saT4KPGxpPk1hcmMgR2VsZG9uIC0gY29kZTwvbGk+CjxsaT5LZXZpbiBHcmFuZG9uIC0gY29kZTwvbGk+CjxsaT5Sb25ueSBLcmlqdCAtIGNvZGU8L2xpPgo8bGk+UGF1bCBOb29uZSAtIENTUyBhbmQgaWRlYXM8L2xpPgo8bGk+TW9ydGVuIFBvdWxzZW4gLSBjb2RlPC9saT4KPGxpPlBydWUgUm93bGFuZCAtIGJ1ZyBmaXhlczwvbGk+CjxsaT5TaW1vbiBTY2hhdWZlbGJlcmdlciAtIGNvZGU8L2xpPgo8bGk+QWRhbSBTaGF3LVZhcmRpIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPgo8L3VsPgo8cD5JIGFwb2xvZ2l6ZSBmb3IgYW55IG9taXNzaW9ucyAtIG5vdGlmeSBtZSwgYW5kIEkmIzAzOTtsbCBjb3JyZWN0IHRoZSBvbWlzc2lvbiE8L3A+CjxoMz5NaXNjZWxsYW5lb3VzIE5vdGVzPC9oMz4KPHVsPgo8bGk+QW55IGZpZWxkcyB0aGF0IHNlbmRzIGVtYWlsIHRvIGEgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBhbHNvIGFjY2VwdCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcy48L2xpPgo8L3VsPgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPgo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPgo8L3VsPgoKPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+CjxvbD4KPGxpPkZvcm1CdWlsZGVyL0Zvcm1Ccm93c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gUEhQIDUgb3IgbGF0ZXIgdG8gZnVuY3Rpb24gY29ycmVjdGx5LjwvbGk+CjxsaT5GaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuNiBvciBsYXRlci48L2xpPgo8bGk+U2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+CjxsaT4gTWFrZSBzdXJlIHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNlbmQgZW1haWwgdmlhIHRoZSB0ZXN0IGluIHRoZSBDTVNNYWlsZXIgTW9kdWxlLiBJdCYjMDM5O3Mgc2ltcGx5IGFtYXppbmcgaG93IG1hbnkgcHJvYmxlbXMgYm9pbCBkb3duIHRvIGEgbWlzY29uZmlndXJlZCBDTVNNYWlsZXIuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8bGk+RG9uYXRpb25zIGFyZSBnb29kIG1vdGl2YXRvcnMsIHRvby4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGRvbGxhciBpcyB3ZWFrLCBhbmQgaWYgeW91IGFyZSBub3QgaW4gdGhlIFVTLCB5b3VyIGRvbmF0aW9uIGdldHMgbWFnbmlmaWVkLjwvbGk+CjwvdWw+CjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCA8ZW0+aHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzPC9lbT4gaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuClBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igc2VuZCB5b3VyIHF1ZXN0aW9ucyB3cml0dGVuIG9uCmZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNoZWNrcyBvciBjYXNoKS4gQW0gSSBzb3VuZGluZyBsaWtlIGEgYnJva2VuIHJlY29yZD8gRG8geW91IGtpZHMgdGhlc2UgZGF5cwpldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYQpzYW1wbGUgdGhhdCBnb3Qgc3R1Y2sgb24gbG9vcD8gRGFtbiwgSSBhbSBnZXR0aW5nIG9sZC4gU28gaXMgdGhpcyBwYXJhZ3JhcGguIFRpbWUgdG8gbW92ZSBvbiwgaGVyZS48L3A+PGZvcm0gYWN0aW9uPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3ImcXVvdDsgbWV0aG9kPSZxdW90O3Bvc3QmcXVvdDs+CjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2NtZCZxdW90OyB2YWx1ZT0mcXVvdDtfcy14Y2xpY2smcXVvdDs+CjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVDQ19MRy5naWYmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgbmFtZT0mcXVvdDtzdWJtaXQmcXVvdDsgYWx0PSZxdW90O1BheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISZxdW90Oz4KPGltZyBhbHQ9JnF1b3Q7JnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiZxdW90OyB3aWR0aD0mcXVvdDsxJnF1b3Q7IGhlaWdodD0mcXVvdDsxJnF1b3Q7Pgo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtlbmNyeXB0ZWQmcXVvdDsgdmFsdWU9JnF1b3Q7LS0tLS1CRUdJTiBQS0NTNy0tLS0tTUlJSFR3WUpLb1pJaHZjTkFRY0VvSUlIUURDQ0J6d0NBUUV4Z2dFd01JSUJMQUlCQURDQmxEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMENBUUF3RFFZSktvWklodmNOQVFFQkJRQUVnWUFJTm5CV2IvWE00bG12TEdIbDlSZDFjdkw1dHJxUmhjNytGb0dINUx0b2ZRaVZyZ0ZTdmg3aDFvamc1U3pUeGJndGkzMlpGMC91Y3VxL09RU0QrVnp1dUFGMXY2d1ZydHlPZUNQRUF3OGo4MURKT1hWakpIc0lZMm12aW9yUGpvbExRa0ZudjEyeVJUcHVGV0ZuNFpYZTUrdm5DalhxQnkwRUUvYWh6RU1NbnpFTE1Ba0dCU3NPQXdJYUJRQXdnY3dHQ1NxR1NJYjNEUUVIQVRBVUJnZ3Foa2lHOXcwREJ3UUljS05Od09QRm93dUFnYWl2Uzd2MGoyWEZ5UTlkcjhuaTlHOTVlRTdZcW9nR2xLOXd1U3BsbE9nOWxucnV2bkVRcXNtUm1RbnRoUXFXQ1RiWnpHMitJRXRlTTRJVXN4RXVHVHJ3OHBaQ1UyNFRORGNrbktVeDlVejN2U3hPaDNndTk1eUp5RHdvZU12YUVBMjRiczE0UUViSmJoTmpZNld4SHo5K2kvbFZBREJqeUFPRFlNdXphbERrdmR1dndlR05aazlsWUxSUkNvUFBOaWxHMVBmNnc4N0JIcGtTTThXUTFMQzkrUldkWGZaY20rZWdnZ09ITUlJRGd6Q0NBdXlnQXdJQkFnSUJBREFOQmdrcWhraUc5dzBCQVFVRkFEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdIaGNOTURRd01qRXpNVEF4TXpFMVdoY05NelV3TWpFek1UQXhNekUxV2pDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFNRkhUdDM4Uk14TFhKeU8yU21TK05kbDcyVDdvS0o0dTR1dys2YXdudEFMV2gwM1Bld21JSnV6YkFMU2NzVFM0c1pvUzFmS2NpQkdvaDExZ0lmSHp5bHZrZE5lL2hKbDY2L1JHcXJqNXJGYjA4c0FBQk5UekRUaXFxTnBKZUJzWXMvYzJhaUdvenB0WDJSbG5Ca3RIK1NVTnBBYWpXNzI0TnYyV3ZoaWY2c0ZBZ01CQUFHamdlNHdnZXN3SFFZRFZSME9CQllFRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpSck1JRzdCZ05WSFNNRWdiTXdnYkNBRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpScm9ZR1VwSUdSTUlHT01Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DUTBFeEZqQVVCZ05WQkFjVERVMXZkVzUwWVdsdUlGWnBaWGN4RkRBU0JnTlZCQW9UQzFCaGVWQmhiQ0JKYm1NdU1STXdFUVlEVlFRTEZBcHNhWFpsWDJObGNuUnpNUkV3RHdZRFZRUURGQWhzYVhabFgyRndhVEVjTUJvR0NTcUdTSWIzRFFFSkFSWU5jbVZBY0dGNWNHRnNMbU52YllJQkFEQU1CZ05WSFJNRUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkJRVUFBNEdCQUlGZk9sYWFnRnJsNzEranE2T0tpZGJXRlNFK1E0RnFST3ZkZ0lPTnRoKzhrU0svL1kvNGlodUU0WW12em41Y2VFM1MvaUJTUVFNanl2YitzMlRXYlFZRHdjcDEyOU9QSWJEOWVwZHI0dEpPVU5pU29qdzdCSHdZUmlQaDU4UzF4R2xGZ0hGWHdyRUJiM2RnTmJNVWErdTRxZWN0c01BWHBWSG5EOXdJeWZtSE1ZSUJtakNDQVpZQ0FRRXdnWlF3Z1k0eEN6QUpCZ05WQkFZVEFsVlRNUXN3Q1FZRFZRUUlFd0pEUVRFV01CUUdBMVVFQnhNTlRXOTFiblJoYVc0Z1ZtbGxkekVVTUJJR0ExVUVDaE1MVUdGNVVHRnNJRWx1WXk0eEV6QVJCZ05WQkFzVUNteHBkbVZmWTJWeWRITXhFVEFQQmdOVkJBTVVDR3hwZG1WZllYQnBNUnd3R2dZSktvWklodmNOQVFrQkZnMXlaVUJ3WVhsd1lXd3VZMjl0QWdFQU1Ba0dCU3NPQXdJYUJRQ2dYVEFZQmdrcWhraUc5dzBCQ1FNeEN3WUpLb1pJaHZjTkFRY0JNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MHdPREEzTURFd016VTVNemxhTUNNR0NTcUdTSWIzRFFFSkJERVdCQlFNMExWMzBmTFhjSDlNNWRNbXVUQkxuc0ZRNGpBTkJna3Foa2lHOXcwQkFRRUZBQVNCZ0JFejJYcU1NcUZidVVoaitMMTI4Q3cydThTaE9LUXR0cktyL2hpMFdSZWVuSERZQmlIT1N0bDYzUnY3NlEybXBkNDUzUnZDajVtcTdkUnR1UkI2cGZIR1JEa1VYNk4xK09PSW9JZnJvQlpJQVROaHo5Q0VId0VGa05qWWcwRUdNQUcramNiQWoxREpqUjczY3hiYU5yWFdQeEEraGlRaEhsQXJyWkE3ckZWNS0tLS0tRU5EIFBLQ1M3LS0tLS0KJnF1b3Q7Pgo8L2Zvcm0+PHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDksIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjkyMDcxMTk3LjM0NTguNzkudXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2luZGV4LnBocC90b3BpYyw0OTk4OS4wL3RvcGljc2Vlbi5odG1sJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTc5MDUyNjIzMDg0MTEwMTAwLjEyMTA0MjM1NzcuMTI5NTY0OTk5OS4xMjk1NzE1NDg5LjM1MTMnOwokbGFuZ1sncWNhJ10gPSAnMTIxMDk3MTY5MC0yNzMwODA3My04MTk1MjgzMic7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI5NTcxNTQ4OSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlciAnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdWZWxkdHlwZSBuaWV0IGluZ2VzdGVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3RlZXIgZWVuIChvZiBtZWVyKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy0gVmVsZCBlaW5kZSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctIFZlbGQgc3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGludm9lcic7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdIVE1MNSBHZXRhbCBJbnZvZXInOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdIVE1MNSBFLW1haWwgSW52b2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVVUkxGaWVsZCddID0gJ0hUTUw1IFVSTCBJbnZvZXInOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnV2FjaHR3b29yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ05vZ21hYWxzIHdhY2h0d29vcmQgKHRlciBjb250cm9sZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGVrc3RpbnZvZXIgKG1lZXJkZXJlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ1RvZXRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1NlbGVjdGlldmFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnU2VsZWN0aWV2YWstZ3JvZXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnS2V1emVsaWpzdCc7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnSmFhciBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNZWVya2V1emUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZW4ta2llemVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0NhbmFkZXNlIFByb3ZpbmNpZS1raWV6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdMYW5kZW5raWV6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXR1bWtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpamRraWV6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdTZWxlY3RpZXJvbmRqZXMtZ3JvZXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkUtbWFpbCByZXN1bHRhdGVuIGdlYmFzZWVyZCBvcCBrZXV6ZWxpanN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqQmV3YWFyIHJlc3VsdGF0ZW4gaW4gZWVuIGJlc3RhbmQgZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKkJld2FhciByZXN1bHRhdGVuIGluIGJlc3RhbmRlbiBnZWJhc2VlcmQgb3AgbWVlci1rZXV6ZWxpanN0ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IG5hYXIgcGFnaW5hIGdlYmFzZWVyZCBvcCBrZXV6ZWxpanN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFLW1haWwgcmVzdWx0YXRlbiBuYWFyIGluZ2VzdGVsZGUgYWRyZXMoc2VuKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRlZXItdmlhLW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkUtbWFpbCAmcXVvdDtWYW4gQWRyZXMmcXVvdDsgVmVsZCwgdmVyemVuZCBlZW4ga29waWUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqU2NocmlqZiByZXN1bHRhdGVuIG5hYXIgYmVzdGFuZCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqUmVzdWx0YXRlbiBvcHNsYWFuIGluIGRhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTbGEgcmVzdWx0YXRlbiBvcCB2b29yIEZvcm1Ccm93c2VyIE1vZHVsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypTdGFydCBlZW4gZ2VicnVpa2VyZ2VkZWZpbmllZXJkZSB0YWcgbWV0IGRlIGZvcm11bGllciByZXN1bHRhdGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKlZlcnN0dXVyIG5hYXIgZWVuIHdpbGxla2V1cmlnZSBmb3JtdWxpZXJhY3RpZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1tYWlsIG5hYXIgaGV0IG9wZ2VnZXZlbiBlLW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRS1tYWlsIG5hYXIgQ01TIEFkbWluIEdlYnJ1aWtlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLSBQYWdpbmFzY2hlaWRpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdCZXN0YW5kIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJyZxdW90O1ZhbiBBZHJlcyZxdW90OyBlLW1haWx2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFLW1haWwgJnF1b3Q7VmFuIEFkcmVzJnF1b3Q7IEhlcmhhbGluZ3N2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnJnF1b3Q7VmFuIE5hYW0mcXVvdDsgZS1tYWlsdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJyZxdW90O09uZGVyd2VycCZxdW90OyBlLW1haWx2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLSBTdGF0aXNjaGUgVGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctIFN0YXRpc2NoZSBsaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnLSBMaW5rIChpbmdldm9lcmQgZG9vciBnZWJydWlrZXIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctIFZlcmJvcmdlbiB2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gQmVyZWtlbmQgdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy0gVW5pZWsgR2V0YWwgKFNlcmllbnVtbWVyKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy0gQWFucm9lcCBHZWJydWlrZXJzZ2VkZWZpbmllZXJkZSBUYWcgKFVEVCknOwokbGFuZ1snZmllbGRfdHlwZV9Db21wYW55RGlyZWN0b3J5RmllbGQnXSA9ICdDb21wYW55IERpcmVjdG9yeSBWZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctIE1vZHVsZSBJbnRlcmZhY2UgVmVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdHZWVuIHZhbGlkYXRpZSc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmllayc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdHZWhlZWwgZ2V0YWwnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRS1tYWlsYWRyZXMnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNb2V0IGFhbmdldmlua3Qgd29yZGVuJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNb2V0IHZvbGRvZW4gYWFuIGVlbiByZWd1bGllcmUgZXhwcmVzc2llJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ1ZvbGRvZXQgbmlldCBhYW4gZGUgcmVndWxpZXJlIGV4cHJlc3NpZSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnRWVuIHdhYXJkZSBvbnRicmVla3Qgdm9vciBkaXQgdmVycGxpY2h0ZSB2ZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnVm9lciBlZW4gd2FhcmRlIGluIHZvb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVm9lciBlZW4gbnVtbWVyIGluIGJpaiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdWb2VyIGVlbiBnZWxkaWdlIHdhYXJkZSBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdWb2VyIGVlbiBnZXRhbCBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnVm9lciBlZW4gZ2VsZGlnIGUtbWFpbGFkcmVzIGluIGJpaiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsYWRyZXMga29tdCBuaWV0IG92ZXJlZW4gbWV0IGRlIHdhYXJkZSAlcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1ZvZXIgZWVuIGdlbGRpZyB0ZWxlZm9vbm51bW1lciBpcyB2b29yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ1dpbHQgdSB6aWNoIGFsc3R1YmxpZWZ0IGFhbm1lbGRlbiBvbSBkaXQgZm9ybXVsaWVyIHRlIGdlYnJ1aWtlbic7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBpcyBnZWVuIGdlbGRpZyBlLW1haWxhZHJlcy4nOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ZvZXIgZWVuIHdhYXJkZSBpbiBkaWUgbmlldCBsYW5nZXIgaXMgZGFuICVzIHRla2Vucyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdWb2VyIGVlbiB3YWFyZGUgaW4sIG1ldCBtaW5pbWFhbCAlcyBrYXJha3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdUZWtlbiBvbSB0ZSBnZWJydWlrZW4gYWxzIHNjaGVpZGluZyBiaWogcmVzdWx0YXRlbiBkaWUgbWVlciBkYW4gJmVhY3V0ZTsmZWFjdXRlO24gd2FhcmRlIHRlcnVnZ2V2ZW4nOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0hldCAmcXVvdDslcyZxdW90Oy1yZWNodCBpcyB2ZXJlaXN0IHZvb3IgZGllIGJld2Vya2luZy4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgVSBoZWVmdCBvbnZvbGRvZW5kZSByZWNodGVuIG9tIGRlemUgc2VjdGllIHRlIGJlbmFkZXJlbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ1ZlbGR2b2xnb3JkZSBiaWpnZXdlcmt0Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxpZXIgdmVyd2lqZGVyZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1ZlbGQgdmVyd2lqZGVyZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhdGllIGJpamdld2Vya3QuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbW9ldCBnZXNlbGVjdGVlcmQgemlqbiBvbSBkb29yIHRlIGt1bm5lbiBnYWFuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRXIgbW9ldCB0ZW5taW5zdGUgJmVhY3V0ZTsmZWFjdXRlO24gYmVzdGVtbWluZ3NhZHJlcyB3b3JkZW4gb3BnZWdldmVuLic7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdIZXQgZm9ybXVsaWVyICVzIHZlcndpamRlcmVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSGV0IHZlbGQgJXMgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0dlYXZhbmNlZXJkZSBvcHRpZXMgemlqbiBuaWV0IGJlc2NoaWtiYWFyIHZvb3JkYXQgaGV0IHZlbGR0eXBlIGluZ2VzdGVsZCBpcy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdEZSB2ZWxkbmFhbSAmcXVvdDslcyZxdW90OyBpcyBhbCBpbiBnZWJydWlrLiBHZWJydWlrIHVuaWVrZSB2ZWxkbmFtZW4gb2Ygc2NoYWtlbCB1bmlla2UgdmVsZG5hbWVuIHVpdCBpbiBkZSBGb3JtIEJ1aWxkZXItY29uZmlndXJhdGllLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnVmVsZGVuIG1vZXRlbiBlZW4gbmFhbSBoZWJiZW4sIGJlaGFsdmUgYWxzIGRlemUgdWl0Z2VzY2hha2VsZCB6aWpuIGluIGRlIEZvcm0gQnVpbGRlci1jb25maWd1cmF0aWUuJzsKJGxhbmdbJ25vX2ZpZWxkX2Fzc2lnbmVkJ10gPSAnR2VlbiB2ZWxkIHRvZWdld2V6ZW4gdm9vciAlcyc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaWVtJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMZW5ndGU6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgdmFra2VuJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpZXMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyB0ZWtlbnMnOwokbGFuZ1snb3JkZXInXSA9ICdWb2xnb3JkZSc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuaWV0IG9wZ2VnZXZlbl0nOwokbGFuZ1snYWRkZWQnXSA9ICd0b2VnZXZvZWdkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdiaWpnZXdlcmt0JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnRlZXJvcHRpZXMgdmFuIGRlIHVpdHZvZXInOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdGVlciAmZWFjdXRlOyZlYWN1dGU7bic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdGVlciBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnQWFuJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVlJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdvbnR2YW5nZXJzJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ3ZlbGRlbic7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbW9nZWxpamtlIGJlc3RhbmRlbic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGJlc3RlbW1pbmdlbic7CiRsYW5nWydzYXZlJ10gPSAnT3BzbGFhbic7CiRsYW5nWydhZGQnXSA9ICdUb2V2b2VnZW4nOwokbGFuZ1sndXBkYXRlJ10gPSAnQmlqd2Vya2VuJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnT3BzbGFhbiBlbiBkb29yZ2FhbiBtZXQgd2lqemlnZW4nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGllJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpc2NoJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsaWVyZW4nOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGllciAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhdGllJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdWZWxkIHZlcnBsaWNodGUgdG9lc3RhbmQgYmlqZ2V3ZXJrdC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBncm9vdHRlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVWl0YnJlaWRpbmdlbic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVG9lZ2VzdGFuZSBiZXN0YW5kc3R5cGVzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnR2UmdXVtbDtwbG9hZCBiZXN0YW5kIGlzIHRlIGdyb290LiBEZSBtYXhpbWFsZSBncm9vdHRlIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0RpdCB0eXBlIGJlc3RhbmQgbWFnIG5pZXQgd29yZGVuIGdlJnV1bWw7cGxvYWQuIENvbnRyb2xlZXIgZGUgYmVzdGFuZHNleHRlbnNpZS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkICc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsaWVyIGdlJml1bWw7bXBvcnRlZXJkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtdWxpZXIgaW1wb3J0IG1pc2x1a3QhIEVyIHdhcyBlZW4gcHJvYmxlZW0gbWV0IGRlIG9wbWFhayB2YW4gaGV0IFhNTC1iZXN0YW5kLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcmlqZW4nOwokbGFuZ1snY29scyddID0gJyVzIGtvbG9tbWVuJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMi11dXJzIGtsb2snOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXV1cnMga2xvayc7CiRsYW5nWydob3VyJ10gPSAndXVyJzsKJGxhbmdbJ21pbiddID0gJ21pbnV1dCc7CiRsYW5nWydtZXJpZCddID0gJ21lcmlkaWFhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnVmVyemFtZWxpbmc6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnQmVkYW5rdC4gVXcgYmVyaWNodCBpcyBvbnR2YW5nZW4uJzsKJGxhbmdbJ2VkaXQnXSA9ICdCZXdlcmtlbic7CiRsYW5nWydkZWxldGUnXSA9ICdWZXJ3aWpkZXJlbic7CiRsYW5nWydkYXknXSA9ICdkYWcnOwokbGFuZ1snbW9uJ10gPSAnbWFhbmQnOwokbGFuZ1sneWVhciddID0gJ2phYXInOwokbGFuZ1snbm9uZSddID0gJyhnZWVuKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MgJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGdlZGUmaXVtbDtuc3RhbGVlcmQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZXZlcnNpZSAlcyBnZSZpdW1sO25zdGFsbGVlcmQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIGJpamdld2Vya3QgbmFhciB2ZXJzaWUgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RlcnVnLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdWZXJzdHVyZW4nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnVmVyZGVyLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdHZXNlbGVjdGVlcmQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmlldCBnZXNlbGVjdGVlcmQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdTdGFydCc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRm9ybXVsaWVyd2VlcmdhdmVpbnN0ZWxsaW5nZW4nOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm11bGllcnZlcnplbmRpbmcnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhLWluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdHZWF2YW5jZWVyZGUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ0Zvcm11bGllcnNqYWJsb29uJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdWZXJ6ZW5kc2phYmxvb24nOwokbGFuZ1sndGFiX3VkdCddID0gJ1VEVCBJbnRlZ3JhdGllJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5LXZhcmlhYmVsZW4gbW9nZW4gaW4gZGl0IHZlbGQgZ2VicnVpa3Qgd29yZGVuLjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTWVlciBvcHRpZXMgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVmVyd2lqZGVyZW4gZ2VtYXJrZWVyZGUgb3B0aWVzJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnVm9lZyBtZWVyIHNlbGVjdGlldmFra2VuIHRvZSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1ZlcndpamRlciBnZW1hcmtlZXJkZSBzZWxlY3RpZXZha2tlbic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ZvbGdlbmQgYWRyZXMgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnVmVyd2lqZGVyIGdlbWFya2VlcmRlIGFkcmVzc2VuJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ1ZvbGdlbmRlIGJlc3RlbW1pbmcgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1ZlcndpamRlciBnZW1hcmtlZXJkZSBiZXN0ZW1taW5nZW4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUZSB2ZWVsIGUtbWFpbHMgdmVyem9uZGVuIHZhbmFmIHV3IElQLWFkcmVzLiBBbnRpLXNwYW0gbWVjaGFuaXNtZSBibG9ra2VlcnQgZGUgdmVyemVuZGluZy4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnVmVyZGFjaHRlIHNwYW0gdmFuIElQICVzIGdlYmxva2tlZXJkLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnSGVyc2NoaWsgdmVsZGVuJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXJlbic7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdJbmdlc3RlbGRlIHdhYXJkZTogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0hpZXJvbmRlciBzdGFhdCBlZW4gbGlqc3QgbWV0IGF0dHJpYnV0ZW4gZGllIGJlc2NoaWtiYWFyIHppam4gdmFudWl0IGRlIENhdGFsb2dlciBtb2R1bGUuPGJyLz4JClUga3VudCBldmVudHVlZWwgZ2VsZGlnIHJlZWtzZW4sIHdhYXJkZW4sIG9mIGVlbiBncm9vdCBhYW50YWwgd2FhcmRlbiBzcGVjaWZpY2VyZW4gZGllIHdvcmRlbiBnZWJydWlrdCBiaWogaGV0IGZpbHRlcmVuIHZhbiBkZSBsaWpzdCB2YW4gb2JqZWN0ZW4gZGllIHdvcmRlbiB3ZWVyZ2VnZXZlbiBhYW4gZGUgZ2VicnVpa2VyLiA8YnIvPgo8YnIvPgo8c3Ryb25nPlJlZWtzZW46PC9zdHJvbmc+PGJyLz4KUmVla3NlbiBrdW5uZW4gd29yZGVuIG9wZ2VnZXZlbiBkb29yIGVlbiBtaW5pbWFsZSBlbiBtYXhpbWFsZSB3YWFyZGUgdmFuIGhldCBnZWJydWlrIHZhbiBkZXplIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4KPGJyLz4KPHN0cm9uZz5WZXJzY2hpbGxlbmRlIHdhYXJkZW46PC9zdHJvbmc+PGJyLz4KT20gZWVuIHdhYXJkZSB0ZSBzcGVjaWZpY2VyZW4gdm9vciBlZW4gYXRyaWJ1dXQsIGt1biBqZSBkZSBzeW50YWMgJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7IGdlYnJ1aWtlbi48YnIvPgo8YnIvPgo8c3Ryb25nPldhYXJkZW4gaW4gdmVyYm9yZ2VuIHZlbGRlbjwvc3Ryb25nPjxici8+Ck9tIGVlbiB3YWFyZGVuIHRvZSB0ZSBrZW5uZW4gYWFuIGVlbiB2ZXJib3JnZW4gdmVsZCwgZ2VicnVpa3QgdSBkZSBzeW50YXggeyRmbGRfaWR9PGJyLz4KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnRWVuIHJlZ3VsaWVyZSBleHByZXNzaWUgb20gZGUgY2F0YWxvZ2VyIGl0ZW1zIHRlIHNvcnRlcmVuIG9wIG5hYW0nOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdEZSBob29ndGUgdmFuIGhldCBtdWx0aXNlbGVjdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYWFtIFJlZ3VsaWVyZSBFeHByZXNzaWUnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnVmVsZCBob29ndGUnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnQmVzdGVtbWluZ3NtYXAgdm9vciB1aXR2b2VyYmVzdGFuZGVuJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnR2VicnVpa2VyZ2VkZWZpbmVlcmRlIHRhZyAoVURUKSc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnaW5hIG9tIG5hYXIgdGVydWcgdGUga2VyZW4gbWV0IHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1ZlcnpvbmRlbiBtZXQgRm9ybSBCdWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzLWNhdGVnb3JpZSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1N0dXVyIGRpdCBiZXN0YW5kIG5hYXIgZGUgdXBsb2FkLW1vZHVsZSc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGUnXSA9ICdUb2VzdGFhbiBvbSBlZXJkZXIgZ2V1cGxvYWRlIGJlc3RhbmRlbiB0ZSBvdmVyc2NocmlqdmVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGVfbG9uZyddID0gJ01vZXQgaGV0IGdlJnV1bWw7cGxvYWRlIGJlc3RhbmQgZWVyZGVyIGdlJnV1bWw7cGxvYWRlIGJlc3RhbmRlbiBtZXQgZGV6ZWxmZGUgbmFhbSBvdmVyc2NocmlqdmVuPyc7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdTdGEgb3ZlcnNjaHJpanZlbiB0b2UnOwokbGFuZ1snbm9vdmVyd3JpdGUnXSA9ICdOaWV0IG92ZXJzY2hyaWp2ZW4nOwokbGFuZ1snZmlsZV9hbHJlYWR5X2V4aXN0cyddID0gJ0Jlc3RhbmQgJXMgYmVzdGFhdCBhbCBlbiBrYW4gbmlldCBvdmVyc2NocmV2ZW4gd29yZGVuLic7CiRsYW5nWyd0aXRsZV9maWxlX3JlbmFtZSddID0gJ0Jlc3RhbmRzbmFhbSBzamFibG9vbic7CiRsYW5nWydvcmlnaW5hbF9maWxlX2V4dGVuc2lvbiddID0gJ09yaWdpbmFsIGZpbGUgZXh0ZW5zaW9uIChpbmNsdWRlcyB0aGUgJnF1b3Q7LiZxdW90OyknOwokbGFuZ1sndGl0bGVfc3VwcHJlc3NfZmlsZW5hbWUnXSA9ICdPbmRlcmRydWsgYmVzdGFuZHNuYWFtIGluIGUtbWFpbHMgZW4gZm9ybXVsaWVyZW4gZGllIGRlIGVpbmRnZWJydWlrZXIgdGUgemllbiBrcmlqZ3QnOwokbGFuZ1snZmlsZV9yZW5hbWVfaGVscCddID0gJ09tIGhldCBiZXN0YW5kIHRlIGhlcm5vZW1lbiB0aWpkZW5zIGhldCB1cGxvYWRlbiBtb2V0IHUgaGllciBlZW4gdGVtcGxhdGUgYWFubWFrZW4uIExhYXQgZGl0IHZlbGQgbGVlZyBhbHMgdSBkZSBvcmlnaW5lbGUgYmVzdGFuZHNuYWFtIHdpbHQgYmVob3VkZW4uJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIGxlbmd0ZSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ1NlbGVjdGlldmFrbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdTZWxlY3RpZXJvbmRqZWxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdXYWFyZGUgaW5kaWVuIGdlc2VsZWN0ZWVyZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdXYWFyZGUgaW5kaWVuIG5pZXQgZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdTZWxlY3RpZXZhay1ncm9lcGRldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdGVlciAmZWFjdXRlOyZlYWN1dGU7biZxdW90OyB0ZWtzdDonOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aWV3YWFyZGUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aWV3ZWVyZ2F2ZW5hYW0nOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3RpZW9uZGVyd2VycCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhYXJkc2VsZWN0aWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTdGFuZGFhcmRzZWxlY3RpZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1N0YW5kYWFyZHNlbGVjdGllJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aWVuYWFtJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZlcnN0dXVyZGUgd2FhcmRlJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdLZXV6ZWxpanN0b3B0aWVzJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNZWVya2V1emVvcHRpZXMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Jlc3RlbW1pbmdzIGUtbWFpbGFkcmVzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnQmVzdGVtbWluZ3NiZXN0YW5kc25hYW0nOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7VmFuIE5hYW0mcXVvdDsgdm9vciBlLW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0dlYnJ1aWsgZWVudm91ZGlnZSBlLW1haWx2YWxpZGF0aWUnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnR2VicnVpayBlZW52b3VkaWdlIGUtbWFpbHZhbGlkYXRpZSAoc3RhIGJpanZvb3JiZWVsZCAmcXVvdDt4QHkmcXVvdDsgdG9lIGkucC52LiAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtWYW4gYWRyZXMmcXVvdDsgdm9vciBlLW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFLW1haWwga2FyYWt0ZXJzZXQgZW5jb2RlcmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnS2V1emVsaWpzdGdlYmFzZWVyZGUgZS1tYWlsZGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdCZXN0YW5kc25hYW0nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0UtbWFpbCBvbmRlcndlcnByZWdlbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtdWxpZXJuYWFtJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybXVsaWVyc3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnR2VyZWVkIHZvb3IgZ2VicnVpayc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmlldCBnZXJlZWQnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2luYSBvbSB0ZSB0b25lbiBuYSB2ZXJ6ZW5kaW5nIHZhbiBoZXQgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdWb2VnIGVlbiB2ZWxkIHRvZSB6b2RhdCBkZSBpbnZvZXIgdmFuIGRlIGdlYnJ1aWtlciB2ZXJ3ZXJrdCBrYW4gd29yZGVuLiBVIGt1bnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdkZXplIHNuZWxrb3BwZWxpbmcgZ2VicnVpa2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtdWxpZXJhbGlhcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhc19zaG9ydCddID0gJ0FsaWFzICc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm11bGllcnZlbGRlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ1ZlbGQtSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdUb29uIHZlbGQtYWxpYXNzZW4nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0RlemUgc2VsZWN0ZXJlbiB6b3JndCB2b29yIGhldCB0b25lbiB2YW4gdmVsZC1hbGlhc3NlbiB0aWpkZW5zIHRvZXZvZWdlbiBvZiB3aWp6aWdlbiB2YW4gZWVuIGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnVmVsZG5hYW0nOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdWZWxkLWFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1NlbGVjdGllcm9uZGplLWdyb2Vwc2RldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1ZlbGR0eXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdvbSBlZW4gZm9ybXVsaWVydmVyd2Vya2luZ3N2ZWxkIHRlIG1ha2VuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdOaWV1dyBmb3JtdWxpZXIgdG9ldm9lZ2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpZSB0b25lbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdEaXQgdm9lZ3QgaGV0IHZlcnNpZW51bW1lciB2YW4gZGUgZ2UmaXVtbDtuc3RhbGxlZXJkZSBGb3JtQnVpbGRlci1tb2R1bGUgYWxzIGNvbW1lbnRhYXIgdG9lLCBvbSB0ZSBoZWxwZW4gYmlqIGRlYnVnZ2VuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnTmlldXcgdmVsZCB0b2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybXVsaWVydmVyemVuZGtub3B0ZWtzdCc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ1RvZXRzIHRla3N0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnSmF2YXNjcmlwdCBhYW4gdmVyemVuZGtub3AgdG9ldm9lZ2VuIG9tIG1lZXJkZXJlIHZlcnplbmRpbmdlbiB0ZSB2b29ya29tZW4/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdWZWlsaWdoZWlkc3NjcmlwdCB0b2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm11bGllciAmcXVvdDtWb2xnZW5kZSZxdW90OyBrbm9wdGVrc3QgKGdlYnJ1aWt0IGJpaiBmb3JtdWxpZXJlbiB2YW4gbWVlcmRlcmUgcGFnaW5hJiMwMzk7cyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm11bGllciAmcXVvdDtWb3JpZ2UmcXVvdDsga25vcHRla3N0IChnZWJydWlrdCBiaWogZm9ybXVsaWVyZW4gdmFuIG1lZXJkZXJlIHBhZ2luYSYjMDM5O3MpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdWZWxkdmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnVmVsZCBvbSB0ZSB2YWxpZGVyZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIGlkIHZvb3IgZGl0IHZlbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1Mta2xhc3NlIHZvb3IgZGl0IGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1Mta2xhc3NlIHZvb3IgZGl0IHZlbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X3VkdCddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIHZvb3JkYXQgaGV0IGZvcm11bGllciB6aWNodGJhYXIgd29yZHQnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmVkaXNwbGF5X2VhY2hfdWR0J10gPSAnRWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gdm9vcmRhdCBoZXQgZm9ybXVsaWVyIHdvcmR0IGdldG9vbmQgKHdvcmR0IGFhbmdlcm9lcGVuIG9wIGVsa2UgcGFnaW5hIHZhbiBlZW4gbXVsdGlwYWdlIGZvcm11bGllciknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICdBYW4gdGUgcm9lcGVuIHRhZyB0aWpkZW5zIGZvcm11bGllciB2YWxpZGF0aWUnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib29sIG9tIHZlcmVpc3RlIHZlbGRlbiB0ZSBtYXJrZXJlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1ZlcmVpc3QnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1ZlcmVpc3QgZWVuIGFudHdvb3JkIHZvb3IgZGl0IHZlbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1ZlcmJlcmcgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnVmVyYmVyZyB2ZWxkbmFhbSBvcCBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJ10gPSAnTWF4aW1hbGUgbGVuZ3RlIHZhbiBkZSB2ZWxkaW5ob3VkICgwIG9mIGxlZWcgYmV0ZWtlbnQgZ2VlbiBsaW1pZXQpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNjaGUgdGVrc3Qgb20gd2VlciB0ZSBnZXZlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpZSBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQWFudGFsIHdlZXJnZWdldmVuIHJlZ2Vscyc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdBbGxlZW4gbGV6ZW4nOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0dlZW4gc3RhbmRhYXJkJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnVG9vbiBkZXplIHBhZ2luYSBuYSBnb2Vka2V1cmluZyc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnRGV6ZSByZWd1bGllcmUgZXhwcmVzc2llIHphbCBhbGxlZW4gZ2VicnVpa3Qgd29yZGVuIGFscyAmcXVvdDt2YWxpZGF0aWV0eXBlJnF1b3Q7IGluZ2VzdGVsZCBpcyBvcCBlZW4gcmVnZXgtZ2VyZWxhdGVlcmRlIG9wdGllLiBCZXZhdCBlZW4gdm9sbGVkaWdlIFBlcmwtYWNodGlnZSByZWdleCwgaW5jbHVzaWVmIGRlIHN0YXJ0L3N0b3Agc2xhc2hlcyBlbiB2bGFnZ2VuIChiLnYuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1ZlcnBsaWNodCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1ZlcmJlcmcgRm91dGVuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtdWxpZXJ3ZWVyZ2F2ZXR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1Zvb3Jrb20gZGVidWctIC8gZm91dG1lbGRpbmdlbiB2b29yIGdlYnJ1aWtlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1tYWlsc2phYmxvb24nOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW1hbGUgdXBsb2FkIGJlc3RhbmRzZ3Jvb3R0ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0RlemUgYmVncmVuemluZyBpcyBlZW4gdG9ldm9lZ2luZyBvcCBkZSBiZWdyZW56aW5nZW4gZGllIHppam4gaW5nZXN0ZWxkIGluIGRlIFBIUC0gb2Ygd2Vic2VydmVyY29uZmlndXJhdGllLic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnU2VydmVybWFwIG9tIGJlc3RhbmRlbiBpbiBvcCB0ZSBzbGFhbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1RvZWdlc3RhbmUgZXh0ZW5zaWVzJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdWb2VyIGVlbiBrb21tYSBnZXNjaGVpZGVuIGxpanN0IGluLCB6b25kZXIgZGUgcHVudCAoYi52LiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhdGllcyB3b3JkZW4gb3Zlcmdlc2xhZ2VuLiBMZWVnIGxhdGVuIGJldGVrZW50IGRhdCBlciBnZWVuIGJlcGVya2luZ2VuIHppam4uJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdCZXBlcmtpbmdlbiB3ZWVyZ2V2ZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0dyb290dGUtIGVuIGV4dGVuc2llYmVwZXJraW5nZW4gdG9uZW4gYmlqIGhldCB1cGxvYWQgdmVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1NqYWJsb29uIHZvb3Igd2VlcmdhdmVmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdpbmEgJXMgdmFuICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdWZWxkIGhlZWZ0IGdlZW4gZ2VhdmFuY2VlcmRlIG9wdGllcy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ0dldG9vbmRlIHRla3N0IGJpaiBvbmdlc3BlY2lmaWNlZXJkZSB2ZWxkd2FhcmRlbic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnU25lbC12ZWxkLXRvZXZvZWdlbiB1aXRrbGFwbWVudSBpbnNjaGFrZWxlbiB2b29yIGZvcm11bGllcmVuPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ1NuZWwtdmVsZC10b2V2b2VnZW4gdWl0a2xhcG1lbnUgaW5zY2hha2VsZW4/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTbmVsLXZlbGQtdG9ldm9lZ2VyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnRGl0IGFhbmtsaWtrZW4gemFsIHNsZWNodHMgMTAgZS1tYWlscyB0b2VzdGFhbiB2YW51aXQgZWVuIGdlZ2V2ZW5zIElQLWFkcmVzIChwZXIgdXVyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnUHJpbWl0aWV2ZSBhbnRpLXNwYW0gZnVuY3Rpb25hbGl0ZWl0IGluc2NoYWtlbGVuPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVG9vbiB2ZWxkLWlkJiMwMzk7cyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdEaXQgYWFua2xpa2tlbiBtYWFrdCBoZXQgdG9uZW4gdmFuIHZlbGQtaWQmIzAzOTtzIG1vZ2VsaWprIHRpamRlbnMgdG9ldm9lZ2VuIGVuIHdpanppZ2VuIHZhbiBlZW4gZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybXVsaWVyIHZhbnVpdCBlZW4gWE1MLWJlc3RhbmQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ0dlYnJ1aWsgZGV6ZSBmb3JtdWxpZXJuYWFtJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwtZm9ybXVsaWVyaW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnR2VicnVpayBkZXplIGZvcm11bGllcmFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmVlciBIVE1MIGUtbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aXNjaCBsYWRlbj8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpc2NoIGxhZGVuIG1ldCBkZSBVUkwgdmFuIGRlIHBhZ2luYSBtZXQgaGV0IGZvcm11bGllcj8gKGRpdCBvdmVyc2NocmlqZnQgZGUgcGFnaW5hbGluay1vcHRpZSBoaWVyb25kZXIpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYWFyZCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFhcmQgbGluayB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBuYWFyIGRlIHNpdGVwYWdpbmEnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnVSBrdW50IGdlYnJ1aWsgbWFrZW4gdmFuIDxhIGhyZWY9Imh0dHA6Ly9ubC53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiBvbSB2ZXJ6ZW5kaW5nZW4gdGUgYmV2ZWlsaWdlbiBkb29yIGRlIENhcHRjaGEtbW9kdWxlIHRlIGluc3RhbGxlcmVuLiBWb29yIG1lZXIgaW5mb3JtYXRpZSwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+emllIGhldCBDYXB0Y2hhLXByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0NhcHRjaGEgZ2VicnVpa2VuIG9tIGRlIGZvcm11bGllcnZlcnplbmRpbmdlbiB0ZSBiZXNjaGVybWVuPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnVmluayBhYW4gb20gdXcgZm9ybXVsaWVyIHRlIGJlc2NoZXJtZW4gbWV0IGVlbiA8YSBocmVmPSJodHRwOi8vbmwud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0JldmVzdGlnIGRhdCB1IGdlZW4gc2NyaXB0IGJlbnQgZG9vciBkZSBrYXJha3RlcnMgaW4gaGV0IHBsYWF0amUgaW4gdGUgdm9lcmVuLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdWZXJrZWVyZGUgdGVrc3Qgdm9vciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBuaWV0IGdvZWQuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0h1bHB0ZWtzdCB2b29yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnVmVyc3R1dXIgZ2VlbiB3YWFyZGVzIHZvb3IgbmlldC1nZXNlbGVjdGVlcmRlIHZlbGRlbic7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ1NlbGVjdGVlciBkZXplIGFscyBlbmtlbCB3YWFyZGVzIHZlcnN0dXVyZCBtb2V0ZW4gd29yZGVuIHZvb3IgZ2VzZWxlY3RlZXJkZSB2ZWxkZW4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmtsYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBkb2VsIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ1N0YW5kYWFyZCBnZXNlbGVjdGVlcmQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdHZWJydWlrIDI0LXV1cnMgdGlqZD8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSAnOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNICc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1ZvZXIgc21hcnR5IHRhZ3MgdWl0IGluIGhldCB2ZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUmlqZW4gKGxldCBvcDogZGl0IGthbiB3b3JkZW4gb3ZlcnNjaHJldmVuIGRvb3IgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnS29sb21tZW4gKGxldCBvcDogZGl0IGthbiB3b3JkZW4gb3ZlcnNjaHJldmVuIGRvb3IgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdIb29mZGZvcm11bGllcmRldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ1N0YW5kYWFyZCBuYWFyIGxlZWcnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnU3RhbmRhYXJkIG5hYXIgbGVlZyAoVmlua2plIHdlZ2hhbGVuIG9tIHN0YW5kYWFyZCBkZSBodWlkaWdlIGRhdHVtIHRlIGtyaWpnZW4pJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdUb29uIHpvd2VsIGRlIGxvZ2luLW5hYW0gYWxzIGRlIHZvb3ItIGVuIGFjaHRlcm5hYW0/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ1Rvb24gZ2VicnVpa2VycyB2b29ybmFhbT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdUb29uIGdlYnJ1aWtlcnMgYWNodGVybmFhbT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdCZXBlcmsgZ2VicnVpa2Vyc2xpanN0IHRvdCBnZWJydWlrZXJzIGluIHNwZWNpZmlla2UgZ3JvZXAnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9kYXRhJ10gPSAnRW5jcnlwdCBkYXRhIG9wZ2VzbGFnZW4gaW4gZGF0YWJhc2UnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ0NlcnRpZmljYWF0IHZvb3IgZGF0YSBlbmNyeXB0aWUnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnS2V5IEJlc3RhbmQgdm9vciBlbmNyeXB0aWUnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCB2b29yIHNvcnRlZXJ2ZWxkZW4/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnR2VoZWltZSBzbGV1dGVsIHZvb3IgZGF0YSBlbmNyeXB0aWUnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdEaXQgem9yZ3Qgdm9vciBlZW4gaGFzaCB2b29yIHNvcnRlZXJ2ZWxkZW4sIG1hYXIgbGFhdCBkZSBlZXJzdGUgcGFhciBsZXR0ZXJzIG9uYmV2ZWlsaWdkLiBEaXQgem9yZ3Qgdm9vciBlZW4ga3dldHNiYWFyaGVpZCwgbWFhciB2b29yIGRlIG1lZXN0ZSBnZWJydWlrZXJzIGlzIGVlbiBhY2NlcHRhYmVsZSBhZndlZ2luZyB0dXNzZW4gYmV2ZWlsaWdpbmcgZW4gZGUgbW9nZWxpamtoZWlkIG9tIHJlY29yZHMgdGUgc29ydGVyZW4uIERlIHNvcnRlcmluZyBpcyBiaWogYmVuYWRlcmluZywgbWFhciB3ZXJrdCBiZWhvb3JsaWprIGdvZWQuIFdhbm5lZXIgdSBkZXplIG9wdGllIG5pZXQgZ2VicnVpa3QsIGRhbiB6dWxsZW4gZGUgdmVsZGVuIGFscyBwbGF0dGUgdGVrc3Qgd29yZGVuIG9wZ2VzbGFnZW4uJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnQmV2ZWlsaWdkZSBkYXRhb3BzbGFnIG5pZXQgYmVzY2hpa2JhYXInOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdJbnN0YWxsZWVyIGRlIE9wZW5TU0wgbW9kdWxlIG9mIG1jcnlwdCBzdXBwb3J0IGFscyB1IGRlIGRhdGFiYXNlIGVuY3J5cHRpZSB3aWx0IGluc2NoYWtlbGVuLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdBbHN0dWJsaWVmdCBjb250cm9sZWVyIG9mIHUgQ1VSTCBzdXBwb3J0IGFjdGllZiBpcyBpbiB1dyBQSFAgaW5zdGFsbGF0aWUuIExlZXMgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnVWl0dm9lcmVuIGluIGRlIE1MRSBNb2R1cyc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnV2lqemlnL3N1cHBvcnQgdm9vciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aWUuIEdlYnJ1aWsgZGV6ZSBvcHRpZSBuaWV0IGluIGRlIGdhbmdiYXJlIGNtc21zIHZlcnNpZS4nOwokbGFuZ1sndGl0bGVfZW5zdXJlX2NlcnRfa2V5X21hdGNoJ10gPSAnWm9yZyBlcnZvb3IgZGF0IHV3IGdlaGVpbWUgc2xldXRlbCBnZXNjaGlrdCBpcyB2b29yIGhldCBjZXJ0aWZpY2FhdCBkYXQgdSBnZWJydWlrdCB2b29yIGVuY3J5cHRpZSEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGllIEJpYmxpb3RoZWVrJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ1ZpbmsgZGl0IGFhbiBhbHMgdSBkZSBvcGdlc2xhZ2VuIGRhdGEgd2lsdCBlbmNyeXB0ZW4uIERpdCBtYWFrdCBoZXQgbW9laWxpamtlciAobWFhciBuaWV0IG9ubW9nZWxpamspIHZvb3IgaGFja2VycyBvbSBkZSBpbmZvcm1hdGllIHRlIGJla2lqa2VuLic7CiRsYW5nWydjaG9vc2VfY3J5cHRfbG9uZyddID0gJ0RlIG9uZGVyc3RhYW5kZSBvcHRpZXMgemlqbiBhbGxlZW4gdmFuIHRvZXBhc3NpbmcgYWxzIHUgT3BlblNTTCBFbmNyeXB0aWUgQmlibGlvdGhlZWsgZ2VicnVpa3QnOwokbGFuZ1sndGl0bGVfY3J5cHRfbGliJ10gPSAnRW5jcnlwdGllIEJpYmxpb3RoZWVrJzsKJGxhbmdbJ29wZW5zc2wnXSA9ICdPcGVuU1NMIEJpYmxpb3RoZWVrJzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUCBtY3J5cHQgQmlibGlvdGhlZWsnOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIHZlcmJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdJbnN0YWxsZWVyIGRlIEZyb250RW5kVXNlciBtb2R1bGUgb20gaGV0IGZvcm11bGllciwgbWV0IGJpamJlaG9yZW5kZSBkYXRhIHRlIHZlcmJpbmRlbiBtZXQgZWVuIHNwZWNpZmlla2UgZ2VicnVpa2VyJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGxvY2sgZnJvbnQtZW5kIGFjY2VzcyB0byB0aGlzIGZvcm0mIzAzOTtzIGRhdGEgdG8gdGhlIGxvZ2dlZC1pbiBmcm9udC1lbmQgdXNlci4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0VuY3J5cHRpZSc7CiRsYW5nWyd0aXRsZV9leHBvcnRfZm9ybV90b191ZHQnXSA9ICdFeHBvcnRlZXIgZm9ybXVsaWVyIHJlZmVyZW50aWUgbmFhciBlZW4gVURUIGFscyAkcGFyYW1zWyYjMDM5O0ZPUk0mIzAzOTtdPyc7CiRsYW5nWyd0aXRsZV91cmxfaGVscCddID0gJ0dlaGVsZSBVUkwsIGluY2x1c2llZiBwcm90b2NvbCBlbiBwYWQgKGUuZy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0Zvcm11bGllciB2ZXJ6ZW5kIHVybCc7CiRsYW5nWyd0aXRsZV9tZXRob2QnXSA9ICdGb3JtdWxpZXIgbWV0aG9kZSc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnTWFwIGZpZWxkICZxdW90OyVzJnF1b3Q7IHRvIGZvcm0gc3VibWlzc2lvbiB2YXJpYWJsZSc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsJ10gPSAnQmlqa29tZW5kZSBhYW52cmFhZyc7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdHZWJydWlrIHZlbGQgdGlqZGVucyBoZXQgdmVyc3R1cmVuJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXSA9ICdEYXR1bWNvbXBvbmVudCB2b2xnb3JkZSAodm9vciBpbnZvZXIpJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0RhdGEgd29yZHQgb3BnZXNsYWdlbiBpbiBlZW4gWE1MIGZvcm1hdCBpbiBkZSBbUFJFRklYXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgZGF0YWJhc2UgdGFiZWwuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0ZvdXQhIE9mIGhldCBmb3JtdWxpZXIgaGVlZnQgZ2VlbiBmb3JtX2J1aWxkZXIgZGlzcG9zaXRpZSwgb2YgaGV0IGlzIG1pc2x1a3QgdGUgaW5zdGFudGllcmVuIChhbHMgZ2V2b2xnIHZhbiBnZWhldWdlbnByb2JsZW1lbj8pLic7CiRsYW5nWydoZWxwX2RhdGVfb3JkZXInXSA9ICdVc2UgJnF1b3Q7bSZxdW90OyBmb3IgTW9udGgsICZxdW90O2QmcXVvdDsgZm9yIERheSwgYW5kICZxdW90O3kmcXVvdDsgZm9yIFllYXIuIFNlcGFyYXRlIHRoZSBpdGVtcyBieSBoeXBoZW5zLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnQWxsZWVuIGluIGdyb2VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ1Rvb24gYWFuIGdlYnJ1aWtlcj8nOwokbGFuZ1sndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InXSA9ICdHZWJydWlrIHdpbGxla2V1cmlnZSBudW1tZXJzIGluIHBsYWF0cyB2YW4gc3RhdGlzY2hlJzsKJGxhbmdbJ3RpdGxlX251bWJlcnNfdG9fZ2VuZXJhdGUnXSA9ICdIb2V2ZWVsIG51bW1lciBnZW5lcmVnZW4gaW4gZWVuIHByb2Nlcyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdEaXQgdmVsZCBtYWcgbGVlZyBnZWxhdGVuIHdvcmRlbic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJlbGVuIHZvb3Igc2phYmxvb24nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFiZWxlbiBiZXNjaGlrYmFhcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmVsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdHVtIHZhbiB2ZXJ6ZW5kaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdTZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXMnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIHZhbiBkZSBwYWdpbmEnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2llJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIGthcmFrdGVyJzsKJGxhbmdbJ2hlbHBfaWdub3JlZF9pZl91cGxvYWQnXSA9ICcoRGl0IHZlbGQgd29yZHQgZ2VuZWdlZXJkIGFscyBqZSBkZSBVcGxvYWQgbW9kdWxlIGdlYnJ1aWt0IG9tIGJlc3RhbmRlbiB0ZSBiZWhlcmVuKSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FuZGVyZSB2ZWxkZW4gemlqbiBiZXNjaGlrYmFhciBuYWRhdCB6ZSB6aWpuIHRvZWdldm9lZ2QnOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPgo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdCZWtpamsgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+ZGUgUEhQIGhhbmRsZWlkaW5nPC9hPiB2b29yIGluZm9ybWF0aWUgb3ZlciBoZXQgZm9ybWF0Lic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJlbGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnR2VyZXByZXNlbnRlZXJkIFZlbGQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFRlcnVnIG5hYXIgaGV0IGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnVm9vcmJlZWxkc2phYmxvb24gZ2VuZXJlcmVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZSZldW1sO2VyIHZvb3JiZWVsZCBIVE1MIHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlJmV1bWw7ZXIgZWVuIHZvb3JiZWVsZCBIZWFkZXIgc2phYmxvb24nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdDcmUmZXVtbDtlciBlZW4gdm9vcmJlZWxkIEZvb3RlciBzamFibG9vbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ1Zvb3JiZWVsZGtvcHJlZ2VsIGdlbmVyZXJlbic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdlZW4gdGFiLXRla2VuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdTamFibG9vbiB2b29yIGVlbiBlbmtlbGUgcmVnZWwgdmFuIGRlIHVpdGdhYW5kZSBtYWlsJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnU2phYmxvb24gdm9vciBkZSBrb3ByZWdlbCB2YW4gZGUgdWl0Z2FhbmRlIG1haWwnOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXSA9ICdTamFibG9vbiB2b29yIGRlIGZvb3RlciB2YW4gZGUgdWl0Z2FhbmRlIG1haWwnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBvbSB0ZSBrbGlra2VuIHZvb3IgZm9ybXVsaWVydmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnV2FhcmRlICh6aWUgR2VhdmFuY2VlcmQgdGFiYmxhZCBhbHMgdSBTbWFydHkgdGFncyBnZWJydWlrdCknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXR1bSBmb3JtYWF0IChzdGFuZGFhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQLWRhdHVtZm9ybWF0ZW48L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ0dlYnJ1aWsgV1lTSVdZRyBlZGl0b3Igdm9vciB0ZWtzdHZlbGQgKGFsbGVlbiB2b29yIGFkbWluKT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtdWxpZXJ2ZXJ6ZW5kZ2VkcmFnJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdWZXJ6ZW5ka25vcGxhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRlZXJ2ZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ0RlemUgcGFnaW5hIG1hYWt0IGFhbnBhc3NlbiB2YW4gRm9ybXVsaWVydmVyemVuZGluZyBtb2dlbGlqay4gSGV0IGJlcGFhbHQgbmlldCB3YXQgRm9ybSBCdWlsZGVyIG1ldCBkZSB2ZXJ6b25kZW4gZGF0YSBkb2V0LiBEaXQga3VudCB1IGluc3RlbGxlbiBkb29yICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IHZlbGRlbiB0b2UgdGUgdm9lZ2VuIGFhbiBoZXQgZm9ybXVsaWVyICc7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnQmVnaW4gamFhcnJlZWtzJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnRWluZGUgamFhcnJlZWtzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ1N0YW5kYWFyZGphYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU3RlbCBvcCAtMSBpbiB2b29yIGhldCBzdGFuZGFhcmRqYWFyIGhldCBodWlkaWdlIGphYXIgdGUgbWFrZW4pJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdOYSBoZXQgZm9ybXVsaWVyIHZlcnpvbmRlbiBpcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZWFjdGllIG9tIHRlIHRvbmVuJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9kYXRlJ10gPSAnVmVyemVuZGRhdHVtJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdEYXR1bSBnZWFjY29yZGVlcmQgKGRvb3IgYWRtaW4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdEYXR1bSBnZWFjY29yZGVlcmQgKGRvb3IgdmVyemVuZGVyKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdUb29uICZxdW90O1ZlcnplbmRzamFibG9vbiZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnVmVyd2lqcyBkb29yIG5hYXIgd2VicGFnaW5hJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnRGV6ZSBzamFibG9vbiBpcyBvbSB0ZSB0b25lbiBhYW4gZGUgZ2VicnVpa2VyIG5hZGF0IGhldCBmb3JtdWxpZXIgdmVyc3R1dXJkIGlzLiBIZXQgaGVlZnQgZ2VlbiBlZmZlY3Qgb3AgZGUgYWFuZ2VtYWFrdCBlLW1haWxzIG9mIGFuZGVyZSBmb3JtdWxpZXJyZWdlbHMgLS0gZGllIGt1bnQgdSBpbnN0ZWxsZW4gaW4gc2phYmxvbmVuIChpbmRpZW4gdmFuIHRvZXBhc3NpbmcpIGluIGhldCAmcXVvdDtnZWF2YW5jZWVyZCZxdW90OyB0YWJibGFkIHZvb3IgZGUgcmVnZWx2ZWxkZW4uJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdCZXN0ZW1taW5nc3BhZ2luYSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdWZXJwbGljaHRlIHZlbGRuYW1lbic7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1ZlcnBsaWNodCB2ZWxkZW4gb20gZWVuIG5hYW0gdGUgaGViYmVuPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1ZlcnBsaWNodCB1bmlla2UgdmVsZG5hbWVuJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWZXJwbGljaHQgdmVsZGVuIG9tIGVlbiB1bmlla2UgbmFhbSB0ZSBoZWJiZW4/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ0hlcnNjaGlrIHZlbGRlbic7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTGFhZCBzamFibG9vbic7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdWb2VnIGtub3B0ZWtzdCB0b2UnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnVmVyd2lqZGVyIGtub3B0ZWtzdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hlbHAtdGVrc3Qgb20gdGUgdG9uZW4gYmlqIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldGVlciB2YXJpYWJlbGVuIGFscyBudW1tZXJzIG9mIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGllIHZvbGdvcmRlJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdBbHMgZXIgbWVlciBkYW4gZWVuIGJlcmVrZW5kIHZlbGQgYmVzdGFhdCwgZGFuIHp1bGxlbiBkZSB3b3JkZW4gYmVyZWtlbmQgdmFuIGhldCBsYWFnc3RlIHJhbmdudW1tZXIgdG90IGhldCBob29nc3RlIHJhbmdudW1tZXInOwokbGFuZ1sndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJ10gPSAnU3RyaW5nIChnZWVuIHNwYXRpZXMgdHVzc2VuIGRlIHZlbGRlbik/JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdXYWFyZGUgb20gdGUgYmVyZWtlbmVuJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGUnXSA9ICdCZXJla2VuZC9QSFAnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nICc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpZWsnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdUb29uIGhldCBmb3JtdWxpZXIgaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIGJldGVrZW50IGRhdCBpZWRlciBmb3JtdWxpZXJ2ZXJ2b2xnYWN0aWUgZGUge2Ntc19tb2R1bGV9IHRhZyAgaW4gZGUgcGFnaW5hIHZlcnZhbmd0LCBub24taW5saW5lIHZlcnZhbmd0IGRlIGdlaGVsZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnU3RhbmRhYXJkd2FhcmRlIHZvb3IgdmVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnTGVlZyBzdGFuZGFhcmR3YWFyZGUgbWV0IGVlbiBrbGlrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdWaW5rIGFhbiBvbSBkZSBzdGFuZGFhcmR3YWFyZGUgdGUgdmVyd2lqZGVyZW4gYWxzIGVlbiBnZWJydWlrZXIgb3AgZGl0IHZlbGQga2xpa3QuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnVmVyd2lqZGVyIGhldCBnZSZ1dW1sO3Bsb2FkZSBiZXN0YW5kIHZhbiBkZSBzZXJ2ZXIgbmEgaGV0IHByb2Nlcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCB2b29yIHZlbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm11bGllciBpbmRpZW5lbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0tpZXMgaGllciBuaWV0IHpvbWFhciBlZW4gd2lsbGVrZXVyaWcgbWFpbCBhZHJlcyAtLSB2ZWVsIElTUHMgenVsbGVuPGJyIC8+Z2VnZW5lcmVlcmRlIG1haWx0amVzIG5pZXQgYWZsZXZlcmVuIGJpaiBlZW4gbWFpbGFkcmVzIGRpZSBuaWV0IGRlemVsZmRlIGlzIGFscyBoZXQgZWlnZW4gZG9tZWlubmFhbTxiciAvPihiaWp2LiBnZWJydWlrIGlldHMgem9hbHMgbmFhbUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTWVlciB2ZWxkdHlwZXMgbm9kaWc/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RldmVlbCB2ZXJ3YXJyZW5kZSB2ZWxkdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ0dhIG5hYXIgZGUgZ2VhdmFuY2VlcmRlIG1vZHVzJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnR2EgbmFhciBkZSBzaW1wZWxlIG1vZHVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ01hcCB2b29yIGhldCBvcHNsYWFuIHZhbiBiZXN0YW5kZW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdEaXQgbW9ldCBlZW4gbWFwIHppam4gb3AgdXcgd2Vic2VydmVyIG1ldCBzY2hyaWpmcmVjaHRlbi48YnIgLz5DaG1vZCBoZXQgbmFhciA3NzcgYWxzIHUgcHJvYmxlbWVuIG9mIHR3aWpmZWxzIGhlZWZ0LjxiciAvPkNvbnRyb2xlZXIgb29rIG9mIGVyIGdlZW4gc3ByYWtlIGlzIHZhbiAmIzAzOTtQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aWVzJiMwMzk7Lic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmlldXdlIHJlZ2VsIHZlcnZhbmdpbmdza2FyYWt0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVlZyBsYXRlbiBvbSAmIzAzOTtuaWV1d2UgcmVnZWwmIzAzOTsgdG9lIHRlIHN0YWFuJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdWZXJ6ZW5kIGdlYnJ1aWtlciBlZW4ga29waWUnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIHZvb3IgaGV0IHZpbmt2YWtqZSAoa2V1emUgdm9vciBkZSBnZWJydWlrZXIpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnVmVyemVuZCBtaWogZWVuIGtvcGllIHZhbiBoZXQgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnVG9lc3RhYW4gZGF0IGhldCBPbmRlcndlcnAgd29yZHQgb3ZlcnNjaHJldmVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdTdGEgdG9lIGRhdCBoZXQgdmVsZCAmIzAzOTtFLW1haWwgT25kZXJ3ZXJwJiMwMzk7IHdvcmR0IG92ZXJzY2hyZXZlbiBkb29yIGhldCBvbmRlcndlcnAgZ2VzcGVjaWZpY2VlcmQgaW4gZGUgcHVsbGRvd24uJzsKJGxhbmdbJ3RpdGxlX2Rpc3BsYXlfbGVuZ3RoJ10gPSAnU2NoZXJtIGxlbmd0ZSc7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ01pbmltYWxlIHJlYWN0aWUgbGVuZ3RlJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdWZXJiZXJnIGlucHV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ0xhYXQgc3ltYm9sZW4gemllbiBhbHMgZWVuIGdlYnJ1aWtlciB6aWpuIHdhY2h0d29vcmQgaW52b2VyZCwgaW4gcGxhYXRzIHZhbiBkZSBkYWFkd2Vya2VsbGlqa2UgdGVrc3QuJzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnV2FjaHR3b29yZCB2b2xkb2V0IG5pZXQgYWFuICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnVGVydWcgbmFhciBGb3JtQnVpbGRlciBTdGFydCBQYWdpbmEnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXZWxrZSBlLW1haWwgaGVhZGVycyBtb2V0IGRlemUgaW5wdXQgYmV2YXR0ZW4/JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWQnXSA9ICdTdGEgZ2VlbiBsZWdlIHJlYWN0aWVzIChzcGF0aWVzKSB0b2UuJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ0FscyBlZW4gdmVsZCB2ZXJwbGljaHQgaXMsIGRhbiB6YWwgaGV0IGFhbnZpbmtlbiB2YW4gZGl0IHZha2plIG1lbnNlbiB2ZXJwbGljaHRlbiBhbGZhbnVtZXJpZWtlIGthcmFrdGVycyBpbiB0ZSB2dWxsZW4sIG5pZXQgYWxsZWVuIHNwYXRpZXMnOwokbGFuZ1sndGl0bGVfbXVzdF9zYXZlX29yZGVyJ10gPSAnWW91IG11c3QgY2xpY2sgb25lIG9mIHRoZSAmcXVvdDtzYXZlJnF1b3Q7IGJ1dHRvbnMgdG8gbWFrZSB5b3VyIG5ldyBmaWVsZCBvcmRlciBwZXJtYW5lbnQuJzsKJGxhbmdbJ3RpdGxlX2h0bWw1J10gPSAnR2VicnVpayBIVE1MNSBwbGFjZWhvbGRlciB0ZWtzdCBpbiBwbGFhdHMgdmFuIEphdmFzY3JpcHQnOwokbGFuZ1snZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJ0RlIENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBuaWV0IGFhbndlemlnISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOb29pdCc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdLZXV6ZSB2YW4gZ2VicnVpa2VyICh2aW5rdmFramUpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHRpamQnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICcmcXVvdDtWYW4mcXVvdDsgZS1tYWlsIGFkcmVzJzsKJGxhbmdbJ29wdGlvbl9yZXBseSddID0gJyZxdW90O0JlYW50d29vcmQgbmFhciZxdW90OyBlLW1haWwgYWRyZXMnOwokbGFuZ1snb3B0aW9uX2JvdGgnXSA9ICdab3dlbCAmcXVvdDtWYW4mcXVvdDsgYWxzICZxdW90O0JlYW50d29vcmQgbmFhciZxdW90OyBlLW1haWwgYWRyZXNzZW4nOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24gJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ1NlbGVjdGllIExpanN0IChlbmtlbHZvdWRpZyknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3RpZSBMaWpzdCAobWVlcnZvdWRpZyknOwokbGFuZ1snb3B0aW9uX3JhZGlvZ3JvdXAnXSA9ICdSYWRpbyBHcm9lcCc7CiRsYW5nWyd0aXRsZV9jb21wYW55X2ZpZWxkX25vdGUnXSA9ICdOb3RlOiBPdXRwdXQgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZjxici8+JnF1b3Q7Y29tcGFueSBuYW1lJnF1b3Q7PT4mcXVvdDt2YWx1ZSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdLaWVzIGVlbiBjYXRlZ29yaWUgKG1lZXJkZXJlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnUHVsbCBhIGZpZWxkIERlZmluaXRpb24mIzAzOTtzIHZhbHVlIChzaW5nbGUpIDxlbT5vcHRpb25hbDwvZW0+JzsKJGxhbmdbJ3RpdGxlX2Nob29zZV91c2VyX2lucHV0J10gPSAnS2llcyBHZWJydWlrZXJzIEludm9lcic7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcoS2lqayBvb2sgZXZlbiBvbmRlciBkZSBGb3JtdWxpZXJ2ZXJ6ZW5kaW5nIHRhYiBhbHMgdSBlZW4gVURUIHdpbHQgZ2VicnVpa2VuIHZvb3IgZGUgZm9ybXVsaWVyIHZhbGlkYXRpZSknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ0VpbmRqYWFyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljJ10gPSAnU21hcnR5IGdlZ2V2ZW5zIG9mIGxvZ2ljYSBkaWUgaXMgYmVkb2VsZCBvbSB0ZSB3b3JkZW4gdmVyem9uZGVuIG1ldCBkaXQgdmVsZC4nOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWNfbG9uZyddID0gJ0NhbiBiZSBzbWFydHkgZGF0YSwgamF2YXNjcmlwdCwgb3Igc29tZSBvdGhlciBkYXRhIHlvdSB3YW4mIzAzOTt0IHRvIHNlbnQgYWxvbmcgd2l0aCB0aGlzIGZpZWxkLjxiciAvPkdvZXMgdGhyb3VnaCB0aGUgU21hcnR5IGNvbXBpbGVyLCBzbyByZW1lbWJlciB1c2Uge2xpdGVyYWx9ey9saXRlcmFsfSB0YWdzIHdpdGggPHNjcmlwdD48L3NjcmlwdD4nOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVscyddID0gJ1ZvZWcgbGFiZWxzIHRvZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICdFbmFibGluZyB0aGlzIGluY2x1ZGVzIGxhYmVscyB0byBvdXRwdXQuIGV4YW1wbGUgLSBsYWJlbDogdmFsdWUsbGFiZWwyOiB2YWx1ZTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICdMaW5rIHRoaXMgZmllbGQgdG8gaXQmIzAzOTtzIHNpYmxpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ0Ryb3Bkb3duIGxpc3RzIGFsbCBzaWJsaW5ncyBvZiB0aGlzIGZpZWxkIGFuZCBhbGxvd3MgeW91IHRvIGxpbmsgdGhpcyBmaWVsZCB0byBvbmUgb2YgaXQmIzAzOTtzIHNpYmxpbmcuIE1ha2VzIHBvc3NpYmxlIGNvbnRyb2xsaW5nIHRoaXMgZmllbGQgd2l0aCBzZWxlY3RlZCBzaWJsaW5nIGNvbnRyb2xzLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ1ZlcmJlcmcgY29udHJvbGVrbm9wcGVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdWZXJiZXJnIGZyb250ZW5kIGNvbnRyb2xlIGtub3BwZW4gb3AgZGl0IHZlbGQuJzsKJGxhbmdbJ3RpdGxlX25vdGUnXSA9ICdPcG1lcmtpbmcnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ0NoYW5naW5nIGFueSBvZiB0aGUgYWJvdmUgZmllbGRzIHdpbGwgdHJpZ2dlciBhIHJlaW5kZXggb2YgKmFsbCogc2F2ZWQgcmVjb3Jkcywgc28gaXQgY291bGQgdGFrZSBhIHdoaWxlLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnTWFhayByZWNvcmRzIGJlc2NoaWtiYWFyIHZvb3IgZGUgWm9layBNb2R1bGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoYWJsZV9oZWxwJ10gPSAnQ2hlY2tpbmcgdGhpcyB3aWxsIG1ha2UgYWxsIHN1Ym1pdHRlZCBkYXRhIGFjY2Vzc2libGUgdG8gdGhlIFNlYXJjaCBNb2R1bGUuIERPIE5PVCB1c2UgdGhpcyBpZiB5b3UgZW5jcnlwdCB5b3VyIGRhdGEgLS0gdGhlIGluZm9ybWF0aW9uIGdldHMgZXhwb3NlZCB0byBzZWFyY2ggd2hldGhlciBvciBub3QgaXQgaXMgZW5jcnlwdGVkISc7CiRsYW5nWyd1cGxvYWRlZF9vdXRzaWRlX3dlYnJvb3QnXSA9ICclcyAob3V0c2lkZSB3ZWIgcm9vdCknOwokbGFuZ1sndGl0bGVfZmJyX2VkaXQnXSA9ICdBYW4gdGUgcGFzc2VuIGluIGRlIEZvcm1Ccm93c2VyIEFkbWluPyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVWl0IHRlIHZvZXJlbiBVc2VyIERlZmluZWQgVGFnIG5hIGVlbiBmb3V0JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdHZWJydWlrZXJzZ2VkZWZpbmllZXJkZSB0YWcgJXMgZ2VlZnQgZWVuIGZvdXQgYWFuLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkRlIENhdGFsb2dlciBtb2R1bGUgaXMgbmlldCBnZSZpdW1sO25zdGFsbGVlcmQvYWN0aWVmLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FBUlNDSFVXSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnU3RhbmRhYXJkc2phYmxvb24nOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsc2phYmxvb24sIHRpdGVsIGxpbmtzJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsc2phYmxvb24sIHRpdGVsIGJvdmVuJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1NqYWJsb29uIHZhbiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGUgc2phYmxvb24gd2lsdCBvdmVyc2NocmlqdmVuIG1ldCBoZXQgZ2VzZWxlY3RlZXJkZSBzamFibG9vbj88YnIgLz4oWmVsZnMgYWxzIHUgT0sgYWFuZ2VlZnQsIHp1bHQgdSBkZSB2ZXJhbmRlcmluZ2VuIGVlcnN0IG1vZXRlbiBvcHNsYWFuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGb3V0IGJpaiBoZXQgYmVyZWtlbmVuIHZhbiAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0dlZW4gSFRUUF9SRUZFUkVSIGluZm9ybWF0aWUgYmVzY2hpa2JhYXIgKHdhYXJzY2hpam5pamsgZG9vciBoZXQgZ2VicnVpayB2YW4gRS1tYWlsIEdlYnJ1aWtlciBWYWxpZGF0aWUpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aWUtcGFyYW1ldGVyLWZvdXQuIFpvcmcgZXJ2b29yIGRhdCBkZSBVUkwgdmFuIHV3IGVtYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpZS1yZWFjdGllLWZvdXQuIFpvcmcgZXJ2b29yIGRhdCBkZSBVUkwgdmFuIHV3IGVtYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24tcmVhY3RpZS1mb3V0LiBHZWVuIGVtYWlsdmFsaWRhdGlldmVsZGVuIGluIGRpdCBmb3JtdWxpZXIhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtdWxpZXJzamFibG9vbiBpcyBhdXRvbWF0aXNjaCBiaWpnZXdlcmt0IGFscyBvbmRlcmRlZWwgdmFuIGRlIHVwZ3JhZGUgdmFuIHZlcnNpZSAwLjMgbmFhciB2ZXJzaWUgMC40LiBNb2dlbGlqayBtb2V0IHUgZWVuIGFhbnRhbCB6YWtlbiBoZXJzdGVsbGVuLiBBbHMgdSBoZXQgc3RhbmRhYXJkc2phYmxvb24gZ2VicnVpa3QsIHZlcnZhbmcgZGV6ZSBzamFibG9vbiBkYW4gbWV0IGRlIHN0YW5kYWFyZCwgZG9vciBkZSBib3ZlbnN0YWFuZGUga2V1emVsaWpzdCB0ZSBnZWJydWlrZW4uJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0JlaGVlciB2YW4gaW50ZXJhY3RpZXZlIHdlYmZvcm11bGllcmVuJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnQWxzIHUgc3RyaW5nLWV2YWx1YXRpZSBnZWJydWlrdCwgaXMgZGUgZW5pZ2UgYmVzY2hpa2JhcmUgb3BlcmF0b3IgKCspLCB0ZXJ3aWpsIGJpaiBoZXQgZ2VicnVpayB2YW4gbnVtbWVyLWV2YWx1YXRpZSBlZW52b3VkaWdlIHdpc2t1bmRpZ2UgYmV3ZXJraW5nZW4gbW9nZWxpamsgemlqbiAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdHZWJydWlrIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPiAKVXNlIGl0IGJ5IGNyZWF0aW5nIHlvdXIgZm9ybSBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGVzIG9mIHRoZSBvdGhlciBtb2R1bGUocykgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUsIGFuZCB1c2luZyB0aGUgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHRvIHRpZSBpdCBiYWNrIHRvIEZvcm1CdWlsZGVyLiBGb3IgZXhhbXBsZSwgdG8gaW5jbHVkZSBmb3JtIG9wdGlvbnMgYmFzZWQgb24gdGhlIFByb2R1Y3RzIG1vZHVsZSwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgaW4gUHJvZHVjdHM6PGJyLz4KPHByZT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5OyYjMDM5O30KCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyYjMDM5O30KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9CgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5Ozo6JiMwMzk7fGV4cGxvZGU6JE1EYXRhfQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7IGNoZWNrZWQ9JnF1b3Q7Y2hlY2tlZCZxdW90OyYjMDM5O30KCQkJey9pZn0KCQl7L2ZvcmVhY2h9Cgk8ZGl2IGNsYXNzPSZxdW90O1Byb2R1Y3REaXJlY3RvcnlJdGVtJnF1b3Q7PgoJCTxpbnB1dCB0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7IHZhbHVlPSZxdW90O3skZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9JnF1b3Q7IG5hbWU9JnF1b3Q7eyRGQmlkfVtdJnF1b3Q7IHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgJnBvdW5kO3skZW50cnktPnByaWNlfSAgICAKCTwvZGl2Pgp7L2ZvcmVhY2h9CjwvcHJlPgo8YnIvPgp3aGVyZSBpbiB0aGUgaW5wdXQgYmVsb3cgeW91IHB1dCBzb21ldGhpbmcgbGlrZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0mcXVvdDtjYXQmcXVvdDsgc3VtbWFyeXRlbXBsYXRlPSZxdW90O1lvdXJfRkJfdGVtcGxhdGUmcXVvdDt9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdVdyB0YWcgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ2phbnVhcmknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ2ZlYnJ1YXJpJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdtYWFydCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnYXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdtZWknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnanVuaSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdqdWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnYXVndXN0dXMnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdzZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnb2t0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnbm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ2RlY2VtYmVyJzsKJGxhbmdbJ0FGJ10gPSAnQWZnaGFuaXN0YW4nOwokbGFuZ1snQVgnXSA9ICcmQXJpbmc7bGFuZC1laWxhbmRlbic7CiRsYW5nWydBTCddID0gJ0FsYmFuaSZldW1sOyc7CiRsYW5nWydEWiddID0gJ0FsZ2FyaWplJzsKJGxhbmdbJ0FTJ10gPSAnQW5ndWlsbGEnOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJhJzsKJGxhbmdbJ0FPJ10gPSAnQW5nb2xhJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEnOwokbGFuZ1snQVEnXSA9ICdBbnRhcmN0aWNhJzsKJGxhbmdbJ0FHJ10gPSAnQW50aWd1YSBhbmQgQmFyYnVkYSc7CiRsYW5nWydBUiddID0gJ0FyZ2VudGluaSZldW1sOyc7CiRsYW5nWydBTSddID0gJ0FybWVuaSZldW1sOyc7CiRsYW5nWydBVyddID0gJ0FydWJhJzsKJGxhbmdbJ0FVJ10gPSAnQXVzdHJhbGkmZXVtbDsnOwokbGFuZ1snQVQnXSA9ICdPb3N0ZW5yaWprJzsKJGxhbmdbJ0FaJ10gPSAnQXplcmJhaWphbic7CiRsYW5nWydCUyddID0gJ0JhaGFtYXMnOwokbGFuZ1snQkgnXSA9ICdCYWhyYWluJzsKJGxhbmdbJ0JCJ10gPSAnQmFyYmFkb3MnOwokbGFuZ1snQkQnXSA9ICdCYW5nbGFkZXNoJzsKJGxhbmdbJ0JZJ10gPSAnV2l0LVJ1c2xhbmQnOwokbGFuZ1snQkUnXSA9ICdCZWxnaSZldW1sOyc7CiRsYW5nWydCWiddID0gJ0JlbGl6ZSc7CiRsYW5nWydCSiddID0gJ0JlbmluJzsKJGxhbmdbJ0JNJ10gPSAnQmVybXVkYSc7CiRsYW5nWydCVCddID0gJ0JodXRhbic7CiRsYW5nWydCVyddID0gJ0JvdHN3YW5hJzsKJGxhbmdbJ0JPJ10gPSAnQm9saXZpYSc7CiRsYW5nWydCQSddID0gJ0Jvc25pJmV1bWw7IGVuIEhlcnplZ292aW5hJzsKJGxhbmdbJ0JWJ10gPSAnQm91dmV0IElzbGFuZCc7CiRsYW5nWydCUiddID0gJ0JyYXppbGkmZXVtbDsnOwokbGFuZ1snSU8nXSA9ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknOwokbGFuZ1snQk4nXSA9ICdCcnVuZWkgRGFydXNzYWxhbSc7CiRsYW5nWydCRyddID0gJ0J1bGdhcmlqZSc7CiRsYW5nWydCRiddID0gJ0J1cmtpbmEgRmFzbyc7CiRsYW5nWydCSSddID0gJ0J1cnVuZGknOwokbGFuZ1snS0gnXSA9ICdDYW1ib2RqYSc7CiRsYW5nWydDTSddID0gJ0thbWVyb2VuJzsKJGxhbmdbJ0NBJ10gPSAnQ2FuYWRhJzsKJGxhbmdbJ0NWJ10gPSAnS2FhcHZlcmRpc2NoZSBlaWxhbmRlbic7CiRsYW5nWydLWSddID0gJ0NheW1hbiBlaWxhbmRlbic7CiRsYW5nWydDRiddID0gJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyc7CiRsYW5nWydURCddID0gJ0NoYWQnOwokbGFuZ1snQ0wnXSA9ICdDaGlsaSc7CiRsYW5nWydDTiddID0gJ0NoaW5hJzsKJGxhbmdbJ0NYJ10gPSAnQ2hyaXN0bWFzIElzbGFuZCc7CiRsYW5nWydDQyddID0gJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJzsKJGxhbmdbJ0NPJ10gPSAnQ29sb21iaWEnOwokbGFuZ1snS00nXSA9ICdDb21vcm9zJzsKJGxhbmdbJ0NHJ10gPSAnQ29uZ28nOwokbGFuZ1snQ0QnXSA9ICdDb25nbywgIERlbW9jcmF0aWMgUmVwdWJsaWMnOwokbGFuZ1snQ0snXSA9ICdDb29rIElzbGFuZHMnOwokbGFuZ1snQ1InXSA9ICdDb3N0YSBSaWNhJzsKJGxhbmdbJ0NJJ10gPSAnSXZvb3JrdXN0JzsKJGxhbmdbJ0hSJ10gPSAnQ3JvYXRpJmV1bWw7JzsKJGxhbmdbJ0NVJ10gPSAnQ3ViYSc7CiRsYW5nWydDWSddID0gJ0N5cHJ1cyc7CiRsYW5nWydDWiddID0gJ1RzamVjaGkmZXVtbDsnOwokbGFuZ1snREsnXSA9ICdEZW5lbWFya2VuJzsKJGxhbmdbJ0RKJ10gPSAnRGppYm91dGknOwokbGFuZ1snRE0nXSA9ICdEb21pbmljYSc7CiRsYW5nWydETyddID0gJ0RvbWluaWNhYW5zZSBSZXB1YmxpZWsnOwokbGFuZ1snVFAnXSA9ICdPb3N0LVRpbW9yJzsKJGxhbmdbJ0VDJ10gPSAnRWN1YWRvcic7CiRsYW5nWydFRyddID0gJ0VneXB0ZSc7CiRsYW5nWydTViddID0gJ0VsIFNhbHZhZG9yJzsKJGxhbmdbJ0dRJ10gPSAnRXF1YXRvcmlhbCBHdWluZWEnOwokbGFuZ1snRVInXSA9ICdFcml0cmVhJzsKJGxhbmdbJ0VFJ10gPSAnRXN0bGFuZCc7CiRsYW5nWydFVCddID0gJ0V0aGlvcGkmZXVtbDsnOwokbGFuZ1snRksnXSA9ICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknOwokbGFuZ1snRk8nXSA9ICdGYXJvZSBJc2xhbmRzJzsKJGxhbmdbJ0ZKJ10gPSAnRmlqaSc7CiRsYW5nWydGSSddID0gJ0ZpbmxhbmQnOwokbGFuZ1snRlInXSA9ICdGcmFua3JpamsnOwokbGFuZ1snRlgnXSA9ICdGcmFuY2UsICBNZXRyb3BvbGl0YW4nOwokbGFuZ1snR0YnXSA9ICdHdWVybnNleSc7CiRsYW5nWydQRiddID0gJ0ZyZW5jaCBQb2x5bmVzaWEnOwokbGFuZ1snVEYnXSA9ICdGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMnOwokbGFuZ1snTUsnXSA9ICdGLlkuUi5PLk0uIChNYWNlZG9uaWEpJzsKJGxhbmdbJ0dBJ10gPSAnR2Fib24nOwokbGFuZ1snR00nXSA9ICdHYW1iaWEnOwokbGFuZ1snR0UnXSA9ICdHZW9yZ2kmZXVtbDsnOwokbGFuZ1snREUnXSA9ICdEdWl0c2xhbmQnOwokbGFuZ1snR0gnXSA9ICdHaGFuYSc7CiRsYW5nWydHSSddID0gJ0dpYnJhbHRhcic7CiRsYW5nWydHQiddID0gJ0dyb290LUJyaXRhbm5pJmV1bWw7JzsKJGxhbmdbJ0dSJ10gPSAnR3JpZWtlbmxhbmQnOwokbGFuZ1snR0wnXSA9ICdHcm9lbmxhbmQnOwokbGFuZ1snR0QnXSA9ICdHcmVuYWRhJzsKJGxhbmdbJ0dQJ10gPSAnR3VhZGVsb3VwZSc7CiRsYW5nWydHVSddID0gJ0d1YW0nOwokbGFuZ1snR1QnXSA9ICdHdWF0ZW1hbGEnOwokbGFuZ1snR04nXSA9ICdHdWluZWEnOwokbGFuZ1snR1cnXSA9ICdHdWluZWEtQmlzc2F1JzsKJGxhbmdbJ0dZJ10gPSAnR3V5YW5hJzsKJGxhbmdbJ0hUJ10gPSAnSGEmaXVtbDt0aSc7CiRsYW5nWydITSddID0gJ0hlYXJkIGFuZCBNY0RvbmFsZCBJc2xhbmRzJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMnOwokbGFuZ1snSEsnXSA9ICdIb25nIEtvbmcnOwokbGFuZ1snSFUnXSA9ICdIb25nYXJpamUnOwokbGFuZ1snSVMnXSA9ICdJanNsYW5kJzsKJGxhbmdbJ0lOJ10gPSAnSW5kaWEnOwokbGFuZ1snSUQnXSA9ICdJbmRvbmVzaSZldW1sOyc7CiRsYW5nWydJUiddID0gJ0lyYW4nOwokbGFuZ1snSVEnXSA9ICdJcmFrJzsKJGxhbmdbJ0lFJ10gPSAnSWVybGFuZCc7CiRsYW5nWydJTCddID0gJ0lzcmEnOwokbGFuZ1snSU0nXSA9ICdJc2xlIG9mIE1hbic7CiRsYW5nWydJVCddID0gJ0l0YWxpJmV1bWw7JzsKJGxhbmdbJ0pFJ10gPSAnSmVyc2V5JzsKJGxhbmdbJ0pNJ10gPSAnSmFtYWljYSc7CiRsYW5nWydKUCddID0gJ0phcGFuJzsKJGxhbmdbJ0pPJ10gPSAnSm9yZGFuaSZldW1sOyc7CiRsYW5nWydLWiddID0gJ0themFjaHN0YW4nOwokbGFuZ1snS0UnXSA9ICdLZW5pYSc7CiRsYW5nWydLSSddID0gJ0tpcmliYXRpJzsKJGxhbmdbJ0tQJ10gPSAnTm9vcmQtS29yZWEnOwokbGFuZ1snS1InXSA9ICdadWlkLUtvcmVhJzsKJGxhbmdbJ0tXJ10gPSAnS29ld2VpdCc7CiRsYW5nWydLRyddID0gJ0t5cmd5enN0YW4nOwokbGFuZ1snTEEnXSA9ICdMYW9zJzsKJGxhbmdbJ0xWJ10gPSAnTGV0bGFuZCc7CiRsYW5nWydMQiddID0gJ0xpYmFub24nOwokbGFuZ1snTEknXSA9ICdMaWVjaHRlbnN0ZWluJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpJmV1bWw7JzsKJGxhbmdbJ0xZJ10gPSAnTGliaSZldW1sOyc7CiRsYW5nWydMUyddID0gJ0xlc290aG8nOwokbGFuZ1snTFQnXSA9ICdMaXRodWFuaWEnOwokbGFuZ1snTFUnXSA9ICdMdXhlbWJ1cmcnOwokbGFuZ1snTU8nXSA9ICdNYWNhdSc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXInOwokbGFuZ1snTVcnXSA9ICdNYWxhd2knOwokbGFuZ1snTVknXSA9ICdNYWxlaXNpJmV1bWw7JzsKJGxhbmdbJ01WJ10gPSAnTWFsZWRpdmVuJzsKJGxhbmdbJ01MJ10gPSAnTWFsaSc7CiRsYW5nWydNVCddID0gJ01hbHRhJzsKJGxhbmdbJ01IJ10gPSAnTWFyc2hhbGwgRWlsYW5kZW4nOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlJzsKJGxhbmdbJ01SJ10gPSAnTWF1cml0YW5pYSc7CiRsYW5nWydNVSddID0gJ01hdXJpdGl1cyc7CiRsYW5nWydZVCddID0gJ01heW90dGUnOwokbGFuZ1snTVgnXSA9ICdNZXhpY28nOwokbGFuZ1snRk0nXSA9ICdNaWNyb25lc2lhJzsKJGxhbmdbJ01DJ10gPSAnTW9uYWNvJzsKJGxhbmdbJ01EJ10gPSAnTW9sZGF2aWUnOwokbGFuZ1snTUEnXSA9ICdNYXJva2tvJzsKJGxhbmdbJ01OJ10gPSAnTW9uZ29saWUnOwokbGFuZ1snTVMnXSA9ICdNb250c2VycmF0JzsKJGxhbmdbJ01aJ10gPSAnTW96YW1iaXF1ZSc7CiRsYW5nWydNTSddID0gJ015YW5tYXInOwokbGFuZ1snTkEnXSA9ICdOYW1pYmllJzsKJGxhbmdbJ05SJ10gPSAnTmF1cnUnOwokbGFuZ1snTlAnXSA9ICdOZXBhbCc7CiRsYW5nWydOTCddID0gJ05lZGVybGFuZCc7CiRsYW5nWydBTiddID0gJ05ldGhlcmxhbmRzZSBBbnRpbGxlbic7CiRsYW5nWydOVCddID0gJ05ldXRyYWFsIGdlYmllZCc7CiRsYW5nWydOQyddID0gJ05ldyBDYWxlZG9uaWEnOwokbGFuZ1snTlonXSA9ICdOZXcgWmVhbGFuZCAoQW90ZWFyb2EpJzsKJGxhbmdbJ05JJ10gPSAnTmljYXJhZ3VhJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXInOwokbGFuZ1snTkcnXSA9ICdOaWdlcmlhJzsKJGxhbmdbJ05VJ10gPSAnTml1ZSc7CiRsYW5nWydORiddID0gJ05vcmZvbGsgSXNsYW5kJzsKJGxhbmdbJ01QJ10gPSAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJzsKJGxhbmdbJ05PJ10gPSAnTm9vcndlZ2VuJzsKJGxhbmdbJ09NJ10gPSAnT21hbic7CiRsYW5nWydQSyddID0gJ1Bha2lzdGFuJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUnOwokbGFuZ1snUFMnXSA9ICdQYWxlc3RpbmlhbiBUZXJyaXRvcnknOwokbGFuZ1snUEEnXSA9ICdQYW5hbWEnOwokbGFuZ1snUEcnXSA9ICdQYXB1YSBOZXcgR3VpbmVhJzsKJGxhbmdbJ1BZJ10gPSAnUGFyYWd1YXknOwokbGFuZ1snUEUnXSA9ICdQZXJ1JzsKJGxhbmdbJ1BIJ10gPSAnRmlsaXBpam5lbic7CiRsYW5nWydQTiddID0gJ1BpdGNhaXJuJzsKJGxhbmdbJ1BMJ10gPSAnUG9sZW4nOwokbGFuZ1snUFQnXSA9ICdQb3J0dWdhbCc7CiRsYW5nWydQUiddID0gJ1B1ZXJ0byBSaWNvJzsKJGxhbmdbJ1FBJ10gPSAnUWF0YXInOwokbGFuZ1snUkUnXSA9ICdSZXVuaW9uJzsKJGxhbmdbJ1JPJ10gPSAnUm9lbWVuaSZldW1sOyc7CiRsYW5nWydSVSddID0gJ1J1c2xhbmQnOwokbGFuZ1snUlcnXSA9ICdSd2FuZGEnOwokbGFuZ1snR1MnXSA9ICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLic7CiRsYW5nWydLTiddID0gJ1NhaW50IEtpdHRzIGFuZCBOZXZpcyc7CiRsYW5nWydMQyddID0gJ1NhaW50IEx1Y2lhJzsKJGxhbmdbJ1ZDJ10gPSAnU2FpbnQgVmluY2VudCAmYW1wOyB0aGUgR3JlbmFkaW5lcyc7CiRsYW5nWydXUyddID0gJ1NhbW9hJzsKJGxhbmdbJ1NNJ10gPSAnU2FuIE1hcmlubyc7CiRsYW5nWydTVCddID0gJ1NhbyBUb21lIGFuZCBQcmluY2lwZSc7CiRsYW5nWydTQSddID0gJ1Nhb2VkaS1BcmFiaSZldW1sOyc7CiRsYW5nWydTTiddID0gJ1NlbmVnYWwnOwokbGFuZ1snU0MnXSA9ICdTZXljaGVsbGVuJzsKJGxhbmdbJ1NMJ10gPSAnU2llcnJhIExlb25lJzsKJGxhbmdbJ1NHJ10gPSAnU2luZ2Fwb3JlJzsKJGxhbmdbJ1NJJ10gPSAnU2xvdmVuaSZldW1sOyc7CiRsYW5nWydTSyddID0gJ1Nsb3ZhayBSZXB1YmxpYyc7CiRsYW5nWydTQiddID0gJ1NvbG9tb24gSXNsYW5kcyc7CiRsYW5nWydTTyddID0gJ1NvbWFsaSZldW1sOyc7CiRsYW5nWydaQSddID0gJ1p1aWQtQWZyaWNhJzsKJGxhbmdbJ0VTJ10gPSAnU3BhbmplJzsKJGxhbmdbJ0xLJ10gPSAnU3JpIExhbmthJzsKJGxhbmdbJ1NIJ10gPSAnU3QuIEhlbGVuYSc7CiRsYW5nWydQTSddID0gJ1N0LiBQaWVycmUgYW5kIE1pcXVlbG9uICc7CiRsYW5nWydTRCddID0gJ1N1ZGFuJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbWUnOwokbGFuZ1snU0onXSA9ICdTdmFsYmFyZCAmYW1wOyBKYW4gTWF5ZW4gSXNsYW5kcyc7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCc7CiRsYW5nWydTRSddID0gJ1p3ZWRlbic7CiRsYW5nWydDSCddID0gJ1p3aXRzZXJsYW5kJzsKJGxhbmdbJ1NZJ10gPSAnU2lyaSZldW1sOyc7CiRsYW5nWydUVyddID0gJ1RhaXdhbic7CiRsYW5nWydUSiddID0gJ1RhamlraXN0YW4nOwokbGFuZ1snVFonXSA9ICdUYW56YW5pYSc7CiRsYW5nWydUSCddID0gJ1RoYWlsYW5kJzsKJGxhbmdbJ1RHJ10gPSAnVG9nbyc7CiRsYW5nWydUSyddID0gJ1Rva2VsYXUnOwokbGFuZ1snVE8nXSA9ICdUb25nYSc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIGVuIFRvYmFnbyc7CiRsYW5nWydUTiddID0gJ1R1bmVzaSZldW1sOyc7CiRsYW5nWydUUiddID0gJ1R1cmtpamUnOwokbGFuZ1snVE0nXSA9ICdUdXJrbWVuaXN0YW4nOwokbGFuZ1snVEMnXSA9ICdUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMnOwokbGFuZ1snVFYnXSA9ICdUdXZhbHUnOwokbGFuZ1snVUcnXSA9ICdVZ2FuZGEnOwokbGFuZ1snVUEnXSA9ICdPZWtyYSZpdW1sO25lJzsKJGxhbmdbJ0FFJ10gPSAnVmVyZW5pZ2RlIEVtaXJhdGVuJzsKJGxhbmdbJ1VLJ10gPSAnVmVyZW5pZ2QgS29uaW5rcmlqayc7CiRsYW5nWydVUyddID0gJ1ZlcmVuaWdkZSBTdGF0ZW4nOwokbGFuZ1snVU0nXSA9ICdVUyBNaW5vciBPdXRseWluZyBJc2xhbmRzJzsKJGxhbmdbJ1VZJ10gPSAnVXJ1Z3VheSc7CiRsYW5nWydVWiddID0gJ1V6YmVraXN0YW4nOwokbGFuZ1snVlUnXSA9ICdWYW51YXR1JzsKJGxhbmdbJ1ZBJ10gPSAnVmF0aWNhYW5zdGFkJzsKJGxhbmdbJ1ZFJ10gPSAnVmVuZXp1ZWxhJzsKJGxhbmdbJ1ZOJ10gPSAnVmlldG5hbSc7CiRsYW5nWydWRyddID0gJ1ZpcmdpbiBJc2xhbmRzIChCcml0aXNoKSc7CiRsYW5nWydWSSddID0gJ1ZpcmdpbiBJc2xhbmRzIChVLlMuKSc7CiRsYW5nWydXRiddID0gJ1dhbGxpcyBhbmQgRnV0dW5hIElzbGFuZHMnOwokbGFuZ1snRUgnXSA9ICdXZXN0ZXJuIFNhaGFyYSc7CiRsYW5nWydZRSddID0gJ0plbWVuJzsKJGxhbmdbJ1lVJ10gPSAnSm9lZ29lc2xhdmkmZXVtbDsnOwokbGFuZ1snWk0nXSA9ICdaYW1iaWEnOwokbGFuZ1snWlcnXSA9ICdaaW1iYWJ3ZSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIEVyIGlzIGVlbiBmb3V0IG9wZ2V0cmVkZW4gdGlqZGVucyBkZSBmb3JtdWxpZXJ2ZXJ3ZXJraW5nLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtIEJ1aWxkZXIgdmVyemVuZGluZ3Nmb3V0OiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRm91dCBiaWogaGV0IHZlcnN0dXJlbiB2YW4gaGV0IGJlc3RhbmQgbmFhciBkZSB1cGxvYWRtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0RlIFVwbG9hZG1vZHVsZSBrb24gbmlldCB3b3JkZW4gZ2V2b25kZW4nOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9CaWpsYWdlIGZvdXQgYmlqIGJlc3RhbmQgJXMgKHRtcF9uYW1lOiAlcywgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdGb3V0LiBLYW4gZ2VlbiBsb2NrIHZvb3IgYmVzdGFuZCBrcmlqZ2VuLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYWFyZDogbmlldC1nZXNlbGVjdGVlcmQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnU3RhbmRhYXJkOiBnZXNlbGVjdGVlcmQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm0gQnVpbGRlciBWZXJ6ZW5kaW5nJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIgLz5FLW1haWxzamFibG9vbiBub2cgbmlldCBpbmdlc3RlbGQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm0gQnVpbGRlcjogS2FuIGRlIHZlcmVpc3RlIENNU01haWxlciBtb2R1bGUgbmlldCB2aW5kZW4hJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0dlYnJ1aWtlciBnb2VkZ2VrZXVyZGUgdmVyemVuZGluZyAlcyB2YW4gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB2ZXJ6b25kZW4gd29yZHQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gYWxzIGVlbiBmb3V0IG9wdHJlZWR0IGJpaiBoZXQgdmVyemVuZGVuIHZhbiBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllcic7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB3b3JkdCBnZXRvb25kJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FZW4gZ2ViZXVydGVuaXMgZGllIHdvcmR0IGFhbmdlcm9lcGVuIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB2ZXJ6b25kZW4gd29yZHQuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RWVuIGdlYmV1cnRlbmlzIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiBhbHMgZWVuIGZvdXQgb3B0cmVlZHQgYmlqIGhldCB2ZXJ6ZW5kZW4gdmFuIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPgo8bGk+PGVtPmVycm9yPC9lbT4gLSBFZW4gbGlqc3QgdmFuIGFsbGUgYmVrZW5kZSBmb3V0ZW4gKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FZW4gZ2ViZXVydGVuaXMgZGllIHdvcmR0IGFhbmdlcm9lcGVuIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB3b3JkdCBnZXRvb25kPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVhY3RpZS1JRC4gR2VicnVpa3QgZG9vciBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnU3RhbmRhYXJkIHZlbGR3YWFyZGVuOyB6aWUgbW9kdWxlaHVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdWZWxkLUlEIHZvb3IgaW50ZXJuZSBvcGVyYXRpZXMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGllcm5hYW0nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWxpZXItSUQgdm9vciBpbnRlcm5lIG9wZXJhdGllJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnQWxnZW1lbmUgcGFyYW1ldGVycyB2b29yIGludGVybmUgb3BlcmF0aWVzJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGhlbHAgdGV4dDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkKYXJlIGluIHRoZSAkcHJldmlvdXMgYXJyYXksIG9yIGFjY2Vzc2libGUgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+dmFsdWV9ICkuCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJ0RlIG1vZHVsZSBGb3JtQnVpbGRlciBpcyBnZSZpdW1sO25zdGFsbGVlcmQuIFJhYWRwbGVlZyBkZSBIZWxwIHBhZ2luYSB2b29yIG1lZXIgaW5mb3JtYXRpZS4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aAp0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge0Zvcm1CdWlsZGVyIGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDthbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPgo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+QnV0dG9uLiBUaGlzIGRvZW5zJiMwMzk7dCBkbyBhbnl0aGluZywgYnV0IHlvdSBjYW4gaG9vayBpdCBpbnRvIHNvbWUgSmF2YXNjcmlwdC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5QYXNzd29yZC4gVGhpcyBpcyBhbiBhc3Rlcmlza2VkLW91dCB0ZXh0IGZpZWxkLCB1c2VmdWwgZm9yIHBhc3N3b3Jkcy48L2xpPgo8bGk+UGFzc3dvcmQgQWdhaW4gKHZlcmlmeSkuIFRoaXMgaXMgYSBmaWVsZCB0aGF0IG11c3QgbWF0Y2ggYSBQYXNzd29yZCBmaWVsZCBmb3Igc3VibWlzc2lvbgp0byBzdWNjZWVkLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPgo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+CjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjxsaT4tVXNlciBUYWcuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVc2VyIERlZmluZWQgVGFnLCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLCBhbmQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9hbGlhcyYjMDM5O10gKGlmIGRlZmluZWQpLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5LiBUaGlzIHdvcmtzIGxpa2UgdGhlIEVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCBkZXNjcmliZWQgYWJvdmUsIGJ1dCBpdCBwcm92aWRlcyBvcHRpb25zIGZvciBzZW5kaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0cyB0byB0aGUgdXNlci48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUKZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gPHN0cm9uZz5EZXByZWNhdGVkLjwvc3Ryb25nPiBVc2UgU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIGluc3RlYWQhIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPgo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkKc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjAuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgaXMgdGhlIG9ubHkgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3Nlci4gU2VlIHNlY3Rpb24gYmVsb3cuPC9saT4KPGxpPipTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uLiBDcmFmdCBhbiBIVFRQIEdFVCBvciBQT1NULCBhbmQgdHJhbnNtaXQgaXQgdXNpbmcgY1VSTCB0byB0aGUgc3BlY2lmaWVkIFVSTC4gVGhpcyBsZXRzIHlvdSB1c2UgRm9ybUJ1aWxkZXIgYXMgYSBmcm9udC1lbmQgdG8gYW55IENHSSBvciBGb3JtIEhhbmRsaW5nIHNjcmlwdCBvdXQgdGhlcmUuPC9saT4KCjwvdWw+PC9saT48L2xpPjwvdWw+Cgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntGb3JtQnVpbGRlciBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndpZWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4KPHA+e0Zvcm1CdWlsZGVyIGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuIEFzIG9mIHZlcnNpb24gMC41LCB2YXJpYWJsZXMgYWxzbyBoYXZlIGFsaWFzZXMsIHdoY2loIHlvdSBjYW4gdXNlLjwvcD4KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPgo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4KCjxoMz5Vc2Ugd2l0aCBGb3JtQnJvd3NlciB2MzwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIHNwZWNpYWwgZmVhdHVyZXMgd2hlbiB1c2luZyBGb3JtQnVpbGRlciB3aXRoIEZvcm1Ccm93c2VyLiBUaGUgbmV3IGFwcHJvYWNoIHN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIFhNTCwgc28gdGhhdCBmYXIgZmV3ZXIKcXVlcmllcyBhcmUgbmVlZGVkIHRvIHJldHJpZXZlIHJlY29yZHMuIFRoaXMgbWVhbnMgeW91IGNhbiB1c2UgRm9ybUJyb3dzZXIgd2l0aCBodW5kcmVkcyBvciBldmVuIHRob3VzYW5kcyBvZiByZWNvcmRzLiBJdCBhbHNvIG1lYW5zIHlvdQp3aWxsIGhhdmUgdG8gY2hvb3NlIHVwIGZyb250IHdoaWNoIGZpZWxkcyB5b3Ugd2lsbCB3YW50IHRvIGJlIGFibGUgdG8gc29ydCBieS4gWW91IGNhbiBjaG9vc2UgdXAgdG8gZml2ZS4gQ2hhbmdpbmcgdGhlc2UgYWZ0ZXIgdGhlcmUgYXJlIHN1Ym1pdHRlZCByZWNvcmRzIHdpbGwgcmVzdWx0IGluIGltcHJvcGVyIHNvcnRpbmchIEEgcmUtaW5kZXggZnVuY3Rpb24gd2lsbCBiZSBhZGRlZCB0byBhIGZ1dHVyZSB2ZXJzaW9uLjwvcD4KPHA+SW4gYWR2YW5jZWQgb3B0aW9ucywgeW91IGNhbiB0aWUgYSBmb3JtIHRvIEZyb250ZW5kIFVzZXJzLiBUaGF0IG1lYW5zIGVhY2ggdXNlciBnZXRzIG9uZSByZWNvcmQgZm9yIHRoZSBmb3JtOyB0aGV5IGNhbiBjcmVhdGUgaXQKYSBzaW5nbGUgdGltZSwgc3Vic2VxdWVudCB0aW1lcyB0aGV5IHdpbGwgYmUgZWRpdGluZyB0aGVpciByZWNvcmQuIFRoZSByZWNvcmQgd2lsbCBub3QgYmUgdmlzaWJsZSB0byBhbnkgb3RoZXIgdXNlcnMgKGV4Y2x1ZGluZyBhZG1pbnMpLgpUaGlzIGZvcm0gc2hvdWxkIGJlIGFkZGVkIHRvIHlvdXIgcGFnZSB1c2luZyB0aGUgc3ludGF4IHtGb3JtQnVpbGRlciBhY3Rpb249JiMwMzk7ZmV1c2VyZm9ybSYjMDM5OyBmb3JtPSYjMDM5O2Zvcm1fbmFtZSYjMDM5O30uPC9wPgo8cD5Gb3IgZ3JlYXRlciBkYXRhIHNhZmV0eSwgeW91IGNhbiBlbmNyeXB0IHRoZSBzdG9yZWQgZm9ybXMgaW4gdGhlIGRhdGFiYXNlLiBZb3UgY2FuIHVzZSB0aGUgYnVpbHQtaW4gbXljcnlwdCBsaWJyYXJ5IG9yIHRoZSBPcGVuU1NMIG1vZHVsZS4KSW4gZWl0aGVyIGNhc2UsIGZvciB0aGUgcGFzc3BocmFzZSwgeW91IGNhbiBlaXRoZXIgZW50ZXIgdGV4dCBpbiB0aGUgZmllbGQgb3IgYSBmaWxlIG5hbWUuIElmIHlvdSBzcGVjaWZ5IGEgZmlsZSBuYW1lLCB0aGUgY29udGVudHMgb2YgdGhhdApmaWxlIHdpbGwgYmUgdXNlZCBhcyB0aGUgcGFzc3BocmFzZSBmb3IgZW5jcnlwdGluZy48L3A+CjxwPklmIHlvdSBlbmNyeXB0LCBiZSBhd2FyZSB0aGF0IHRoZSBmaWVsZHMgeW91IHVzZSBmb3Igc29ydGluZyBhcmUgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gZW5jcnlwdGVkLiBZb3UgY2FuIGNob29zZSB0byBoYXNoIHRoZW07IHRoZSBjaGVhdCBoZXJlCmlzIHRoYXQgdGhlIGZpcnN0IGZvdXIgbGV0dGVycyBhcmUgbGVmdCBpbnRhY3QgdG8gYWxsb3cgZm9yIHNvcnRpbmcuIFRoZSBzb3J0aW5nIG1heSBub3QgYmUgcGVyZmVjdCwgYW5kIHRoaXMgd2Vha2VucyB0aGUgc2VjdXJpdHkgc2luY2UgaXQKZXhwb3NlcyBzb21lIGNsZWFydGV4dCwgYnV0IGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuPC9wPgo8cD48c3Ryb25nPkRJU0NMQUlNRVI8L3N0cm9uZz4uIFRoZSBlbmNyeXB0aW9uIG9mZmVyZWQgaGVyZSBzaG91bGQgYmUgY29uc2lkZXJlZCBqdXN0IG9uZSBtb3JlIGh1cmRsZSBmb3IgYSBoYWNrZXIsIG5vdCBhcyBhIGd1YXJhbnRlZSB0aGF0CnlvdXIgaW5mb3JtYXRpb24gd2lsbCBiZSBzZWN1cmUuIEEgc21hcnQgaGFja2VyIHdobyBoYXMgZm91bmQgc29tZSBleHBsb2l0IHRvIHZpZXcgZGF0YWJhc2UgcmVjb3JkcyBtYXkgd2VsbCBiZSBzbWFydCBlbm91Z2ggdG8gZ2V0IGF0CnRoZSBtb2R1bGUgc291cmNlIGNvZGUsIGFuZCBmaW5kIHRoZWlyIHdheSB0byB0aGUgcGFzc3BocmFzZS4gVGhpcyB3aWxsIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGFuIGVuZW15IHdobyBoYXMgZnVsbCBhY2Nlc3MgdG8geW91cgpzZXJ2ZXIsIHNvbWUgZmFtaWxpYXJpdHkgd2l0aCBQSFAsIGFuZCB0aGUgdGltZSB0byBwb2tlIGFyb3VuZC4gPGVtPjxzdHJvbmc+RG8gbm90PC9zdHJvbmc+IHVzZSB0aGlzIHRvIHByb3RlY3QgaGlnaC12YWx1ZSBpbmZvcm1hdGlvbiBzdWNoIGFzIGZpbmFuY2lhbCBkYXRhLApzZW5zaXRpdmUgcG9saXRpY2FsIGluZm9ybWF0aW9uLCBodW1hbiByaWdodHMgZGF0YSwgb3IgYW55dGhpbmcgZWxzZSB0aGF0IG1pZ2h0IGJlIG9mIHZhbHVlIHRvIGEgcmVwcmVzc2l2ZSBnb3Zlcm5tZW50IG9yIG9yZ2FuaXplZCBjcmltZQpjYXJ0ZWwuPC9lbT48L3A+CjxoMz5Vc2luZyB3aXRoIFVzZXIgRGVmaW5lZCBUYWdzIChVRFRzKTwvaDM+CjxwPlNldmVyYWwgb3B0aW9ucyBmb3IgY3VzdG9taXppbmcgYmVoYXZpb3IgdmlhIFVEVHMgaXMgcHJvdmlkZWQgKHRoYW5rcyB0byBraW5kIGNvZGUgY29udHJpYnV0aW9ucywgc2VlIGNyZWRpdHMpLjwvcD4KCjx1bD48bGk+Q2FsbCBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBmaWVsZCB0eXBlIHN1Ym1pdHMgdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkClRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10sIGFuZAphcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX2FsaWFzJiMwMzk7XSAoaWYgZGVmaW5lZCkuPC9saT4KPGxpPlVzZXIgVGFnIEZpZWxkLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVURULCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cJiMwMzk7cyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcgp2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZAp2YWx1ZSBiZWluZyBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L2xpPgo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMKaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5Cm9mIHRoZSBmb3JtLjwvbGk+CjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UKZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZApldmVyeSB0aW1lIGFueSBwYWdlIG9mIHRoZSBmb3JtIGlzIGRpc3BsYXllZCAoaW5jbHVkaW5nIHdoZW4gdmFsaWRhdGlvbiBmYWlscykuPC9saT4KPC91bD4KPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5SdW4gaW4gTUxFIE1vZGUuIFRoaXMgY2hhbmdlcyBzb21lIHF1ZXJpZXMgYWdhaW5zdCB0aGUgY29udGVudCB0YWJsZSB0byB0cnkgdG8gcHJldmVudCB1Z2x5IGNyYXNoZXMgdW5kZXIgdGhlIE1MRSBmb3JrLiBDaGVja2luZyB0aGlzIHdpbGwgY2F1c2UgdWdseSBjcmFzaGVzIGlmIHlvdSBhcmUgTk9UIHJ1bm5pbmcgdGhlIE1MRSBmb3JrLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBubyBsb25nZXIgc2V0IGJ5IGRlZmF1bHQuIENoZWNraW5nIGl0IHdpbGwgaGlkZSB0aGUgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdGhhdCB3b3VsZCBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPgo8L3VsPgo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4KPHA+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIApzdGF0aWMgdGV4dCBmaWVsZHMuIEluc3RlYWQsIGl0IGNyZWF0ZXMgYSBzdHlsZXNoZWV0IGNhbGxlZCAmcXVvdDtGb3JtQnVpbGRlciBEZWZhdWx0JnF1b3Q7IHRoYXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGFjaCB0byB0aGUgcGFnZSB0ZW1wbGF0ZQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+CgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICZhbXA7IzEyMzskZmJfaGlkZGVufSBhbmQgJmFtcDsjMTIzOyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBoZWxwIHRleHQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5CmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPnZhbHVlfSApLgpZb3UgY2FuIHVzZSB0aGlzIGluIFN0YXRpYyBUZXh0IGZpZWxkcyBhcyB3ZWxsLCB3aGljaCBpcyBhIG5pY2Ugd2F5IHRvIHBlcnNvbmFsaXplIGZvcm1zITwvcD4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPgo8dHI+PHRkPmluX2Zvcm1icm93c2VyPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPgo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+Cjx0cj48dGQ+ZmJyX2lkPC90ZD48dGQ+UmVzcG9uc2UgSUQgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgoKPGgzPkNyZWRpdHM8L2gzPgo8cD5NYW55IHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIGNvZGUsIGJ1ZyByZXBvcnRzLCBjYXNoLCBhbmQgaWRlYXMgdG8gRm9ybUJyb3dzZXIuIEFtb25nIHRoZW06Cjx1bD4KPGxpPlJvYmVydCBDYW1wYmVsbCAtIG51bWVyb3VzIGNvZGUgY29udHJpYnV0aW9uczwvbGk+CjxsaT5UeWxlciBCb2VzcGZsdWcgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+CjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+CjxsaT5KZWZmIEJvc2NoIC0gVURUIFZhbGlkYXRpb248L2xpPgo8bGk+TnVubyBDb3N0YSAtIHN1Z2dlc3Rpb25zPC9saT4KPGxpPkFsYmVydG8gQmVuYXRpIC0gY29kZTwvbGk+CjxsaT5Nb3J0ZW4gUG91bHNlbiAtIGNvZGU8L2xpPgo8bGk+TWFyYyBHZWxkb24gLSBjb2RlPC9saT4KPGxpPktldmluIEdyYW5kb24gLSBjb2RlPC9saT4KPGxpPlNpbW9uIFNjaGF1ZmVsYmVyZ2VyIC0gY29kZTwvbGk+CjxsaT5Sb25ueSBLcmlqdCAtIGNvZGU8L2xpPgo8L3VsPgo8cD5JIGFwb2xvZ2l6ZSBmb3IgYW55IG9taXNzaW9ucyAtIG5vdGlmeSBtZSwgYW5kIEkmIzAzOTtsbCBjb3JyZWN0IHRoZSBvbWlzc2lvbiE8L3A+CjxoMz5NaXNjZWxsYW5lb3VzIE5vdGVzPC9oMz4KPHVsPgo8bGk+QW55IGZpZWxkcyB0aGF0IHNlbmRzIGVtYWlsIHRvIGEgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBhbHNvIGFjY2VwdCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGVtYWlsIGFkZHJlc3Nlcy48L2xpPgo8L3VsPgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IFVSTHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPgo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPgo8L3VsPgoKPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+CjxvbD4KPGxpPkZvcm1CdWlsZGVyL0Zvcm1Ccm93c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gUEhQIDUgb3IgbGF0ZXIgdG8gZnVuY3Rpb24gY29ycmVjdGx5LjwvbGk+CjxsaT5GaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuNiBvciBsYXRlci48L2xpPgo8bGk+U2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+CjxsaT4gTWFrZSBzdXJlIHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNlbmQgZW1haWwgdmlhIHRoZSB0ZXN0IGluIHRoZSBDTVNNYWlsZXIgTW9kdWxlLiBJdCYjMDM5O3Mgc2ltcGx5IGFtYXppbmcgaG93IG1hbnkgcHJvYmxlbXMgYm9pbCBkb3duIHRvIGEgbWlzY29uZmlndXJlZCBDTVNNYWlsZXIuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8bGk+RG9uYXRpb25zIGFyZSBnb29kIG1vdGl2YXRvcnMsIHRvby4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGRvbGxhciBpcyB3ZWFrLCBhbmQgaWYgeW91IGFyZSBub3QgaW4gdGhlIFVTLCB5b3VyIGRvbmF0aW9uIGdldHMgbWFnbmlmaWVkLjwvbGk+CjwvdWw+CjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCA8ZW0+aHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzPC9lbT4gaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuClBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igc2VuZCB5b3VyIHF1ZXN0aW9ucyB3cml0dGVuIG9uCmZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNoZWNrcyBvciBjYXNoKS4gQW0gSSBzb3VuZGluZyBsaWtlIGEgYnJva2VuIHJlY29yZD8gRG8geW91IGtpZHMgdGhlc2UgZGF5cwpldmVuIGtub3cgd2hhdCBhIGJyb2tlbiByZWNvcmQgaXM/IEkgd291bGQgc2F5IHNraXBwaW5nIENELCBidXQgeW91IG1pZ2h0IG5vdCBrbm93IHdoYXQgdGhhdCBpcyBlaXRoZXIuIExpa2UgYQpzYW1wbGUgdGhhdCBnb3Qgc3R1Y2sgb24gbG9vcD8gRGFtbiwgSSBhbSBnZXR0aW5nIG9sZC4gU28gaXMgdGhpcyBwYXJhZ3JhcGguIFRpbWUgdG8gbW92ZSBvbiwgaGVyZS48L3A+PGZvcm0gYWN0aW9uPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3ImcXVvdDsgbWV0aG9kPSZxdW90O3Bvc3QmcXVvdDs+CjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2NtZCZxdW90OyB2YWx1ZT0mcXVvdDtfcy14Y2xpY2smcXVvdDs+CjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVDQ19MRy5naWYmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgbmFtZT0mcXVvdDtzdWJtaXQmcXVvdDsgYWx0PSZxdW90O1BheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISZxdW90Oz4KPGltZyBhbHQ9JnF1b3Q7JnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiZxdW90OyB3aWR0aD0mcXVvdDsxJnF1b3Q7IGhlaWdodD0mcXVvdDsxJnF1b3Q7Pgo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtlbmNyeXB0ZWQmcXVvdDsgdmFsdWU9JnF1b3Q7LS0tLS1CRUdJTiBQS0NTNy0tLS0tTUlJSFR3WUpLb1pJaHZjTkFRY0VvSUlIUURDQ0J6d0NBUUV4Z2dFd01JSUJMQUlCQURDQmxEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMENBUUF3RFFZSktvWklodmNOQVFFQkJRQUVnWUFJTm5CV2IvWE00bG12TEdIbDlSZDFjdkw1dHJxUmhjNytGb0dINUx0b2ZRaVZyZ0ZTdmg3aDFvamc1U3pUeGJndGkzMlpGMC91Y3VxL09RU0QrVnp1dUFGMXY2d1ZydHlPZUNQRUF3OGo4MURKT1hWakpIc0lZMm12aW9yUGpvbExRa0ZudjEyeVJUcHVGV0ZuNFpYZTUrdm5DalhxQnkwRUUvYWh6RU1NbnpFTE1Ba0dCU3NPQXdJYUJRQXdnY3dHQ1NxR1NJYjNEUUVIQVRBVUJnZ3Foa2lHOXcwREJ3UUljS05Od09QRm93dUFnYWl2Uzd2MGoyWEZ5UTlkcjhuaTlHOTVlRTdZcW9nR2xLOXd1U3BsbE9nOWxucnV2bkVRcXNtUm1RbnRoUXFXQ1RiWnpHMitJRXRlTTRJVXN4RXVHVHJ3OHBaQ1UyNFRORGNrbktVeDlVejN2U3hPaDNndTk1eUp5RHdvZU12YUVBMjRiczE0UUViSmJoTmpZNld4SHo5K2kvbFZBREJqeUFPRFlNdXphbERrdmR1dndlR05aazlsWUxSUkNvUFBOaWxHMVBmNnc4N0JIcGtTTThXUTFMQzkrUldkWGZaY20rZWdnZ09ITUlJRGd6Q0NBdXlnQXdJQkFnSUJBREFOQmdrcWhraUc5dzBCQVFVRkFEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdIaGNOTURRd01qRXpNVEF4TXpFMVdoY05NelV3TWpFek1UQXhNekUxV2pDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFNRkhUdDM4Uk14TFhKeU8yU21TK05kbDcyVDdvS0o0dTR1dys2YXdudEFMV2gwM1Bld21JSnV6YkFMU2NzVFM0c1pvUzFmS2NpQkdvaDExZ0lmSHp5bHZrZE5lL2hKbDY2L1JHcXJqNXJGYjA4c0FBQk5UekRUaXFxTnBKZUJzWXMvYzJhaUdvenB0WDJSbG5Ca3RIK1NVTnBBYWpXNzI0TnYyV3ZoaWY2c0ZBZ01CQUFHamdlNHdnZXN3SFFZRFZSME9CQllFRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpSck1JRzdCZ05WSFNNRWdiTXdnYkNBRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpScm9ZR1VwSUdSTUlHT01Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DUTBFeEZqQVVCZ05WQkFjVERVMXZkVzUwWVdsdUlGWnBaWGN4RkRBU0JnTlZCQW9UQzFCaGVWQmhiQ0JKYm1NdU1STXdFUVlEVlFRTEZBcHNhWFpsWDJObGNuUnpNUkV3RHdZRFZRUURGQWhzYVhabFgyRndhVEVjTUJvR0NTcUdTSWIzRFFFSkFSWU5jbVZBY0dGNWNHRnNMbU52YllJQkFEQU1CZ05WSFJNRUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkJRVUFBNEdCQUlGZk9sYWFnRnJsNzEranE2T0tpZGJXRlNFK1E0RnFST3ZkZ0lPTnRoKzhrU0svL1kvNGlodUU0WW12em41Y2VFM1MvaUJTUVFNanl2YitzMlRXYlFZRHdjcDEyOU9QSWJEOWVwZHI0dEpPVU5pU29qdzdCSHdZUmlQaDU4UzF4R2xGZ0hGWHdyRUJiM2RnTmJNVWErdTRxZWN0c01BWHBWSG5EOXdJeWZtSE1ZSUJtakNDQVpZQ0FRRXdnWlF3Z1k0eEN6QUpCZ05WQkFZVEFsVlRNUXN3Q1FZRFZRUUlFd0pEUVRFV01CUUdBMVVFQnhNTlRXOTFiblJoYVc0Z1ZtbGxkekVVTUJJR0ExVUVDaE1MVUdGNVVHRnNJRWx1WXk0eEV6QVJCZ05WQkFzVUNteHBkbVZmWTJWeWRITXhFVEFQQmdOVkJBTVVDR3hwZG1WZllYQnBNUnd3R2dZSktvWklodmNOQVFrQkZnMXlaVUJ3WVhsd1lXd3VZMjl0QWdFQU1Ba0dCU3NPQXdJYUJRQ2dYVEFZQmdrcWhraUc5dzBCQ1FNeEN3WUpLb1pJaHZjTkFRY0JNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MHdPREEzTURFd016VTVNemxhTUNNR0NTcUdTSWIzRFFFSkJERVdCQlFNMExWMzBmTFhjSDlNNWRNbXVUQkxuc0ZRNGpBTkJna3Foa2lHOXcwQkFRRUZBQVNCZ0JFejJYcU1NcUZidVVoaitMMTI4Q3cydThTaE9LUXR0cktyL2hpMFdSZWVuSERZQmlIT1N0bDYzUnY3NlEybXBkNDUzUnZDajVtcTdkUnR1UkI2cGZIR1JEa1VYNk4xK09PSW9JZnJvQlpJQVROaHo5Q0VId0VGa05qWWcwRUdNQUcramNiQWoxREpqUjczY3hiYU5yWFdQeEEraGlRaEhsQXJyWkE3ckZWNS0tLS0tRU5EIFBLQ1M3LS0tLS0KJnF1b3Q7Pgo8L2Zvcm0+PHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAoQykgMjAwOSwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My42OTU3NTAwOTQuMTI3OTEzODQyNC4xMjg3NjM1NTgyLjEyODk1MDA5OTQuMTEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjg5NTAwOTk0LjExLjEyLnV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vcHJvamVjdC9maWxlcy8xODknOwokbGFuZ1sncWNhJ10gPSAnUDAtOTY1MDIzMDcwLTEyNzkxMzg0MjQxNDgnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEyODk1MDA5OTQnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0tyZWF0b3IgZm9ybXVsYXJ6eSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1R5cCBwb2xhIG5pZSB6b3N0YcWCIHVzdGF3aW9ueSc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdXeWJpZXJ6IGplZGVuIGx1YiB3acSZY2VqIHdwaXMmb2FjdXRlO3cgbW9kdcWCdSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1Lb25pZWMgcG9sYSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctUG9jesSFdGVrIHBvbGEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdQb2xlIHRla3N0b3dlZ28gd3Byb3dhZHphbmlhIChUZXh0IElucHV0KSc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdIVE1MNSBOdW1iZXIgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdIVE1MNSBFbWFpbCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVUkwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnSGFzxYJvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAnSGFzxYJvICh3ZXJ5ZmlrYWNqYSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnUG9sZSB0ZWtzdG93ZWdvIHdwcm93YWR6YW5pYSAod2llbG9rcm90bmUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1BvbGUgdGVrc3Rvd2UgKHRleHQgYXJlYSknOwokbGFuZ1snZmllbGRfdHlwZV9CdXR0b25GaWVsZCddID0gJ1ByenljaXNrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NoZWNrYm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3J1cGEgY2hlY2tib3gmb2FjdXRlO3cnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTGlzdGEgcm96d2lqYWxuYSc7CiRsYW5nWydmaWVsZF90eXBlX1llYXJQdWxsRG93bkZpZWxkJ10gPSAnV3liJm9hY3V0ZTtyIHJva3UnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTGlzdGEgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBzdGFuJm9hY3V0ZTt3IFVTQSc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLb250cm9sa2Egd3lib3J1IHJlZ2lvbiZvYWN1dGU7dyBLYW5hZHknOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdLb250cm9sa2Egd3lib3J1IGtyYWp1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBkYXR5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBjemFzdSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dydXBhIHJhZGlvYnV0dG9uJm9hY3V0ZTt3JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypXeXN5xYJhaiB3eW5pa2kgZW1haWxlbSB3eWJyYW55bSB6IGxpc3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqWmFwaXN6IHd5bmlraSBkbyBwbGlrdSB3eWJpZXJhbmVnbyB6IGxpc3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypaYXBpc3ogd3luaWtpIGRvIHBsaWt1KCZvYWN1dGU7dykgd3liaWVyYW5lZ28geiBsaXN0eSB3aWVsb2tyb3RuZWdvIHd5Ym9ydSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUHJ6ZWtpZXJ1aiBkbyBzdHJvbnkgd3licmFuZWogeiBsaXN0eSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqV3nFm2xpaiB3eW5pa2kgcG9kIGVtYWlsKGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypBZHJlcyBXYWxpZGFjamktcHJ6ZXotZW1haWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqWmFwaXN6IHd5bmlraSBkbyB6d3lrxYJlZ28gcGxpa3UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBhIFVuaXF1ZSBGbGF0IEZpbGUgZm9yIGVhY2ggc3VibWlzc2lvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqWmFwaXN6IHd5bmlraSBkbyBiYXp5IGRhbnljaCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqWmFwaXN6IHd5bmlrIHcgZm9ybWFjaWUgemdvZG55bSB6IG1vZHXFgmVtIEZvcm1Ccm93c2VyIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypXeXdvxYJhaiB6bmFjem5payB1xbx5dGtvd25pa2EgeiB3eW5pa2FtaSBmb3JtdWxhcnphJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtJ10gPSAnKlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKld5xZtsaWogd3luaWtpIG5hIGVtYWlsIHBvZGFueSBwcnpleiB1xbx5dGtvd25pa2EnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKld5xZtsaWogd3luaWsgZG8gYWRtaW5pc3RyYXRvcmEgQ01TJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctS29uaWVjIHN0cm9ueSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ1dncnl3YW5pZSBwbGlrdSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ1BvbGUgdyBlbWFpbHUgJnF1b3Q7QWRyZXMgb2QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBBZ2FpbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ1BvbGUgdyBlbWFpbHUgJnF1b3Q7T2QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdQb2xlIHcgZW1haWx1ICZxdW90O1R5dHXFgiZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZWtzdCBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctTGluayBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rICh3cHJvd2Fkem9ueSBwcnpleiB1xbx5dGtvd25pa2EpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctUG9sZSB1a3J5dGUnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLVBvbGUgb2JsaWN6ZW5pb3dlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaWthbG55IGlkZW50eWZpa2F0b3IgKG51bWVyIHNlcnlqbnkpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLVVzZXIgRGVmaW5lZCBUYWcgQ2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxlIEludGVyZmFjZSBGaWVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdCZXogd2FsaWRhY2ppJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyeWN6bmUnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnUGXFgm5vLWxpY3pib3dlIChpbnRlZ2VyKSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdBZHJlcyBlbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdOdW1lciB0ZWxlZm9uaWN6bnkgKGZvcm1hdCBVU0EpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c2kgem9zdGHEhyB6YXpuYWN6b25lJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdTcHJhd2R6YWogcG9wcmF3bm/Fm8SHIHogd3lyYcW8ZW5pZW0gcmVndWxhcm55bSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdOaWUgc3BlxYJuaWEgd2FydW5rJm9hY3V0ZTt3IG9rcmXFm2xvbnljaCBwcnpleiBwb2RhbmUgd3lyYcW8ZW5pZSByZWd1bGFybmUnOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ1dhcnRvxZvEhyBkbGEgd3ltYWdhbmVnbyBwb2xhIG5pZSB6b3N0YcWCYSBwb2RhbmEnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdXcHJvd2Fkxbogd2FydG/Fm8SHIGRsYSBwb2xhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1dwcm93YWTFuiBsaWN6YsSZIHcgcG9sdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdXcHJvd2FkxbogcG9wcmF3bsSFIHdhcnRvxZvEhyB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdXcHJvd2Fkxbogd2FydG/Fm8SHIHBlxYJuby1saWN6Ym93xIUgdyBwb2x1ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1dwcm93YWTFuiBwb3ByYXdueSBlbWFpbCB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0VtYWlsIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggdmFsdWUgaW4gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdXcHJvd2FkxbogcG9wcmF3bnkgbnVtZXIgdGVsZWZvbmljem55Y2ggdyBwb2x1ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9sb2dpbiddID0gJ1BsZWFzZSBsb2cgaW4gdG8gdXNlIHRoaXMgZm9ybSc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuaWUgd3lkYWplIHNpxJkgcG9wcmF3bnltIGFkcmVzZW0gZW1haWwhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdXcHJvd2Fkxbogd2FydG/Fm8SHIG5pZSBkxYJ1xbxzesSFIG5pxbwgJXMgem5hayZvYWN1dGU7dyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrIHXFvHl3YW55IGpha28gc2VwYXJhdG9yIHcgd3luaWthY2ggZGFqxIVjeWNoIHdpxJljZWogbmnFvCBqZWRuxIUgd2FydG/Fm8SHJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdQb3RyemVidWplc3ogdXByYXduaWVuaWUgJnF1b3Q7JXMmcXVvdDsgYnkgd3lrb25hxIcgdMSZIG9wZXJhY2rEmSc7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBOaWUgbWFzeiBvZHBvd2llZG5pY2ggdXByYXduaWXFhCBieSBrb3J6eXN0YcSHIHogdGVqIHNla2NqaS4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0tvbGVqbm/Fm8SHIHAmb2FjdXRlO2wgemFrdHVhbGl6b3dhbmEnOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXJ6IHpvc3RhxYIgdXN1bmnEmXR5JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdQb2xlIHpvc3RhxYJvIHVzdW5pxJl0ZSc7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmFjamEgemFwaXNhbmEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnTXVzaXN6IHphem5hY3p5xIcgJnF1b3Q7JXMmcXVvdDsgYnkgcHJ6ZWrFm8SHIGRhbGVqJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdNdXNpc3ogcG9kYcSHIGNvIG5ham1uaWVqIGplZGVuIGFkcmVzIGRvY2Vsb3d5ISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdOYSBwZXdubyBjaGNlc3ogdXN1bsSFxIcgZm9ybXVsYXJ6ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnTmEgcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHBvbGUgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ09wY2plIHphYXdhbnNvd2FuZSBuaWUgc8SFIGRvc3TEmXBuZSwgZG9wJm9hY3V0ZTtraSBuaWUgdXN0YXdpc3ogdHlwdSBwb2xhJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnTmF6d2EgcG9sYSAmcXVvdDslcyZxdW90OyBqdcW8IGplc3QgdyBzeXN0ZW1pZS4gVcW8eXdhaiBuaWVwb3d0YXJ6YWxueWNoIG5hencgYWxibyB3ecWCxIVjeiBvZHBvd2llZG5pxIUgb3BjasSZIHcga29uZmlndXJhY2ppIG1vZHXFgnUuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdQb2xhIG11c3rEhSBtaWXEhyBuYXp3xJksIGRvcCZvYWN1dGU7a2kgbmllIHd5xYLEhWN6eXN6IHRlaiBvcGNqaSB6IGtvbmZpZ3VyYWNqaSBtb2R1xYJ1Lic7CiRsYW5nWydub19maWVsZF9hc3NpZ25lZCddID0gJ05vIGZpZWxkIGFzc2lnbmVkIGZvciAlcyc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0TFgjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzJm9hY3V0ZTt3JzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcGNqaSc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIHpuYWsmb2FjdXRlO3cnOwokbGFuZ1snb3JkZXInXSA9ICdLb2xlam5vxZvEhyc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuaWV6bmFuZV0nOwokbGFuZ1snYWRkZWQnXSA9ICdkb2Rhbm8nOwokbGFuZ1sndXBkYXRlZCddID0gJ3pha3R1YWxpem93YW5vJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ09wY2plIHNvcnRvd2FuaWEgd3lqxZtjaWEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1d5YmllcnogamVkbm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdXeWJpZXJ6IHR5cCc7CiRsYW5nWyd0byddID0gJ0RvJzsKJGxhbmdbJ3llcyddID0gJ1Rhayc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnb2RiaW9yY3knOwokbGFuZ1snZmllbGRzJ10gPSAnZmllbGRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBtb8W8bGl3eWNoIHBsaWsmb2FjdXRlO3cnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBjZWwmb2FjdXRlO3cnOwokbGFuZ1snc2F2ZSddID0gJ1phcGlzeic7CiRsYW5nWydhZGQnXSA9ICdEb2Rhaic7CiRsYW5nWyd1cGRhdGUnXSA9ICdBa3R1YWxpenVqJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnWmFwaXN6IGkga29udHludXVqIGVkeWNqxJknOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2plJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXR5Y3puaWUnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcnplJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxhcnogJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYWNqYSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnU3RhdHVzIHd5bWFnYWxub8WbY2kgcG9sYSB6b3N0YcWCIHpha3R1YWxpem93YW55Lic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzeW1hbG55IHJvem1pYXInOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdSb3pyemVzemVuaWEnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0RvendvbG9uZSB0eXB5IHBsaWsmb2FjdXRlO3cnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdXZ3J5d2FueSBwbGlrIGplc3QgemEgZHXFvHkhIE1ha3N5bWFsbnkgcm96bWlhciB0bzonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdQbGlraSB0ZWdvIHR5cHUgKHRlZ28gcm96c3plcnplbmlhKSBuaWUgbW9nxIUgYnnEhyB3Z3J5d2FuZSBkbyBuYXN6ZWdvIHN5c3RlbXUuIFNwcmF3ZMW6LCBjenkgcm96c3plcnplbmllIGplc3QgcHJhd2lkxYJvd2UuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1dncnl3YW5pZSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXJ6IHphaW1wb3J0b3dhbnkuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBmb3JtdWxhcnphIHNpxJkgbmllIHBvd2kmb2FjdXRlO2TFgiEgQnnFgiBwcm9ibGVtIHogZm9ybWF0ZW0gcGxpa3UgWE1MLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgd2llcnN6eSc7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sdW1uJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMi1nb2R6aW5ueSB6ZWdhcic7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtZ29kemlubnkgemVnYXInOwokbGFuZ1snaG91ciddID0gJ0dvZHppbmEnOwokbGFuZ1snbWluJ10gPSAnTWludXRhJzsKJGxhbmdbJ21lcmlkJ10gPSAnUG/FgnVkbmlrJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdaYWtyZXM6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnRHppxJlraSEgVHdvamEgd3lzecWCa2Egem9zdGHFgmEgb3RyenltYW5hLic7CiRsYW5nWydlZGl0J10gPSAnRWR5dHVqJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0thc3VqJzsKJGxhbmdbJ2RheSddID0gJ0R6aWXFhCc7CiRsYW5nWydtb24nXSA9ICdNaWVzacSFYyc7CiRsYW5nWyd5ZWFyJ10gPSAnUm9rJzsKJGxhbmdbJ25vbmUnXSA9ICcoYnJhayknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdcWCIG9kaW5zdGFsb3dhbnknOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdcWCIHcgd2Vyc2ppICVzIHpvc3RhxYIgemFpbnN0YWxvd2FueS4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1xYIgemFrdHVhbGl6b3dhbm8gZG8gd2Vyc2ppICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdQb3dyJm9hY3V0ZTt0Li4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdXecWbbGlqIGZvcm11bGFyeic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdLb250eW51dWouLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1phem5hY3pvbnknOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnT2R6bmFjem9ueSc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0fFgiZvYWN1dGU7d25hJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdVc3Rhd2llbmlhIHd5xZt3aWV0bGVuaWEgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnV3lzxYJhbmllIGZvcm11bGFyemEnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdVc3Rhd2llbmlhIENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnVXN0YXdpZW5pYSBaYWF3YW5zb3dhbmUnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnU3phYmxvbiBmb3JtdWxhcnphJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTemFibG9uIHd5c8WCYW5pYSc7CiRsYW5nWyd0YWJfdWR0J10gPSAnVURUIEludGVncmF0aW9uJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+Wm1pZW5uZSBzbWFydHkgc8SFIHcgdHltIHBvbHUgZG96d29sb25lITwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnRG9kYWogd2nEmWNlaiBvcGNqaSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1NrYXN1aiB6YXpuYWN6b25lIG9wY2plJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnRG9kYWogd2nEmWNlaiBjaGVja2JveC0mb2FjdXRlO3cnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdTa2FzdWogemF6bmFjem9uZSBjaGVja2JveC15JzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnRG9kYWoga29sZWpueSBhZHJlcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1NrYXN1aiB6YXpuYWN6b25lIGFkcmVzeSc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdEb2RhaiBrb2xlam5lZ28gYWRyZXNhdGEgKGNlbCknOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU2thc3VqIHd5YnJhbnljaCBhZHJlc2F0Jm9hY3V0ZTt3IChjZWxlKSc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1phIGR1xbxvIGVtYWlsaSB6b3N0YcWCbyB3eWdlbmVyb3dhbnljaCB6IHR3b2plZ28gYWRyZXN1IElQLiBTeXN0ZW0gYW50eS1zcGFtb3d5IGp1xbwgbmllIGLEmWR6aWUgbmljIG9kIGNpZWJpZSBkb3N0YXJjemHFgi4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnUG9kZWpyemFueSBzcGFtIHogYWRyZXN1IElQICVzIC0gem9zdGHFgiB6YXRyenltYW55Lic7CiRsYW5nWydyZW9yZGVyJ10gPSAnWm1pZcWEIGtvbGVqbm/Fm8SHIHAmb2FjdXRlO2wnOwokbGFuZ1snY2FuY2VsJ10gPSAnQW51bHVqJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1dhcnRvxZvEhyB1c3Rhd2lvbmE6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+Cjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ1d5cmHFvGVuaWUgcmVndWxhcm5lIHBvendhbGEgZmlsdHJvd2HEhyB3cGlzeSBtb2R1xYJ1IENhdGFsb2dlciBwbyBuYXp3aWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdXeXNva2/Fm2MgbGlzdHkgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ1d5cmHFvGVuaWUgcmVndWxhcm5lIGRsYSBuYXp3IHdwaXMmb2FjdXRlO3cgbW9kdcWCdSBDYXRhbG9nZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnV3lzb2tvxZvEhyBwb2xhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0RvY2Vsb3d5IGthdGFsb2cgZGxhIHBsaWsmb2FjdXRlO3cgd3l0d2FyemFueWNoIHByemV6IG1vZHXFgjonOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdabmFjem5payB1xbx5dGtvd25pa2EnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1N0cm9uYSBwb3dyb3R1IHogbGlua2llbSBwbyB1cGxvYWR6aWUnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdXeXPFgmFubyB6IG1vZHXFgnUgRm9ybUJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0thdGVnb3JpYSB1cGxvYWR1JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnV3nFm2xpaiBwbGlrIGRvIG1vZHXFgnUgVXBsb2Fkcyc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGUnXSA9ICdBbGxvdyB1cGxvYWQgdG8gb3ZlcndyaXRlIHByZXZpb3VzbHkgZmlsZXM/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZV9sb25nJ10gPSAnU2hvdWxkIHVwbG9hZGVkIGZpbGUgb3ZlcndyaXRlIHByZXZpb3VzbHkgdXBsb2FkZWQgZmlsZSBpZiBpdCBoYXMgdGhlIHNhbWUgbmFtZT8nOwokbGFuZ1snb3ZlcndyaXRlJ10gPSAnQWxsb3dzIE92ZXJ3cml0aW5nJzsKJGxhbmdbJ25vb3ZlcndyaXRlJ10gPSAnTm8gT3ZlcndyaXRlJzsKJGxhbmdbJ2ZpbGVfYWxyZWFkeV9leGlzdHMnXSA9ICdGaWxlICVzIGFscmVhZHkgZXhpc3RzLCBhbmQgY2Fubm90IGJlIG92ZXJ3cml0dGVuLic7CiRsYW5nWyd0aXRsZV9maWxlX3JlbmFtZSddID0gJ0ZpbGVuYW1lIHRlbXBsYXRlJzsKJGxhbmdbJ29yaWdpbmFsX2ZpbGVfZXh0ZW5zaW9uJ10gPSAnT3JpZ2luYWwgZmlsZSBleHRlbnNpb24gKGluY2x1ZGVzIHRoZSAmcXVvdDsuJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9zdXBwcmVzc19maWxlbmFtZSddID0gJ1N1cHByZXNzIGZpbGVuYW1lIGluIGVtYWlscyBhbmQgZm9ybXMgdGhlIGVuZCB1c2VyIHdpbGwgc2VlJzsKJGxhbmdbJ2ZpbGVfcmVuYW1lX2hlbHAnXSA9ICdUbyByZW5hbWUgYSBmaWxlIHVwb24gdXBsb2FkaW5nLCBjcmVhdGUgdGhlIHRlbXBsYXRlIGhlcmUuIExlYXZlIGJsYW5rIHRvIHByZXNlcnZlIG9yaWdpbmFsIGZpbGVuYW1lJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdExYJ1Z2/Fm8SHIG1ha3N5bWFsbmEnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdFdHlraWV0YSBjaGVja2JveGEnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdFdHlraWV0YSByYWRpb2J1dHRvbmEnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1dhcnRvxZvEhyBnZHkgemF6bmFjem9ubyc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZ2R5IG5pZXphem5hY3pvbm8nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ1N6Y3plZyZvYWN1dGU7xYJ5IGdydXB5IGNoZWNrYm94Jm9hY3V0ZTt3JzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1NrYXNvd2HEhyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZWtzdCBkbGEgb3BjamkgJnF1b3Q7V3liaWVyeiBqZWRlbiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdXYXJ0b8WbxIcgemF6bmFjemVuaWEnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnTmF6d2Egd2FydG/Fm2NpIHphem5hY3plbmlhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnVGVtYXQgemF6bmFjemVuaWEnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ0RvbXnFm2xuZSB6YXpuYWN6ZW5pZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RvbXnFm2xuZSB6YXpuYWN6ZW5pZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RvbXnFm2xuZSB6YXpuYWN6ZW5pZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ05hendhIG9wY2ppJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1d5c3nFgmFuYSB3YXJ0b8WbxIcnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ09wY2plIGxpc3R5IHJvendpamFsbmVqJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdPcGNqZSBsaXN0eSB3aWVsb2tyb3RuZWdvIHd5Ym9ydSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRG9jZWxvd3kgYWRyZXMgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRG9jZWxvd2EgbmF6d2EgcGxpa3UnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnUG9sZSAmcXVvdDtPZCZxdW90OyBkbGEgZS1tYWlsYSc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVcW8eXdhaiB1cHJvc3pjem9uxIUgd2FsaWRhY2rEmSBlbWFpbGEnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVcW8eXdhaiBzenlia8SFIHdhbGlkYWNqxJkgZGxhIHBvbGEgZW1haWwgKG5wLiwgcG96dyZvYWN1dGU7bCBuYSB3cGlzYW5pZSAmcXVvdDt4QHkmcXVvdDsgemFtaWFzdCBzcHJhd2R6YW5pYSBza8WCYWRuaSB0eXB1ICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0FkcmVzIG9kJnF1b3Q7IGRsYSBlbWFpbGEnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdLb2Rvd2FuaWUgem5hayZvYWN1dGU7dyBkbGEgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSBsaXN0eSByb3p3aWphbG5laiBkbGEgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ05hendhIHBsaWt1JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdMaW5pYSB0eXR1xYJ1IGVtYWlsYSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOYXp3YSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnU3RhdHVzIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdHb3Rvd3kgZG8gd2Ryb8W8ZW5pYSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmllZ290b3d5JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTdHJvbmEgcHJ6ZWtpZXJvd2FuaWEgcG8gd3lzxYJhbml1IGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ0RvZGFqIHBvbGUgb2JzxYJ1Z2kgZm9ybXVsYXJ6YSwgb2tyZcWbbGFqxIVjZSB6YXBpc3l3YW5pZSB3cHJvd2Fkem9ueWNoIGRhbnljaC4gTW/FvGVzeic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3XFvHl3YWogdGVnbyBza3Imb2FjdXRlO3R1JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdBbGlhcyBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdQb2xhIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJRCBwb2xhJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnUG9rYcW8IGFsaWFzeSBwJm9hY3V0ZTtsJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdaYXpuYWN6ZW5pZSB0ZWdvIHBvbGEgc3Bvd29kdWplLCDFvGUgYWxpYXN5IHAmb2FjdXRlO2wgYsSZZMSFIHBva2F6eXdhbmUgcG9kY3phcyBkb2Rhd2FuaWEgbHViIGVkeWNqaSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdOYXp3YSBwb2xhJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnQWxpYXMgcG9sYSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO2x5IGdydXB5IHJhZGlvYnV0dG9uJm9hY3V0ZTt3JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdUeXAgcG9sYSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnYnkgc3R3b3J6ecSHIHBvbGUgb2JzxYJ1Z2kgZm9ybXVsYXJ6YS4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnRG9kYWogbm93eSBmb3JtdWxhcnonOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnUG9rYXp1aiB3ZXJzasSZIG1vZHXFgnUgS3JlYXRvcmEgRm9ybXVsYXJ6eT8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUYSBvcGNqYSB3c3Rhd2kgbnVtZXIgd2Vyc2ppIG1vZHXFgnUgS3JlYXRvcmEgRm9ybXVsYXJ6eSAoRm9ybSBCdWlsZGVyKSBqYWtvIGtvbWVudGFyeiB3IHRyZcWbY2kgc3Ryb255LCBjbyB1xYJhdHdpIGRlYnVnb3dhbmllIGkgYW5hbGl6xJkgc3lzdGVtdS4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0RvZGFqIG5vd2UgcG9sZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZWtzdCBwcnp5Y2lza3Ugd3lzxYJhbmlhIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICdUZWtzdCBwcnp5Y2lza3UnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdEb2RhxIcgc2tyeXB0IEphdmFzY3JpcHQgZG8gb3N0YXRlY3puZWdvIHByenljaXNrdSB3eXN5xYJhbmlhIGZvcm11bGFyemEsIGJ5IHVuaWVtb8W8bGl3acSHIHdpZWxva3JvdG5lIGplZ28gbmFjacWbbmnEmWNpZT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0RvZGFqIHNrcnlwdCBiZXpwaWVjemXFhHN0d2EnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1Rla3N0IHByenljaXNrdSAmcXVvdDtOYXN0xJlwbmEgc3Ryb25hJnF1b3Q7ICh1xbx5d2FueSBwcnp5IHdpZWxvc3Ryb25pY293eWNoIGZvcm11bGFyemFjaCknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1Rla3N0IHByenljaXNrdSAmcXVvdDtQb3ByemVkbmlhIHN0cm9uYSZxdW90OyAodcW8eXdhbnkgcHJ6eSB3aWVsb3N0cm9uaWNvd3ljaCBmb3JtdWxhcnphY2gpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdXYWxpZGFjamEgcG9sYSc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0tsYXNhIENTUyBkbGEgdGVnbyBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0tsYXNhIENTUyBkbGEgdGVnbyBwb2xhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIHRoZSBmaXJzdCB0aW1lIChvbmx5IGNhbGxlZCBvbmNlKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGR1cmluZyBmb3JtIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdabmFrIG96bmFjemFqxIVjeSBwb2xlIHd5bWFnYW5lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnV3ltYWdhbmUnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1d5bWFnYWogd3lwZcWCbmllbmlhIHRlZ28gcG9sYSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnVWtyeWogZXR5a2lldMSZJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1VrcnlqIG5henfEmSB0ZWdvIHBvbGEgdyB3aWRva3UgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9sZW5ndGgnXSA9ICdNYWtzeW1hbG5hIGTFgnVnb8WbxIcgcG9sYSB6IHRyZcWbY2nEhSAoMCBsdWIgcHVzdGUgb3puYWN6YSBicmFrIGxpbWl0dSknOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXR5Y3pueSB0ZWtzdCBkbyB3ecWbd2lldGxlbmlhJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnUmVnZXggKHJlZ3XFgmthKSBkbyB3YWxpZGFjamknOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0xpc3RhIGxpbmlpIGRvIHd5xZt3aWV0bGVuaWEnOwokbGFuZ1sndGl0bGVfcmVhZF9vbmx5J10gPSAnVHlsa28gZG8gb2Rjenl0dSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnQmV6IHdhcnRvxZtjaSBkb215xZtsbnknOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTdHJvbmEgcHJ6ZWtpZXJvd2FuaWEgcG8gemF0d2llcmR6ZW5pdSc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnV3ltYWdhbmUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdVa3J5aiBixYLEmWR5JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdUeXAgd3nFm3dpZXRsYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdVc3RhdyB3aWFkb21vxZtjaSBvIGLFgsSZZGFjaCBpIGR6aWHFgmFuaXUgc3lzdGVtdSAoZGVidWcpIG5pZXdpZG9jem5lIGRsYSB1xbx5dGtvd25payZvYWN1dGU7dyc7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ1N6YWJsb24gZW1haWxhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3N5bWFsbnkgcm96bWlhciBwbGlrdSB3Z3J5d2FuZWdvIChraWxvYmFqdHkpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGVuIGxpbWl0IGplc3QgZG9kYXRrb3d5bSBsaW1pdGVtIC0gbmEgcGV3bm8gVHcmb2FjdXRlO2ogc2Vyd2VyIGx1YiBqxJl6eWsgUEhQIG1hIHN3b2plIHfFgmFzbmUgb2dyYW5pY3plbmlhLic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZXMgaW50byc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0RvendvbG9uZSByb3pzemVyemVuaWEnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1dwaXN6IGxpc3TEmSByb3pzemVyemXFhCBwbyBwcnplY2lua3UsIGJleiBrcm9wZWsgKG5wLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2plIGLEmWTEhSBpZ25vcm93YW5lLiBQb3pvc3Rhd2lhasSFYyB0byBwb2xlIHB1c3RlIC0gbmllIGLEmWR6aWUgb2dyYW5pY3plxYQgdyBzeXN0ZW1pZSEnOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ1d5xZt3aWV0bGHEhyBkb3p3b2xvbmUgcm96c3plcnplbmlhPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdXecWbd2lldGwga2HFvGRlIG9ncmFuaWN6ZW5pZSByb3ptaWFydSBpIHJvenN6ZXJ6ZW5pYSBwcnp5IHBvbGFjaCB3Z3J5d2FuaWEgcGxpayZvYWN1dGU7dz8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1N6YWJsb24gZG8gdcW8eWNpYSBwcnp5IFd5xZt3aWV0bGFuaXUgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1N0cm9uYSAlcyB6ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdUbyBwb2xlIG5pZSBtYSBvcGNqaSB6YWF3YW5zb3dhbnljaCc7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGVrc3QgaW5mb3JtYWNqaSBwcnp5IG5pZXdwaXNhbmVqIHdhcnRvxZtjaSBwb2xhJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdMaXN0YSBuYWQgZm9ybXVsYXJ6ZW0sIHVzcHJhd25pYWrEhWNhIGRvZGF3YW5pZSBub3d5Y2ggcCZvYWN1dGU7bC4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdXxYLEhWN6IGxpc3TEmSBzenlia2llZ28gd3liaWVyYW5pYSBub3dlZ28gcG9sYSBkbGEgZm9ybXVsYXJ6eT8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ1N6eWJraSBrcmVhdG9yIG5vd3ljaCBwJm9hY3V0ZTtsJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnWmF6bmFjemFqxIVjIHTEmSBvcGNqxJkgcG96d29saXN6IG5hIHd5c8WCYW5pZSB0eWxrbyAxMCBlbWFpbGkgeiBqZWRuZWdvIGFkcmVzdSBJUCAtIHcgY2nEhWd1IGplZG5laiBnb2R6aW55Lic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdXxYLEhWN6IHByeW1pdHl3bmUgb3BjamUgYW50eS1zcGFtb3dlPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnUG9rYXogSUQgcCZvYWN1dGU7bCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdaYXpuYWN6YWrEhWMgdMSZIG9wY2rEmSB3ecWbd2lldGxpIG51bWVyIElEIGdkeSBkb2RhamVzeiBsdWIgZWR5dHVqZXN6IGZvcm11bGFyeic7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnV2dyYWogZm9ybXVsYXJ6IHogcGxpa3UgWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVxbx5d2FqIHRlaiBuYXp3eSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdJbXBvcnQgZm9ybXVsYXJ6YSBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVxbx5d2FqIHRlZ28gYWxpYXN1IGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVydWogZW1haWwgZm9ybWF0dSBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ1d5cGXFgm5pYcSHIGF1dG9tYXR5Y3puaWU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0eWN6bmllIGxpbmt1amUgZG8gc3Ryb255IG5hIGt0Jm9hY3V0ZTtyZWogamVzdCBmb3JtdWxhcnogKHRhIG9wY2phIG5hZHBpc3VqZSBwb25pxbxzesSFKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEdW55xZtsbnkgVVJMIGxpbmt1JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RvbXnFm2xueSB0ZWtzdCBsaW5rdSc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBkbyBzdHJvbnknOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnTW/FvGVzeiB1xbx5xIcgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiBkbyB6YWJlenBpZWN6bmlhIGZvcm11bGFyemEgcG8gemFpbnN0YWxvd2FuaWEgbW9kdcWCdSBDYXB0Y2hhLiBXacSZY2VqIGluZm9ybWFjamkgbW/FvGVzeiB6bmFsZcW6xIcgbmEgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+c3Ryb25pZSBwcm9qZWt0dTwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVcW8ecSHIENhcHRjaGEgZG8gemViZXpwaWVjemVuaWEgZm9ybXVsYXJ6YT8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ1phem5hY3ogdMSZIG9wY2rEmSBhYnkgdcW8eXdhxIcgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnV3Bpc3ogdGVrc3QgeiBvYnJhemthIHcgdG8gcG9sZSAod2llbGtvxZvEhyBsaXRlciBtYSB6bmFjemVuaWUpJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0tvbXVuaWthdCBnZHkga29kIENhcHRjaGEgamVzdCBuaWVwb3ByYXdueSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnPHVsPjxsaT5UZWtzdCB6IG9icmF6a2EgamVzdCBuaWVwb3ByYXdueS48L2w+PC91bD4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAndGVrc3QgcG9tb2N5IHd5xZt3aWV0bGFueSB3IGZvcm11bGFyenUnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnTmllIHphcGlzdWogem1pZW5ueWNoIGRsYSBuaWV6YXpuYWN6b255Y2ggY2hlY2tib3gmb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdaYXpuYWN6IHRvIHBvbGUgamXFm2xpIGNoY2VzeiBhYnkgdHlsa28gemF6bmFjem9uZSBjaGVja2JveHkgendyYWNhxYJ5IHdhcnRvxZtjaSc7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnRXR5a2lldGEgbGlua3UnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0RvY2Vsb3d5IFVSTCBsaW5rdSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ1phem5hY3pvbnkgZG9tecWbbG5pZT8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1XFvHl3YWogemVnYXJhIDI0LWdvZHppbm5lZ28/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJ6ZXR3YXJ6YcSHIHRhZ2kgU21hcnR5IHcgdHltIHBvbHUnOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1dpZXJzemUgKG1vxbxlIGJ5xIcgbmFkcGlzYW5lIHByemV6IHN0eWxlIENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbHVtbnkgKG1vxbxlIGJ5xIcgbmFkcGlzYW5lIHByemV6IHN0eWxlIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnU3pjemVnJm9hY3V0ZTvFgnkgZ8WCb3duZSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdEZWZhdWx0IHRvIGJsYW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ0RlZmF1bHQgdG8gYmxhbmsgKHVuY2hlY2sgdG8gZGVmYXVsdCB0byB0b2RheSYjMDM5O3MgZGF0ZSknOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ1d5xZt3aWV0bGHEhyBuYXp3xJkgdcW8eXRrb3duaWthPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdXecWbd2lldGxhxIcgaW1pxJkgdcW8eXRrb3duaWthPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ1d5xZt3aWV0bGHEhyBuYXp3aXNrbyB1xbx5dGtvd25pa2E/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnTGltaXR1aiBsaXN0xJkgdcW8eXRrb3duaWsmb2FjdXRlO3cgZG8gY3rFgm9uayZvYWN1dGU7dyBuYXN0xJlwdWrEhWN5Y2ggZ3J1cCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdFbmNyeXB0IGRhdGEgc3RvcmVkIGluIGRhdGFiYXNlJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2F0ZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1Bhc3NwaHJhc2Ugb3IgcGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgcGFzc3BocmFzZS4gKElmIHVzaW5nIE9wZW5TU0wsIHRoaXMgaXMgdGhlIHBhc3NwaHJhc2UgZm9yIHRoZSBwcml2YXRlIGtleSknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCBzb3J0IGZpZWxkcz8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRlIEtleSB0byB1c2UgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1RoaXMgaGFzaGVzIHRoZSBzb3J0IGZpZWxkcywgYnV0IGxlYXZlcyB0aGUgZmlyc3QgZmV3IGxldHRlcnMgdW5lbmNyeXB0ZWQuIENyeXB0b2dyYXBoaWNhbGx5LCB0aGlzIGNyZWF0ZXMgYSB2dWxuZXJhYmlsaXR5LCBidXQgZm9yIG1vc3QgdXNlcnMgaXQgaXMgYW4gYWNjZXB0YWJsZSB0cmFkZW9mZiBiZXR3ZWVuIHNlY3VyaXR5IGFuZCB0aGUgYWJpbGl0eSB0byBzb3J0IHJlY29yZHMuIFNvcnRpbmcgYmVjb21lcyBhcHByb3hpbWF0ZSwgYnV0IHdpbGwgcmVtYWluIHByZXR0eSBnb29kLiBJZiB5b3UgZG8gbm90IHVzZSB0aGlzIG9wdGlvbiwgc29ydCBmaWVsZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU3RvcmFnZSBFbmNyeXB0aW9uIFVuYXZhaWxhYmxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIE9wZW5TU0wgbW9kdWxlIG9yIG1jcnlwdCBzdXBwb3J0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBkYXRhYmFzZSBlbmNyeXB0aW9uLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdQbGVhc2UgbWFrZSBzdXJlIHlvdSBoYXZlIENVUkwgc3VwcG9ydCBhY3RpdmUgaW4geW91ciBQSFAgaW5zdGFsbC4gU2VlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ1J1biBpbiBNTEUgTW9kZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdFbmNyeXB0aW9uJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8gKGRvIG5vdCBkbyB0aGlzIGlmIHlvdSBhcmUgZ29pbmcgdG8gcHJpbnRfcigkcGFyYW1zKSApJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnRW50aXJlIFVSTCwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBwYXRoIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtIHN1Ym1pc3Npb24gVVJMJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ0Zvcm0gbWV0aG9kJzsKJGxhbmdbJ3RpdGxlX21hcHNfdG8nXSA9ICdNYXAgZmllbGQgJnF1b3Q7JXMmcXVvdDsgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgJnF1b3Q7dXNlcj1zdGV2ZStqb2JzJmFtcDtlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXSA9ICdEYXRlIGNvbXBvbmVudCBmaWVsZCBvcmRlciAoZm9yIGlucHV0KSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdEYXRhIHdpbGwgYmUgc3RvcmVkIGluIGFuIFhNTCBmb3JtYXQgaW4gdGhlIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJsZS4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRXJyb3IhIEVpdGhlciB0aGUgZm9ybSBoYXMgbm8gZm9ybV9idWlsZGVyIGRpc3Bvc2l0aW9uLCBvciBpdCBmYWlsZWQgdG8gaW5zdGFudGlhdGUgKGR1ZSB0byBtZW1vcnkgaXNzdWVzPyknOwokbGFuZ1snaGVscF9kYXRlX29yZGVyJ10gPSAnVXNlICZxdW90O20mcXVvdDsgZm9yIE1vbnRoLCAmcXVvdDtkJnF1b3Q7IGZvciBEYXksIGFuZCAmcXVvdDt5JnF1b3Q7IGZvciBZZWFyLiBTZXBhcmF0ZSB0aGUgaXRlbXMgYnkgaHlwaGVucy4nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1R5bGtvIHcgZ3J1cGllICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ1d5xZt3aWV0bGnEhyB1xbx5dGtvd25pa293aT8nOwokbGFuZ1sndGl0bGVfdXNlX3JhbmRvbV9nZW5lcmF0b3InXSA9ICdVc2UgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaW5zdGVhZCBvZiBzdGF0aWMnOwokbGFuZ1sndGl0bGVfbnVtYmVyc190b19nZW5lcmF0ZSddID0gJ0hvdyBtYW55IG51bWJlcnMgdG8gZ2VuZXJhdGUgaW4gcHJvY2Vzcyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUbyBwb2xlIG1vxbxlIGJ5YyBwdXN0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdabWllbm5lIGRsYSBzemFibG9udSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdEb3N0ZXBuZSB6bWllbm5lJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdabWllbm5hIFBIUCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGEgd3lzxYJhbmlhJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdUdyZvYWN1dGU7aiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnQWRyZXMgSVAgdcW8eXRrb3duaWthLCB3IGN6YXNpZSB3eXN5xYJhbmlhIGZvcm11bGFyemEnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIHN0cm9ueSB6YXdpZXJhasSFY2VqIGZvcm11bGFyeic7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdXZXJzamEgbW9kdcWCdSBGb3JtQnVpbGRlcic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1puYWsgdGFidWxhY2ppJzsKJGxhbmdbJ2hlbHBfaWdub3JlZF9pZl91cGxvYWQnXSA9ICcoVGhpcyBmaWVsZCBpZ25vcmVkIGlmIHlvdSB1c2UgdGhlIFVwbG9hZHMgbW9kdWxlIHRvIG1hbmFnZSBmaWxlcyknOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdHl3bmUgbmF6d3kgcCZvYWN1dGU7bCBmb3JtdWxhcnphIG1vZ8SFIGJ5xIcgdcW8eXdhbmUgemFtaWVubmllIHogbm9ybWFsbnltaSBuYXp3YW1pLiBKZXN0IHRvIHN6Y3plZyZvYWN1dGU7bG5pZSBwcnp5ZGF0bmUgcHJ6eSB1enl3YW5pdSB0YWcmb2FjdXRlO3cgU21hcnR5IChnZHnFvCB0ZW4gbWEgcHJvYmxlbXkgeiBvYnPFgnVnxIUgem5hayZvYWN1dGU7dyBBU0NJSSBzcG96YSB6YWtyZXN1IDMyLTEyNikuIDxiciAvPklubmUgcG9sYSBixJlkxIUgZG9zdGVwbmUgZ2R5IGRvZGFzeiBqZSBkbyBmb3JtdWxhcnphLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0FieSB1enlza2HEhyBkb3N0xJlwIGRvIHdhcnRvxZtjaSBwJm9hY3V0ZTtsIGZvcm11bGFyemEgbW/FvGVzeiB1xbx5xIcgbm90YWNqaSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgZ2R6aWUga2HFvGRlIHBvbGUgamVzdCBvYmlla3RlbSB6YXdpZXJhasSFY3ltOjxiciAvPjx0YWJsZT4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5OYXp3YSBwb2xhPC90ZD48L3RyPgo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5UeXAgcG9sYTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+aWQ8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+V2V3bsSZdHJ6bmUgSUQgcG9sYTwvdGQ+PC90cj4KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPldhcnRvxZvEhyBjenl0ZWxuxIUgZGxhIGN6xYJvd2lla2E8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+VGFibGljYSB3YXJ0b8WbY2kgcG9sYTwvdGQ+PC90cj48L3RhYmxlPgo8ZW0+TmEgcHJ6eWvFgmFkOjwvZW0+LCBtb8W8ZXN6IHXFvHnEhyAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTcHJhd2TFuiA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz5kb2t1bWVudGFjamkgUEhQPC9hPiBhYnkgdXp5c2thxIcgcG9tb2MuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ptaWVubmEnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnUG9sZSByZXByZXplbnRvd2FuZSc7CiRsYW5nWydoZWxwX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIGZpbGUgbG9jYXRlZCBpbiB0aGUgRm9ybUJ1aWxkZXIvdGVtcGxhdGVzLyBmb2xkZXIuIFRoaXMgZmllbGQgaXMgaWdub3JlZCBpZiB5b3UgdXNlIFRYVCBhcyB5b3VyIGZpbGUgdHlwZS4nOwokbGFuZ1snaGVscF9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ0Jhc2ljOiBVc2UgdGhlIHRleHRhcmVhIGJlbG93IHRvIGxheW91dCB0aGUgZmllbGQgbmFtZXMvdmFsdWVzIGluIGEgc2luZ2xlIGJsb2NrLjxiciAvPgpBZHZhbmNlZDogU3BlY2lmeSBTbWFydHkgdmFyaWFibGVzIGluIHRoZSBSVEYgVGVtcGxhdGUgRmlsZSBhcyB5b3Ugd291bGQgYmVsb3csIGJ1dCBhcnJhbmdlIHRoZW0gaG93ZXZlciB5b3UgbGlrZSBhbmQgYWRkIGZvcm1hdHRpbmcuPGJyIC8+CiZuYnNwO1lvdSBjYW4gc3RpbGwgdXNlIHRoZSAlJUhFQURFUiUlIGFuZCAlJUZPT1RFUiUlIHNlY3Rpb25zIGluIHRoZSBSVEYgZmlsZS4nOwokbGFuZ1snaGVscF91bmlxdWVfZmlsZV90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgSGVhZGVyIFRlbXBsYXRlLjxiciAvPgpGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGSUVMRFMlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUgaWYgUlRGIFRlbXBsYXRlIFR5cGUgaXMgc2V0IHRvICZxdW90O0Jhc2ljJnF1b3Q7LjxiciAvPgpUaGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZCBpZiB1c2luZyAmcXVvdDtSVEYmcXVvdDsgYXMgRmlsZSBUeXBlIGFuZCAmcXVvdDtBZHZhbmNlZCZxdW90OyBhcyBSVEYgVGVtcGxhdGUgVHlwZS4nOwokbGFuZ1snaGVscF9maWxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlSEVBREVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydoZWxwX2ZpbGVfZm9vdGVyX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVGT09URVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBXciZvYWN1dGU7xIcgZG8gZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnU3R3Jm9hY3V0ZTtyeiBwcnp5a8WCYWRvd3kgc3phYmxvbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdTdHcmb2FjdXRlO3J6IHByenlrxYJhZG93eSBzemFibG9uIEhUTUwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdTdHcmb2FjdXRlO3J6IHByenlrxYJhZG93eSBzemFibG9uIG5hZ8WCJm9hY3V0ZTt3a2EnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEZvb3RlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ1N0dyZvYWN1dGU7cnogcHJ6eWvFgmFkb3d5IG5hZ8WCJm9hY3V0ZTt3ZWsnOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnem5hayB0YWJ1bGFjamknOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1N6YWJsb24gamVkbmVqIGxpbmlpIHBsaWt1IHd5bmlrb3dlZ28nOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdTemFibG9uIG5hZ8WCJm9hY3V0ZTt3a2EgcGxpa3Ugd3luaWtvd2Vnbyc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgZm9vdGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgUlRGIGZpbGUgdG8gdXNlJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9maWxlX3R5cGUnXSA9ICdDaG9vc2UgYSBmaWxlIHR5cGUgdG8gdXNlJzsKJGxhbmdbJ3RpdGxlX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQ2hvb3NlIGFuIFJURiB0ZW1wbGF0ZSB0eXBlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgZG8ga2xpa25tacSZY2lhIGFieSBwb3R3aWVyZHppxIcgZm9ybXVsYXJ6JzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnV2FydG/Fm8SHICh6b2JhY3ogemFrxYJhZGvEmSBaYWF3YW5zb3dhbmUsIGplxZtsaSBjaGNlc3ogdXp5xIcgdGFnJm9hY3V0ZTt3IFNtYXJ0eSknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdGb3JtYXQgZGF0eSAoPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+Zm9ybWF0eSBkYXR5IHcgUEhQPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVxbx5d2HEhyBlZHl0b3JhIFdZU0lXWUcgZGxhIHAmb2FjdXRlO2wgdGVrc3Rvd3ljaCAodHlsa28gdyBBZG1pbmllKT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdQbyB3eXPFgmFuaXUgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnUHJ6eWNpc2tpIGFrY2ppIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdQb2xlIHNvcnR1asSFY2UgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdTdGFydCB6YWtyZXN1IGxhdCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0tvbmllYyB6YWtyZXN1IGxhdCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEb215xZtsbnkgcm9rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFVzdGF3IGpha28gLTEgYnkgZG9tecWbbG55bSBiecWCIG9iZWNueSByb2spJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdQbyB3eXPFgmFuaXUgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdPZHBvd2llZMW6IGRvIHd5xZt3aWV0bGVuaWEnOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICdEYXRlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0ZSBBcHByb3ZlZCAoYnkgYWRtaW4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdEYXRlIEFwcHJvdmVkIChieSBzdWJtaXR0ZXIpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ1d5xZt3aWV0bCBzemFibG9uIHd5c3nFgmFuaWEnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1ByemVraWVydWogZG8gc3Ryb255IHNlcndpc3UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0RvY2Vsb3dhIHN0cm9uYSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdOYXp3eSBwJm9hY3V0ZTtsIHPEhSB3eW1hZ2FuZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1d5bWFnYWosIMW8ZWJ5IGthxbxlIHBvbGUgbWlhxYJvIHN3b2rEhSBuYXp3xJk/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnV3ltYWdhaiB1bmlrYWxueWNoIG5hencgcCZvYWN1dGU7bCc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnV3ltYWdhaiwgxbxlYnkgd3N6eXN0a2llIG5hend5IHAmb2FjdXRlO2wgYnnFgnkgdW5pa2FsbmUgKHImb2FjdXRlO8W8bmnFgnkgc2nEmSBvZCBzaWViaWUpPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdQcnplZ3J1cHVqIHBvbGEnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ1phxYJhZHVqIHN6YWJsb24nOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnVGVrc3QgcHJ6eWNpc2t1ICZxdW90O0RvZGFqJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1Rla3N0IHByenljaXNrdSAmcXVvdDtTa2FzdWomcXVvdDsnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVscHRleHQnXSA9ICdUZWtzdCBwb21vY3kgd3nFm3dpZXRsYW55IHByenkgdHltIHBvbHUnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0dWogem1pZW5uZSBqYWtvIG51bWVyeSBsdWIgxYJhxYRjdWNoeSB6bmFrb3dlIChzdHJpbmdpKSc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ1BvcnrEhWRlayBpbnRlcnByZXRvd2FuaWEnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0plxbxlbGkgaXN0bmllamUgd2nEmWNlaiBuacW8IGplZG5vIHBvbGUgb2JsaWN6ZW5pb3dlLCBzxIUgb25lIHByemV0d2FyemFuZSBvZCBuYWptbmllanN6ZWdvIGRvIG5handpxJlrc3plZ28gbnVtZXJ1IHcga29sZWpub8WbY2knOwokbGFuZ1sndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJ10gPSAnU3RyaW5nIChubyBzcGFjZXMgYmV0d2VlbiBmaWVsZHMpPyc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnV2FydG/Fm8SHIGRvIG9ibGljemVuaWEnOwokbGFuZ1sndGl0bGVfY29tcHV0ZSddID0gJ0NvbXB1dGVkL1BIUCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICfFgWHFhGN1Y2ggem5ha293eSAoc3RyaW5nKSc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJ5Y3puZSc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ1d5xZt3aWV0bGFqIGZvcm11bGFyeiB3IHRyZcWbY2kgc3Ryb255IChpbmxpbmUpPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnV3nFm3dpZXRsYW5pZSB3IHRyZcWbY2kgb3puYWN6YSwgxbxlIGZvcm11bGFyeiB6YXN0xJlwdWplIHpuYWN6bmlrIHtjbXNfbW9kdWxlfSwgYmV6IHRlZ28gdXN0YXdpZW5pYSBmb3JtdWxhcnogemFzdMSFcGkgKHtjb250ZW50fSkuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZG9tecWbbG5hIGRsYSBwb2xhJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdXeWN6ecWbY2nEhyB3YXJ0b8WbxIcgZG9tecWbbG7EhSBwbyBrbGlrbmnEmWNpdT8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnWmF6bmFjeiB0xJkgb3BjasSZIGJ5IHNpbG5payB3eWthc293YcWCIGRvbXnFm2xuxIUgd2FydG/Fm8SHIGtpZWR5IHXFvHl0a293bmlrIG5hY2nFm25pZSBuYSB0byBwb2xlIHcgZm9ybXVsYXJ6dSc7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1NrYXN1aiBwbGlrIHogc2Vyd2VyYSBwbyBwcnpldHdvcnplbml1ICh3eXPFgmFuaXUgbWFpbGEpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGRsYSB0ZWdvIHBvbGEnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnVcW8eWogcGXFgm5lZ28gd3l3b8WCYW5pYSBKYXZhc2NyaXB0LHfFgsSFY3phasSFYyB3eWRhcnplbmllLCBrdCZvYWN1dGU7cmUgY2hjZXN6IMWbbGVkemnEhyAsIG5wLiBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBkbGEgd3lzecWCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ05pZSB3eWJpZXJhaiB0dXRhaiBkb3dvbG5lZ28gYWRyZXN1LSB3aWVsdSBkb3N0YXdjJm9hY3V0ZTt3IGludGVybmV0b3d5Y2ggbmllIGRvc3RhcmN6eTxiciAvPndpYWRvbW/Fm2NpIGplxZtsaSB1xbx5amVzeiBkb21lbnkgaW5uZWogbmnFvCBUd29qYSB3xYJhc25hPGJyIC8+KHXFvHlqIG5hIHByemvFgmFkICBhZG1pbkAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnUG90cnplYnVqZXN6IG5vd2VnbyB0eXB1IHBvbGE/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdaYSBkdcW8byB0eXAmb2FjdXRlO3cgcCZvYWN1dGU7bD8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnUHJ6ZcWCxIVjeiB3IFRyeWIgWmFhd2Fuc293YW55JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnUHJ6ZcWCxIVjeiB3IFRyeWIgUHJvc3R5JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0thdGFsb2cgZ2R6aWUgemFwaXNhbnkgYsSZZHppZSBwbGlrJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVG8gbXVzaSBiecSHIGthdGFsb2cgeiBwcmF3YW1pIHphcGlzdSBkbGEgc2Vyd2VyYS48YnIgLz5KZcWbbGkgbWFzeiB3xIV0cGxpd2/Fm2NpIHVzdGF3IG1hc2vEmSA3NzcuPGJyIC8+U3ByYXdkxbogdGFrxbxlIGN6eSBuaWUgbWFzeiB1c3Rhd2lvbnljaCByZXNydHlrY2ppIHphcGlzdSB3IGthdGFsb2dhY2ggdyBrb25maWd1cmFjamkgUEhQLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnV3lzxYJhxIcgdcW8eXRrb3duaWtvd2kga29wacSZIGZvcm11bGFyemE/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdFdHlraWV0YSBkbGEgQ2hlY2tib3ggKGplxZtsaSB1xbx5dGtvd25payBnbyB3eWJpZXJ6ZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdXecWbbGlqIG1pIGtvcGnEmSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdQb3p3b2xpxIcgYWJ5IHR5dHXFgiB6b3N0YcWCIG5hZHBpc2FueT8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICdXecWbd2lldGwgZMWCdWdvxZvEhyc7CiRsYW5nWyd0aXRsZV9taW5pbXVtX2xlbmd0aCddID0gJ01pbmltdW0gcmVzcG9uc2UgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdIaWRlIGlucHV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfaGVscCddID0gJ1Nob3cgc3ltYm9scyByYXRoZXIgcGxhaW4gdGV4dCB3aGVuIHVzZXIgZW50ZXJzIHBhc3N3b3JkPyc7CiRsYW5nWydwYXNzd29yZF9kb2VzX25vdF9tYXRjaCddID0gJ1Bhc3N3b3JkIGRvZXMgbm90IG1hdGNoICVzJzsKJGxhbmdbJ2JhY2tfdG9wJ10gPSAnV3Imb2FjdXRlO2MgZG8gc3Ryb255IGfFgiZvYWN1dGU7d25laiBtb2R1xYJ1IEZvcm1CdWlsZGVyJzsKJGxhbmdbJ3RpdGxlX2hlYWRlcnNfdG9fbW9kaWZ5J10gPSAnV2hpY2ggZW1haWwgaGVhZGVycyBzaG91bGQgdGhpcyBpbnB1dCBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZCddID0gJ0RvIG5vdCBhY2NlcHQgYmxhbmsgc3BhY2UgYXMgdmFsaWQgcmVzcG9uc2UnOwokbGFuZ1sndGl0bGVfYmxhbmtfaW52YWxpZF9sb25nJ10gPSAnSWYgYSBmaWVsZCBpcyByZXF1aXJlZCwgY2hlY2tpbmcgdGhpcyB3aWxsIHJlcXVpcmUgdGhhdCBwZW9wbGUgcHV0IGluIHNvbWUgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIG5vdCBqdXN0IHNwYWNlcyc7CiRsYW5nWyd0aXRsZV9tdXN0X3NhdmVfb3JkZXInXSA9ICdNdXNpc3ogd3licmHEhyAmcXVvdDt6YXBpc3omcXVvdDssIGFieSB6bWlhbnkgdyBrb2xlam5vxZtjaSBwJm9hY3V0ZTtsIHpvc3RhxYJ5IHphY2hvd2FuZS4nOwokbGFuZ1sndGl0bGVfaHRtbDUnXSA9ICdVc2UgSFRNTDUgcGxhY2Vob2xkZXIgdGV4dCBpbnN0ZWFkIG9mIEphdmFzY3JpcHQnOwokbGFuZ1snZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOaWdkeSc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdEYWogdcW8eXRrb3duaWtvd2kgd3liJm9hY3V0ZTtyIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ1phd3N6ZSc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICcmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAmcXVvdDtGcm9tJnF1b3Q7IGFuZCAmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnU2VsZWN0IExpc3QgKHNpbmdsZSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3QgTGlzdCAobXVsdGlwbGUpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZTogT3V0cHV0IHdpbGwgYmUgaW4gdGhlIGZvcm0gb2Y8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uJiMwMzk7cyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ0Nob29zZSBVc2VyIGlucHV0JzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyhBbHNvIHRha2UgYSBsb29rIGF0IHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiIGlmIHlvdSB3YW50IHRvIHNldCBhIFVEVCBmb3IgZm9ybSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnRW5kIHllYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXSA9ICdTbWFydHkgZGF0YSBvciBsb2dpYyB0aGF0IGlzIG1lYW50IHRvIGJlIHNlbnQgd2l0aCB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljX2xvbmcnXSA9ICdDYW4gYmUgc21hcnR5IGRhdGEsIGphdmFzY3JpcHQsIG9yIHNvbWUgb3RoZXIgZGF0YSB5b3Ugd2FuJiMwMzk7dCB0byBzZW50IGFsb25nIHdpdGggdGhpcyBmaWVsZC48YnIgLz5Hb2VzIHRocm91Z2ggdGhlIFNtYXJ0eSBjb21waWxlciwgc28gcmVtZW1iZXIgdXNlIHtsaXRlcmFsfXsvbGl0ZXJhbH0gdGFncyB3aXRoIDxzY3JpcHQ+PC9zY3JpcHQ+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdJbmNsdWRlIGxhYmVscyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICdFbmFibGluZyB0aGlzIGluY2x1ZGVzIGxhYmVscyB0byBvdXRwdXQuIGV4YW1wbGUgLSBsYWJlbDogdmFsdWUsbGFiZWwyOiB2YWx1ZTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICdMaW5rIHRoaXMgZmllbGQgdG8gaXQmIzAzOTtzIHNpYmxpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ0Ryb3Bkb3duIGxpc3RzIGFsbCBzaWJsaW5ncyBvZiB0aGlzIGZpZWxkIGFuZCBhbGxvd3MgeW91IHRvIGxpbmsgdGhpcyBmaWVsZCB0byBvbmUgb2YgaXQmIzAzOTtzIHNpYmxpbmcuIE1ha2VzIHBvc3NpYmxlIGNvbnRyb2xsaW5nIHRoaXMgZmllbGQgd2l0aCBzZWxlY3RlZCBzaWJsaW5nIGNvbnRyb2xzLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ0hpZGUgY29udHJvbCBidXR0b25zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ05vdGUnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ0NoYW5naW5nIGFueSBvZiB0aGUgYWJvdmUgZmllbGRzIHdpbGwgdHJpZ2dlciBhIHJlaW5kZXggb2YgKmFsbCogc2F2ZWQgcmVjb3Jkcywgc28gaXQgY291bGQgdGFrZSBhIHdoaWxlLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnTWFrZSByZWNvcmRzIGFjY2Vzc2libGUgdG8gU2VhcmNoIE1vZHVsZSc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlX2hlbHAnXSA9ICdDaGVja2luZyB0aGlzIHdpbGwgbWFrZSBhbGwgc3VibWl0dGVkIGRhdGEgYWNjZXNzaWJsZSB0byB0aGUgU2VhcmNoIE1vZHVsZS4gRE8gTk9UIHVzZSB0aGlzIGlmIHlvdSBlbmNyeXB0IHlvdXIgZGF0YSAtLSB0aGUgaW5mb3JtYXRpb24gZ2V0cyBleHBvc2VkIHRvIHNlYXJjaCB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlbmNyeXB0ZWQhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzIChvdXRzaWRlIHdlYiByb290KSc7CiRsYW5nWyd0aXRsZV9mYnJfZWRpdCddID0gJ0VkaXRhYmxlIGluIEZvcm1Ccm93c2VyIEFkbWluPyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnVXNlciBkZWZpbmVkIHRhZyAlcyByZXR1cm5lZCBhbiBlcnJvci4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5Nb2R1xYIgQ2F0YWxvZ2VyIGplc3QgbmllemFpbnN0YWxvd2FueSBsdWIgd3nFgsSFY3pvbnkuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdVV0FHQSEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1N6YWJsb24gZG9tecWbbG55JzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdTemFibG9uIHRhYmVsa2ksIHR5dHXFgnkgcG8gbGV3ZWonOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnU3phYmxvbiB0YWJlbGtpLCB0eXR1xYIgbmEgZyZvYWN1dGU7cnplJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1N6YWJsb24geiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdDenkgbmFwZXdubyBjaGNlc3ogbmFkcGlzYcSHIHN3Jm9hY3V0ZTtqIHN6YWJsb24gd3licmFueW0gc3phYmxvbmVtPyAoTmF3ZXQgamXFm2xpIG5hY2nFm25pZXN6IE9LLCBixJlkemllc3ogbXVzaWHFgiB6YXBpc2FjIHptaWFueSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnQsWCxIVkIHByenkgb2JsaWN6YW5pdSB3YXJ0b8WbY2kgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdCcmFrIGluZm9ybWFjamkgbyBIVFRQX1JFRkVSRVInOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ0LFgsSFZCB3YWxpZGFjamkhIFVwZXduaWogc2nEmSwgxbxlIHNrb3Bpb3dhxYJlxZsgcG9wcmF3bmllIGFkcmVzIHogd2lhZG9tb8WbY2khJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdCxYLEhWQgd2FsaWRhY2ppISBVcGV3bmlqIHNpxJksIMW8ZSBza29waW93YcWCZcWbIHBvcHJhd25pZSBhZHJlcyB6IHdpYWRvbW/Fm2NpISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnQsWCxIVkIHdhbGlkYWNqaSEgQnJhayBwb2xhIGUtbWFpbCB3IGZvcm11bGFyenUhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdEb2Rhd2FqLCBlZHl0dWogaSB6YXJ6xIVkemFqIGludGVyYWt0eXdueW1pIGZvcm11bGFyemFtaSc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0plxbxlbGkgdcW8eXdhc3ogZXdhbHVhY2ppIGNpxIVnJm9hY3V0ZTt3LCBqZWR5bsSFIG9wZXJhY2rEhSBqZXN0IMWCxIVjemVuaWUgKCspLCBqZcWbbGkgemHFmyB1xbx5d2FzeiBld2FsdWFjamkgbnVtZXJ5Y3puZWogbW/FvGVzeiBza29yenlzdGFjIHogcG9kc3Rhd293eWNoIGR6aWHFgmHFhCBtYXRlbWF0eWN6bnljaCAoKywgLSwgKiwgLykuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZSddID0gJ1VzaW5nIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPgpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPgo8cHJlPgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7JiMwMzk7fQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7JiMwMzk7fQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7OjomIzAzOTt8ZXhwbG9kZTokTURhdGF9CgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9CgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsgY2hlY2tlZD0mcXVvdDtjaGVja2VkJnF1b3Q7JiMwMzk7fQoJCQl7L2lmfQoJCXsvZm9yZWFjaH0KCTxkaXYgY2xhc3M9JnF1b3Q7UHJvZHVjdERpcmVjdG9yeUl0ZW0mcXVvdDs+CgkJPGlucHV0IHR5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgdmFsdWU9JnF1b3Q7eyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0mcXVvdDsgbmFtZT0mcXVvdDt7JEZCaWR9W10mcXVvdDsgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIAoJPC9kaXY+CnsvZm9yZWFjaH0KPC9wcmU+Cjxici8+CndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSZxdW90O2NhdCZxdW90OyBzdW1tYXJ5dGVtcGxhdGU9JnF1b3Q7WW91cl9GQl90ZW1wbGF0ZSZxdW90O308L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ0FkZCB5b3VyIHRhZyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdTdHljemXFhCc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnTHV0eSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyemVjJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdLd2llY2llxYQnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWonOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnQ3plcndpZWMnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnTGlwaWVjJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnU2llcnBpZcWEJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnV3J6ZXNpZcWEJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ1Bhxbpkemllcm5payc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTGlzdG9wYWQnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0dydWR6aWXFhCc7CiRsYW5nWydBRiddID0gJ0FmZ2hhbmlzdGFuJzsKJGxhbmdbJ0FYJ10gPSAnQWxhbmQgSXNsYW5kcyc7CiRsYW5nWydBTCddID0gJ0FsYmFuaWEnOwokbGFuZ1snRFonXSA9ICdBbGdlcmlhJzsKJGxhbmdbJ0FTJ10gPSAnQW1lcmljYW4gU2Ftb2EnOwokbGFuZ1snQUQnXSA9ICdBbmRvcnJhJzsKJGxhbmdbJ0FPJ10gPSAnQW5nb2xhJzsKJGxhbmdbJ0FJJ10gPSAnQW5ndWlsbGEnOwokbGFuZ1snQVEnXSA9ICdBbnRhcmN0aWNhJzsKJGxhbmdbJ0FHJ10gPSAnQW50aWd1YSBhbmQgQmFyYnVkYSc7CiRsYW5nWydBUiddID0gJ0FyZ2VudGluYSc7CiRsYW5nWydBTSddID0gJ0FybWVuaWEnOwokbGFuZ1snQVcnXSA9ICdBcnViYSc7CiRsYW5nWydBVSddID0gJ0F1c3RyYWxpYSc7CiRsYW5nWydBVCddID0gJ0F1c3RyaWEnOwokbGFuZ1snQVonXSA9ICdBemVyYmFpamFuJzsKJGxhbmdbJ0JTJ10gPSAnQmFoYW1hcyc7CiRsYW5nWydCSCddID0gJ0JhaHJhaW4nOwokbGFuZ1snQkInXSA9ICdCYXJiYWRvcyc7CiRsYW5nWydCRCddID0gJ0JhbmdsYWRlc2gnOwokbGFuZ1snQlknXSA9ICdCZWxhcnVzJzsKJGxhbmdbJ0JFJ10gPSAnQmVsZ2l1bSc7CiRsYW5nWydCWiddID0gJ0JlbGl6ZSc7CiRsYW5nWydCSiddID0gJ0JlbmluJzsKJGxhbmdbJ0JNJ10gPSAnQmVybXVkYSc7CiRsYW5nWydCVCddID0gJ0JodXRhbic7CiRsYW5nWydCVyddID0gJ0JvdHN3YW5hJzsKJGxhbmdbJ0JPJ10gPSAnQm9saXZpYSc7CiRsYW5nWydCQSddID0gJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnOwokbGFuZ1snQlYnXSA9ICdCb3V2ZXQgSXNsYW5kJzsKJGxhbmdbJ0JSJ10gPSAnQnJhemlsJzsKJGxhbmdbJ0lPJ10gPSAnQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5JzsKJGxhbmdbJ0JOJ10gPSAnQnJ1bmVpIERhcnVzc2FsYW0nOwokbGFuZ1snQkcnXSA9ICdCdWxnYXJpYSc7CiRsYW5nWydCRiddID0gJ0J1cmtpbmEgRmFzbyc7CiRsYW5nWydCSSddID0gJ0J1cnVuZGknOwokbGFuZ1snS0gnXSA9ICdDYW1ib2RpYSc7CiRsYW5nWydDTSddID0gJ0NhbWVyb29uJzsKJGxhbmdbJ0NBJ10gPSAnQ2FuYWRhJzsKJGxhbmdbJ0NWJ10gPSAnQ2FwZSBWZXJkZSc7CiRsYW5nWydLWSddID0gJ0NheW1hbiBJc2xhbmRzJzsKJGxhbmdbJ0NGJ10gPSAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJzsKJGxhbmdbJ1REJ10gPSAnQ2hhZCc7CiRsYW5nWydDTCddID0gJ0NoaWxlJzsKJGxhbmdbJ0NOJ10gPSAnQ2hpbmEnOwokbGFuZ1snQ1gnXSA9ICdDaHJpc3RtYXMgSXNsYW5kJzsKJGxhbmdbJ0NDJ10gPSAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnOwokbGFuZ1snQ08nXSA9ICdDb2xvbWJpYSc7CiRsYW5nWydLTSddID0gJ0NvbW9yb3MnOwokbGFuZ1snQ0cnXSA9ICdDb25nbyc7CiRsYW5nWydDRCddID0gJ0NvbmdvLCAgRGVtb2NyYXRpYyBSZXB1YmxpYyc7CiRsYW5nWydDSyddID0gJ0Nvb2sgSXNsYW5kcyc7CiRsYW5nWydDUiddID0gJ0Nvc3RhIFJpY2EnOwokbGFuZ1snQ0knXSA9ICdJdm9pcmUgKEl2b3J5IENvYXN0KSc7CiRsYW5nWydIUiddID0gJ0Nyb2F0aWEgKEhydmF0c2thKSc7CiRsYW5nWydDVSddID0gJ0N1YmEnOwokbGFuZ1snQ1knXSA9ICdDeXBydXMnOwokbGFuZ1snQ1onXSA9ICdDemVjaCBSZXB1YmxpYyc7CiRsYW5nWydESyddID0gJ0Rlbm1hcmsnOwokbGFuZ1snREonXSA9ICdEamlib3V0aSc7CiRsYW5nWydETSddID0gJ0RvbWluaWNhJzsKJGxhbmdbJ0RPJ10gPSAnRG9taW5pY2FuIFJlcHVibGljJzsKJGxhbmdbJ1RQJ10gPSAnRWFzdCBUaW1vcic7CiRsYW5nWydFQyddID0gJ0VjdWFkb3InOwokbGFuZ1snRUcnXSA9ICdFZ3lwdCc7CiRsYW5nWydTViddID0gJ0VsIFNhbHZhZG9yJzsKJGxhbmdbJ0dRJ10gPSAnRXF1YXRvcmlhbCBHdWluZWEnOwokbGFuZ1snRVInXSA9ICdFcml0cmVhJzsKJGxhbmdbJ0VFJ10gPSAnRXN0b25pYSc7CiRsYW5nWydFVCddID0gJ0V0aGlvcGlhJzsKJGxhbmdbJ0ZLJ10gPSAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpJzsKJGxhbmdbJ0ZPJ10gPSAnRmFyb2UgSXNsYW5kcyc7CiRsYW5nWydGSiddID0gJ0ZpamknOwokbGFuZ1snRkknXSA9ICdGaW5sYW5kJzsKJGxhbmdbJ0ZSJ10gPSAnRnJhbmNlJzsKJGxhbmdbJ0ZYJ10gPSAnRnJhbmNlLCAgTWV0cm9wb2xpdGFuJzsKJGxhbmdbJ0dGJ10gPSAnR3Vlcm5zZXknOwokbGFuZ1snUEYnXSA9ICdGcmVuY2ggUG9seW5lc2lhJzsKJGxhbmdbJ1RGJ10gPSAnRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzJzsKJGxhbmdbJ01LJ10gPSAnRi5ZLlIuTy5NLiAoTWFjZWRvbmlhKSc7CiRsYW5nWydHQSddID0gJ0dhYm9uJzsKJGxhbmdbJ0dNJ10gPSAnR2FtYmlhJzsKJGxhbmdbJ0dFJ10gPSAnR2VvcmdpYSc7CiRsYW5nWydERSddID0gJ0dlcm1hbnknOwokbGFuZ1snR0gnXSA9ICdHaGFuYSc7CiRsYW5nWydHSSddID0gJ0dpYnJhbHRhcic7CiRsYW5nWydHQiddID0gJ0dyZWF0IEJyaXRhaW4gKFVLKSc7CiRsYW5nWydHUiddID0gJ0dyZWVjZSc7CiRsYW5nWydHTCddID0gJ0dyZWVubGFuZCc7CiRsYW5nWydHRCddID0gJ0dyZW5hZGEnOwokbGFuZ1snR1AnXSA9ICdHdWFkZWxvdXBlJzsKJGxhbmdbJ0dVJ10gPSAnR3VhbSc7CiRsYW5nWydHVCddID0gJ0d1YXRlbWFsYSc7CiRsYW5nWydHTiddID0gJ0d1aW5lYSc7CiRsYW5nWydHVyddID0gJ0d1aW5lYS1CaXNzYXUnOwokbGFuZ1snR1knXSA9ICdHdXlhbmEnOwokbGFuZ1snSFQnXSA9ICdIYWl0aSc7CiRsYW5nWydITSddID0gJ0hlYXJkIGFuZCBNY0RvbmFsZCBJc2xhbmRzJzsKJGxhbmdbJ0hOJ10gPSAnSG9uZHVyYXMnOwokbGFuZ1snSEsnXSA9ICdIb25nIEtvbmcnOwokbGFuZ1snSFUnXSA9ICdIdW5nYXJ5JzsKJGxhbmdbJ0lTJ10gPSAnSWNlbGFuZCc7CiRsYW5nWydJTiddID0gJ0luZGlhJzsKJGxhbmdbJ0lEJ10gPSAnSW5kb25lc2lhJzsKJGxhbmdbJ0lSJ10gPSAnSXJhbic7CiRsYW5nWydJUSddID0gJ0lyYXEnOwokbGFuZ1snSUUnXSA9ICdJcmVsYW5kJzsKJGxhbmdbJ0lMJ10gPSAnSXNyYWVsJzsKJGxhbmdbJ0lNJ10gPSAnSXNsZSBvZiBNYW4nOwokbGFuZ1snSVQnXSA9ICdJdGFseSc7CiRsYW5nWydKRSddID0gJ0plcnNleSc7CiRsYW5nWydKTSddID0gJ0phbWFpY2EnOwokbGFuZ1snSlAnXSA9ICdKYXBhbic7CiRsYW5nWydKTyddID0gJ0pvcmRhbic7CiRsYW5nWydLWiddID0gJ0themFraHN0YW4nOwokbGFuZ1snS0UnXSA9ICdLZW55YSc7CiRsYW5nWydLSSddID0gJ0tpcmliYXRpJzsKJGxhbmdbJ0tQJ10gPSAnS29yZWEgKE5vcnRoKSc7CiRsYW5nWydLUiddID0gJ0tvcmVhIChTb3V0aCknOwokbGFuZ1snS1cnXSA9ICdLdXdhaXQnOwokbGFuZ1snS0cnXSA9ICdLeXJneXpzdGFuJzsKJGxhbmdbJ0xBJ10gPSAnTGFvcyc7CiRsYW5nWydMViddID0gJ0xhdHZpYSc7CiRsYW5nWydMQiddID0gJ0xlYmFub24nOwokbGFuZ1snTEknXSA9ICdMaWVjaHRlbnN0ZWluJzsKJGxhbmdbJ0xSJ10gPSAnTGliZXJpYSc7CiRsYW5nWydMWSddID0gJ0xpYnlhJzsKJGxhbmdbJ0xTJ10gPSAnTGVzb3Robyc7CiRsYW5nWydMVCddID0gJ0xpdGh1YW5pYSc7CiRsYW5nWydMVSddID0gJ0x1eGVtYm91cmcnOwokbGFuZ1snTU8nXSA9ICdNYWNhdSc7CiRsYW5nWydNRyddID0gJ01hZGFnYXNjYXInOwokbGFuZ1snTVcnXSA9ICdNYWxhd2knOwokbGFuZ1snTVknXSA9ICdNYWxheXNpYSc7CiRsYW5nWydNViddID0gJ01hbGRpdmVzJzsKJGxhbmdbJ01MJ10gPSAnTWFsaSc7CiRsYW5nWydNVCddID0gJ01hbHRhJzsKJGxhbmdbJ01IJ10gPSAnTWFyc2hhbGwgSXNsYW5kcyc7CiRsYW5nWydNUSddID0gJ01hcnRpbmlxdWUnOwokbGFuZ1snTVInXSA9ICdNYXVyaXRhbmlhJzsKJGxhbmdbJ01VJ10gPSAnTWF1cml0aXVzJzsKJGxhbmdbJ1lUJ10gPSAnTWF5b3R0ZSc7CiRsYW5nWydNWCddID0gJ01leGljbyc7CiRsYW5nWydGTSddID0gJ01pY3JvbmVzaWEnOwokbGFuZ1snTUMnXSA9ICdNb25hY28nOwokbGFuZ1snTUQnXSA9ICdNb2xkb3ZhJzsKJGxhbmdbJ01BJ10gPSAnTW9yb2Njbyc7CiRsYW5nWydNTiddID0gJ01vbmdvbGlhJzsKJGxhbmdbJ01TJ10gPSAnTW9udHNlcnJhdCc7CiRsYW5nWydNWiddID0gJ01vemFtYmlxdWUnOwokbGFuZ1snTU0nXSA9ICdNeWFubWFyJzsKJGxhbmdbJ05BJ10gPSAnTmFtaWJpYSc7CiRsYW5nWydOUiddID0gJ05hdXJ1JzsKJGxhbmdbJ05QJ10gPSAnTmVwYWwnOwokbGFuZ1snTkwnXSA9ICdOZXRoZXJsYW5kcyc7CiRsYW5nWydBTiddID0gJ05ldGhlcmxhbmRzIEFudGlsbGVzJzsKJGxhbmdbJ05UJ10gPSAnTmV1dHJhbCBab25lJzsKJGxhbmdbJ05DJ10gPSAnTmV3IENhbGVkb25pYSc7CiRsYW5nWydOWiddID0gJ05ldyBaZWFsYW5kIChBb3RlYXJvYSknOwokbGFuZ1snTkknXSA9ICdOaWNhcmFndWEnOwokbGFuZ1snTkUnXSA9ICdOaWdlcic7CiRsYW5nWydORyddID0gJ05pZ2VyaWEnOwokbGFuZ1snTlUnXSA9ICdOaXVlJzsKJGxhbmdbJ05GJ10gPSAnTm9yZm9sayBJc2xhbmQnOwokbGFuZ1snTVAnXSA9ICdOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMnOwokbGFuZ1snTk8nXSA9ICdOb3J3YXknOwokbGFuZ1snT00nXSA9ICdPbWFuJzsKJGxhbmdbJ1BLJ10gPSAnUGFraXN0YW4nOwokbGFuZ1snUFcnXSA9ICdQYWxhdSc7CiRsYW5nWydQUyddID0gJ1BhbGVzdGluaWFuIFRlcnJpdG9yeSc7CiRsYW5nWydQQSddID0gJ1BhbmFtYSc7CiRsYW5nWydQRyddID0gJ1BhcHVhIE5ldyBHdWluZWEnOwokbGFuZ1snUFknXSA9ICdQYXJhZ3VheSc7CiRsYW5nWydQRSddID0gJ1BlcnUnOwokbGFuZ1snUEgnXSA9ICdQaGlsaXBwaW5lcyc7CiRsYW5nWydQTiddID0gJ1BpdGNhaXJuJzsKJGxhbmdbJ1BMJ10gPSAnUG9sYW5kJzsKJGxhbmdbJ1BUJ10gPSAnUG9ydHVnYWwnOwokbGFuZ1snUFInXSA9ICdQdWVydG8gUmljbyc7CiRsYW5nWydRQSddID0gJ1FhdGFyJzsKJGxhbmdbJ1JFJ10gPSAnUmV1bmlvbic7CiRsYW5nWydSTyddID0gJ1JvbWFuaWEnOwokbGFuZ1snUlUnXSA9ICdSdXNzaWFuIEZlZGVyYXRpb24nOwokbGFuZ1snUlcnXSA9ICdSd2FuZGEnOwokbGFuZ1snR1MnXSA9ICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLic7CiRsYW5nWydLTiddID0gJ1NhaW50IEtpdHRzIGFuZCBOZXZpcyc7CiRsYW5nWydMQyddID0gJ1NhaW50IEx1Y2lhJzsKJGxhbmdbJ1ZDJ10gPSAnU2FpbnQgVmluY2VudCAmYW1wOyB0aGUgR3JlbmFkaW5lcyc7CiRsYW5nWydXUyddID0gJ1NhbW9hJzsKJGxhbmdbJ1NNJ10gPSAnU2FuIE1hcmlubyc7CiRsYW5nWydTVCddID0gJ1NhbyBUb21lIGFuZCBQcmluY2lwZSc7CiRsYW5nWydTQSddID0gJ1NhdWRpIEFyYWJpYSc7CiRsYW5nWydTTiddID0gJ1NlbmVnYWwnOwokbGFuZ1snU0MnXSA9ICdTZXljaGVsbGVzJzsKJGxhbmdbJ1NMJ10gPSAnU2llcnJhIExlb25lJzsKJGxhbmdbJ1NHJ10gPSAnU2luZ2Fwb3JlJzsKJGxhbmdbJ1NJJ10gPSAnU2xvdmVuaWEnOwokbGFuZ1snU0snXSA9ICdTbG92YWsgUmVwdWJsaWMnOwokbGFuZ1snU0InXSA9ICdTb2xvbW9uIElzbGFuZHMnOwokbGFuZ1snU08nXSA9ICdTb21hbGlhJzsKJGxhbmdbJ1pBJ10gPSAnU291dGggQWZyaWNhJzsKJGxhbmdbJ0VTJ10gPSAnU3BhaW4nOwokbGFuZ1snTEsnXSA9ICdTcmkgTGFua2EnOwokbGFuZ1snU0gnXSA9ICdTdC4gSGVsZW5hJzsKJGxhbmdbJ1BNJ10gPSAnU3QuIFBpZXJyZSBhbmQgTWlxdWVsb24gJzsKJGxhbmdbJ1NEJ10gPSAnU3VkYW4nOwokbGFuZ1snU1InXSA9ICdTdXJpbmFtZSc7CiRsYW5nWydTSiddID0gJ1N2YWxiYXJkICZhbXA7IEphbiBNYXllbiBJc2xhbmRzJzsKJGxhbmdbJ1NaJ10gPSAnU3dhemlsYW5kJzsKJGxhbmdbJ1NFJ10gPSAnU3dlZGVuJzsKJGxhbmdbJ0NIJ10gPSAnU3dpdHplcmxhbmQnOwokbGFuZ1snU1knXSA9ICdTeXJpYSc7CiRsYW5nWydUVyddID0gJ1RhaXdhbic7CiRsYW5nWydUSiddID0gJ1RhamlraXN0YW4nOwokbGFuZ1snVFonXSA9ICdUYW56YW5pYSc7CiRsYW5nWydUSCddID0gJ1RoYWlsYW5kJzsKJGxhbmdbJ1RHJ10gPSAnVG9nbyc7CiRsYW5nWydUSyddID0gJ1Rva2VsYXUnOwokbGFuZ1snVE8nXSA9ICdUb25nYSc7CiRsYW5nWydUVCddID0gJ1RyaW5pZGFkIGFuZCBUb2JhZ28nOwokbGFuZ1snVE4nXSA9ICdUdW5pc2lhJzsKJGxhbmdbJ1RSJ10gPSAnVHVya2V5JzsKJGxhbmdbJ1RNJ10gPSAnVHVya21lbmlzdGFuJzsKJGxhbmdbJ1RDJ10gPSAnVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzJzsKJGxhbmdbJ1RWJ10gPSAnVHV2YWx1JzsKJGxhbmdbJ1VHJ10gPSAnVWdhbmRhJzsKJGxhbmdbJ1VBJ10gPSAnVWtyYWluZSc7CiRsYW5nWydBRSddID0gJ1VuaXRlZCBBcmFiIEVtaXJhdGVzJzsKJGxhbmdbJ1VLJ10gPSAnVW5pdGVkIEtpbmdkb20nOwokbGFuZ1snVVMnXSA9ICdVbml0ZWQgU3RhdGVzJzsKJGxhbmdbJ1VNJ10gPSAnVVMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyc7CiRsYW5nWydVWSddID0gJ1VydWd1YXknOwokbGFuZ1snVVonXSA9ICdVemJla2lzdGFuJzsKJGxhbmdbJ1ZVJ10gPSAnVmFudWF0dSc7CiRsYW5nWydWQSddID0gJ1ZhdGljYW4gQ2l0eSBTdGF0ZSAoSG9seSBTZWUpJzsKJGxhbmdbJ1ZFJ10gPSAnVmVuZXp1ZWxhJzsKJGxhbmdbJ1ZOJ10gPSAnVmlldCBOYW0nOwokbGFuZ1snVkcnXSA9ICdWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCknOwokbGFuZ1snVkknXSA9ICdWaXJnaW4gSXNsYW5kcyAoVS5TLiknOwokbGFuZ1snV0YnXSA9ICdXYWxsaXMgYW5kIEZ1dHVuYSBJc2xhbmRzJzsKJGxhbmdbJ0VIJ10gPSAnV2VzdGVybiBTYWhhcmEnOwokbGFuZ1snWUUnXSA9ICdZZW1lbic7CiRsYW5nWydZVSddID0gJ1l1Z29zbGF2aWEnOwokbGFuZ1snWk0nXSA9ICdaYW1iaWEnOwokbGFuZ1snWlcnXSA9ICdaaW1iYWJ3ZSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnV3lzdMSFcGnFgiBixYLEhWQgcG9kY3phcyBwcnpldHdhcnphbmlhIGZvcm11bGFyemEuJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0LFgsSFZCBwb2RjemFzIHd5c3nFgmFuaWE6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdCxYLEhWQgcG9kY3phcyB6YXBpc3UgcGxpa3UgZG8gbW9kdcWCdSBVcGxvYWRzOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdOaWUgem5hbGV6aW9ubyBtb2R1xYJ1IFVwbG9hZHMnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1d5c3TEhXBpxYIgYsWCxIVkIHBvZGN6YXMgcHJ6ZXR3YXJ6YW5pYSBwbGlrdSAlcyAobmF6d2EgdHltY3phc293YTogJXMsIHR5cCAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdCxYLEhWQ6IE5pZSBtb8W8bmEgdXp5c2thxIcgd3nFgsSFY3puZWdvIGRvc3TEmXB1IGRvIHBsaWt1Lic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RpbXnFm2xuaWU6IG9kem5hY3pvbnknOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGltecWbbG5pZTogemF6bmFjemlueSc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnV3luaWsgd3lzxYJhbmlhIGZvcm11bGFyemEnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+U3phYmxvbiBlbWFpbGEgamVzemN6ZSBuaWUgamVzdCB1c3Rhd2lvbnkhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBCcmFrIHd5bWFnYW5lZ28gbW9kdcWCdSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1XFvHl0a293bmlrIHphYWtjZXB0b3dhxYIgJXMgb2QgJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ1d5ZGFyemVuaWUgZ2VuZXJvd2FuZSBnZHkgZm9ybXVsYXJ6IGplc3Qgd3lzecWCYW55JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ1d5ZGFyemVuaWUgZ2VuZXJvd2FuZSBnZHkgd3lzdMSFcGkgYsWCxIVkIHBvZGN6YXMgd3lzecWCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnV3lkYXJ6ZW5pZSBnZW5lcm93YW5lIGdkeSBmb3JtdWxhcnogamVzdCB3ecWbd2lldGxhbnknOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdJRCBvZHBvd2llZHppLiBVxbx5d2FuZSBwcnpleiBtb2R1xYIgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RvbXnFm2xuZSB3YXJ0b8WbY2kgcG9sYSAoc3ByYXdkxbogdyBwb21vY3kgbW9kdcWCdSknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnSUQgcG9sYSBkbGEgd2V3bsSZdHJ6bnljaCBvcGVyYWNqaSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnTmF6d2EgZm9ybXVsYXJ6YSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEIGZvcm11bGFyemEgZGxhIHdld27EmXRyem55Y2ggb3BlcmFjamknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdPZyZvYWN1dGU7bG5lIHBhcmFtZXRyeSBkbGEgd2V3bsSZdHJ6bnljaCBvcGVyYWNqaSc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMKb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUKeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUKY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQKb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDthbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPgo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPgo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+CjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjwvdWw+PC9saT4KCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUKZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPgo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgd2lsbCBiZWNvbWUgdGhlIGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIgaW4gdGhlIG5leHQgcmVsZWFzZS48L2xpPgoKPC91bD48L2xpPjwvbGk+PC91bD4KCgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPgo8cHJlPgoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCglmb3JtIHttYXJnaW4tdG9wOjB9Cglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0KCWZpZWxkc2V0IGRpdiB7CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW07Cgl9CglmaWVsZHNldCBkaXYgZGl2IHsKCQltYXJnaW4tdG9wOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbQoJfQoJZmllbGRzZXQgewoJCW1hcmdpbi1ib3R0b206MWVtOwoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsKCQlwYWRkaW5nOjAuNWVtCgl9CglmaWVsZHNldCBsYWJlbCB7CgkJd2lkdGg6YXV0bzsKCX0KCWxlZ2VuZCB7CgkJY29sb3I6I0ZGRjsKCQliYWNrZ3JvdW5kOiNGNjA7CgkJZm9udC1zdHlsZTppdGFsaWM7CgkJZm9udC1zaXplOjEuMmVtOwoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJcGFkZGluZzowLjJlbTsKCQl3aWR0aDphdXRvOwoJCWJvcmRlcjoxcHggc29saWQgI0NDQwoJfQoJdGV4dGFyZWEgewoJCW1hcmdpbjogMC41ZW0gMDsKCQl3aWR0aDo5OCU7CgkJaGVpZ2h0OiA2ZW0KCX0KCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0KCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLwoJLmNhcHRjaGEgewoJCW1hcmdpbjowLjVlbSAwOwoJCXdpZHRoOjIwMHB4OwoJCXRleHQtYWxpZ246Y2VudGVyCgl9CgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0KCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19CjwvcHJlPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+CgoKPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8L3VsPgo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgb2YgaG91cnMgaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuIFBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igd3JpdGUgeW91ciBxdWVzdGlvbnMgb24gZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2FzaCkuPC9wPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEzMDExNzcwMS4xMjgxMDMwMjQ5LjEyOTU2MzAzNzUuMTI5NTY5MjEwNy40Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyOTUyODUwODUuMzguMjQudXRtY2NuPShvcmdhbmljKXx1dG1jc3I9Z29vZ2xlfHV0bWN0cj1jbXNtcyB0cmFuc2xhdGlvbnx1dG1jbWQ9b3JnYW5pYyc7CiRsYW5nWydxY2EnXSA9ICdQMC0xNzA2MDQ5MTIwLTEyODEwMzAyNDk4MjAnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpZWxkc2V0IEVuZCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmllbGRzZXQgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHQgSW5wdXQgKE11bHRpcGxlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0NhbmFkaWFuIFByb3ZpbmNlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbGUgVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnRGlnaXRlIHVtIHZhbG9yIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnRGlnaXRlIHVtIG51bWVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0RpZ2l0ZSB1bWEgZW50cmFkYSB2JmFhY3V0ZTtsaWRhIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQbGVhc2UgZW50ZXIgYW4gaW50ZWdlciB2YWx1ZSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnRGlnaXRlIHVtIEUtbWFpbCB2JmFhY3V0ZTtsaWRvIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdEaWdpdGUgdW0gTnVtZXJvIGRlIFRlbGVmb25lIHYmYWFjdXRlO2xpZG8gcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuJmF0aWxkZTtvIHBhcmVjZSBzZXIgdW0gRS1tYWlsIHYmYWFjdXRlO2xpZG8hJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdEaWdpdGUgdW0gdmFsb3IgcXVlIG4mYXRpbGRlO28gc2VqYSBtYWlzIGRvIHF1ZSAlcyBjYXJhY3RlcmVzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgJnF1b3Q7JXMmcXVvdDsgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoYXQgb3BlcmF0aW9uLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBZb3UgZG9uJiMwMzk7dCBoYXZlIGFkZXF1YXRlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm0gZGVsZXRlZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZpZWxkIGRlbGV0ZWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAmcXVvdDslcyZxdW90OyBpbiBvcmRlciB0byBjb250aW51ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ1lvdSBuZWVkIHRvIHNwZWNpZnkgYXQgbGVhc3Qgb25lIGRlc3RpbmF0aW9uIGFkZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZvcm0gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmaWVsZCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGaWVsZHMgbXVzdCBiZSBuYW1lZCwgdW5sZXNzIHlvdSBkaXNhYmxlIHRoaXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW1vdXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddID0gJ2FkZGVkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cGRhdGVkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnQgb3B0aW9ucyBvbiBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNpcGllbnRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1sndXBkYXRlJ10gPSAnVXBkYXRlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGaWVsZCByZXF1aXJlZCBzdGF0ZSB1cGRhdGVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIFNpemUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdBbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJvd3MnOwokbGFuZ1snY29scyddID0gJyVzIGNvbHMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyIEhvdXIgQ2xvY2snOwokbGFuZ1snMjRfaG91ciddID0gJzI0IEhvdXIgQ2xvY2snOwokbGFuZ1snaG91ciddID0gJ0hvdXInOwokbGFuZ1snbWluJ10gPSAnTWludXRlJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RoYW5rcyEgWW91ciBzdWJtaXNzaW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkYXknXSA9ICdEYXknOwokbGFuZ1snbW9uJ10gPSAnTW9udGgnOwokbGFuZ1sneWVhciddID0gJ1llYXInOwokbGFuZ1snbm9uZSddID0gJyhub25lKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtTZWxlY3QgT25lJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyZxdW90Oz5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXI/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRlIG9mIFN1Ym1pc3Npb24nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnRmllbGRzIHRoYXQgaGF2ZSBtdWx0aXBsZSB2YWx1ZXMgbWF5IGFsc28gYmUgYWNjZXNzZWQgdmlhIHRoZSBzbWFydHkgdmFsdWUgb2YgJGZpZWxkbmFtZV9hcnJheSBvciAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJ5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnRGVzY3VscGUhIEhvdXZlIHVtIGVycm8gZGUgbWFuaXB1bGEmY2NlZGlsOyZhdGlsZGU7byBubyBzZXUgZm9ybXVsJmFhY3V0ZTtyaW8uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+Cic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMKb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUKeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUKY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQKb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDthbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPgo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPgo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+CjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjwvdWw+PC9saT4KCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUKZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPgo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgd2lsbCBiZWNvbWUgdGhlIGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIgaW4gdGhlIG5leHQgcmVsZWFzZS48L2xpPgoKPC91bD48L2xpPjwvbGk+PC91bD4KCgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPgo8cHJlPgoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCglmb3JtIHttYXJnaW4tdG9wOjB9Cglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0KCWZpZWxkc2V0IGRpdiB7CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW07Cgl9CglmaWVsZHNldCBkaXYgZGl2IHsKCQltYXJnaW4tdG9wOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbQoJfQoJZmllbGRzZXQgewoJCW1hcmdpbi1ib3R0b206MWVtOwoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsKCQlwYWRkaW5nOjAuNWVtCgl9CglmaWVsZHNldCBsYWJlbCB7CgkJd2lkdGg6YXV0bzsKCX0KCWxlZ2VuZCB7CgkJY29sb3I6I0ZGRjsKCQliYWNrZ3JvdW5kOiNGNjA7CgkJZm9udC1zdHlsZTppdGFsaWM7CgkJZm9udC1zaXplOjEuMmVtOwoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJcGFkZGluZzowLjJlbTsKCQl3aWR0aDphdXRvOwoJCWJvcmRlcjoxcHggc29saWQgI0NDQwoJfQoJdGV4dGFyZWEgewoJCW1hcmdpbjogMC41ZW0gMDsKCQl3aWR0aDo5OCU7CgkJaGVpZ2h0OiA2ZW0KCX0KCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0KCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLwoJLmNhcHRjaGEgewoJCW1hcmdpbjowLjVlbSAwOwoJCXdpZHRoOjIwMHB4OwoJCXRleHQtYWxpZ246Y2VudGVyCgl9CgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0KCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19CjwvcHJlPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPgo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbgp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8L3VsPgo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgb2YgaG91cnMgaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuIFBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igd3JpdGUgeW91ciBxdWVzdGlvbnMgb24gZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2FzaCkuPC9wPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwo8dWw+CjxsaT5WZXJzaW9uIDAuNS4gMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb24uPC9saT4KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMy4gMTggU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHB1bGxkb3ducyB1c2luZyBudW1iZXJzLCBvcHRpb24gdG8gaW5saW5lIGZvcm0sIGZpeGVzIGZvciB0YWJsZS1sYXlvdXRzIHByb3ZpZGVkIGJ5IEFwIE11dGh1LCBmaXggZm9yIHJlcXVpcmFiaWxpdHkgb2YgRGlzcG9zaXRpb25zLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPgo8bGk+VmVyc2lvbiAwLjQKCTx1bD4KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPgoJCTxsaT5OdW1lcm91cyBCdWcgZml4ZXM7IHRvbyBtYW55IHRvIGVudW1lcmF0ZSBoZXJlPC9saT4KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+CgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiAmcXVvdDtUZXh0RmllbGQgKE11bHRpcGxlKSZxdW90OyBhbmQgJnF1b3Q7Q29tcHV0ZWQgRmllbGQmcXVvdDs8L2xpPgoJCTxsaT5BZGRlZCBkaXNwb3NpdGlvbnM6ICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJnF1b3Q7IGFuZCAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJnF1b3Q7KENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+CgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9JnF1b3Q7dmFsdWUmcXVvdDsgc3ludGF4IChDYWxndXkpPC9saT4KCQk8bGk+QWRkZWQgb3B0aW9uIHRvIGRpc3BsYXkgZmllbGQgaWRzIGluIGFkbWluIChDYWxndXkpPC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMwogICA8dWw+CiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+CiAgICAgIDxsaT5SZXdvcmtlZCBsYWJlbGluZyBvZiBmb3JtIGVsZW1lbnRzIHRvIGJlIFhIVE1MIGNvbXBsaWFudDwvbGk+CiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPgogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+CiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4KICAgICAgPGxpPkFkZGVkIERyYWcmIzAzOTtuJiMwMzk7RHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+CiAgICAgIDxsaT5BZGRlZCBub24tYmxhbmsgZmllbGQgbmFtZSBhbmQgdW5pcXVlIGZpZWxkIG5hbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPgogICAgICA8bGk+PC9saT4KICAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNwogICA8cD5CaWcgcmVsZWFzZTo8dWw+CiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPgogICA8bGk+QWRkZWQgJnF1b3Q7VGltZVBpY2tlciZxdW90OyBmaWVsZCB0eXBlLiBTcGxpdCAmcXVvdDtMaW5rJnF1b3Q7IGZpZWxkIGludG8gYSAmcXVvdDtVc2VyLXN1cHBsaWVkIExpbmsmcXVvdDsgZmllbGQgYW5kIGEgJnF1b3Q7U3RhdGljIExpbmsmcXVvdDsgZmllbGQuPC9saT4KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPgogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPgogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yLjMKICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4yCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOgogICA8dWw+CiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMKICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UKICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQKICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuCiAgICAgIDwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4KICAgICAgPC9saT4KICAgPC91bD4KICAgPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDthbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KPC91bD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My43MTk3NzU4MjQuMTIwODk1MjAxMS4xMjA5MjM1NDE4LjEyMDk0NjY1MDcuMTAnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjA5MjEzMDQ2LjcuMy51dG1jc3I9Y21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ9Ca0L7QvdGB0YLRgNGD0LrRgtC+0YAg0YTQvtGA0LwnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICfQndC1INGD0LrQsNC30LDQvSDRgtC40L8g0L/QvtC70Y8nOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAn0JLRi9Cx0LXRgNC40YLQtSDQvtC00L3RgyDQuNC70Lgg0LHQvtC70LXQtSDQv9C+0LfQuNGG0LjRjiDQuNC3INC60LDRgtCw0LvQvtCz0LAnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ9Ca0L7QvdC10YYg0LPRgNGD0L/Qv9GLINC/0L7Qu9C10LkgKGZpZWxkc2V0KSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICfQndCw0YfQsNC70L4g0LPRgNGD0L/Qv9GLINC/0L7Qu9C10LkgKGZpZWxkc2V0KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ9Ci0LXQutGB0YLQvtCy0L7QtSDQv9C+0LvQtSAoaW5wdXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSFRNTDVOdW1iZXJGaWVsZCddID0gJ0hUTUw1INGH0LjRgdC70L7QstC+0LUg0L/QvtC70LUg0LLQstC+0LTQsCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1RW1haWxGaWVsZCddID0gJ0hUTUw1INC/0L7Qu9C1INCy0LLQvtC00LAgRW1haWwnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNVVSTEZpZWxkJ10gPSAnSFRNTDUg0L/QvtC70LUg0LLQstC+0LTQsCBVUkwnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAn0J/QsNGA0L7Qu9GMJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAn0J/QsNGA0L7Qu9GMINGB0L3QvtCy0LAgKNC/0YDQvtCy0LXRgNC60LApJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ9Ci0LXQutGB0YLQvtCy0L7QtSDQv9C+0LvQtSAo0L3QtdGB0LrQvtC70YzQutC+INGI0YLRg9C6KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICfQotC10LrRgdGC0L7QstC+0LUg0L7QutC90L4gKHRleHRhcmVhKSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAn0JrQvdC+0L/QutCwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ9CT0LDQu9C+0YfQutCwIChjaGVja2JveCknOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICfQndC10YHQutC+0LvRjNC60L4g0LPQsNC70L7Rh9C10LogKGNoZWNrYm94IGdyb3VwKSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICfQktGL0L/QsNC00LDRjtGJ0LjQuSDRgdC/0LjRgdC+0LonOwokbGFuZ1snZmllbGRfdHlwZV9ZZWFyUHVsbERvd25GaWVsZCddID0gJ1llYXIgUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAn0JzQvdC+0LbQtdGB0YLQstC10L3QvdGL0Lkg0LLRi9Cx0L7RgCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICfQktGL0LHQvtGAINGI0YLQsNGC0L7QsiDQodCo0JAnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAn0JLRi9Cx0L7RgCDQutCw0L3QsNC00YHQutC+0Lkg0L/RgNC+0LLQuNC90YbQuNC4JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAn0JLRi9Cx0L7RgCDRgdGC0YDQsNC90YsnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICfQktGL0LHQvtGAINC00LDRgtGLJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAn0JLRi9Cx0L7RgCDQstGA0LXQvNC10L3QuCc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ9CT0YDRg9C/0L/QsCDRgNCw0LTQuNC+0LrQvdC+0L/QvtC6JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKtCe0YLQv9GA0LDQstC40YLRjCDRgNC10LfRg9C70YzRgtCw0YIg0L3QsCDRg9C60LDQt9Cw0L3QvdGL0LUgZS1tYWlsINCw0LTRgNC10YHQsCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcq0J/RgNC+0LLQtdGA0LrQsC3Rh9C10YDQtdC3LUVtYWlsINCw0LTRgNC10YEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJyrQn9C+0LvQtSBFbWFpbCAi0J7RgiDQutC+0LPQvijQsNC00YDQtdGBKSIsINC4INC+0YLQv9GA0LDQstC40YLRjCDQutC+0L/QuNGOJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKtCX0LDQv9C40YHQsNGC0Ywg0YDQtdC30YPQu9GM0YLQsNGC0Ysg0LIg0YTQsNC50LsnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBhIFVuaXF1ZSBGbGF0IEZpbGUgZm9yIGVhY2ggc3VibWlzc2lvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcq0JfQsNC/0LjRgdCw0YLRjCDRgNC10LfRg9C70YzRgtCw0YLRiyDQsiDQsdCw0LfRgyDQtNCw0L3QvdGL0YUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKtCX0LDQv9C40YHQsNGC0Ywg0YDQtdC30YPQu9GM0YLQsNGC0Ysg0LIg0YTQvtGA0LzQsNGC0LUgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJyrQktGL0LfQstCw0YLRjCDRgtC10LMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINGBINGA0LXQt9GD0LvRjNGC0LDRgtCw0LzQuCDRhNC+0YDQvNGLINCyINC60LDRh9C10YHRgtCy0LUg0L/QsNGA0LDQvNC10YLRgNC+0LInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcq0J7RgtC/0YDQsNCy0LjRgtGMINC/0L4g0LDQtNGA0LXRgdGDLCDRg9C60LDQt9Cw0L3QvdC+0LzRgyDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQvCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcq0J7RgtC/0YDQsNCy0LjRgtGMINCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0YMgQ01TJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqRW1haWwgcmVzdWx0cyBiYXNlZCBvbiBmcm9udGVuZCBmaWVsZHMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy3QoNCw0LfRgNGL0LIg0YHRgtGA0LDQvdC40YbRiyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ9CX0LDQs9GA0YPQt9C60LAg0YTQsNC50LvQsCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ9Cf0L7Rh9GC0L7QstC+0LUg0L/QvtC70LUgIkUtbWFpbCDQvtGC0L/RgNCw0LLQuNGC0LXQu9GPIic7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAn0J/QvtGH0YLQvtCy0L7QtSDQv9C+0LvQtSAiRS1tYWlsINC+0YLQv9GA0LDQstC40YLQtdC70Y8iIC0g0L/QvtCy0YLQvtGAJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAn0J/QvtGH0YLQvtCy0L7QtSDQv9C+0LvQtSAi0JjQvNGPINC+0YLQv9GA0LDQstC40YLQtdC70Y8iJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAn0J/QvtGH0YLQvtCy0L7QtSDQv9C+0LvQtSAi0KLQtdC80LAiJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLdCh0YLQsNGC0LjRh9C10YHQutC40Lkg0YLQtdC60YHRgic7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy3QodGC0LDRgtC40YfQtdGB0LrQsNGPINGB0YHRi9C70LrQsCc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ9Ch0YHRi9C70LrQsCAo0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLdCh0LrRgNGL0YLQvtC1INC/0L7Qu9C1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy3QktGL0YfQuNGB0LvQtdC90L3QvtC1INC/0L7Qu9C1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLdCd0LUg0L/QvtCy0YLQvtGA0Y/RjtGJ0LXQtdGB0Y8g0YbQtdC70L7QtSDRh9C40YHQu9C+IChzZXJpYWwpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLVVzZXIgRGVmaW5lZCBUYWcgQ2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxlIEludGVyZmFjZSBGaWVsZCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICfQndC10YIg0L/RgNC+0LLQtdGA0LrQuCc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICfQp9C40YHQu9C+JzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ9Cm0LXQu9C+0LUg0YfQuNGB0LvQvic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICfQkNC00YDQtdGBIGUtbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICfQndC+0LzQtdGAINGC0LXQu9C10YTQvtC90LAgKNCh0KjQkCknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAn0JTQvtC70LbQvdCwINCx0YvRgtGMINC/0YDQvtGB0YLQsNCy0LvQtdC90LAg0LPQsNC70L7Rh9C60LAnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ9CU0L7Qu9C20L3QviDQv9C+0LTRhdC+0LTQuNGC0Ywg0L/QvtC0INGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICfQndC1INC00L7Qu9C20L3QviDQv9C+0LTRhdC+0LTQuNGC0Ywg0L/QvtC0INGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3QvtC1INC/0L7Qu9C1INGE0L7RgNC80Ysg0L3QtSDQsdGL0LvQviDQt9Cw0L/QvtC70L3QtdC90L4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LfQsNC/0L7Qu9C90LjRgtC1INC/0L7Qu9C1ICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINCy0LLQtdC00LjRgtC1INGH0LjRgdC70L4g0LTQu9GPINC/0L7Qu9GPICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINC60L7RgNGA0LXQutGC0L3QviDQt9Cw0L/QvtC70L3QuNGC0LUg0L/QvtC70LUgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDRhtC10LvQvtC1INGH0LjRgdC70L4g0LTQu9GPINC/0L7Qu9GPICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAn0JLQstC10LTQuNGC0LUg0LrQvtGA0YDQtdC60YLQvdGL0LkgZS1tYWlsINCw0LTRgNC10YEg0LIg0L/QvtC70LUgIiVzIic7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAn0JLQstC10LTQtdC90L3Ri9C5IGUtbWFpbCDQsNC00YDQtdGBINC90LUg0YHQvtCy0L/QsNC00LDQtdGCINGBINC/0L7Qu9C10LwgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDQsiDQv9C+0LvQtSAiJXMiINC60L7RgNGA0LXQutGC0L3Ri9C5INC90L7QvNC10YAg0YLQtdC70LXRhNC+0L3QsCc7CiRsYW5nWydwbGVhc2VfbG9naW4nXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQvtC50LTQuNGC0LUsINGH0YLQvtCx0Ysg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINGN0YLRgyDRhNC+0YDQvNGDJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJ9CQ0LTRgNC10YEsINCy0LLQtdC00LXQvdC90YvQuSDQsiDQv9C+0LvQtSAiJXMiINC90LUg0Y/QstC70Y/QtdGC0YHRjyDQutC+0YDRgNC10LrRgtC90YvQvCBlLW1haWwg0LDQtNGA0LXRgdC+0LwhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSDQvdC1INC/0YDQtdCy0YvRiNCw0Y7RidC10LUgJXMg0YHQuNC80LLQvtC70L7Qsic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSwg0L/QviDQutGA0LDQudC90LXQuSDQvNC10YDQtSAlcyDRgdC40LzQstC+0LvQvtCyJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICfQktCw0Lwg0L3Rg9C20L3RiyDQv9GA0LDQstCwICIlcyIsINGH0YLQvtCx0Ysg0LLRi9C/0L7Qu9C90LjRgtGMINGN0YLQviDQtNC10LnRgdGC0LLQuNC1Lic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ9CY0LfQstC40L3QuNGC0LUsINC90L4g0YMg0LLQsNGBINC90LXRgiDQv9GA0LDQsiDQtNC+0YHRgtGD0L/QsCDQuiDRjdGC0L7QuSDRh9Cw0YHRgtC4INGB0LDQudGC0LAuJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICfQn9C+0YDRj9C00L7QuiDQv9C+0LvQtdC5INC+0LHQvdC+0LLQu9C10L0uJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ9Ck0L7RgNC80LAg0YPQtNCw0LvQtdC90LAuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICfQn9C+0LvQtSDRg9C00LDQu9C10L3Qvi4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAn0JrQvtC90YTQuNCz0YPRgNCw0YbQuNGPINC+0LHQvdC+0LLQu9C10L3QsC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICfQktGLINC00L7Qu9C20L3RiyDQv9GA0L7QstC10YDQuNGC0YwgIiVzIiwg0YfRgtC+0LHRiyDQv9GA0L7QtNC+0LvQttC40YLRjC4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ9CS0LDQvCDQvdC10L7QsdGF0L7QtNC40LzQviDRg9C60LDQt9Cw0YLRjCDQutCw0Log0LzQuNC90LjQvNGD0Lwg0L7QtNC40L0g0LDQtNGA0LXRgSDQvdCw0LfQvdCw0YfQtdC90LjRjyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRhNC+0YDQvNGDICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDQv9C+0LvQtSAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAn0J/QvtC60LAg0L3QtSDRg9C60LDQt9Cw0L0g0YLQuNC/INC/0L7Qu9GPLCDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9C1INC90LDRgdGC0YDQvtC50LrQuCDQvdC1INC+0YLQvtCx0YDQsNC20LDRjtGC0YHRjy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAn0JrQsNC20LTQvtC80YMg0L/QvtC70Y4g0LTQvtC70LbQvdC+INCx0YvRgtGMINC/0YDQuNGB0LLQvtC10L3QviDQuNC80Y8sINC10YHQu9C4INGC0L7Qu9GM0LrQviDRjdGC0L4g0L3QtSDQvtGC0LrQu9GO0YfQtdC90L4g0LIg0L3QsNGB0YLRgNC+0LnQutCw0YUg0JrQvtC90YHRgtGA0YPQutGC0L7RgNCwINGE0L7RgNC8Lic7CiRsYW5nWydub19maWVsZF9hc3NpZ25lZCddID0gJ05vIGZpZWxkIGFzc2lnbmVkIGZvciAlcyc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICfQkNC90L7QvdC40LzQvdC+JzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICfQlNC70LjQvdCwOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyDQvtC/0YbQuNC5JzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMg0YHQuNC80LLQvtC70L7Qsi4nOwokbGFuZ1snb3JkZXInXSA9ICfQn9C+0YDRj9C00L7Quic7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1vQvdC1INGD0LrQsNC30LDQvdC+XSc7CiRsYW5nWydhZGRlZCddID0gJ9C00L7QsdCw0LLQu9C10L3Qvic7CiRsYW5nWyd1cGRhdGVkJ10gPSAn0L7QsdC90L7QstC70LXQvdC+JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ9Ch0L7RgNGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INC/0YDQuCDQstGL0LLQvtC00LUnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ9CS0YvQsdC10YDQuNGC0LUg0L7QtNC40L0g0LjQtyDQv9GA0LXQtNC70LDQs9Cw0LXQvNGL0YUg0LLQsNGA0LjQsNC90YLQvtCyJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAn0JLRi9Cx0LXRgNC40YLQtSDRgtC40L8nOwokbGFuZ1sndG8nXSA9ICfQmtC+0LzRgyc7CiRsYW5nWyd5ZXMnXSA9ICfQlNCwJzsKJGxhbmdbJ25vJ10gPSAn0J3QtdGCJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICfQv9C+0LvRg9GH0LDRgtC10LvQuCc7CiRsYW5nWydmaWVsZHMnXSA9ICfQv9C+0LvRjyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMg0LLQvtC30LzQvtC20L3Ri9GFINGE0LDQudC70L7Qsic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzINC90LDQv9GA0LDQstC70LXQvdC40LknOwokbGFuZ1snc2F2ZSddID0gJ9Ch0L7RhdGA0LDQvdC40YLRjCc7CiRsYW5nWydhZGQnXSA9ICfQlNC+0LHQsNCy0LjRgtGMJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ9Ce0LHQvdC+0LLQuNGC0YwnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICfQodC+0YXRgNCw0L3QuNGC0Ywg0Lgg0L/RgNC+0LTQvtC70LbQuNGC0Ywg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ9CY0L3RhNC+0YDQvNCw0YbQuNGPJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4JzsKJGxhbmdbJ2Zvcm1zJ10gPSAn0KTQvtGA0LzRiyc7CiRsYW5nWydmb3JtJ10gPSAn0KTQvtGA0LzQsCAiJXMiJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICfQmtC+0L3RhNC40LPRg9GA0LDRhtC40Y8nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ9Cc0LDQutGBLiDRgNCw0LfQvNC10YAnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICfQoNCw0YHRiNC40YDQtdC90LjRjyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAn0KDQsNC30YDQtdGI0LXQvdC90YvQtSDRgtC40L/RiyDRhNCw0LnQu9C+0LInOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICfQl9Cw0LrQsNGH0LDQvdC90YvQuSDRhNCw0LnQuyDRgdC70LjRiNC60L7QvCDQstC10LvQuNC6ISDQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0LTQvtC/0YPRgdGC0LjQvNGL0Lkg0YDQsNC30LzQtdGAOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ9CX0LDQutCw0YfQutCwINGE0LDQudC70L7QsiDRjdGC0L7Qs9C+INGC0LjQv9CwINC30LDQv9GA0LXRidC10L3QsC4g0J/QvtC20LDQu9GD0LnRgdGC0LAsINC/0YDQvtCy0LXRgNGM0YLQtSwg0YfRgtC+INC00LDQu9C4INGE0LDQudC70YMg0LrQvtGA0YDQtdC60YLQvdC+0LUg0YDQsNGB0YjQuNGA0LXQvdC40LUuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ9CX0LDQutCw0YfQsNGC0YwnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ9Ck0L7RgNC80LAg0LjQvNC/0L7RgNGC0LjRgNC+0LLQsNC90LAuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ9Ck0L7RgNC80LAg0L3QtSDQsdGL0LvQsCDQuNC80L/QvtGA0YLQuNGA0L7QstCw0L3QsCEg0KTQvtGA0LzQsNGCIFhNTC3RhNCw0LnQu9CwINC90LXQutC+0YDRgNC10LrRgtC90YvQuS4nOwokbGFuZ1sncm93cyddID0gJyVzINGB0YLRgNC+0LonOwokbGFuZ1snY29scyddID0gJyVzINC60L7Qu9C+0L3QvtC6JzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMi3Rh9Cw0YHQvtCy0YvQtSDRh9Cw0YHRiyc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQt0YfQsNGB0L7QstGL0LUg0YfQsNGB0YsnOwokbGFuZ1snaG91ciddID0gJ9Cn0LDRgSc7CiRsYW5nWydtaW4nXSA9ICfQnNC40L3Rg9GC0LAnOwokbGFuZ1snbWVyaWQnXSA9ICfQnNC10YDQuNC00LjQsNC9JzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICfQmNC90YLQtdGA0LLQsNC7OiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ9Ch0L/QsNGB0LjQsdC+ISDQktCw0Ygg0LfQsNC/0YDQvtGBINCx0YvQuyDQv9C+0LvRg9GH0LXQvS4nOwokbGFuZ1snZWRpdCddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ9Cj0LTQsNC70LjRgtGMJzsKJGxhbmdbJ2RheSddID0gJ9CU0LXQvdGMJzsKJGxhbmdbJ21vbiddID0gJ9Cc0LXRgdGP0YYnOwokbGFuZ1sneWVhciddID0gJ9CT0L7QtCc7CiRsYW5nWydub25lJ10gPSAnKNC90LXRgiknOwokbGFuZ1snY3NzJ10gPSAn0KFTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ9Cc0L7QtNGD0LvRjCDRg9C00LDQu9C10L0uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ9Cc0L7QtNGD0LvRjCDQstC10YDRgdC40LggJXMg0YPRgdGC0LDQvdC+0LLQu9C10L0uJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAn0JzQvtC00YPQu9GMINC+0LHQvdC+0LLQu9C10L0g0LTQviDQstC10YDRgdC40LggJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ9Cd0LDQt9Cw0LQuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ9Ce0YLQv9GA0LDQstC40YLRjCc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICfQlNCw0LvQtdC1Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICfQn9GA0L7RgdGC0LDQstC70LXQvdCwINCz0LDQu9C+0YfQutCwJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ9Cd0LUg0L/RgNC+0YHRgtCw0LLQu9C10L3QsCDQs9Cw0LvQvtGH0LrQsCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ9Ce0YHQvdC+0LLQvdGL0LUg0L3QsNGB0YLRgNC+0LnQutC4JzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICfQndCw0YHRgtGA0L7QudC60Lgg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICfQndCw0YHRgtGA0L7QudC60Lgg0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4IENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAn0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQtSDQvdCw0YHRgtGA0L7QudC60LgnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAn0KjQsNCx0LvQvtC9INGE0L7RgNC80YsnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80YsnOwokbGFuZ1sndGFiX3VkdCddID0gJ1VEVCBJbnRlZ3JhdGlvbic7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPtCSINGN0YLQvtC8INC/0L7Qu9C1INC80L7QttC90L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0LXRgNC10LzQtdC90L3Ri9C1IFNtYXJ0eS48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LXRidGRINC+0L/RhtC40LknOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICfQo9C00LDQu9C40YLRjCDQvtGC0LzQtdGH0LXQvdC90YvQtSDQvtC/0YbQuNC4JzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQtdGJ0ZEg0LPQsNC70L7Rh9C10LonOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICfQo9C00LDQu9C40YLRjCDQvtGC0LzQtdGH0LXQvdC90YvQtSDQs9Cw0LvQvtGH0LrQuCc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LTRgNGD0LPQvtC5INCw0LTRgNC10YEnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICfQo9C00LDQu9C40YLRjCDQvtGC0LzQtdGH0LXQvdC90YvQtSDQsNC00YDQtdGB0LAnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQtNGA0YPQs9C+0LUg0L3QsNC30L3QsNGH0LXQvdC40LUnOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAn0KPQtNCw0LvQuNGC0Ywg0L/QvtC80LXRh9C10L3QvdGL0LUg0L3QsNC30L3QsNGH0LXQvdC40Y8nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICfQoSDQktCw0YjQtdCz0L4gSVAt0LDQtNGA0LXRgdCwINC/0L7RgdGC0YPQv9Cw0LXRgiDRgdC70LjRiNC60L7QvCDQvNC90L7Qs9C+INC30LDQv9GA0L7RgdC+0LIuINCh0LjRgdGC0LXQvNCwINC30LDRidC40YLRiyDQvtGCINGB0L/QsNC80LAg0LfQsNCx0LvQvtC60LjRgNC+0LLQsNC70LAg0L7RgtC/0YDQsNCy0LrRgyDRhNC+0YDQvNGLLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICfQn9GA0LXQtNC/0L7Qu9Cw0LPQsNC10LzRi9C5INGB0L/QsNC8INGBIElQLdCw0LTRgNC10YHQsCAlcyDQvtGB0YLQsNC90L7QstC70LXQvS4nOwokbGFuZ1sncmVvcmRlciddID0gJ9Cf0L7QvNC10L3Rj9GC0Ywg0L/QvtGA0Y/QtNC+0Log0L/QvtC70LXQuSc7CiRsYW5nWydjYW5jZWwnXSA9ICfQntGC0LzQtdC90LAnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAn0KPQutCw0LfQsNC90L3QvtC1INC30L3QsNGH0LXQvdC40LU6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAicmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlIjxici8+Cjxici8+CjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggIm11bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyI8YnIvPgo8YnIvPgo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPgo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICfQoNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUg0L/QvtC30LLQvtC70Y/QtdGCINGE0LjQu9GM0YLRgNC+0LLQsNGC0Ywg0Y3Qu9C10LzQtdC90YLRiyDQutCw0YLQsNC70L7Qs9CwINC/0L4g0LjQvNC10L3QuCc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ9CS0YvRgdC+0YLQsCDQvNC90L7QttC10YHRgtCy0LXQvdC90L7Qs9C+INC/0L7Qu9GPJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICfQktGL0YHQvtGC0LAg0L/QvtC70Y8nOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAn0KbQtdC70LXQstC+0Lkg0LrQsNGC0LDQu9C+0LMg0LTQu9GPINCy0YvRhdC+0LTQvdGL0YUg0YTQsNC50LvQvtCyJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAn0KLQtdCzINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPINC30LDQs9GA0YPQt9C+0LonOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICfQntGC0L/RgNCw0LLQuNGC0Ywg0Y3RgtC+0YIg0YTQsNC50Lsg0LIg0LzQvtC00YPQu9GMINC30LDQs9GA0YPQt9C+0LonOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlJ10gPSAn0KDQsNC30YDQtdGI0LjRgtGMINC30LDQs9GA0YPQttCw0YLRjCDQvdCwINC/0LXRgNC10LfQsNC/0LjRgdGMINGA0LDQvdC90LjQtSDRhNCw0LnQu9GLPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19vdmVyd3JpdGVfbG9uZyddID0gJ1Nob3VsZCB1cGxvYWRlZCBmaWxlIG92ZXJ3cml0ZSBwcmV2aW91c2x5IHVwbG9hZGVkIGZpbGUgaWYgaXQgaGFzIHRoZSBzYW1lIG5hbWU/JzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ9Cf0L7Qt9Cy0L7Qu9C40YLRjCDQv9C10YDQtdC30LDQv9C40YHRjCc7CiRsYW5nWydub292ZXJ3cml0ZSddID0gJ9CX0LDQv9GA0LXRgtC40YLRjCDQv9C10YDQtdC30LDQv9C40YHRjCc7CiRsYW5nWydmaWxlX2FscmVhZHlfZXhpc3RzJ10gPSAn0KTQsNC50LsgJXMg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCLCDQuCDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0L/QtdGA0LXQt9Cw0L/QuNGB0LDQvS4nOwokbGFuZ1sndGl0bGVfZmlsZV9yZW5hbWUnXSA9ICfQqNCw0LHQu9C+0L0g0LjQvNC10L3QuCDRhNCw0LnQu9CwJzsKJGxhbmdbJ29yaWdpbmFsX2ZpbGVfZXh0ZW5zaW9uJ10gPSAn0J7RgNC40LPQuNC90LDQu9GM0L3QvtC1INGA0LDRgdGI0LjRgNC10L3QuNC1INGE0LDQudC70LAgKNCy0LrQu9GO0YfQsNGPICIuIiknOwokbGFuZ1sndGl0bGVfc3VwcHJlc3NfZmlsZW5hbWUnXSA9ICdTdXBwcmVzcyBmaWxlbmFtZSBpbiBlbWFpbHMgYW5kIGZvcm1zIHRoZSBlbmQgdXNlciB3aWxsIHNlZSc7CiRsYW5nWydmaWxlX3JlbmFtZV9oZWxwJ10gPSAnVG8gcmVuYW1lIGEgZmlsZSB1cG9uIHVwbG9hZGluZywgY3JlYXRlIHRoZSB0ZW1wbGF0ZSBoZXJlLiBMZWF2ZSBibGFuayB0byBwcmVzZXJ2ZSBvcmlnaW5hbCBmaWxlbmFtZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICfQm9C10LPQtdC90LTQsCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ9Cc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQtNC70LjQvdCwJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAn0J/QvtC00L/QuNGB0Ywg0LXQu9C10LzQtdC90YLQsCBDaGVja2JveCAo0LPQsNC70L7Rh9C60LApJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAn0J/QvtC00L/QuNGB0Ywg0LXQu9C10LzQtdC90YLQsCBSYWRpbyBCdXR0b24gKNGA0LDQtNC40L4g0LrQvdC+0L/QutCwKSc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAn0JfQvdCw0YfQtdC90LjQtSDQutC+0LPQtNCwINC/0YDQvtGB0YLQsNCy0LvQtdC90LAg0LPQsNC70L7Rh9C60LAnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAn0JfQvdCw0YfQtdC90LjQtSDQutC+0LPQtNCwINC90LXRgiDQs9Cw0LvQvtGH0LrQuCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICfQo9C00LDQu9C40YLRjD8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnIlNlbGVjdCBPbmUiIFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyJGcm9tIG5hbWUiIGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICJ4QHkiIGluc3RlYWQgb2YgcmVxdWlyaW5nICJ4QHkudGxkIiknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnIkZyb20gYWRkcmVzcyIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ9CY0LzRjyDRhNCw0LnQu9CwJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICfQotC10LzQsCDQv9C40YHRjNC80LAnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAn0JjQvNGPINGE0L7RgNC80YsnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICfQodGC0LDRgtGD0YEg0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ9CT0L7RgtC+0LLQsCDQuiDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAn0J3QtSDQs9C+0YLQvtCy0LAnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ9Ch0YLRgNCw0L3QuNGG0LAg0LTQu9GPINC/0LXRgNC10L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQv9C+0YHQu9C1INC+0YLQv9GA0LDQstC60Lgg0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINC00L7QsdCw0LLRjNGC0LUg0L/QvtC70LUg0LIg0YTQvtGA0LzRgywg0YLQsNC6INGH0YLQvtCx0Ysg0LLRhdC+0LTQvdGL0LUg0LTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQvtCx0YDQsNCx0LDRgtGL0LLQsNC70LjRgdGMLiDQktGLINC80L7QttC10YLQtSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ9C40YHQv9C+0LvRjNC30L7QstCw0YLRjCDRjdGC0L7RgiDRj9GA0LvRi9C6JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICfQkNC70LjQsNGBINGE0L7RgNC80YsnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXSA9ICfQkNC70LjQsNGBJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAn0J/QvtC70Y8g0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0lEINC/0L7Qu9GPJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAn0J/QvtC60LDQt9Cw0YLRjCDQsNC70LjQsNGB0Ysg0L/QvtC70LXQuSc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAn0JjQvNGPINC/0L7Qu9GPJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAn0JDQu9C40LDRgSDQv9C+0LvRjyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAn0KLQuNC/INC/0L7Qu9GPJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICfRgdC+0LfQtNCw0YLRjCDRhNC+0YDQvNGDINC+0LHRgNCw0LHQvtGC0LrQuCDQv9C+0LvRjy4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQvdC+0LLRg9GOINGE0L7RgNC80YMnOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAn0J/QvtC60LDQt9Cw0YLRjCDQstC10YDRgdC40Y4gRm9ybSBCdWlsZGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQvdC+0LLQvtC1INC/0L7Qu9C1JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ9Ci0LXQutGB0YIg0LrQvdC+0L/QutC4INC+0YLQv9GA0LDQstC60Lgg0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9idXR0b25fdGV4dCddID0gJ9Ci0LXQutGB0YIg0LrQvdC+0L/QutC4JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gU3VibWl0IEJ1dHRvbiB0byBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAn0JTQvtCx0LDQstC40YLRjCDRgdC60YDQuNC/0YIg0LHQtdC30L7Qv9Cw0YHQvdC+0YHRgtC4JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICfQotC10LrRgdGCINC60L3QvtC/0LrQuCDQv9C10YDQtdGF0L7QtNCwINC90LAg0YHQu9C10LTRg9GO0YnRg9GOINGB0YLRgNCw0L3QuNGG0YMgKNC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0LzQvdC+0LPQvtGB0YLRgNCw0L3QuNGH0L3Ri9GFINGE0L7RgNC8KSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAn0KLQtdC60YHRgiDQutC90L7Qv9C60Lgg0L/QtdGA0LXRhdC+0LTQsCDQvdCwINC/0YDQtdC00YvQtNGD0YnRg9GOINGB0YLRgNCw0L3QuNGG0YMgICjQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC80L3QvtCz0L7RgdGC0YDQsNC90LjRh9C90YvRhSDRhNC+0YDQvCknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ9Cf0YDQvtCy0LXRgNC60LAg0L/QvtC70Y8nOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICfQn9C+0LvQtSDQtNC70Y8g0L/RgNC+0LLQtdGA0LrQuCc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfaWQnXSA9ICdDU1MgaWQg0LTQu9GPINGN0YLQvtCz0L4g0L/QvtC70Y8nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1Mg0LrQu9Cw0YHRgSDQtNC70Y8g0Y3RgtC+0Lkg0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1Mg0LrQu9Cw0YHRgSDQtNC70Y8g0Y3RgtC+0LPQviDQv9C+0LvRjyc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAn0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40Lkg0YLQtdCzINCy0YvQt9C+0LLQsCDQv9C10YDQtdC0INC+0YLQvtCx0YDQsNC20LXQvdC40LXQvCDRhNC+0YDQvNGLJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBiZWZvcmUgZm9ybSBpcyBkaXNwbGF5ZWQgKGNhbGxlZCBvbiBldmVyeSBwYWdlIG9mIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV92YWxpZGF0ZV91ZHQnXSA9ICfQotC10LMg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINCy0YvQt9GL0LLQsNC10LzRi9C5INCy0L4g0LLRgNC10LzRjyDQv9GA0L7QstC10YDQutC4INGE0L7RgNC80YsnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICfQodC40LzQstC+0Lsg0LTQu9GPINC+0YLQvNC10YLQutC4INC+0LHRj9C30LDRgtC10LvRjNC90YvRhSDQv9C+0LvQtdC5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3Qvic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAn0J/QvtC70LUg0L7QsdGP0LfQsNGC0LXQu9GM0L3QviDQtNC70Y8g0LfQsNC/0L7Qu9C90LXQvdC40Y8nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ9Ch0LrRgNGL0YLRjCDQv9C+0LTQv9C40YHRjCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICfQodC60YDRi9GC0Ywg0LjQvNGPINGN0YLQvtCz0L4g0L/QvtC70Y8g0L3QsCDRhNC+0YDQvNC1JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2xlbmd0aCddID0gJ9Cc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQtNC70LjQvdCwINGB0L7QtNC10YDQttC40LzQvtCz0L4g0L/QvtC70Y8gKDAg0LjQu9C4INC/0YPRgdGC0L4g0LHQtdC3INC+0LPRgNCw0L3QuNGH0LXQvdC40LkpJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICfQodGC0LDRgtC40YfQtdGB0LrQuNC5INGC0LXQutGB0YIg0LTQu9GPINC/0L7QutCw0LfQsCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ9Cf0YDQvtCy0LXRgNC60LAgUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ9Ca0L7Qu9C40YfQtdGB0YLQstC+INGB0YLRgNC+0Log0LTQu9GPINC/0L7QutCw0LfQsCc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICfQotC+0LvRjNC60L4g0YfRgtC10L3QuNC1JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICfQndC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAn0KHRgtGA0LDQvdC40YbQsCDQtNC70Y8g0L/QtdGA0LXQvdCw0L/RgNCw0LLQu9C10L3QuNGPINC/0L7RgdC70LUg0YPRgtCy0LXRgNC20LTQtdC90LjRjyc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgInZhbGlkYXRpb24gdHlwZSIgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgIi9pbWFnZVxcLihcXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3Qvic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ9Ch0LrRgNGL0YLRjCDQvtGI0LjQsdC60LgnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSBFbWFpbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICfQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0YDQsNC30LzQtdGAINC30LDQs9GA0YPQttCw0LXQvNC+0LPQviDRhNCw0LnQu9CwICjQutC40LvQvtCx0LDQudGC0YspJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfZGVzdGluYXRpb24nXSA9ICfQmtCw0YLQsNC70L7QsyDQtNC70Y8g0YHQvtGF0YDQsNC90LXQvdC40Y8g0YTQsNC50LvQvtCyJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAn0KDQsNC30YDQtdGI0LXQvdC90YvQtSDRgNCw0YHRiNC40YDQtdC90LjRjyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICJqcGcsZ2lmLGpwZWciKS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAn0J7RgtC+0LHRgNCw0LbQsNGC0Ywg0L7Qs9GA0LDQvdC40YfQtdC90LjRjz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAn0KHRgtGA0LDQvdC40YbQsCAlcyDQuNC3ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICfQn9C+0LvQtSDQvdC1INC40LzQtdC10YIg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvRhSDQv9Cw0YDQsNC80LXRgtGA0L7Qsi4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAn0JHRi9GB0YLRgNC+0LUg0LTQvtCx0LDQstC70LXQvdC40LUg0L/QvtC70Y8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ9CS0LrQu9GO0YfQuNGC0Ywg0L/RgNC40LzQuNGC0LjQstC90YvQtSDQsNC90YLQuC3RgdC/0LDQvCDRhNGD0L3QutGG0LjQuD8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ9Cf0L7QutCw0LfQsNGC0YwgSURcJ9GLINC/0L7Qu9C10LknOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICfQl9Cw0LPRgNGD0LfQuNGC0Ywg0YTQvtGA0LzRgyDQuNC3IFhNTCDRhNCw0LnQu9CwJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0Y3RgtC+INC40LzRjyDQtNC70Y8g0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAn0KTQvtGA0LzQsCDQuNC80L/QvtGA0YLQsCBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0Y3RgtC+0YIg0LDQu9C40LDRgSDQtNC70Y8g0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgQ2FwdGNoYSDQtNC70Y8g0LfQsNGJ0LjRgtGLINC+0YLQv9GA0LDQstC60Lgg0YTQvtGA0LzRiz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEg0L3QtdC60L7RgNGA0LXQutGC0L3QsC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvblwndCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmsnXSA9ICdEZWZhdWx0IHRvIGJsYW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfYmxhbmtfaGVscCddID0gJ0RlZmF1bHQgdG8gYmxhbmsgKHVuY2hlY2sgdG8gZGVmYXVsdCB0byB0b2RheVwncyBkYXRlKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyXCdzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlclwncyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlclwncyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X2RhdGFiYXNlX2RhdGEnXSA9ICdFbmNyeXB0IGRhdGEgc3RvcmVkIGluIGRhdGFiYXNlJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpY2F0ZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fa2V5ZmlsZSddID0gJ1Bhc3NwaHJhc2Ugb3IgcGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgcGFzc3BocmFzZS4gKElmIHVzaW5nIE9wZW5TU0wsIHRoaXMgaXMgdGhlIHBhc3NwaHJhc2UgZm9yIHRoZSBwcml2YXRlIGtleSknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzJ10gPSAnSGFzaCBzb3J0IGZpZWxkcz8nOwokbGFuZ1sndGl0bGVfcHJpdmF0ZV9rZXknXSA9ICdQcml2YXRlIEtleSB0byB1c2UgZm9yIGVuY3J5cHRpbmcgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHNfaGVscCddID0gJ1RoaXMgaGFzaGVzIHRoZSBzb3J0IGZpZWxkcywgYnV0IGxlYXZlcyB0aGUgZmlyc3QgZmV3IGxldHRlcnMgdW5lbmNyeXB0ZWQuIENyeXB0b2dyYXBoaWNhbGx5LCB0aGlzIGNyZWF0ZXMgYSB2dWxuZXJhYmlsaXR5LCBidXQgZm9yIG1vc3QgdXNlcnMgaXQgaXMgYW4gYWNjZXB0YWJsZSB0cmFkZW9mZiBiZXR3ZWVuIHNlY3VyaXR5IGFuZCB0aGUgYWJpbGl0eSB0byBzb3J0IHJlY29yZHMuIFNvcnRpbmcgYmVjb21lcyBhcHByb3hpbWF0ZSwgYnV0IHdpbGwgcmVtYWluIHByZXR0eSBnb29kLiBJZiB5b3UgZG8gbm90IHVzZSB0aGlzIG9wdGlvbiwgc29ydCBmaWVsZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb25fZnVuY3Rpb25zJ10gPSAnU3RvcmFnZSBFbmNyeXB0aW9uIFVuYXZhaWxhYmxlJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3J5cHRvJ10gPSAnUGxlYXNlIGluc3RhbGwgdGhlIE9wZW5TU0wgbW9kdWxlIG9yIG1jcnlwdCBzdXBwb3J0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBkYXRhYmFzZSBlbmNyeXB0aW9uLic7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2N1cmwnXSA9ICdQbGVhc2UgbWFrZSBzdXJlIHlvdSBoYXZlIENVUkwgc3VwcG9ydCBhY3RpdmUgaW4geW91ciBQSFAgaW5zdGFsbC4gU2VlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5jdXJsLnBocCc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbiddID0gJ1J1biBpbiBNTEUgTW9kZSc7CiRsYW5nWyd0aXRsZV9tbGVfdmVyc2lvbl9sb25nJ10gPSAnQ2hhbmdlcy9zdXBwb3J0IGZvciBDTVNNUyBNdWx0aS1MYW5ndWFnZSBFZGl0aW9uIGZvcmsuIERvIG5vdCBjaGVjayB0aGlzIGlmIHlvdSBhcmUgbm90IHJ1bm5pbmcgdGhlIE1MRSB2ZXJzaW9uLic7CiRsYW5nWyd0aXRsZV9lbnN1cmVfY2VydF9rZXlfbWF0Y2gnXSA9ICdFbnN1cmUgdGhhdCB5b3Ugc2VsZWN0IHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvciB0aGUgY2VydGlmaWNhdGUgeW91IGFyZSB1c2luZyBmb3IgZW5jcnlwdGlvbiEnOwokbGFuZ1snY2hvb3NlX2NyeXB0J10gPSAnRW5jcnlwdGlvbiBMaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfbG9uZyddID0gJ0NoZWNrIHRoaXMgdG8gZW5jcnlwdCB0aGUgc3RvcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgKGJ1dCBub3QgaW1wb3NzaWJsZSkgZm9yIGhhY2tlcnMgdG8gdmlldyB0aGUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Nob29zZV9jcnlwdF9sb25nJ10gPSAnVGhlIG9wdGlvbnMgYmVsb3cgb25seSBhcHBseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBPcGVuU1NMIEVuY3J5cHRpb24gbGlicmFyeSc7CiRsYW5nWyd0aXRsZV9jcnlwdF9saWInXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1snb3BlbnNzbCddID0gJ09wZW5TU0wgTGlicmFyeSc7CiRsYW5nWydtY3J5cHQnXSA9ICdQSFAgbWNyeXB0IExpYnJhcnknOwokbGFuZ1sndGl0bGVfZmV1X2JpbmRpbmcnXSA9ICdGcm9udGVuZCBVc2VyIGJpbmRpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9mZXUnXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgRnJvbnRlbmQgVXNlciBtb2R1bGUgdG8gY29ubmVjdCBhIGZvcm0gYW5kIGl0cyBkYXRhIHRvIGEgc3BlY2lmaWMgdXNlcic7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtXCdzIGRhdGEgdG8gdGhlIGxvZ2dlZC1pbiBmcm9udC1lbmQgdXNlci4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0VuY3J5cHRpb24nOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0IGZvcm0gcmVmZXJlbmNlIHRvIFVEVCBhcyAkcGFyYW1zW1wnRk9STVwnXT8gKGRvIG5vdCBkbyB0aGlzIGlmIHlvdSBhcmUgZ29pbmcgdG8gcHJpbnRfcigkcGFyYW1zKSApJzsKJGxhbmdbJ3RpdGxlX3VybF9oZWxwJ10gPSAnRW50aXJlIFVSTCwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBwYXRoIChlLmcuLCBodHRwOi8vbXlob3N0LmNvbS9mb3JtX2hhbmRsZXIuY2dpKSc7CiRsYW5nWyd0aXRsZV91cmwnXSA9ICdGb3JtIHN1Ym1pc3Npb24gVVJMJzsKJGxhbmdbJ3RpdGxlX21ldGhvZCddID0gJ9Cc0LXRgtC+0LQg0YTQvtGA0LzRiyc7CiRsYW5nWyd0aXRsZV9tYXBzX3RvJ10gPSAnTWFwIGZpZWxkICIlcyIgdG8gZm9ybSBzdWJtaXNzaW9uIHZhcmlhYmxlJzsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWwnXSA9ICdBZGRpdGlvbmFsIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbF9oZWxwJ10gPSAnQW55dGhpbmcgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHN1Ym1pc3Npb24gcGF5bG9hZCwgaW4gVVJMLWVuY29kZWQgZm9ybSAoLmUuZywgInVzZXI9c3RldmUram9icyZlbXBsb3llZV9udW1iZXI9MSknOwokbGFuZ1sndGl0bGVfaW5jbHVkZV9pbl9zdWJtaXNzaW9uJ10gPSAnSW5jbHVkZSBmaWVsZCBpbiBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2RhdGVfb3JkZXInXSA9ICdEYXRlIGNvbXBvbmVudCBmaWVsZCBvcmRlciAoZm9yIGlucHV0KSc7CiRsYW5nWyd0aXRsZV9kYXRhX3N0b3JlZF9pbl9mYnInXSA9ICdEYXRhIHdpbGwgYmUgc3RvcmVkIGluIGFuIFhNTCBmb3JtYXQgaW4gdGhlIFtQUkVGSVhdX21vZHVsZV9mYl9mcm9tYnJvd3NlciBkYXRhYmFzZSB0YWJsZS4nOwokbGFuZ1snZXJyb3JfaGFzX25vX2ZiX2ZpZWxkJ10gPSAnRXJyb3IhIEVpdGhlciB0aGUgZm9ybSBoYXMgbm8gZm9ybV9idWlsZGVyIGRpc3Bvc2l0aW9uLCBvciBpdCBmYWlsZWQgdG8gaW5zdGFudGlhdGUgKGR1ZSB0byBtZW1vcnkgaXNzdWVzPyknOwokbGFuZ1snaGVscF9kYXRlX29yZGVyJ10gPSAnVXNlICJtIiBmb3IgTW9udGgsICJkIiBmb3IgRGF5LCBhbmQgInkiIGZvciBZZWFyLiBTZXBhcmF0ZSB0aGUgaXRlbXMgYnkgaHlwaGVucy4nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWyd0aXRsZV91c2VfcmFuZG9tX2dlbmVyYXRvciddID0gJ1VzZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciBpbnN0ZWFkIG9mIHN0YXRpYyc7CiRsYW5nWyd0aXRsZV9udW1iZXJzX3RvX2dlbmVyYXRlJ10gPSAnSG93IG1hbnkgbnVtYmVycyB0byBnZW5lcmF0ZSBpbiBwcm9jZXNzJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ9Ct0YLQviDQv9C+0LvQtSDQvNC+0LbQvdC+INC+0YHRgtCw0LLQuNGC0Ywg0L/Rg9GB0YLRi9C8JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ9Cf0LXRgNC10LzQtdC90L3Ri9C1INC00LvRjyDRiNCw0LHQu9C+0L3QsCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICfQn9C10YDQtdC80LXQvdC90YvQtSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRlIG9mIFN1Ym1pc3Npb24nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ9CS0LDRiCDRgdC10YDQstC10YAnOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAn0JLQtdGA0YHQuNGPIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX2lnbm9yZWRfaWZfdXBsb2FkJ10gPSAnKFRoaXMgZmllbGQgaWdub3JlZCBpZiB5b3UgdXNlIHRoZSBVcGxvYWRzIG1vZHVsZSB0byBtYW5hZ2UgZmlsZXMpJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+Cjx0cj48dGQgY2xhc3M9Im9kZCI+bmFtZTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9Im9kZCI+aWQ8L3RkPjx0ZCBjbGFzcz0ib2RkIj5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSJvZGQiPnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0ib2RkIj5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgInskZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAn0J/QtdGA0LXQvNC10L3QvdCw0Y8nOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snaGVscF9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSBmaWxlIGxvY2F0ZWQgaW4gdGhlIEZvcm1CdWlsZGVyL3RlbXBsYXRlcy8gZm9sZGVyLiBUaGlzIGZpZWxkIGlzIGlnbm9yZWQgaWYgeW91IHVzZSBUWFQgYXMgeW91ciBmaWxlIHR5cGUuJzsKJGxhbmdbJ2hlbHBfcnRmX3RlbXBsYXRlX3R5cGUnXSA9ICdCYXNpYzogVXNlIHRoZSB0ZXh0YXJlYSBiZWxvdyB0byBsYXlvdXQgdGhlIGZpZWxkIG5hbWVzL3ZhbHVlcyBpbiBhIHNpbmdsZSBibG9jay48YnIgLz4KQWR2YW5jZWQ6IFNwZWNpZnkgU21hcnR5IHZhcmlhYmxlcyBpbiB0aGUgUlRGIFRlbXBsYXRlIEZpbGUgYXMgeW91IHdvdWxkIGJlbG93LCBidXQgYXJyYW5nZSB0aGVtIGhvd2V2ZXIgeW91IGxpa2UgYW5kIGFkZCBmb3JtYXR0aW5nLjxiciAvPgombmJzcDtZb3UgY2FuIHN0aWxsIHVzZSB0aGUgJSVIRUFERVIlJSBhbmQgJSVGT09URVIlJSBzZWN0aW9ucyBpbiB0aGUgUlRGIGZpbGUuJzsKJGxhbmdbJ2hlbHBfdW5pcXVlX2ZpbGVfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIEhlYWRlciBUZW1wbGF0ZS48YnIgLz4KRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlRklFTERTJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlIGlmIFJURiBUZW1wbGF0ZSBUeXBlIGlzIHNldCB0byAiQmFzaWMiLjxiciAvPgpUaGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZCBpZiB1c2luZyAiUlRGIiBhcyBGaWxlIFR5cGUgYW5kICJBZHZhbmNlZCIgYXMgUlRGIFRlbXBsYXRlIFR5cGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuIEZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUhFQURFUiUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZS4nOwokbGFuZ1snaGVscF9maWxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ0ZvciBUWFQsIHRoaXMgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZS4gRm9yIFJURiwgdGhpcyB3aWxsIHJlcGxhY2UgdGhlICUlRk9PVEVSJSUgc3RyaW5nIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLic7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJ8KrINCd0LDQt9Cw0LQg0Log0YTQvtGA0LzQtSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAn0KHQvtC30LTQsNGC0Ywg0L/RgNC+0YHRgtC+0Lkg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ9Ch0L7Qt9C00LDRgtGMINC/0YDQvtGB0YLQvtC5IEhUTUwg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAn0KHQvtC30LTQsNGC0Ywg0L/RgNC+0YHRgtC+0Lkg0YjQsNCx0LvQvtC9INC30LDQs9C+0LvQvtCy0LrQsCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2Zvb3Rlcl90ZW1wbGF0ZSddID0gJ9Ch0L7Qt9C00LDRgtGMINC/0YDQvtGB0YLQvtC5INGI0LDQsdC70L7QvSDRhNGD0YLQtdGA0LAnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICfQodC+0LfQtNCw0YLRjCDQv9GA0L7RgdGC0L7QuSDQt9Cw0LPQvtC70L7QstC+0LonOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2Zvb3RlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgZm9vdGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3J0Zl9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgUlRGIGZpbGUgdG8gdXNlJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9maWxlX3R5cGUnXSA9ICdDaG9vc2UgYSBmaWxlIHR5cGUgdG8gdXNlJzsKJGxhbmdbJ3RpdGxlX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQ2hvb3NlIGFuIFJURiB0ZW1wbGF0ZSB0eXBlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJ3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAiRGlzcG9zaXRpb24iIGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9kYXRlJ10gPSAnRGF0ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfYXBwcm92YWxfZGF0ZSddID0gJ0RhdGUgQXBwcm92ZWQgKGJ5IGFkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0ZSBBcHByb3ZlZCAoYnkgc3VibWl0dGVyKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgImFkdmFuY2VkIiB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3RiyDQuNC80LXQvdCwINC/0L7Qu9C10LknOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICfQntCx0Y/Qt9Cw0YLQtdC70YzQvdGL0LUg0L/QvtC70Y8g0LjQvNC10Y7RgiDQvdCw0LfQstCw0L3QuNGPPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90Ysg0YPQvdC40LrQsNC70YzQvdGL0LUg0LjQvNC10L3QsCDQv9C+0LvQtdC5JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICfQntCx0Y/Qt9Cw0YLQtdC70YzQvdGL0LUg0L/QvtC70Y8g0LjQvNC10Y7RgiDRg9C90LjQutCw0LvRjNC90YvQtSDQvdCw0LfQstCw0L3QuNGPPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICfQmNC30LzQtdC90LjRgtGMINC/0L7RgNGP0LTQvtC6INC/0L7Qu9C10LknOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ9CX0LDQs9GA0YPQt9C40YLRjCDRiNCw0LHQu9C+0L0nOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAn0KLQtdC60YHRgiDQutC90L7Qv9C60Lgg0LTQvtCx0LDQstC70LXQvdC40Y8v0YHQvtC30LTQsNC90LjRjyc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICfQotC10LrRgdGCINC60L3QvtC/0LrQuCDRg9C00LDQu9C10L3QuNGPJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAn0KHQv9GA0LDQstC60LAt0YLQtdC60YHRgiwg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9C5INGBINGN0YLQuNC8INC/0L7Qu9C10LwnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfc3RyaW5nX3Vuc3BhY2VkJ10gPSAn0KHRgtGA0L7QutCwICjQsdC10Lcg0L/RgNC+0LHQtdC70L7QsiDQvNC10LbQtNGDINC/0L7Qu9GP0LzQuCk/JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGUnXSA9ICdDb21wdXRlZC9QSFAnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAn0KHRgtGA0L7QutCwJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICfQp9C40YHQu9C+JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAn0J/QvtC60LDQt9GL0LLQsNGC0Ywg0YTQvtGA0LzRgyDQstGB0YLRgNC+0LXQvdC90L7QuT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ9CS0YHRgtGA0L7QtdC90L3QsNGPINC+0LfQvdCw0YfQsNC10YIsINGH0YLQviDQv9C+0YHQu9C10LTRg9GO0YnQsNGPINGE0L7RgNC80LAg0LfQsNC80LXQvdGP0LXRgiDRgtC10LMge2Ntc19tb2R1bGV9LCDQvdC10LLRgdGC0YDQvtC10L3QvdCw0Y8g0LfQsNC80LXQvdGP0LXRgiDRgtC10LMge2NvbnRlbnR9Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+0LvRjyDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAn0J7Rh9C40YHRgtC40YLRjCDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC/0YDQuCDQutC70LjQutC1Pyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQg0LTQu9GPINC/0L7Qu9GPJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsINC90LDQv9GA0LjQvNC10YAsIG9uY2xpY2s9InlvdXJmbigpIic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSJ5b3VyZm4oKSIuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgInNhZmV0eSBzY3JpcHQiIG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ9Cd0YPQttC90L4g0LHQvtC70YzRiNC1INGC0LjQv9C+0LIg0L/QvtC70LXQuT8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAn0KHQu9C40YjQutC+0Lwg0LzQvdC+0LPQviDRgtC40L/QvtCyINC/0L7Qu9C10Lk/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAn0J/QtdGA0LXQutC70Y7Rh9C40YLRjNGB0Y8g0L3QsCDRgNCw0YHRiNC40YDQtdC90L3Ri9C5INGA0LXQttC40LwnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICfQn9C10YDQtdC60LvRjtGH0LjRgtGMINC90LAg0L/RgNC+0YHRgtC+0Lkg0YDQtdC20LjQvCc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICfQmtCw0YLQsNC70L7QsyDQtNC70Y8g0YHQvtGF0YDQsNC90LXQvdC40Y8g0YTQsNC50LvQsCDQsic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPgpDaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPgpBbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuPGJyIC8+CklmIGxlZnQgYmxhbmssIHRoaXMgd2lsbCBkZWZhdWx0IHRvIHlvdXIgZGVmYXVsdCB1cGxvYWRzIGRpcmVjdG9yeSAoJGNvbmZpZ1tcJ3VwbG9hZHNfcGF0aFwnXSkuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgXCdFbWFpbCAiU3ViamVjdCIgRmllbGRzXCcgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1sndGl0bGVfZGlzcGxheV9sZW5ndGgnXSA9ICfQn9C+0LrQsNC30LDRgtGMINC00LvQuNC90YMnOwokbGFuZ1sndGl0bGVfbWluaW11bV9sZW5ndGgnXSA9ICdNaW5pbXVtIHJlc3BvbnNlIGxlbmd0aCc7CiRsYW5nWyd0aXRsZV9oaWRlJ10gPSAnSGlkZSBpbnB1dCc7CiRsYW5nWyd0aXRsZV9oaWRlX2hlbHAnXSA9ICdTaG93IHN5bWJvbHMgcmF0aGVyIHBsYWluIHRleHQgd2hlbiB1c2VyIGVudGVycyBwYXNzd29yZD8nOwokbGFuZ1sncGFzc3dvcmRfZG9lc19ub3RfbWF0Y2gnXSA9ICfQn9Cw0YDQvtC70Ywg0L3QtSDRgdC+0LLQv9Cw0LTQsNC10YIgJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICfQktC10YDQvdGD0YLRjNGB0Y8g0Log0LPQu9Cw0LLQvdC+0Lkg0YHRgtGA0LDQvdC40YbQtSDQmtC+0L3RgdGC0YDRg9C60YLQvtGA0LAg0YTQvtGA0LwnOwokbGFuZ1sndGl0bGVfaGVhZGVyc190b19tb2RpZnknXSA9ICdXaGljaCBlbWFpbCBoZWFkZXJzIHNob3VsZCB0aGlzIGlucHV0IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkJ10gPSAnRG8gbm90IGFjY2VwdCBibGFuayBzcGFjZSBhcyB2YWxpZCByZXNwb25zZSc7CiRsYW5nWyd0aXRsZV9ibGFua19pbnZhbGlkX2xvbmcnXSA9ICdJZiBhIGZpZWxkIGlzIHJlcXVpcmVkLCBjaGVja2luZyB0aGlzIHdpbGwgcmVxdWlyZSB0aGF0IHBlb3BsZSBwdXQgaW4gc29tZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgbm90IGp1c3Qgc3BhY2VzJzsKJGxhbmdbJ3RpdGxlX211c3Rfc2F2ZV9vcmRlciddID0gJ1lvdSBtdXN0IGNsaWNrIG9uZSBvZiB0aGUgInNhdmUiIGJ1dHRvbnMgdG8gbWFrZSB5b3VyIG5ldyBmaWVsZCBvcmRlciBwZXJtYW5lbnQuJzsKJGxhbmdbJ3RpdGxlX2h0bWw1J10gPSAnVXNlIEhUTUw1IHBsYWNlaG9sZGVyIHRleHQgaW5zdGVhZCBvZiBKYXZhc2NyaXB0JzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICfQnNC+0LTRg9C70YwgQ29tcGFueSBEaXJlY3Rvcnkg0L3QtSDQtNC+0YHRgtGD0L/QtdC9ISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICfQndC40LrQvtCz0LTQsCc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdHaXZlIHVzZXIgYSBjaG9pY2UgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAn0JLRgdC10LPQtNCwJzsKJGxhbmdbJ29wdGlvbl9mcm9tJ10gPSAnItCe0YIg0LrQvtCz0L4iIGVtYWlsINCw0LTRgNC10YEnOwokbGFuZ1snb3B0aW9uX3JlcGx5J10gPSAnIlJlcGx5LVRvIiBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAiRnJvbSIgYW5kICJSZXBseS1UbyIgZW1haWwgYWRkcmVzc2VzJzsKJGxhbmdbJ29wdGlvbl9kcm9wZG93biddID0gJ0Ryb3Bkb3duJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ1NlbGVjdCBMaXN0IChzaW5nbGUpJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ10gPSAnU2VsZWN0IExpc3QgKG11bHRpcGxlKSc7CiRsYW5nWydvcHRpb25fcmFkaW9ncm91cCddID0gJ1JhZGlvIEdyb3VwJzsKJGxhbmdbJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZSddID0gJ05vdGU6IE91dHB1dCB3aWxsIGJlIGluIHRoZSBmb3JtIG9mPGJyLz4iY29tcGFueSBuYW1lIj0+InZhbHVlIic7CiRsYW5nWyd0aXRsZV9waWNrX2NhdGVnb3JpZXMnXSA9ICdQaWNrIGEgY2F0ZWdvcnkgKG11bHRpcGxlKSc7CiRsYW5nWyd0aXRsZV9waWNrX2ZpZWxkZGVmJ10gPSAnUHVsbCBhIGZpZWxkIERlZmluaXRpb25cJ3MgdmFsdWUgKHNpbmdsZSkgPGVtPm9wdGlvbmFsPC9lbT4nOwokbGFuZ1sndGl0bGVfY2hvb3NlX3VzZXJfaW5wdXQnXSA9ICdDaG9vc2UgVXNlciBpbnB1dCc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcoQWxzbyB0YWtlIGEgbG9vayBhdCB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiBpZiB5b3Ugd2FudCB0byBzZXQgYSBVRFQgZm9yIGZvcm0gdmFsaWRhdGlvbiknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ0VuZCB5ZWFyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljJ10gPSAn0JTQsNC90L3Ri9C1INC40LvQuCDQu9C+0LPQuNC60LAgU21hcnR5LCDQutC+0YLQvtGA0YvQtSDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0L7RgtC/0YDQsNCy0LvQtdC90Ysg0YEg0Y3RgtC40Lwg0L/QvtC70LXQvCc7CiRsYW5nWyd0aXRsZV9maWVsZF9sb2dpY19sb25nJ10gPSAn0JzQvtC20LXRgiDQsdGL0YLRjCDQtNCw0L3QvdGL0LUgU21hcnR5LCBqYXZhc2NyaXB0INC40LvQuCDQtNGA0YPQs9C40LUg0LTQsNC90L3Ri9C1LCDQutC+0YLQvtGA0YvQtSDQstGLINGF0L7RgtC40YLQtSDQvtGC0L/RgNCw0LLQuNGC0Ywg0LLQvNC10YHRgtC1INGBINGN0YLQuNC8INC/0L7Qu9C10LwsPGJyIC8+0LHRg9C00YPRgiDQv9GA0L7RhdC+0LTQuNGC0Ywg0YfQtdGA0LXQtyDQutC+0LzQv9C40LvRj9GC0L7RgCBTbWFydHksINC90LUg0LfQsNCx0YPQtNGM0YLQtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0YLQtdCzIHtsaXRlcmFsfXsvbGl0ZXJhbH0g0LLQvNC10YHRgtC1INGBICZsdDtzY3JpcHQmZ3Q7Jmx0Oy9zY3JpcHQmZ3Q7Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzJ10gPSAn0J/QvtC00LrQu9GO0YfQsNGC0Ywg0L/QvtC00L/QuNGB0Lgo0LzQtdGC0LrQuCknOwokbGFuZ1sndGl0bGVfZmllbGRfaW5jbHVkZWxhYmVsc19oZWxwJ10gPSAnRW5hYmxpbmcgdGhpcyBpbmNsdWRlcyBsYWJlbHMgdG8gb3V0cHV0LiBleGFtcGxlIC0gbGFiZWw6IHZhbHVlLGxhYmVsMjogdmFsdWUyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3NpYmxpbmdzJ10gPSAnTGluayB0aGlzIGZpZWxkIHRvIGl0XCdzIHNpYmxpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ0Ryb3Bkb3duIGxpc3RzIGFsbCBzaWJsaW5ncyBvZiB0aGlzIGZpZWxkIGFuZCBhbGxvd3MgeW91IHRvIGxpbmsgdGhpcyBmaWVsZCB0byBvbmUgb2YgaXRcJ3Mgc2libGluZy4gTWFrZXMgcG9zc2libGUgY29udHJvbGxpbmcgdGhpcyBmaWVsZCB3aXRoIHNlbGVjdGVkIHNpYmxpbmcgY29udHJvbHMuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zJ10gPSAnSGlkZSBjb250cm9sIGJ1dHRvbnMnOwokbGFuZ1sndGl0bGVfZmllbGRfaGlkZWJ1dHRvbnNfaGVscCddID0gJ0hpZGVzIGZyb250ZW5kIGNvbnRyb2wgYnV0dG9ucyBvZiB0aGlzIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9ub3RlJ10gPSAnTm90ZSc7CiRsYW5nWyd0aXRsZV9jaGFuZ2luZ190cmlnZ2Vyc19yZWluZGV4J10gPSAnQ2hhbmdpbmcgYW55IG9mIHRoZSBhYm92ZSBmaWVsZHMgd2lsbCB0cmlnZ2VyIGEgcmVpbmRleCBvZiAqYWxsKiBzYXZlZCByZWNvcmRzLCBzbyBpdCBjb3VsZCB0YWtlIGEgd2hpbGUuJzsKJGxhbmdbJ2lsbGVnYWxfZmlsZSddID0gJ0F0dGVtcHRlZCB1cGxvYWQgb2YgaWxsZWdhbCBmaWxlIHR5cGUgKCVzKSBmcm9tICVzJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGUnXSA9ICdNYWtlIHJlY29yZHMgYWNjZXNzaWJsZSB0byBTZWFyY2ggTW9kdWxlJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaGFibGVfaGVscCddID0gJ0NoZWNraW5nIHRoaXMgd2lsbCBtYWtlIGFsbCBzdWJtaXR0ZWQgZGF0YSBhY2Nlc3NpYmxlIHRvIHRoZSBTZWFyY2ggTW9kdWxlLiBETyBOT1QgdXNlIHRoaXMgaWYgeW91IGVuY3J5cHQgeW91ciBkYXRhIC0tIHRoZSBpbmZvcm1hdGlvbiBnZXRzIGV4cG9zZWQgdG8gc2VhcmNoIHdoZXRoZXIgb3Igbm90IGl0IGlzIGVuY3J5cHRlZCEnOwokbGFuZ1sndXBsb2FkZWRfb3V0c2lkZV93ZWJyb290J10gPSAnJXMgKG91dHNpZGUgd2ViIHJvb3QpJzsKJGxhbmdbJ3RpdGxlX2Zicl9lZGl0J10gPSAnRWRpdGFibGUgaW4gRm9ybUJyb3dzZXIgQWRtaW4/JzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdVc2VyIGRlZmluZWQgdGFnIHJldHVybmVkIGFuIGVycm9yJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdVc2VyIGRlZmluZWQgdGFnICVzIHJldHVybmVkIGFuIGVycm9yLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAn0J/QoNCV0JTQo9Cf0KDQldCW0JTQldCd0JjQlSEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAiJXMiLic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91XCdyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggImRlZmF1bHQiIHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZSddID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0L3QuNC1INC40L3RgtC10YDRhNC10LnRgdCwINC80L7QtNGD0LvRjyc7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2VfbG9uZyddID0gJzxiPlRoaXMgZmllbGQgaXMgdXNlZCBhcyBhIGdhdGV3YXkgdG8gb3RoZXIgbW9kdWxlcyE8L2I+ClVzZSBpdCBieSBjcmVhdGluZyB5b3VyIGZvcm0gZWxlbWVudHMgaW4gdGhlIHRlbXBsYXRlcyBvZiB0aGUgb3RoZXIgbW9kdWxlKHMpIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlLCBhbmQgdXNpbmcgdGhlIDxzdHJvbmc+eyRGQmlkfTwvc3Ryb25nPiB0byB0aWUgaXQgYmFjayB0byBGb3JtQnVpbGRlci4gRm9yIGV4YW1wbGUsIHRvIGluY2x1ZGUgZm9ybSBvcHRpb25zIGJhc2VkIG9uIHRoZSBQcm9kdWN0cyBtb2R1bGUsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIGluIFByb2R1Y3RzOjxici8+CjxwcmU+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7YXNzaWduIHZhcj1NRGF0YSB2YWx1ZT1cJ1wnfQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9XCdcJ30KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9CgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPVwnOjpcJ3xleHBsb2RlOiRNRGF0YX0KCQkJe2lmICRNRGF0YVsxXT09JGVudHJ5LT5pZH0KCQkJCXthc3NpZ24gdmFyPUNkIHZhbHVlPVwnIGNoZWNrZWQ9ImNoZWNrZWQiXCd9CgkJCXsvaWZ9CgkJey9mb3JlYWNofQoJPGRpdiBjbGFzcz0iUHJvZHVjdERpcmVjdG9yeUl0ZW0iPgoJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9InskZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9IiBuYW1lPSJ7JEZCaWR9W10iIHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgwqN7JGVudHJ5LT5wcmljZX0gICAgCgk8L2Rpdj4Key9mb3JlYWNofQo8L3ByZT4KPGJyLz4Kd2hlcmUgaW4gdGhlIGlucHV0IGJlbG93IHlvdSBwdXQgc29tZXRoaW5nIGxpa2UgPHN0cm9uZz57UHJvZHVjdHMgY2F0ZWdvcnk9ImNhdCIgc3VtbWFyeXRlbXBsYXRlPSJZb3VyX0ZCX3RlbXBsYXRlIn08L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0YHQstC+0Lkg0YLQtdCzJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ9GP0L3QstCw0YDRjCc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAn0YTQtdCy0YDQsNC70YwnOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ9C80LDRgNGCJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICfQsNC/0YDQtdC70YwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICfQvNCw0LknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAn0LjRjtC90YwnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAn0LjRjtC70YwnOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICfQsNCy0LPRg9GB0YInOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICfRgdC10L3RgtGP0LHRgNGMJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ9C+0LrRgtGP0LHRgNGMJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICfQvdC+0Y/QsdGA0YwnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ9C00LXQutCw0LHRgNGMJzsKJGxhbmdbJ0FGJ10gPSAn0JDRhNCz0LDQvdC40YHRgtCw0L0nOwokbGFuZ1snQVgnXSA9ICfQkNC70LDQvdC00YHQutC40LUg0L7RgdGC0YDQvtCy0LAnOwokbGFuZ1snQUwnXSA9ICfQkNC70LHQsNC90LjRjyc7CiRsYW5nWydEWiddID0gJ9CQ0LvQttC40YAnOwokbGFuZ1snQVMnXSA9ICfQkNC80LXRgNC40LrQsNC90YHQutC+0LUg0KHQsNC80L7QsCc7CiRsYW5nWydBRCddID0gJ9CQ0L3QtNC+0YDRgNCwJzsKJGxhbmdbJ0FPJ10gPSAn0JDQvdCz0L7Qu9CwJzsKJGxhbmdbJ0FJJ10gPSAn0JDQvdCz0LjQu9GM0Y8nOwokbGFuZ1snQVEnXSA9ICfQkNC90YLQsNGA0LrRgtC40LTQsCc7CiRsYW5nWydBRyddID0gJ9CQ0L3RgtC40LPRg9CwINC4INCR0LDRgNCx0YPQtNCwJzsKJGxhbmdbJ0FSJ10gPSAn0JDRgNCz0LXQvdGC0LjQvdCwJzsKJGxhbmdbJ0FNJ10gPSAn0JDRgNC80LXQvdC40Y8nOwokbGFuZ1snQVcnXSA9ICfQkNGA0YPQsdCwJzsKJGxhbmdbJ0FVJ10gPSAn0JDQstGB0YLRgNCw0LvQuNGPJzsKJGxhbmdbJ0FUJ10gPSAn0JDQstGB0YLRgNC40Y8nOwokbGFuZ1snQVonXSA9ICfQkNC30LXRgNCx0LDQudC00LbQsNC9JzsKJGxhbmdbJ0JTJ10gPSAn0JHQsNCz0LDQvNGB0LrQuNC1INC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ0JIJ10gPSAn0JHQsNGF0YDQtdC50L0nOwokbGFuZ1snQkInXSA9ICfQkdCw0YDQsdCw0LTQvtGBJzsKJGxhbmdbJ0JEJ10gPSAn0JHQsNC90LPQu9Cw0LTQtdGIJzsKJGxhbmdbJ0JZJ10gPSAn0JHQtdC70LDRgNGD0YHRjCc7CiRsYW5nWydCRSddID0gJ9CR0LXQu9GM0LPQuNGPJzsKJGxhbmdbJ0JaJ10gPSAn0JHQtdC70LjQtyc7CiRsYW5nWydCSiddID0gJ9CR0LXQvdC40L0nOwokbGFuZ1snQk0nXSA9ICfQkdC10YDQvNGD0LTRgdC60LjQtSDQvtGB0YLRgNC+0LLQsCc7CiRsYW5nWydCVCddID0gJ9CR0YPRgtCw0L0nOwokbGFuZ1snQlcnXSA9ICfQkdC+0YLRgdCy0LDQvdCwJzsKJGxhbmdbJ0JPJ10gPSAn0JHQvtC70LjQstC40Y8nOwokbGFuZ1snQkEnXSA9ICfQkdC+0YHQvdC40Y8g0Lgg0JPQtdGA0YbQtdCz0L7QstC40L3QsCc7CiRsYW5nWydCViddID0gJ9Ce0YHRgtGA0L7QsiDQkdGD0LLQtSc7CiRsYW5nWydCUiddID0gJ9CR0YDQsNC30LjQu9C40Y8nOwokbGFuZ1snSU8nXSA9ICfQkdGA0LjRgtCw0L3RgdC60LDRjyDRgtC10YDRgNC40YLQvtGA0LjRjyDQsiDQmNC90LTQuNC50YHQutC+0Lwg0L7QutC10LDQvdC1JzsKJGxhbmdbJ0JOJ10gPSAn0JHRgNGD0L3QtdC5LdCU0LDRgNGD0YHRgdCw0LvQsNC8JzsKJGxhbmdbJ0JHJ10gPSAn0JHQvtC70LPQsNGA0LjRjyc7CiRsYW5nWydCRiddID0gJ9CR0YPRgNC60LjQvdCwLdCk0LDRgdC+JzsKJGxhbmdbJ0JJJ10gPSAn0JHRg9GA0YPQvdC00LgnOwokbGFuZ1snS0gnXSA9ICfQmtCw0LzQsdC+0LTQttCwJzsKJGxhbmdbJ0NNJ10gPSAn0JrQsNC80LXRgNGD0L0nOwokbGFuZ1snQ0EnXSA9ICfQmtCw0L3QsNC00LAnOwokbGFuZ1snQ1YnXSA9ICfQmtCw0LHQvi3QktC10YDQtNC1JzsKJGxhbmdbJ0tZJ10gPSAn0JrQsNC50LzQsNC90L7QstGLINC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ0NGJ10gPSAn0KbQtdC90YLRgNCw0LvRjNC90L4t0JDRhNGA0LjQutCw0L3RgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsCc7CiRsYW5nWydURCddID0gJ9Cn0LDQtCc7CiRsYW5nWydDTCddID0gJ9Cn0LjQu9C4JzsKJGxhbmdbJ0NOJ10gPSAn0JrQuNGC0LDQuSc7CiRsYW5nWydDWCddID0gJ9Ce0YHRgtGA0L7QsiDQoNC+0LbQtNC10YHRgtCy0LAnOwokbGFuZ1snQ0MnXSA9ICfQmtC+0LrQvtGB0L7QstGL0LUgKNCa0LjQu9C40L3Qsykg0L7RgdGC0YDQvtCy0LAnOwokbGFuZ1snQ08nXSA9ICfQmtC+0LvRg9C80LHQuNGPJzsKJGxhbmdbJ0tNJ10gPSAn0JrQvtC80L7RgNGB0LrQuNC1INC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ0NHJ10gPSAn0JrQvtC90LPQvic7CiRsYW5nWydDRCddID0gJ9CU0LXQvNC+0LrRgNCw0YLQuNGH0LXRgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsCDQmtC+0L3Qs9C+JzsKJGxhbmdbJ0NLJ10gPSAn0J7RgdGC0YDQvtCy0LAg0JrRg9C60LAnOwokbGFuZ1snQ1InXSA9ICfQmtC+0YHRgtCwLdCg0LjQutCwJzsKJGxhbmdbJ0NJJ10gPSAn0JRcJ9CY0LLRg9Cw0YAgKNCR0LXRgNC10LMg0KHQu9C+0L3QvtCy0L7QuSDQmtC+0YHRgtC4KSc7CiRsYW5nWydIUiddID0gJ9Cl0L7RgNCy0LDRgtC40Y8gKEhydmF0c2thKSc7CiRsYW5nWydDVSddID0gJ9Ca0YPQsdCwJzsKJGxhbmdbJ0NZJ10gPSAn0JrQuNC/0YAnOwokbGFuZ1snQ1onXSA9ICfQp9C10YjRgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsCc7CiRsYW5nWydESyddID0gJ9CU0LDQvdC40Y8nOwokbGFuZ1snREonXSA9ICfQlNC20LjQsdGD0YLQuCc7CiRsYW5nWydETSddID0gJ9CU0L7QvNC40L3QuNC60LAnOwokbGFuZ1snRE8nXSA9ICfQlNC+0LzQuNC90LjQutCw0L3RgdC60LDRjyDQoNC10YHQv9GD0LHQu9C40LrQsCc7CiRsYW5nWydUUCddID0gJ9CS0L7RgdGC0L7Rh9C90YvQuSDQotC40LzQvtGAJzsKJGxhbmdbJ0VDJ10gPSAn0K3QutCy0LDQtNC+0YAnOwokbGFuZ1snRUcnXSA9ICfQldCz0LjQv9C10YInOwokbGFuZ1snU1YnXSA9ICfQodCw0LvRjNCy0LDQtNC+0YAnOwokbGFuZ1snR1EnXSA9ICfQrdC60LLQsNGC0L7RgNC40LDQu9GM0L3QsNGPINCT0LLQuNC90LXRjyc7CiRsYW5nWydFUiddID0gJ9Ct0YDQuNGC0YDQtdGPJzsKJGxhbmdbJ0VFJ10gPSAn0K3RgdGC0L7QvdC40Y8nOwokbGFuZ1snRVQnXSA9ICfQrdGE0LjQvtC/0LjRjyc7CiRsYW5nWydGSyddID0gJ9Ck0L7Qu9C60LvQtdC90LTRgdC60LjQtSAo0JzQsNC70YzQstC40L3RgdC60LjQtSkg0L7RgdGC0YDQvtCy0LAnOwokbGFuZ1snRk8nXSA9ICfQpNCw0YDQtdGA0YHQutC40LUg0L7RgdGC0YDQvtCy0LAnOwokbGFuZ1snRkonXSA9ICfQpNC40LTQttC4JzsKJGxhbmdbJ0ZJJ10gPSAn0KTQuNC90LvRj9C90LTQuNGPJzsKJGxhbmdbJ0ZSJ10gPSAn0KTRgNCw0L3RhtC40Y8nOwokbGFuZ1snRlgnXSA9ICfQpNGA0LDQvdGG0LjRjywg0LzQuNGC0YDQvtC/0L7Qu9C40YInOwokbGFuZ1snR0YnXSA9ICfQk9C10YDQvdGB0LgnOwokbGFuZ1snUEYnXSA9ICfQpNGA0LDQvdGG0YPQt9GB0LrQsNGPINCf0L7Qu9C40L3QtdC30LjRjyc7CiRsYW5nWydURiddID0gJ9Ck0YDQsNC90YbRg9C30YHQutC40LUg0Y7QttC90YvQtSDRgtC10YDRgNC40YLQvtGA0LjQuCc7CiRsYW5nWydNSyddID0gJ0YuWS5SLk8uTS4gKNCc0LDQutC10LTQvtC90LjRjyknOwokbGFuZ1snR0EnXSA9ICfQk9Cw0LHQvtC9JzsKJGxhbmdbJ0dNJ10gPSAn0JPQsNC80LHQuNGPJzsKJGxhbmdbJ0dFJ10gPSAn0JPRgNGD0LfQuNGPJzsKJGxhbmdbJ0RFJ10gPSAn0JPQtdGA0LzQsNC90LjRjyc7CiRsYW5nWydHSCddID0gJ9CT0LDQvdCwJzsKJGxhbmdbJ0dJJ10gPSAn0JPQuNCx0YDQsNC70YLQsNGAJzsKJGxhbmdbJ0dCJ10gPSAn0JLQtdC70LjQutC+0LHRgNC40YLQsNC90LjRjyAoVUspJzsKJGxhbmdbJ0dSJ10gPSAn0JPRgNC10YbQuNGPJzsKJGxhbmdbJ0dMJ10gPSAn0JPRgNC10L3Qu9Cw0L3QtNC40Y8nOwokbGFuZ1snR0QnXSA9ICfQk9GA0LXQvdCw0LTQsCc7CiRsYW5nWydHUCddID0gJ9CT0LLQsNC00LXQu9GD0L/QsCc7CiRsYW5nWydHVSddID0gJ9CT0YPQsNC8JzsKJGxhbmdbJ0dUJ10gPSAn0JPQstCw0YLQtdC80LDQu9CwJzsKJGxhbmdbJ0dOJ10gPSAn0JPQstC40L3QtdGPJzsKJGxhbmdbJ0dXJ10gPSAn0JPQstC40L3QtdGPLdCR0LjRgdCw0YMnOwokbGFuZ1snR1knXSA9ICfQk9Cw0LnQsNC90LAnOwokbGFuZ1snSFQnXSA9ICfQk9Cw0LjRgtC4JzsKJGxhbmdbJ0hNJ10gPSAn0KXQtdGA0LQg0Lgg0JzQsNC60LTQvtC90LDQu9GM0LQnOwokbGFuZ1snSE4nXSA9ICfQk9C+0L3QtNGD0YDQsNGBJzsKJGxhbmdbJ0hLJ10gPSAn0JPQvtC90LrQvtC90LMnOwokbGFuZ1snSFUnXSA9ICfQktC10L3Qs9GA0LjRjyc7CiRsYW5nWydJUyddID0gJ9CY0YHQu9Cw0L3QtNC40Y8nOwokbGFuZ1snSU4nXSA9ICfQmNC90LTQuNGPJzsKJGxhbmdbJ0lEJ10gPSAn0JjQvdC00L7QvdC10LfQuNGPJzsKJGxhbmdbJ0lSJ10gPSAn0JjRgNCw0L0nOwokbGFuZ1snSVEnXSA9ICfQmNGA0LDQuic7CiRsYW5nWydJRSddID0gJ9CY0YDQu9Cw0L3QtNC40Y8nOwokbGFuZ1snSUwnXSA9ICfQmNC30YDQsNC40LvRjCc7CiRsYW5nWydJTSddID0gJ9Ce0YHRgtGA0L7QsiDQnNGN0L0nOwokbGFuZ1snSVQnXSA9ICfQmNGC0LDQu9C40Y8nOwokbGFuZ1snSkUnXSA9ICfQlNC20LXRgNGB0LgnOwokbGFuZ1snSk0nXSA9ICfQr9C80LDQudC60LAnOwokbGFuZ1snSlAnXSA9ICfQr9C/0L7QvdC40Y8nOwokbGFuZ1snSk8nXSA9ICfQmNC+0YDQtNCw0L3QuNGPJzsKJGxhbmdbJ0taJ10gPSAn0JrQsNC30LDRhdGB0YLQsNC9JzsKJGxhbmdbJ0tFJ10gPSAn0JrQtdC90LjRjyc7CiRsYW5nWydLSSddID0gJ9Ca0LjRgNC40LHQsNGC0LgnOwokbGFuZ1snS1AnXSA9ICfQmtC+0YDQtdGPIChOb3J0aCknOwokbGFuZ1snS1InXSA9ICfQmtC+0YDQtdGPIChTb3V0aCknOwokbGFuZ1snS1cnXSA9ICfQmtGD0LLQtdC50YInOwokbGFuZ1snS0cnXSA9ICfQmtGL0YDQs9GL0LfRgdGC0LDQvSc7CiRsYW5nWydMQSddID0gJ9Cb0LDQvtGBJzsKJGxhbmdbJ0xWJ10gPSAn0JvQsNGC0LLQuNGPJzsKJGxhbmdbJ0xCJ10gPSAn0JvQuNCy0LDQvSc7CiRsYW5nWydMSSddID0gJ9Cb0LjRhdGC0LXQvdGI0YLQtdC50L0nOwokbGFuZ1snTFInXSA9ICfQm9C40LHQtdGA0LjQuCc7CiRsYW5nWydMWSddID0gJ9Cb0LjQstC40Y8nOwokbGFuZ1snTFMnXSA9ICfQm9C10YHQvtGC0L4nOwokbGFuZ1snTFQnXSA9ICfQm9C40YLQstCwJzsKJGxhbmdbJ0xVJ10gPSAn0JvRjtC60YHQtdC80LHRg9GA0LMnOwokbGFuZ1snTU8nXSA9ICfQnNCw0LrQsNC+JzsKJGxhbmdbJ01HJ10gPSAn0JzQsNC00LDQs9Cw0YHQutCw0YAnOwokbGFuZ1snTVcnXSA9ICfQnNCw0LvQsNCy0LgnOwokbGFuZ1snTVknXSA9ICfQnNCw0LvQsNC50LfQuNGPJzsKJGxhbmdbJ01WJ10gPSAn0JzQsNC70YzQtNC40LLRiyc7CiRsYW5nWydNTCddID0gJ9Cc0LDQu9C4JzsKJGxhbmdbJ01UJ10gPSAn0JzQsNC70YzRgtCwJzsKJGxhbmdbJ01IJ10gPSAn0JzQsNGA0YjQsNC70LvQvtCy0Ysg0L7RgdGC0YDQvtCy0LAnOwokbGFuZ1snTVEnXSA9ICfQnNCw0YDRgtC40L3QuNC60LAnOwokbGFuZ1snTVInXSA9ICfQnNCw0LLRgNC40YLQsNC90LjRjyc7CiRsYW5nWydNVSddID0gJ9Cc0LDQstGA0LjQutC40LknOwokbGFuZ1snWVQnXSA9ICfQnNCw0LnQvtGC0YLQsCc7CiRsYW5nWydNWCddID0gJ9Cc0LXQutGB0LjQutCwJzsKJGxhbmdbJ0ZNJ10gPSAn0JzQuNC60YDQvtC90LXQt9C40Y8nOwokbGFuZ1snTUMnXSA9ICfQnNC+0L3QsNC60L4nOwokbGFuZ1snTUQnXSA9ICfQnNC+0LvQtNC+0LLQsCc7CiRsYW5nWydNQSddID0gJ9Cc0L7RgNC+0LrQutC+JzsKJGxhbmdbJ01OJ10gPSAn0JzQvtC90LPQvtC70LjRjyc7CiRsYW5nWydNUyddID0gJ9Cc0L7QvdGC0YHQtdGA0YDQsNGCJzsKJGxhbmdbJ01aJ10gPSAn0JzQvtC30LDQvNCx0LjQuic7CiRsYW5nWydNTSddID0gJ9Cc0YzRj9C90LzRiyc7CiRsYW5nWydOQSddID0gJ9Cd0LDQvNC40LHQuNGPJzsKJGxhbmdbJ05SJ10gPSAn0J3QsNGD0YDRgyc7CiRsYW5nWydOUCddID0gJ9Cd0LXQv9Cw0LsnOwokbGFuZ1snTkwnXSA9ICfQndC40LTQtdGA0LvQsNC90LTRiyc7CiRsYW5nWydBTiddID0gJ9Cd0LjQtNC10YDQu9Cw0L3QtNGB0LrQuNC1INCQ0L3RgtC40LvRjNGB0LrQuNC1INC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ05UJ10gPSAn0J3QtdC50YLRgNCw0LvRjNC90LDRjyDQt9C+0L3QsCc7CiRsYW5nWydOQyddID0gJ9Cd0L7QstCw0Y8g0JrQsNC70LXQtNC+0L3QuNGPJzsKJGxhbmdbJ05aJ10gPSAn0J3QvtCy0LDRjyDQl9C10LvQsNC90LTQuNGPICjQkNC+0YLQtdCw0YDQvtCwKSc7CiRsYW5nWydOSSddID0gJ9Cd0LjQutCw0YDQsNCz0YPQsCc7CiRsYW5nWydORSddID0gJ9Cd0LjQs9C10YAnOwokbGFuZ1snTkcnXSA9ICfQndC40LPQtdGA0LjRjyc7CiRsYW5nWydOVSddID0gJ9Cd0LjRg9GNJzsKJGxhbmdbJ05GJ10gPSAn0J7RgdGC0YDQvtCyINCd0L7RgNGE0L7Qu9C6JzsKJGxhbmdbJ01QJ10gPSAn0KHQtdCy0LXRgNC90YvQtSDQnNCw0YDQuNCw0L3RgdC60LjQtSDQvtGB0YLRgNC+0LLQsCc7CiRsYW5nWydOTyddID0gJ9Cd0L7RgNCy0LXQs9C40Y8nOwokbGFuZ1snT00nXSA9ICfQntC80LDQvSc7CiRsYW5nWydQSyddID0gJ9Cf0LDQutC40YHRgtCw0L0nOwokbGFuZ1snUFcnXSA9ICfQn9Cw0LvQsNGDJzsKJGxhbmdbJ1BTJ10gPSAn0J/QsNC70LXRgdGC0LjQvdGB0LrQsNGPINGC0LXRgNGA0LjRgtC+0YDQuNGPJzsKJGxhbmdbJ1BBJ10gPSAn0J/QsNC90LDQvNCwJzsKJGxhbmdbJ1BHJ10gPSAn0J/QsNC/0YPQsC3QndC+0LLQsNGPINCT0LLQuNC90LXRjyc7CiRsYW5nWydQWSddID0gJ9Cf0LDRgNCw0LPQstCw0LknOwokbGFuZ1snUEUnXSA9ICfQn9C10YDRgyc7CiRsYW5nWydQSCddID0gJ9Ck0LjQu9C40L/Qv9C40L3Riyc7CiRsYW5nWydQTiddID0gJ9Cf0LjRgtC60Y3RgNC9JzsKJGxhbmdbJ1BMJ10gPSAn0J/QvtC70YzRiNCwJzsKJGxhbmdbJ1BUJ10gPSAn0J/QvtGA0YLRg9Cz0LDQu9C40Y8nOwokbGFuZ1snUFInXSA9ICfQn9GD0Y3RgNGC0L4g0KDQuNC60L4nOwokbGFuZ1snUUEnXSA9ICfQmtCw0YLQsNGAJzsKJGxhbmdbJ1JFJ10gPSAn0JLQvtGB0YHQvtC10LTQuNC90LXQvdC40LUnOwokbGFuZ1snUk8nXSA9ICfQoNGD0LzRi9C90LjRjyc7CiRsYW5nWydSVSddID0gJ9Cg0L7RgdGB0LjRj9GB0LrQsNGPINCk0LXQtNC10YDQsNGG0LjRjyc7CiRsYW5nWydSVyddID0gJ9Cg0YPQsNC90LTQsCc7CiRsYW5nWydHUyddID0gJ1MuIEdlb3JnaWEgYW5kIFMuIFNhbmR3aWNoIElzbHMuJzsKJGxhbmdbJ0tOJ10gPSAn0KHQtdC90YIt0JrQuNGC0YEg0Lgg0J3QtdCy0LjRgSc7CiRsYW5nWydMQyddID0gJ9Ch0LXQvdGCLdCb0Y7RgdC40Y8nOwokbGFuZ1snVkMnXSA9ICdTYWludCBWaW5jZW50ICYgdGhlIEdyZW5hZGluZXMnOwokbGFuZ1snV1MnXSA9ICfQodCw0LzQvtCwJzsKJGxhbmdbJ1NNJ10gPSAn0KHQsNC9IC0g0JzQsNGA0LjQvdC+JzsKJGxhbmdbJ1NUJ10gPSAn0KHQsNC9LdCi0L7QvNC1INC4INCf0YDQuNC90YHQuNC/0LgnOwokbGFuZ1snU0EnXSA9ICfQodCw0YPQtNC+0LLRgdC60LDRjyDQkNGA0LDQstC40Y8nOwokbGFuZ1snU04nXSA9ICfQodC10L3QtdCz0LDQuyc7CiRsYW5nWydTQyddID0gJ9Ch0LXQudGI0LXQu9GM0YHQutC40LUg0L7RgdGC0YDQvtCy0LAnOwokbGFuZ1snU0wnXSA9ICfQodGM0LXRgNGA0LAt0JvQtdC+0L3QtSc7CiRsYW5nWydTRyddID0gJ9Ch0LjQvdCz0LDQv9GD0YAnOwokbGFuZ1snU0knXSA9ICfQodC70L7QstC10L3QuNGPJzsKJGxhbmdbJ1NLJ10gPSAn0KHQu9C+0LLQsNGG0LrQsNGPINCg0LXRgdC/0YPQsdC70LjQutCwJzsKJGxhbmdbJ1NCJ10gPSAn0KHQvtC70L7QvNC+0L3QvtCy0Ysg0J7RgdGC0YDQvtCy0LAnOwokbGFuZ1snU08nXSA9ICfQodC+0LzQsNC70LgnOwokbGFuZ1snWkEnXSA9ICfQrtC20L3QsNGPINCQ0YTRgNC40LrQsCc7CiRsYW5nWydFUyddID0gJ9CY0YHQv9Cw0L3QuNGPJzsKJGxhbmdbJ0xLJ10gPSAn0KjRgNC4LdCb0LDQvdC60LAnOwokbGFuZ1snU0gnXSA9ICfQodCyLiDQldC70LXQvdGLJzsKJGxhbmdbJ1BNJ10gPSAn0KHQtdC9LdCf0YzQtdGAINC4INCc0LjQutC10LvQvtC9JzsKJGxhbmdbJ1NEJ10gPSAn0KHRg9C00LDQvSc7CiRsYW5nWydTUiddID0gJ9Ch0YPRgNC40L3QsNC8JzsKJGxhbmdbJ1NKJ10gPSAnU3ZhbGJhcmQgJiBKYW4gTWF5ZW4gSXNsYW5kcyc7CiRsYW5nWydTWiddID0gJ9Ch0LLQsNC30LjQu9C10L3QtCc7CiRsYW5nWydTRSddID0gJ9Co0LLQtdGG0LjRjyc7CiRsYW5nWydDSCddID0gJ9Co0LLQtdC50YbQsNGA0LjRjyc7CiRsYW5nWydTWSddID0gJ9Ch0LjRgNC40Y8nOwokbGFuZ1snVFcnXSA9ICfQotCw0LnQstCw0L3RjCc7CiRsYW5nWydUSiddID0gJ9Ci0LDQtNC20LjQutC40YHRgtCw0L0nOwokbGFuZ1snVFonXSA9ICfQotCw0L3Qt9Cw0L3QuNGPJzsKJGxhbmdbJ1RIJ10gPSAn0KLQsNC50LvQsNC90LQnOwokbGFuZ1snVEcnXSA9ICfQotC+0LPQvic7CiRsYW5nWydUSyddID0gJ9Ci0L7QutC10LvQsNGDJzsKJGxhbmdbJ1RPJ10gPSAn0KLQvtC90LPQsCc7CiRsYW5nWydUVCddID0gJ9Ci0YDQuNC90LjQtNCw0LQg0Lgg0KLQvtCx0LDQs9C+JzsKJGxhbmdbJ1ROJ10gPSAn0KLRg9C90LjRgSc7CiRsYW5nWydUUiddID0gJ9Ci0YPRgNGG0LjRjyc7CiRsYW5nWydUTSddID0gJ9Ci0YPRgNC60LzQtdC90LjRgdGC0LDQvSc7CiRsYW5nWydUQyddID0gJ9Ce0YHRgtGA0L7QstCwINCi0LXRgNC60YEg0Lgg0JrQsNC50LrQvtGBJzsKJGxhbmdbJ1RWJ10gPSAn0KLRg9Cy0LDQu9GDJzsKJGxhbmdbJ1VHJ10gPSAn0KPQs9Cw0L3QtNCwJzsKJGxhbmdbJ1VBJ10gPSAn0KPQutGA0LDQuNC90LAnOwokbGFuZ1snQUUnXSA9ICfQntCx0YrQtdC00LjQvdC10L3QvdGL0LUg0JDRgNCw0LHRgdC60LjQtSDQrdC80LjRgNCw0YLRiyc7CiRsYW5nWydVSyddID0gJ9Ch0L7QtdC00LjQvdC10L3QvdC+0LUg0JrQvtGA0L7Qu9C10LLRgdGC0LLQvic7CiRsYW5nWydVUyddID0gJ9Ch0L7QtdC00LjQvdC10L3QvdGL0LUg0KjRgtCw0YLRiyc7CiRsYW5nWydVTSddID0gJ9Ch0KjQkCDQktC90LXRiNC90LjQtSDQvNCw0LvRi9C1INC+0YHRgtGA0L7QstCwJzsKJGxhbmdbJ1VZJ10gPSAn0KPRgNGD0LPQstCw0LknOwokbGFuZ1snVVonXSA9ICfQo9C30LHQtdC60LjRgdGC0LDQvSc7CiRsYW5nWydWVSddID0gJ9CS0LDQvdGD0LDRgtGDJzsKJGxhbmdbJ1ZBJ10gPSAn0JPQvtGB0YPQtNCw0YDRgdGC0LLQvi3Qs9C+0YDQvtC0INCS0LDRgtC40LrQsNC9ICjQodCy0Y/RgtC10LnRiNC40Lkg0J/RgNC10YHRgtC+0LspJzsKJGxhbmdbJ1ZFJ10gPSAn0JLQtdC90LXRgdGD0Y3Qu9CwJzsKJGxhbmdbJ1ZOJ10gPSAn0JLRjNC10YLQvdCw0LwnOwokbGFuZ1snVkcnXSA9ICfQktC40YDQs9C40L3RgdC60LjQtSDQvtGB0YLRgNC+0LLQsCAo0JHRgNC40YLQsNC90YHQutC40LUpJzsKJGxhbmdbJ1ZJJ10gPSAn0JLQuNGA0LPQuNC90YHQutC40LUg0L7RgdGC0YDQvtCy0LAgKNCh0KjQkCknOwokbGFuZ1snV0YnXSA9ICfQntGB0YLRgNC+0LLQsCDQo9C+0LvQu9C40YEg0Lgg0KTRg9GC0YPQvdCwJzsKJGxhbmdbJ0VIJ10gPSAn0JfQsNC/0LDQtNC90LDRjyDQodCw0YXQsNGA0LAnOwokbGFuZ1snWUUnXSA9ICfQmdC10LzQtdC9JzsKJGxhbmdbJ1lVJ10gPSAn0K7Qs9C+0YHQu9Cw0LLQuNGPJzsKJGxhbmdbJ1pNJ10gPSAn0JfQsNC80LHQuNGPJzsKJGxhbmdbJ1pXJ10gPSAn0JfQuNC80LHQsNCx0LLQtSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPC91bD4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ9CY0LzRjyDRhNC+0YDQvNGLJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnSUQg0YTQvtGA0LzRiyDQtNC70Y8g0LLQvdGD0YLRgNC10L3QvdC40YUg0L7Qv9C10YDQsNGG0LjQuSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ9Ce0LHRidC40LUg0L/QsNGA0LDQvNC10YLRgNGLINC00LvRjyDQstC90YPRgtGA0LXQvdC90LjRhSDQvtC/0LXRgNCw0YbQuNC5JzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+0J/QtdGA0LXQvNC10L3QvdGL0LUg0YjQsNCx0LvQvtC90LAg0YTQvtGA0LzRizwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdVwnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmIzEyMzskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdFwncyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaGVscCB0ZXh0PC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZFwncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwncyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9ImZvbyIpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5hbGlhczwvdGQ+PHRkPnRoZSBhbGlhcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlkPC90ZD48dGQ+dGhlIGludGVybmFsIC8gb3BhcXVlIGlkIEZvcm1CdWlsZGVyIHVzZXMgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkKYXJlIGluIHRoZSAkcHJldmlvdXMgYXJyYXksIG9yIGFjY2Vzc2libGUgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICYjMTIzOyRteWZpZWxkLT52YWx1ZX0gKS4KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAicGFnZSB4IG9mIHkiIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPgo8dHI+PHRkPmluX2Zvcm1icm93c2VyPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPgo8dHI+PHRkPmluX2FkbWluPC90ZD48dGQ+MSBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCB2aWEgRm9ybUJyb3dzZXIgYWRtaW48L3RkPjwvdHI+Cjx0cj48dGQ+ZmJyX2lkPC90ZD48dGQ+UmVzcG9uc2UgSUQgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdVwnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+Cic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICdGb3JtQnVpbGRlciDRg9GB0YLQsNC90L7QstC70LXQvS4g0J/QvtC20LDQu9GD0LnRgdGC0LAsINC+0LfQvdCw0LrQvtC80YzRgtC10YHRjCDRgSAg0LTQvtC60YPQvNC10L3RgtCw0YbQuNC10Lkg0L3QsCDRgdGC0YDQsNC90LjRhtC1INGB0L/RgNCw0LLQutC4ICDQvNC+0LTRg9C70Y8uJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZm9ybXMgKGluIGZhY3QsIGl0XCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aAp0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdVwncmUKcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPgoKPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPgo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQpDb25maWd1cmF0aW9uLjwvcD4KCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcwpzb21ldGhpbmcgbGlrZSB7Rm9ybUJ1aWxkZXIgZm9ybT1cJ3NhbXBsZV9mb3JtXCd9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZVwncyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5CmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCIpIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKFwnKSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm1cJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3VcJ2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+CjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAiZmFzdCBmaWVsZCBhZGRlciIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPgo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+CjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pgo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyXCdzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCJQcmV2aW91cyIsICJuZXh0IiwgInN1Ym1pdCIpLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybVwncyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+CjxwPlVubGVzcyB5b3VcJ3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvblwndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkIFwnRGlzcGxheSAiU3VibWlzc2lvbiBUZW1wbGF0ZSIsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdVwncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3VcJ3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lgo8L3A+Cgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXRcJ3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdFwncyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICJSZXF1aXJlZCIsIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+CjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cKY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICJ2aWV3IHNvdXJjZSIgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbgp3cml0ZSB5b3VyIENTUy48L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0cwo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPgo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPgo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4KPGxpPkJ1dHRvbi4gVGhpcyBkb2Vuc1wndCBkbyBhbnl0aGluZywgYnV0IHlvdSBjYW4gaG9vayBpdCBpbnRvIHNvbWUgSmF2YXNjcmlwdC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0XCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0XCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+UGFzc3dvcmQuIFRoaXMgaXMgYW4gYXN0ZXJpc2tlZC1vdXQgdGV4dCBmaWVsZCwgdXNlZnVsIGZvciBwYXNzd29yZHMuPC9saT4KPGxpPlBhc3N3b3JkIEFnYWluICh2ZXJpZnkpLiBUaGlzIGlzIGEgZmllbGQgdGhhdCBtdXN0IG1hdGNoIGEgUGFzc3dvcmQgZmllbGQgZm9yIHN1Ym1pc3Npb24KdG8gc3VjY2VlZC48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCAiRnJvbSBOYW1lIiBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgIlN1YmplY3QiIGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91XCdyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwncmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjxsaT4tVXNlciBUYWcuIFRoaXMgY2FsbHMgdGhlIHNwZWNpZmllZCBVc2VyIERlZmluZWQgVGFnLCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8L3VsPjwvbGk+CjxsaT4tTW9kdWxlIEluY2x1ZGUgVGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgb3RoZXIgbW9kdWxlIG91dHB1dCBpbnRvIHlvdXIgZm9ybSwgZS5nLiwgYSBsaXN0IG9mIHByb2R1Y3RzIGZyb20gdGhlIFByb2R1Y3RzIG1vZHVsZS48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1tcJ2ZpZWxkX25hbWVcJ10sIGFuZCBhcyAkcGFyYW1zW1wnZmllbGRfYWxpYXNcJ10gKGlmIGRlZmluZWQpLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICJEaXJlY3RvciIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCwgYW5kIHNlbmQgY29weS4gVGhpcyB3b3JrcyBsaWtlIHRoZSBFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCBkZXNjcmliZWQgYWJvdmUsIGJ1dCBpdCBwcm92aWRlcyBvcHRpb25zIGZvciBzZW5kaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0cyB0byB0aGUgdXNlci48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUKZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgcmVzdWx0cyBiYXNlZCBvbiBmcm9udGVuZCBmaWVsZHMuIFRoaXMgZmllbGQgaXMgYW4gZW1haWwgZGlzcG9zaXRpb24gdGhhdCBhbGxvd3MgZm9ybSBmaWVsZHNcJyB1c2VyIGlucHV0IHRvIHNwZWNpZnkgdGhlIEVtYWlsIFN1YmplY3QsICJGcm9tIE5hbWUiLCAiRnJvbSBBZGRyZXNzIiwgYW5kIERlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiA8c3Ryb25nPkRlcHJlY2F0ZWQuPC9zdHJvbmc+IFVzZSBTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgaW5zdGVhZCEgVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPgo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgImFwcHJvdmVkLCIgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgIm91dHB1dCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGVcJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIGEgVW5pcXVlIEZsYXQgRmlsZSBmb3IgZWFjaCBzdWJtaXNzaW9uLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIHRvIGEgdW5pcXVlIHRleHQgZmlsZSBmb3IgZWFjaCBmb3JtIHN1Ym1pc3Npb24uCllvdSBjYW4gc3BlY2lmeSBhIGZpbGVuYW1lIHBhdHRlcm4gdXNpbmcgdmFsdWVzIGZyb20gZm9ybSBmaWVsZHMsIHNldCBpdHMgZm9ybWF0LCBhbmQgc2V0IHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGZpbGVzIHdpbGwgYmUgc3RvcmVkLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjAuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgaXMgdGhlIG9ubHkgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3Nlci4gU2VlIHNlY3Rpb24gYmVsb3cuPC9saT4KPGxpPipTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uLiBDcmFmdCBhbiBIVFRQIEdFVCBvciBQT1NULCBhbmQgdHJhbnNtaXQgaXQgdXNpbmcgY1VSTCB0byB0aGUgc3BlY2lmaWVkIFVSTC4gVGhpcyBsZXRzIHlvdSB1c2UgRm9ybUJ1aWxkZXIgYXMgYSBmcm9udC1lbmQgdG8gYW55IENHSSBvciBGb3JtIEhhbmRsaW5nIHNjcmlwdCBvdXQgdGhlcmUuPC9saT4KCjwvdWw+PC9saT48L2xpPjwvdWw+Cgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntGb3JtQnVpbGRlciBmb3JtPVwnbXlfZm9ybVwnIHZhbHVlXzxpPkZJRUxETkFNRTwvaT49XCdkZWZhdWx0X3ZhbHVlXCd9PC9wPgo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gXCdkZWZhdWx0X3ZhbHVlXCcuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndpZWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb25cJ3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbgphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgo8cD57Rm9ybUJ1aWxkZXIgZm9ybT1cJ215X2Zvcm1cJyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PVwnZGVmYXVsdF92YWx1ZVwnfTwvcD4KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwKYW5kIGNoZWNrICJTaG93IEZpZWxkIElEcyI8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICJDcmVhdGUgU2FtcGxlIFRlbXBsYXRlIiBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgo8cD5UbyB0aGUgcmlnaHQsIHlvdVwnbGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLiBBcyBvZiB2ZXJzaW9uIDAuNSwgdmFyaWFibGVzIGFsc28gaGF2ZSBhbGlhc2VzLCB3aGljaCB5b3UgY2FuIHVzZS48L3A+CjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91XCd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXRcJ3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgIkNyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSIgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+Cgo8aDM+VXNlIHdpdGggRm9ybUJyb3dzZXIgdjM8L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBzcGVjaWFsIGZlYXR1cmVzIHdoZW4gdXNpbmcgRm9ybUJ1aWxkZXIgd2l0aCBGb3JtQnJvd3Nlci4gVGhlIG5ldyBhcHByb2FjaCBzdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBYTUwsIHNvIHRoYXQgZmFyIGZld2VyCnF1ZXJpZXMgYXJlIG5lZWRlZCB0byByZXRyaWV2ZSByZWNvcmRzLiBUaGlzIG1lYW5zIHlvdSBjYW4gdXNlIEZvcm1Ccm93c2VyIHdpdGggaHVuZHJlZHMgb3IgZXZlbiB0aG91c2FuZHMgb2YgcmVjb3Jkcy4gSXQgYWxzbyBtZWFucyB5b3UKd2lsbCBoYXZlIHRvIGNob29zZSB1cCBmcm9udCB3aGljaCBmaWVsZHMgeW91IHdpbGwgd2FudCB0byBiZSBhYmxlIHRvIHNvcnQgYnkuIFlvdSBjYW4gY2hvb3NlIHVwIHRvIGZpdmUuIENoYW5naW5nIHRoZXNlIGFmdGVyIHRoZXJlIGFyZSBzdWJtaXR0ZWQgcmVjb3JkcyB3aWxsIHJlc3VsdCBpbiBpbXByb3BlciBzb3J0aW5nISBBIHJlLWluZGV4IGZ1bmN0aW9uIHdpbGwgYmUgYWRkZWQgdG8gYSBmdXR1cmUgdmVyc2lvbi48L3A+CjxwPkluIGFkdmFuY2VkIG9wdGlvbnMsIHlvdSBjYW4gdGllIGEgZm9ybSB0byBGcm9udGVuZCBVc2Vycy4gVGhhdCBtZWFucyBlYWNoIHVzZXIgZ2V0cyBvbmUgcmVjb3JkIGZvciB0aGUgZm9ybTsgdGhleSBjYW4gY3JlYXRlIGl0CmEgc2luZ2xlIHRpbWUsIHN1YnNlcXVlbnQgdGltZXMgdGhleSB3aWxsIGJlIGVkaXRpbmcgdGhlaXIgcmVjb3JkLiBUaGUgcmVjb3JkIHdpbGwgbm90IGJlIHZpc2libGUgdG8gYW55IG90aGVyIHVzZXJzIChleGNsdWRpbmcgYWRtaW5zKS4KVGhpcyBmb3JtIHNob3VsZCBiZSBhZGRlZCB0byB5b3VyIHBhZ2UgdXNpbmcgdGhlIHN5bnRheCB7Rm9ybUJ1aWxkZXIgYWN0aW9uPVwnZmV1c2VyZm9ybVwnIGZvcm09XCdmb3JtX25hbWVcJ30uPC9wPgo8cD5Gb3IgZ3JlYXRlciBkYXRhIHNhZmV0eSwgeW91IGNhbiBlbmNyeXB0IHRoZSBzdG9yZWQgZm9ybXMgaW4gdGhlIGRhdGFiYXNlLiBZb3UgY2FuIHVzZSB0aGUgYnVpbHQtaW4gbXljcnlwdCBsaWJyYXJ5IG9yIHRoZSBPcGVuU1NMIG1vZHVsZS4KSW4gZWl0aGVyIGNhc2UsIGZvciB0aGUgcGFzc3BocmFzZSwgeW91IGNhbiBlaXRoZXIgZW50ZXIgdGV4dCBpbiB0aGUgZmllbGQgb3IgYSBmaWxlIG5hbWUuIElmIHlvdSBzcGVjaWZ5IGEgZmlsZSBuYW1lLCB0aGUgY29udGVudHMgb2YgdGhhdApmaWxlIHdpbGwgYmUgdXNlZCBhcyB0aGUgcGFzc3BocmFzZSBmb3IgZW5jcnlwdGluZy48L3A+CjxwPklmIHlvdSBlbmNyeXB0LCBiZSBhd2FyZSB0aGF0IHRoZSBmaWVsZHMgeW91IHVzZSBmb3Igc29ydGluZyBhcmUgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gZW5jcnlwdGVkLiBZb3UgY2FuIGNob29zZSB0byBoYXNoIHRoZW07IHRoZSBjaGVhdCBoZXJlCmlzIHRoYXQgdGhlIGZpcnN0IGZvdXIgbGV0dGVycyBhcmUgbGVmdCBpbnRhY3QgdG8gYWxsb3cgZm9yIHNvcnRpbmcuIFRoZSBzb3J0aW5nIG1heSBub3QgYmUgcGVyZmVjdCwgYW5kIHRoaXMgd2Vha2VucyB0aGUgc2VjdXJpdHkgc2luY2UgaXQKZXhwb3NlcyBzb21lIGNsZWFydGV4dCwgYnV0IGl0IGlzIGJldHRlciB0aGFuIG5vdGhpbmcuPC9wPgo8cD48c3Ryb25nPkRJU0NMQUlNRVI8L3N0cm9uZz4uIFRoZSBlbmNyeXB0aW9uIG9mZmVyZWQgaGVyZSBzaG91bGQgYmUgY29uc2lkZXJlZCBqdXN0IG9uZSBtb3JlIGh1cmRsZSBmb3IgYSBoYWNrZXIsIG5vdCBhcyBhIGd1YXJhbnRlZSB0aGF0CnlvdXIgaW5mb3JtYXRpb24gd2lsbCBiZSBzZWN1cmUuIEEgc21hcnQgaGFja2VyIHdobyBoYXMgZm91bmQgc29tZSBleHBsb2l0IHRvIHZpZXcgZGF0YWJhc2UgcmVjb3JkcyBtYXkgd2VsbCBiZSBzbWFydCBlbm91Z2ggdG8gZ2V0IGF0CnRoZSBtb2R1bGUgc291cmNlIGNvZGUsIGFuZCBmaW5kIHRoZWlyIHdheSB0byB0aGUgcGFzc3BocmFzZS4gVGhpcyB3aWxsIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGFuIGVuZW15IHdobyBoYXMgZnVsbCBhY2Nlc3MgdG8geW91cgpzZXJ2ZXIsIHNvbWUgZmFtaWxpYXJpdHkgd2l0aCBQSFAsIGFuZCB0aGUgdGltZSB0byBwb2tlIGFyb3VuZC4gPGVtPjxzdHJvbmc+RG8gbm90PC9zdHJvbmc+IHVzZSB0aGlzIHRvIHByb3RlY3QgaGlnaC12YWx1ZSBpbmZvcm1hdGlvbiBzdWNoIGFzIGZpbmFuY2lhbCBkYXRhLApzZW5zaXRpdmUgcG9saXRpY2FsIGluZm9ybWF0aW9uLCBodW1hbiByaWdodHMgZGF0YSwgb3IgYW55dGhpbmcgZWxzZSB0aGF0IG1pZ2h0IGJlIG9mIHZhbHVlIHRvIGEgcmVwcmVzc2l2ZSBnb3Zlcm5tZW50IG9yIG9yZ2FuaXplZCBjcmltZQpjYXJ0ZWwuPC9lbT48L3A+CjxoMz5Vc2luZyB3aXRoIFVzZXIgRGVmaW5lZCBUYWdzIChVRFRzKTwvaDM+CjxwPlNldmVyYWwgb3B0aW9ucyBmb3IgY3VzdG9taXppbmcgYmVoYXZpb3IgdmlhIFVEVHMgaXMgcHJvdmlkZWQgKHRoYW5rcyB0byBraW5kIGNvZGUgY29udHJpYnV0aW9ucywgc2VlIGNyZWRpdHMpLjwvcD4KCjx1bD48bGk+Q2FsbCBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBmaWVsZCB0eXBlIHN1Ym1pdHMgdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkClRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbXCdmaWVsZF9uYW1lXCddLCBhbmQKYXMgJHBhcmFtc1tcJ2ZpZWxkX2FsaWFzXCddIChpZiBkZWZpbmVkKS4gQXMgcGVyIGEgc3VnZ2VzdGlvbiwgaXQgYWxzbyBwb3B1bGF0ZXMgYWxsIG9mIHRoZSBTbWFydHkgdmFsdWVzIHRoYXQgd291bGQgYmUgdmlzaWJsZSB0byB0aGUgU3VibWlzc2lvbiBUZW1wbGF0ZSB0b28hPC9saT4KPGxpPlVzZXIgVGFnIEZpZWxkLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVURULCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cXFwncyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcgp2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZAp2YWx1ZSBiZWluZyBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L2xpPgo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMKaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5Cm9mIHRoZSBmb3JtLjwvbGk+CjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UKZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZApldmVyeSB0aW1lIGFueSBwYWdlIG9mIHRoZSBmb3JtIGlzIGRpc3BsYXllZCAoaW5jbHVkaW5nIHdoZW4gdmFsaWRhdGlvbiBmYWlscykuPC9saT4KPC91bD4KPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5SdW4gaW4gTUxFIE1vZGUuIFRoaXMgY2hhbmdlcyBzb21lIHF1ZXJpZXMgYWdhaW5zdCB0aGUgY29udGVudCB0YWJsZSB0byB0cnkgdG8gcHJldmVudCB1Z2x5IGNyYXNoZXMgdW5kZXIgdGhlIE1MRSBmb3JrLiBDaGVja2luZyB0aGlzIHdpbGwgY2F1c2UgdWdseSBjcmFzaGVzIGlmIHlvdSBhcmUgTk9UIHJ1bm5pbmcgdGhlIE1MRSBmb3JrLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBubyBsb25nZXIgc2V0IGJ5IGRlZmF1bHQuIENoZWNraW5nIGl0IHdpbGwgaGlkZSB0aGUgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdGhhdCB3b3VsZCBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91XCdyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5BZnRlciBhIGJpdCBvZiBuYWdnaW5nIG9uIHRoZSBwYXJ0IG9mIHBlb3BsZSB3aG8gYWN0dWFsbHkgcmVzcGVjdCBzdGFuZGFyZHMsIEZvcm1CdWlsZGVyIG5vIGxvbmdlciBlbmNvdXJhZ2VzIHRyaWNrcyBsaWtlIGVtYmVkZGluZyBDU1MgaW4gCnN0YXRpYyB0ZXh0IGZpZWxkcy4gSW5zdGVhZCwgaXQgY3JlYXRlcyBhIHN0eWxlc2hlZXQgY2FsbGVkICJGb3JtQnVpbGRlciBEZWZhdWx0IiB0aGF0IHlvdSBhcmUgZW5jb3VyYWdlZCB0byBhdHRhY2ggdG8gdGhlIHBhZ2UgdGVtcGxhdGUKdGhhdCB5b3UgdXNlIGZvciBwYWdlcyB0aGF0IGNvbnRhaW4geW91ciBmb3JtLjwvcD4gIAo8cD5UaGlzIGRlZmF1bHQgQ1NTIHdhcyBncmFjaW91c2x5IHByb3ZpZGVkIGJ5IFBhdWwgTm9vbmUuPC9wPgoKCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdVwnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJiMxMjM7JGZiX2hpZGRlbn0gYW5kICYjMTIzOyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJiMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJ3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkXCdzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGhlbHAgdGV4dDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSJmb28iKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gdGhlIGNhc2Ugb2YgYSBtdWx0aXBhZ2UgZm9ybSwgeW91IHdpbGwgYWxzbyBoYXZlIGFjY2VzcyB0byB0aGUgdmFsdWUgb2YgcHJldmlvdXMgZmllbGRzLiBUaGV5CmFyZSBpbiB0aGUgJHByZXZpb3VzIGFycmF5LCBvciBhY2Nlc3NpYmxlIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmIzEyMzskbXlmaWVsZC0+dmFsdWV9ICkuCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPgo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiJCYWNrIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4iQ29udGludWUiIG9yICJTdWJtaXQiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3VcJ2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgoKPGgzPkNyZWRpdHM8L2gzPgo8cD5NYW55IHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIGNvZGUsIGJ1ZyByZXBvcnRzLCBjYXNoLCBhbmQgaWRlYXMgdG8gRm9ybUJ1aWxkZXIuIEFtb25nIHRoZW0gKGFscGhhYmV0aWNhbGx5KToKPHVsPgo8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5icHRpLmV1Ij5CYWx0aWMgaW5zdGl0dXRlIG9mIGFkdmFuY2VkIHRlY2hub2xvZ3k8L2E+IC0gY29kZSwgZnVuZGluZyA8L2xpPgo8bGk+SmVyZW15IEJhc3MgLSBjb2RlIGFuZCBzdWdnZXN0aW9uczwvbGk+CjxsaT5BbGJlcnRvIEJlbmF0aSAtIGNvZGU8L2xpPgo8bGk+VHlsZXIgQm9lc3BmbHVnIC0gZnVuZGluZyBhbmQgaWRlYXM8L2xpPgo8bGk+SmVmZiBCb3NjaCAtIFVEVCBWYWxpZGF0aW9uPC9saT4KPGxpPlJvYmVydCBDYW1wYmVsbCAtIG51bWVyb3VzIGNvZGUgY29udHJpYnV0aW9uczwvbGk+CjxsaT5QaW90cmFzIENpbW1wZXJtYW4gLSBjb2RlPC9saT4KPGxpPk51bm8gQ29zdGEgLSBzdWdnZXN0aW9uczwvbGk+CjxsaT5SeWFuIEZvc3RlciAtIGNvZGU8L2xpPgo8bGk+TWFyYyBHZWxkb24gLSBjb2RlPC9saT4KPGxpPktldmluIEdyYW5kb24gLSBjb2RlPC9saT4KPGxpPlJvbm55IEtyaWp0IC0gY29kZTwvbGk+CjxsaT5QYXVsIE5vb25lIC0gQ1NTIGFuZCBpZGVhczwvbGk+CjxsaT5Nb3J0ZW4gUG91bHNlbiAtIGNvZGU8L2xpPgo8bGk+UHJ1ZSBSb3dsYW5kIC0gYnVnIGZpeGVzPC9saT4KPGxpPlNpbW9uIFNjaGF1ZmVsYmVyZ2VyIC0gY29kZTwvbGk+CjxsaT5BZGFtIFNoYXctVmFyZGkgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+CjwvdWw+CjxwPkkgYXBvbG9naXplIGZvciBhbnkgb21pc3Npb25zIC0gbm90aWZ5IG1lLCBhbmQgSVwnbGwgY29ycmVjdCB0aGUgb21pc3Npb24hPC9wPgo8aDM+TWlzY2VsbGFuZW91cyBOb3RlczwvaDM+Cjx1bD4KPGxpPkFueSBmaWVsZHMgdGhhdCBzZW5kcyBlbWFpbCB0byBhIHNwZWNpZmllZCBlbWFpbCBhZGRyZXNzIHdpbGwgYWxzbyBhY2NlcHQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMuPC9saT4KPC91bD4KPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSBVUkxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG5cJ3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPgo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPgo8L3VsPgoKPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+CjxvbD4KPGxpPkZvcm1CdWlsZGVyL0Zvcm1Ccm93c2VyIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gUEhQIDUgb3IgbGF0ZXIgdG8gZnVuY3Rpb24gY29ycmVjdGx5LjwvbGk+CjxsaT5GaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdVwncmUgcnVubmluZyBDTVMgMS42IG9yIGxhdGVyLjwvbGk+CjxsaT5TZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91XCdyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGRcJ3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91XCdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0XCdzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSAiSGlkZSBFcnJvcnMiIGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+CjxsaT4gTWFrZSBzdXJlIHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHNlbmQgZW1haWwgdmlhIHRoZSB0ZXN0IGluIHRoZSBDTVNNYWlsZXIgTW9kdWxlLiBJdFwncyBzaW1wbHkgYW1hemluZyBob3cgbWFueSBwcm9ibGVtcyBib2lsIGRvd24gdG8gYSBtaXNjb25maWd1cmVkIENNU01haWxlci48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIElcJ3ZlIGRvbmUgYWxsIEkgY2FuCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwphdGUgdGhlIG5laWdoYm9yXCdzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPgo8L3VsPgo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgPGVtPmh1bmRyZWRzIGFuZCBodW5kcmVkcyBvZiBob3VyczwvZW0+IGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLgpQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbgpmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMKZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGEKc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iX3MteGNsaWNrIj4KPGlucHV0IHR5cGU9ImltYWdlIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2RvbmF0ZUNDX0xHLmdpZiIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iUGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhIj4KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZW5jcnlwdGVkIiB2YWx1ZT0iLS0tLS1CRUdJTiBQS0NTNy0tLS0tTUlJSFR3WUpLb1pJaHZjTkFRY0VvSUlIUURDQ0J6d0NBUUV4Z2dFd01JSUJMQUlCQURDQmxEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMENBUUF3RFFZSktvWklodmNOQVFFQkJRQUVnWUFJTm5CV2IvWE00bG12TEdIbDlSZDFjdkw1dHJxUmhjNytGb0dINUx0b2ZRaVZyZ0ZTdmg3aDFvamc1U3pUeGJndGkzMlpGMC91Y3VxL09RU0QrVnp1dUFGMXY2d1ZydHlPZUNQRUF3OGo4MURKT1hWakpIc0lZMm12aW9yUGpvbExRa0ZudjEyeVJUcHVGV0ZuNFpYZTUrdm5DalhxQnkwRUUvYWh6RU1NbnpFTE1Ba0dCU3NPQXdJYUJRQXdnY3dHQ1NxR1NJYjNEUUVIQVRBVUJnZ3Foa2lHOXcwREJ3UUljS05Od09QRm93dUFnYWl2Uzd2MGoyWEZ5UTlkcjhuaTlHOTVlRTdZcW9nR2xLOXd1U3BsbE9nOWxucnV2bkVRcXNtUm1RbnRoUXFXQ1RiWnpHMitJRXRlTTRJVXN4RXVHVHJ3OHBaQ1UyNFRORGNrbktVeDlVejN2U3hPaDNndTk1eUp5RHdvZU12YUVBMjRiczE0UUViSmJoTmpZNld4SHo5K2kvbFZBREJqeUFPRFlNdXphbERrdmR1dndlR05aazlsWUxSUkNvUFBOaWxHMVBmNnc4N0JIcGtTTThXUTFMQzkrUldkWGZaY20rZWdnZ09ITUlJRGd6Q0NBdXlnQXdJQkFnSUJBREFOQmdrcWhraUc5dzBCQVFVRkFEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZRUUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVUTUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhEQWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMHdIaGNOTURRd01qRXpNVEF4TXpFMVdoY05NelV3TWpFek1UQXhNekUxV2pDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFNRkhUdDM4Uk14TFhKeU8yU21TK05kbDcyVDdvS0o0dTR1dys2YXdudEFMV2gwM1Bld21JSnV6YkFMU2NzVFM0c1pvUzFmS2NpQkdvaDExZ0lmSHp5bHZrZE5lL2hKbDY2L1JHcXJqNXJGYjA4c0FBQk5UekRUaXFxTnBKZUJzWXMvYzJhaUdvenB0WDJSbG5Ca3RIK1NVTnBBYWpXNzI0TnYyV3ZoaWY2c0ZBZ01CQUFHamdlNHdnZXN3SFFZRFZSME9CQllFRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpSck1JRzdCZ05WSFNNRWdiTXdnYkNBRkphZmZMdkdieGU5V1Q5UzF3b2I3QkRXWkpScm9ZR1VwSUdSTUlHT01Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DUTBFeEZqQVVCZ05WQkFjVERVMXZkVzUwWVdsdUlGWnBaWGN4RkRBU0JnTlZCQW9UQzFCaGVWQmhiQ0JKYm1NdU1STXdFUVlEVlFRTEZBcHNhWFpsWDJObGNuUnpNUkV3RHdZRFZRUURGQWhzYVhabFgyRndhVEVjTUJvR0NTcUdTSWIzRFFFSkFSWU5jbVZBY0dGNWNHRnNMbU52YllJQkFEQU1CZ05WSFJNRUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkJRVUFBNEdCQUlGZk9sYWFnRnJsNzEranE2T0tpZGJXRlNFK1E0RnFST3ZkZ0lPTnRoKzhrU0svL1kvNGlodUU0WW12em41Y2VFM1MvaUJTUVFNanl2YitzMlRXYlFZRHdjcDEyOU9QSWJEOWVwZHI0dEpPVU5pU29qdzdCSHdZUmlQaDU4UzF4R2xGZ0hGWHdyRUJiM2RnTmJNVWErdTRxZWN0c01BWHBWSG5EOXdJeWZtSE1ZSUJtakNDQVpZQ0FRRXdnWlF3Z1k0eEN6QUpCZ05WQkFZVEFsVlRNUXN3Q1FZRFZRUUlFd0pEUVRFV01CUUdBMVVFQnhNTlRXOTFiblJoYVc0Z1ZtbGxkekVVTUJJR0ExVUVDaE1MVUdGNVVHRnNJRWx1WXk0eEV6QVJCZ05WQkFzVUNteHBkbVZmWTJWeWRITXhFVEFQQmdOVkJBTVVDR3hwZG1WZllYQnBNUnd3R2dZSktvWklodmNOQVFrQkZnMXlaVUJ3WVhsd1lXd3VZMjl0QWdFQU1Ba0dCU3NPQXdJYUJRQ2dYVEFZQmdrcWhraUc5dzBCQ1FNeEN3WUpLb1pJaHZjTkFRY0JNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MHdPREEzTURFd016VTVNemxhTUNNR0NTcUdTSWIzRFFFSkJERVdCQlFNMExWMzBmTFhjSDlNNWRNbXVUQkxuc0ZRNGpBTkJna3Foa2lHOXcwQkFRRUZBQVNCZ0JFejJYcU1NcUZidVVoaitMMTI4Q3cydThTaE9LUXR0cktyL2hpMFdSZWVuSERZQmlIT1N0bDYzUnY3NlEybXBkNDUzUnZDajVtcTdkUnR1UkI2cGZIR1JEa1VYNk4xK09PSW9JZnJvQlpJQVROaHo5Q0VId0VGa05qWWcwRUdNQUcramNiQWoxREpqUjczY3hiYU5yWFdQeEEraGlRaEhsQXJyWkE3ckZWNS0tLS0tRU5EIFBLQ1M3LS0tLS0KIj4KPC9mb3JtPjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTQwNzMwMzY2My4xMjk1ODc4NzM0LjEyOTgwMjUxMTcuMTI5ODAyOTY3MS4yNSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyOTgwMjExODMuMjMuMTUudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWRldi5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L3Byb2plY3RzL2Ntc3RjcGx8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE5Mjg0NDQyNjUtMTI5NTg3ODczNzM3Nic7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhYWN1dGU7cmUnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdUeXAgcG/EvmEgbmVib2wgZGVmaW5vdmFuJnlhY3V0ZTsnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVnlicmHFpSBqZWRlbiBhbGVibyB2aWFjZXJvIHBvbG/FvmllayBrYXRhbCZvYWN1dGU7Z3UgKGNhdGFsb2dlciknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ0tvbmllYyBwcmUgem5hxI1rdSBGaWVsZHNldCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICdaYcSNaWF0b2sgcHJlIHpuYcSNa3UgRmllbGRzZXQgJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dG92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0b3YmZWFjdXRlOyBwb2xlICh2aWFjbiZhYWN1dGU7c29ibiZlYWN1dGU7KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0b3YmZWFjdXRlOyBvYmxhc8WlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1phJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdTa3VwaW5hIHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhJmlhY3V0ZTtjaCBwb2wmaWFjdXRlO8SNb2snOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ1ZpYWN2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlIHByZSAmc2Nhcm9uO3QmYWFjdXRlO3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSBwcmUgcHJvdmluY2llIHYgS2FuYWRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlIHByZSBVU0EgJnNjYXJvbjt0JmFhY3V0ZTt0eSc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSBwcmUgZCZhYWN1dGU7dHVtJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlIHByZSDEjWFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnU2t1cGluYSByYWRpbyBwb2xpxI1vayc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqWmFzaWVsYW5pZSBuYSBlLW1haWx5IG5hIHomYWFjdXRlO2tsYWRlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlVrbGFkYW5pZSBkbyBzJnVhY3V0ZTtib3JhIG5hIHomYWFjdXRlO2tsYWRlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqVWtsYWRhbmllIGRvIHMmdWFjdXRlO2Jvcm92IG5hIHomYWFjdXRlO2tsYWRlIHZpYWNuJmFhY3V0ZTtzb2JuJmVhY3V0ZTtobyB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7aG8gcG/EvmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlN0ciZhYWN1dGU7bmthIHByZSBwcmVzbWVyb3ZhbmlhIG5hIHomYWFjdXRlO2tsYWRlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqWmFzaWVsYW5pZSBuYSB2eWJyYW4mZWFjdXRlOyBlLW1haWxvdiZlYWN1dGU7IGFkcmVzeSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypQb2xlICAmcXVvdDt6IGUtbWFpbHUmcXVvdDsgcHJlIG9kcG92ZWQsIGEgemFzbGFuaWUgayZvYWN1dGU7cGllIHXFviZpYWN1dGU7dmF0ZcS+b3ZpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlVsb8W+acWlIGZvcm11bCZhYWN1dGU7ciBkbyBzJnVhY3V0ZTtib3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypVbG/FvmnFpSBmb3JtdWwmYWFjdXRlO3IgZG8gREInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlVsb8W+acWlIGZvcm11bCZhYWN1dGU7ciBwcmUgbW9kdWwgcHJlaGxpYWRhxI1hIGZvcm11bCZhYWN1dGU7cm92IHYmZWFjdXRlO3J6aWUgLjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqWmF2b2xhxaUgdcW+JmlhY3V0ZTt2YXRlxL5zayZ5YWN1dGU7IHRhZyBwbyBkb2tvbsSNZW4maWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqUG9sZSBwcmUgZS1tYWlsLCBuYSBrdG9yJnlhY3V0ZTsgYnVkZSB6JmFhY3V0ZTtyb3ZlxYggemFzbGFuJnlhY3V0ZTsgZS1tYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFLW1haWwgcHJlIGFkbWluaXN0ciZhYWN1dGU7dG9yYSBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy16YWxvbWVuaWUnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdOYWhyYXRpZSBzJnVhY3V0ZTtib3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdQb2xlICAmcXVvdDt6IGUtbWFpbHUmcXVvdDsgcHJlIG9wYWtvdmFuJmVhY3V0ZTsgemFkYW5pZSAnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctT2RrYXonOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdPZGtheiB2bG/FvmVuJnlhY3V0ZTsgdcW+JmlhY3V0ZTt2YXRlxL5vbSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLVNrcnl0JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctUG9yb3ZuJmFhY3V0ZTt2YW5pZSc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlrJmFhY3V0ZTt0bnkgcmXFpWF6ZWMnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnQmV6IGtvbnRyb2x5JzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzbG8nOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnQ2Vsb8SNJmlhY3V0ZTtzbGVuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxvdiZhYWN1dGU7IGFkcmVzYSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdUZWxlZiZvYWN1dGU7bm5lIMSNJmlhY3V0ZTtzbGUgKHByZSBVU0EpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011cyZpYWN1dGU7IGJ5xaUgIHphZGFuJmVhY3V0ZTsnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1JlZ3VsJmFhY3V0ZTtybnkgdiZ5YWN1dGU7cmF6JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ1pob2RhICBzIHJlZ3VsJmFhY3V0ZTtybnltIHYmeWFjdXRlO3Jhem9tJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdOZWJvbGEgdm/FvmVuYSBwb8W+YWRvdmFuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgaG9kbm90dSBwcmUgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgxI0maWFjdXRlO3NlbG4mdWFjdXRlOyBob2Rub3R1IHByZSAgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUHJvcyZpYWN1dGU7bSwgdmxvxb50ZSBzcHImYWFjdXRlO3ZudSBob2Rub3R1IHByZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgY2Vsb8SNJmlhY3V0ZTtzZWxuJnVhY3V0ZTsgaG9kbm90dSBwcmUgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgc3ByJmFhY3V0ZTt2bnkgdHZhciBlLW1haWxvdmVqIGFkcmVzeSBwcmUgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdOZWJvbCB6YWRhbiZ5YWN1dGU7IG9ic2FoIHByZSBlLW1haWxvdiZ1YWN1dGU7IGFkcmVzdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1Byb3MmaWFjdXRlO20sIHZsb8W+dGUgc3ByJmFhY3V0ZTt2bnkgdHZhciBwcmUgdGVsZWYmb2FjdXRlO25uZSDEjSZpYWN1dGU7c2xvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IG5pZSBqZSBzcHImYWFjdXRlO3ZueSB0dmFyIGUtbWFpbG92ZWogYWRyZXN5JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQcm9zJmlhY3V0ZTttLCB2bG/FvnRlIG9ic2FoIGtyYXQmc2Nhcm9uOyZpYWN1dGU7IGFrbyAlcyB6bmFrb3YnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrIHNsJnVhY3V0ZTvFvmlhY2kgYWtvIHNlcGFyJmFhY3V0ZTt0b3IgcHJpIHZpYWNlciZ5YWN1dGU7Y2ggaG9kbm90JmFhY3V0ZTtjaCc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdQb2xlIHByZSB0cmllZGVuaWUgYWt0dWFsaXpvdmFuJmVhY3V0ZTsnOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTtyIG9kc3RyJmFhY3V0ZTtuZW4meWFjdXRlOyc7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnUG9sZSBvZHN0ciZhYWN1dGU7bmVuJmVhY3V0ZTsnOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnTmFzdGF2ZW5pYSBha3R1YWxpem92YW4mZWFjdXRlOyc7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ011c2l0ZSB2eWJyYcWlICZxdW90OyVzJnF1b3Q7IHByZSAgcG9rcmHEjW92YW5pZSc7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnTXVzJmlhY3V0ZTt0ZSB6YWRhxaUgYXNwb8WIIGplZG51IGNpZcS+b3YmdWFjdXRlOyBhZHJlc3UnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnTmFvemFqIGNoY2V0ZSBvZHN0ciZhYWN1dGU7bmnFpSBmb3JtdWwmYWFjdXRlO3IgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdOYW96YWogY2hjZXRlIG9kc3RyJmFhY3V0ZTtuacWlIHBvbGUgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTtyZW4mZWFjdXRlOyB2bGFzbm9zdGkgbmllIHMmdWFjdXRlOyBkb3N0dXBuJmVhY3V0ZTsgcG9raWHEviBuZWJ1ZGUgemFkYW4meWFjdXRlOyB0eXAgcG/EvmEuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnTiZhYWN1dGU7em92IHBvxL5hICZxdW90OyVzJnF1b3Q7IHXFviBleGlzdHVqZS4gUHJvcyZpYWN1dGU7bSBwb3XFvml0ZSB1bmlrJmFhY3V0ZTt0bnkgbiZhYWN1dGU7em92LCBhbGVibyB2IG5hc3RhdmVuaWFjaCBkZWFrdGl2dWp0ZSB2b8S+YnUgcHJlIHVuaWsmYWFjdXRlO3RuJmVhY3V0ZTsgbiZhYWN1dGU7enZ5IHBvbCZpYWN1dGU7Lic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnUG9sZSBtdXMmaWFjdXRlOyBtYcWlIG4mYWFjdXRlO3pvdic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdm/EvmJ5JzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgem5ha292JzsKJGxhbmdbJ29yZGVyJ10gPSAnUG9yYWRpZSc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ25lemFkYW4mZWFjdXRlOyc7CiRsYW5nWydhZGRlZCddID0gJ3ByaWRhbiZlYWN1dGU7JzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdha3R1YWxpem92YW4mZWFjdXRlOyc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdUcmllxaUgaG9kbm90eSBuYSB2JnlhY3V0ZTtzdHVwZSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVnlicmHFpSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1Z5YnJhxaUgdHlwJzsKJGxhbmdbJ3RvJ10gPSAnRG8nOwokbGFuZ1sneWVzJ10gPSAnJkFhY3V0ZTtubyc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncHImaWFjdXRlO2ppbWF0ZWxpYSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgIHBvdm9sZW4mZWFjdXRlOyBzJnVhY3V0ZTtib3J5JzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgY2llbGUnOwokbGFuZ1snc2F2ZSddID0gJ1Vsb8W+acWlJzsKJGxhbmdbJ2FkZCddID0gJ1ByaWRhxaUnOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXpvdmHFpSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1Vsb8W+acWlIGEgcG9rcmHEjW92YcWlIHYgJnVhY3V0ZTtwcmF2JmFhY3V0ZTtjaCc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybSZhYWN1dGU7Y2lhJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpY2t5JzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsJmFhY3V0ZTtyZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsJmFhY3V0ZTtyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1ciZhYWN1dGU7Y2lhJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdQb2xlIHMgdnnFvmFkbm92YW4maWFjdXRlO20gYWt0dWFsaXpvdmFuJmVhY3V0ZTsnOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiB2ZcS+a29zxaUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdSb3omc2Nhcm9uOyZpYWN1dGU7cmVuaWEnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1Bvdm9sZW4mZWFjdXRlOyB0eXB5IHMmdWFjdXRlO2Jvcm92JzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTmFociZhYWN1dGU7dmFuJnlhY3V0ZTsgcyZ1YWN1dGU7Ym9yIGplIHByJmlhY3V0ZTtsaSZzY2Fyb247IHZlxL5rJnlhY3V0ZTshIFBvdm9sZW4mYWFjdXRlOyBqZSBtYXhpbSZhYWN1dGU7bG5hIHZlxL5rb3PFpTonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUeXAgcyZ1YWN1dGU7Ym9ydSBhc2kgbmVtJm9jaXJjO8W+ZSBiecWlIG5haHJhbiZ5YWN1dGU7IG5hIHNlcnZlci4gUHJvcyZpYWN1dGU7bSBza29udHJvbHVqdGUgxI1pIGplIHRlbnRvIHR5cCBwb3ZvbGVuJnlhY3V0ZTsnOwokbGFuZ1sndXBsb2FkJ10gPSAnTmFocmHFpSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTtyIG5haW1wb3J0b3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgZm9ybXVsJmFhY3V0ZTtyYSB6bHloYWxvISBQcm9ibCZlYWN1dGU7bSBzIHBhcnNvdmFuJmlhY3V0ZTttIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpYWRrb3YnOwokbGFuZ1snY29scyddID0gJyVzIHN0xLpwY292JzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMiBob2Rpbm92JnlhY3V0ZTsgY2FzJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCBob2Rpbm92JnlhY3V0ZTsgxI1hYyc7CiRsYW5nWydob3VyJ10gPSAnSG9kaW5hJzsKJGxhbmdbJ21pbiddID0gJ01pbiZ1YWN1dGU7dGEnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnSG9kbm90ZW5pZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdWxI9ha2EhIFYmYWFjdXRlOyZzY2Fyb247IGZvcm11bCZhYWN1dGU7ciBib2wgb2Rvc2xhbiZ5YWN1dGU7JzsKJGxhbmdbJ2VkaXQnXSA9ICdVcHJhdmnFpSc7CiRsYW5nWydkZWxldGUnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSc7CiRsYW5nWydkYXknXSA9ICdEZcWIJzsKJGxhbmdbJ21vbiddID0gJ01lc2lhYyc7CiRsYW5nWyd5ZWFyJ10gPSAnUm9rJzsKJGxhbmdbJ25vbmUnXSA9ICcoxb5pYWRueSknOwokbGFuZ1snY3NzJ10gPSAnQ1NTJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgb2RpbiZzY2Fyb247dGFsb3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bCB2ZXJ6aWEgJXMgbmFpbiZzY2Fyb247dGFsb3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGFrdHVhbGl6b3ZhbiZ5YWN1dGU7IG5hIHZlcnppdSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnU3AmYXVtbDvFpSc7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnT2Rvc2xhxaUnOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnUG9rcmHEjW92YcWlLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdPem5hxI1pxaUnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnT2R6bmHEjWnFpSc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hsYXZuJmVhY3V0ZTsnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ05hc3RhdmVuaWEgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnT2Rvc2xhbmllIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdOYXN0YXZlbmlhIHByZSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTtyZW4mZWFjdXRlOyBuYXN0YXZlbmlhJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHBvIG9kb3NsYW4maWFjdXRlOyc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSBwcmVtZW5uJmVhY3V0ZTsgc3UgcG92b2xlbiZlYWN1dGU7IHYgdG9tdG8gcG9saS48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ1ByaWRhxaUgdmlhYyBtb8W+bm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnT2RzdHImYWFjdXRlO25pxaUgdnl6bmHEjWVuJmVhY3V0ZTsnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdQcmlkYcWlIHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbGUnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSB2eWJyYW4mZWFjdXRlOyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ByaWRhxaUgZS1tYWlsb3YmdWFjdXRlOyBhZHJlc3UnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSB2eWJyYW4mZWFjdXRlOyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdQcmlkYcWlIGNpZcS+JzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ29kc3RyJmFhY3V0ZTtuacWlIHZ5YnJhbiZlYWN1dGU7JzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnUHImaWFjdXRlO2xpJnNjYXJvbjsgdmXEvmEgZS1tYWlsb3YgZ2VuZXJvdmFuJnlhY3V0ZTtjaCB6IHZhJnNjYXJvbjtlaiBJUCBhZHJlc3kuIEFudGktU3BhbSBrJm9hY3V0ZTtkIG1hIHphYnImYWFjdXRlO25pxaUgZG9ydcSNZW5pdSc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdQb2RvenJlbmllIG5hIHNwYW0geiBhIElQICVzIHphc3RhdmVuJnlhY3V0ZTsuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdQcmVyb3pkZWxpxaUgcG9saWEnOwokbGFuZ1snY2FuY2VsJ10gPSAnWnJ1JnNjYXJvbjtpxaUnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnU3Rhbm92acWlIGhvZG5vdHU6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+Cjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ1JlZ3VsJmFhY3V0ZTtybnkgdiZ5YWN1dGU7cmHFviBwb3ZvbCZpYWN1dGU7IGZpbHRyb3ZhxaUga2F0YWwmb2FjdXRlO2cgKGNhdGFsb2dlcikgcG9tb2NvdSBuJmFhY3V0ZTt6dnUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdWJnlhY3V0ZTsmc2Nhcm9uO2thIHZpYWNuJmFhY3V0ZTtzb2JuJmVhY3V0ZTtobyB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7aG8gcG/EvmEnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ1JlZ3VsJmFhY3V0ZTtybnkgdiZ5YWN1dGU7cmF6IHByZSBwb2xvxb5rdSBrYXRhbCZvYWN1dGU7Z3UgKENhdGFsb2dlciknOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSBwb8S+YSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdDaWXEvm92JmFhY3V0ZTsgYWRyZXNhIHByZSBzJnVhY3V0ZTtib3J5IG5hIHYmeWFjdXRlO3N0dXBlJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVcW+JmlhY3V0ZTt2YXRlxL5za8WIeSB0JmFhY3V0ZTtnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTdHImYWFjdXRlO25rYSBwcmUgbiZhYWN1dGU7dnJhdCBzIG9ka2F6b20gcHJlIHMmdWFjdXRlO2Jvcic7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ09kb3NsYW4mZWFjdXRlOyBwb21vY291IG1vZHVsdSBGb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdLYXRlZyZvYWN1dGU7cmlhIFVwbG9hZCBtb2R1bHUnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTJnVhY3V0ZTtib3Igb2Rvc2xhxaUgZG8gbW9kdWx1IFVwbG9hZHMnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kYSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltJmFhY3V0ZTtsbmEgZMS6xb5rYSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0xhYmVsIChwb3Bpc29rKSB6YSZzY2Fyb247a3J0JmFhY3V0ZTt2YWNpZWhvIHBvxL5hJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnTGFiZWwgKHBvcGlzb2spIHImYWFjdXRlO2RpbyB0bGHEjSZpYWN1dGU7dGthJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdIb2Rub3RhIHByaSB2JnlhY3V0ZTtiZXJlJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ0hvZG5vdGEgYmV6IHYmeWFjdXRlO2JlcnUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ05hc3RhdmVuaWEgcHJlIHNrdXBpbnUgemEmc2Nhcm9uO3J0JmFhY3V0ZTt2YWMmaWFjdXRlO2NoIHBvbCZpYWN1dGU7JzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ09kc3RyJmFhY3V0ZTtuacWlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtUZXh0IHBydiZlYWN1dGU7aG8gcG/EvmEmcXVvdDsgJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ0hvZG5vdGEgdiZ5YWN1dGU7YmVydSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdOJmFhY3V0ZTt6b3YgdiZ5YWN1dGU7YmVydSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1ByZWRtZXQgcHJlIHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnUHJlZG5hc3RhdmVuJnlhY3V0ZTsgdiZ5YWN1dGU7YmVyJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnUHJlZG5hc3RhdmVuJnlhY3V0ZTsgdiZ5YWN1dGU7YmVyJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnUHJlZG5hc3RhdmVuJnlhY3V0ZTsgdiZ5YWN1dGU7YmVyJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTiZhYWN1dGU7em92IHZvxL5ieSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdPZG9zbGFuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnTmFzdGF2ZW5pYSBwcmUgdiZ5YWN1dGU7YmVyb3YmZWFjdXRlOyBwb2xlJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdOYXN0YXZlbmlhIHByZSB2aWFjbiZhYWN1dGU7c292biZlYWN1dGU7IHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSAnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0NpZcS+b3YmYWFjdXRlOyBlLW1haWxvdiZhYWN1dGU7IGFkcmVzYSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0NpZcS+b3YmeWFjdXRlOyBuJmFhY3V0ZTt6b3YgcyZ1YWN1dGU7Ym9ydSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcm9tIG5hbWUmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdQb3XFvmkgamVkbm9kdWNoJnVhY3V0ZTsga29udHJvbHUgZS1tYWlsb3ZlaiBhZHJlc3knOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnUG91xb5pamUgamVkbm9kdWNoJnNjYXJvbjtpdSBrb250cm9sdSBlLW1haWxvdmVqIGFkcmVzeSAgKG5hcHIuIHBvdm9sJmlhY3V0ZTsgZS1tYWlsIHYgdHZhcmUgICZxdW90O3hAeSZxdW90OyBuYW1pZXN0byBwb8W+YWRvdm4mZWFjdXRlO2hvIHhAeS50bGQpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O1ogYWRyZXN5JnF1b3Q7IHByZSBlLW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdabmFrb3YmYWFjdXRlOyBzYWRhIHByZSBlLW1haWwnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSBwcmUgemFzbGFuaWUgZGV0YWlsdSBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ04mYWFjdXRlO3pvdiBwb8S+YSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnUHJlZG1ldCBlLW1haWx1JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ04mYWFjdXRlO3pvdiBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnU3RhdiBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUHJpcHJhdmVuJnlhY3V0ZTsgcHJlIG5hc2FkZW5pZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmllIGplIHByaXByYXZlbiZ5YWN1dGU7JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQcmVzbWVyb3ZhxaUgbmEgc3RyJmFhY3V0ZTtua3UgcG8gb2Rvc2xhbiZpYWN1dGU7IGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdwb3XFvmkgdCZ1YWN1dGU7dG8ga2wmYWFjdXRlO3Zlc292JnVhY3V0ZTsgc2tyYXRrdSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ1BvbGlhIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJRCBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnVWsmYWFjdXRlO8W+IHBvbGUgYWxpYXN1JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdLbGlrbnV0JmlhY3V0ZTttIHpvYnJheiZpYWN1dGU7dGUgYWxpYXN5IHBvbCZpYWN1dGU7IHByaSBwcmlkJmFhY3V0ZTt2YW4maWFjdXRlOyBhbGVibyBlZGl0JmFhY3V0ZTtjaWkgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTiZhYWN1dGU7em92IHBvxL5hJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnQWxpYXMgcG/EvmEnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnTmFzdGF2ZW5pYSBza3VwaW55IHImYWFjdXRlO2RpbyB0bGHEjSZpYWN1dGU7dG9rJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdUeXAgcG/EvmEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3ByZSB2eXR2b3JlbmllIGZvcm11bCZhYWN1dGU7cm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdQcmlkYcWlIG5vdiZ5YWN1dGU7IGZvcm11bCZhYWN1dGU7cic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdVayZhYWN1dGU7emHFpSB2ZXJzaXUgbW9kdWx1IHByZSBmb3JtdWwmYWFjdXRlO3JlPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnUHJpZGHFpSBub3YmZWFjdXRlOyBwb2xlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1RleHQgdGxhxI0maWFjdXRlO3RrYSBwcmUgb2Rvc2llbGFuaWUnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdQcmlkYcWlIGphdmFzY3JpcHQgcHJpIG9kb3NpZWxhbiZpYWN1dGU7IG5hIG9jaHJhbnUgcHJlZCB2aWFjbiZhYWN1dGU7c29ibiZlYWN1dGU7bXUgb2RzbGFuaXUgZm9ybXVsJmFhY3V0ZTtyYT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ1ByaWRhxaUgYmV6cGXEjW5vc3RuJnlhY3V0ZTsgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0tvbnRyb2xhIHBvxL5hJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnUG9sZSBwcmUga29udHJvbHUnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIGlkIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIHRyaWVkYSBwcmUgdGVudG8gZm9ybXVsJmFhY3V0ZTtyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyB0cmllZGEgcHJlIHRvdG8gcG9sZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1puYWsgcHJlIG96bmHEjWVuaWUgcG92aW5uJnlhY3V0ZTtjaCBwb2wmaWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1BvdmlubiZlYWN1dGU7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdWecW+YWRvdmHFpSBrb250cm9sdSB0b2h0byBwb8S+YSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnU2tyecWlIHBvcGlzb2sgKGxhYmVsKSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnVGV4dCBwcmUgem9icmF6ZW5pZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1JlZ3VsJmFhY3V0ZTtybnkgdiZ5YWN1dGU7cmF6IHByZSBrb250cm9sdSc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnUG/EjWV0IHpvYnJhemVuJnlhY3V0ZTtjaCByaWFka292JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdCZXogcHJlZG5hc3RhdmVuaWEnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTdHImYWFjdXRlO25rYSBwcmUgcHJlc21lcm92YW5pZSBwbyBzY2h2JmFhY3V0ZTtsZW4maWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxJiMwMzk7ZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1NrcnnFpSBjaHlieSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVHlwIHByZSB6b2JyYXplbmllIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIGUtbWFsdSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbSZhYWN1dGU7bG5hIHZlxL5rb3PFpSBuYWhyJmFhY3V0ZTt2YW4mZWFjdXRlO2hvIHMmdWFjdXRlO2JvcnUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQb3ZvbGVuJmVhY3V0ZTsgcm96JnNjYXJvbjsmaWFjdXRlO3JlbmlhJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnU2FibCZvYWN1dGU7bmEgcHJlIHpvYnJhemVuaWUgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1N0cmFuYSAlcyB6ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdQb2xlIG5lbSZhYWN1dGU7IHJvxb4maWFjdXRlO3JlbiZlYWN1dGU7IG5hc3RhdmVuaWEnOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnUiZ5YWN1dGU7Y2hsZSBwcmlkJmFhY3V0ZTt2YW5pZSBwb2wmaWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnWmFwbiZ1YWN1dGU7xaUgamVkbm90dWNoeSBhbnRpLXNwYW0gZmlsdGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVWsmYWFjdXRlO3phxaUgSUTEjWthIHBvbCZpYWN1dGU7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnTmFocmHFpSBmb3JtdWwmYWFjdXRlO3IgeiBYTUwgcyZ1YWN1dGU7Ym9ydSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnUG91xb5pxaUgdGVudG8gbiZhYWN1dGU7em92IGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBpbXBvcnQgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1BvdcW+acWlIHRlbnRvIGFsaWFzIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyb3ZhxaUgSFRNTCBlLW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1ByZWRuYXN0YXZlbiZhYWN1dGU7IFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdQcmVkbmFzdGF2ZW4meWFjdXRlOyBvZGtheiB0ZXh0dSc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnT2RrYXogbmEgc3RyJmFhY3V0ZTtua3UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnUG91xb5pxaUgQ2FwdGNoYSBvY2hhbnUgcHJlZCBzcGFtb20/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdQb3pyaWXFpSBpbmZvcm0mYWFjdXRlO2NpZSBvIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIG5lYm9sYSBvcCZpYWN1dGU7c2FuJmFhY3V0ZTsgc3ByJmFhY3V0ZTt2bmUnOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ09ka2F6IHByZSBwb3Bpcyc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdQb3XFvmnFpSAyNGhvZGlub3YmeWFjdXRlOyDEjWFzPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUmlhZGt5IChwb3puYW1rYTptJm9jaXJjO8W+ZXRlIG1lbmnFpSBhaiBwb21vY291IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ1N0xLpwY2UgIChwb3puJmFhY3V0ZTtta2E6IG0mb2NpcmM7xb5ldGUgbWVuacWlIGFqIHBvbW9jb3UgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdab2JyYXppxaUgdcW+JmlhY3V0ZTt2YXRlxL5vdmk/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RvdG8gcG9sZSBtJm9jaXJjO8W+ZSBiecWlIHByJmFhY3V0ZTt6ZG5lJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ByZW1lbm5lIHByZSAmc2Nhcm9uO2FibCZvYWN1dGU7bnUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnRG9zdHVwbiZlYWN1dGU7IHByZW1lbm4mZWFjdXRlOyc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHByZW1lbm4mZWFjdXRlOyc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0QmYWFjdXRlO3R1bSBvZG9zbGFuaWEnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1YmYWFjdXRlOyZzY2Fyb247IHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZHJlc2Egb2Rvc2llbGF0ZcS+YSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgc3RyJmFhY3V0ZTtua3kgb2JzYWh1aiZ1YWN1dGU7Y2VqIGZvcm11bCZhYWN1dGU7cic7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdWZXJ6aWEgbW9kdWx1IGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1snaGVscF90YWInXSA9ICdabmFrb3YmYWFjdXRlOyBzYWRhJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+aWQ8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdQcmVtZW5uJmFhY3V0ZTsnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnVnl0dm9yacWlIHVrJmFhY3V0ZTvFvmt1ICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdWeXR2b3JpxaUgdWsmYWFjdXRlO8W+a3UgSFRNTCAmc2Nhcm9uO2FibCZvYWN1dGU7bnknOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdWeXR2b3JpxaUgdWsmYWFjdXRlO8W+a3UgaGxhdmnEjWt5ICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ1Z5dHZvcmnFpSB1ayZhYWN1dGU7xb5rdSBobGF2acSNa3knOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnem5ha292JmFhY3V0ZTsgc2FkYSc7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1BvbGlhIHByZSB0cmllZGVuaWUgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnUHJlZG5hc3RhdmVuJnlhY3V0ZTsgcm9rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ1pvYnJhemnFpSAmcXVvdDsmc2Nhcm9uO2FibCZvYWN1dGU7bnUgcG8gb2Rvc2xhbiZpYWN1dGU7JnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdQcmVzbWVyb3ZhxaUgbmEgc3RyJmFhY3V0ZTtua3UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0NpZcS+b3YmYWFjdXRlOyBzdHImYWFjdXRlO25rYSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdQb3Zpbm4mZWFjdXRlOyBuJmFhY3V0ZTt6dnkgcG9sJmlhY3V0ZTsnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWecW+YWRvdmHFpSB6YWQmYWFjdXRlO3ZhbmllIG4mYWFjdXRlO3p2b3YgcHJlIHBvbGlhJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnVnnFvmFkb3ZhxaUgdW5payZhYWN1dGU7dG5lIG4mYWFjdXRlO3p2eSBwcmUgcG9saWEnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1Z5xb5pYWRvdmHFpSB1bmlrJmFhY3V0ZTt0bmUgbiZhYWN1dGU7enZ5JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1ByZWgmYWFjdXRlO2R6YcWlIHBvbGlhJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdOYWhyYcWlICZzY2Fyb247YWJsJm9hY3V0ZTtudSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdQcmlkYcWlIHRleHQgdGxhxI0maWFjdXRlO3RrYSc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdvZHN0ciZhYWN1dGU7bmnFpSB0ZXh0IHRyYcSNJmlhY3V0ZTt0a2EnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ0hvZG5vdGEgcHJlIHBvcm92bmFuaWUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnUmXFpWF6ZWMnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzbG8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdab2JyYXpvdmHFpSBwcmlhbW8gdiBvYnNhaHUgKGlubGluZSknOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1ByZWRuYXN0YXZlbiZhYWN1dGU7IGhvZG5vdGEgcHJlcG9sZSc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnVnnEjWlzdGnFpSBwbyBrbGlrbnV0JmlhY3V0ZTs/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwcmUgcG9sZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwbyBvZG9zbGFuJmlhY3V0ZTsgZm9ybWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnVmlhYyB0eXBvdiBwb2wmaWFjdXRlOz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnUHJlcG4mdWFjdXRlO8WlIGRvIHJvesSNJmlhY3V0ZTtyZW4mZWFjdXRlO2hvIG0mb2FjdXRlO2R1JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnUHJlcG4mdWFjdXRlO8WlIGRvIGplZG5vZHVjaCZlYWN1dGU7aG8gbSZvYWN1dGU7ZHUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93ICYjMDM5O0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGRzJiMwMzk7IHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHdheXMnOwokbGFuZ1snZXJyb3JfdXNlcnRhZ19kaXNwb3NpdGlvbiddID0gJ1VzZXIgZGVmaW5lZCB0YWcgcmV0dXJuZWQgYW4gZXJyb3InOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1Vwb3pvcm5lbmllISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJ1xL5rYSwgcG9waXNvayBrIHBvbGkgdsS+YXZvJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYnXEvmthLCBwb3Bpc29rIGsgcG/EvnUgbmFkJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSB6ICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudSZhYWN1dGU7cic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnUmYWFjdXRlO3InOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcmVjJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHImaWFjdXRlO2wnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNJmFhY3V0ZTtqJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0omdWFjdXRlO24nOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSiZ1YWN1dGU7bCc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3Qmb2FjdXRlO2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdQcmVwJmFhY3V0ZTvEjXRlISBOYXN0YWxhIGNoeWJhIHByaSBvZG9zaWVsYW4maWFjdXRlOyBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZG5hc3RhdmVuJmVhY3V0ZTs6IG5lemEmc2Nhcm9uO2tydG51dCZlYWN1dGU7JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRuYXN0YXZlbiZlYWN1dGU7OiB6YSZzY2Fyb247a3JhdG51dCZlYWN1dGU7JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdPZG9zbGllbGFuaWUgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FLW1haWxvdiZhYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtuYSB6YXRpYcS+IG5lcG91xb5pdCZhYWN1dGU7JzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdOJmFhY3V0ZTt6b3YgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucwpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPgo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPgo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdApvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPgo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZAppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+Cgo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+CjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUKcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPgoKPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPgo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQpDb25maWd1cmF0aW9uLjwvcD4KCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcwpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5CmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPgo8aDQ+TWFpbjwvaDQ+CjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPgo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+CjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pgo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCjwvcD4KCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+CjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgo8L3VsPgo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLApidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbgp3cml0ZSB5b3VyIENTUy48L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0cwo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPgo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPgo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+CjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+CjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+CjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1bJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10uPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPgo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkKc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIHdpbGwgYmVjb21lIHRoZSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyIGluIHRoZSBuZXh0IHJlbGVhc2UuPC9saT4KCjwvdWw+PC9saT48L2xpPjwvdWw+CgoKPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPgo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPgo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+CjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwKYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPgoKPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPgo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4KCjxoMz5Db25maWd1cmF0aW9uPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPgo8dWw+CjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPgo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPgo8L3VsPgo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4KPHByZT4KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLwoJZm9ybSB7bWFyZ2luLXRvcDowfQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9CglmaWVsZHNldCBkaXYgewoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJbWFyZ2luLWxlZnQ6MWVtOwoJfQoJZmllbGRzZXQgZGl2IGRpdiB7CgkJbWFyZ2luLXRvcDowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW0KCX0KCWZpZWxkc2V0IHsKCQltYXJnaW4tYm90dG9tOjFlbTsKCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7CgkJcGFkZGluZzowLjVlbQoJfQoJZmllbGRzZXQgbGFiZWwgewoJCXdpZHRoOmF1dG87Cgl9CglsZWdlbmQgewoJCWNvbG9yOiNGRkY7CgkJYmFja2dyb3VuZDojRjYwOwoJCWZvbnQtc3R5bGU6aXRhbGljOwoJCWZvbnQtc2l6ZToxLjJlbTsKCQltYXJnaW4tYm90dG9tOjAuNWVtOwoJCXBhZGRpbmc6MC4yZW07CgkJd2lkdGg6YXV0bzsKCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MKCX0KCXRleHRhcmVhIHsKCQltYXJnaW46IDAuNWVtIDA7CgkJd2lkdGg6OTglOwoJCWhlaWdodDogNmVtCgl9CgoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscwoJCXRvIGhlbHAgYWxpZ25tZW50ICovCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19Cgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LAoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19CgoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8KCS5jYXB0Y2hhIHsKCQltYXJnaW46MC41ZW0gMDsKCQl3aWR0aDoyMDBweDsKCQl0ZXh0LWFsaWduOmNlbnRlcgoJfQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19CgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19CgoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQo8L3ByZT4KCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+Cgo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+CgoKPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPgo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPC91bD4KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHdyaXRlIHlvdXIgcXVlc3Rpb25zIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNhc2gpLjwvcD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yNTA3Mzc0MDMxODk5NDYyMDAwLjEyMTQyMzMxMzEuMTI0Mzg0OTQyNS4xMjQzODczMTEzLjI5JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI0Mzg0OTQyNS4yOC4xMC51dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9Lyc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sl_SI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0IElucHV0IChNdWx0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlhbiBQcm92aW5jZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGltZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWxlIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTmkgcHJhdmlsbm8gaXpwb2xuamVuJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdBIHZhbHVlIHdhcyBub3Qgc3VwcGxpZWQgZm9yIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdQcm9zaW1vLCBpenBvbG5pdGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUHJvc2ltbywgdnBpJnNjYXJvbjtpdGUgJnNjYXJvbjt0ZXZpbGtvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1Byb3NpbW8sIHZwaSZzY2Fyb247aXRlIHZlbGphdmVuIHphcGlzICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnUHJvc2ltbywgdnBpJnNjYXJvbjtpdGUgJnNjYXJvbjt0ZXZpbGtvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3NpbW8sIHZwaSZzY2Fyb247aXRlIHZlbGphdmVuIEUtcG8mc2Nhcm9uO3RuaSBuYXNsb3YgdiBwb2xqdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsIG5hc2xvdiBzZSBuZSB1amVtYSB6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnUHJvc2ltbywgdnBpJnNjYXJvbjtpdGUgdmVsamF2bm8gdGVsZWZvbnNrbyAmc2Nhcm9uO3Rldmlsa28gdiBwb2xqdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuaSB2ZWxqYXZlbiBFLXBvJnNjYXJvbjt0bmkgbmFzbG92JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIG5vIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmllbGQgb3JkZXIgdXBkYXRlZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybSBkZWxldGVkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmllbGQgZGVsZXRlZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhdGlvbiBVcGRhdGVkLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1lvdSBtdXN0IGNoZWNrICZxdW90OyVzJnF1b3Q7IGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAmcXVvdDslcyZxdW90OyBpcyBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIHVzZSB1bmlxdWUgZmllbGQgbmFtZXMsIG9yIGRpc2FibGUgdW5pcXVlIGZpZWxkIG5hbWVzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZpZWxkcyBtdXN0IGJlIG5hbWVkLCB1bmxlc3MgeW91IGRpc2FibGUgdGhpcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW91cyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZXInOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnYWRkZWQnOwokbGFuZ1sndXBkYXRlZCddID0gJ3VwZGF0ZWQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3JlY2lwaWVudHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdTYXZlJzsKJGxhbmdbJ2FkZCddID0gJ0FkZCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVcGRhdGUnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXMnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcm93cyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29scyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgSG91ciBDbG9jayc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgSG91ciBDbG9jayc7CiRsYW5nWydob3VyJ10gPSAnSG91cic7CiRsYW5nWydtaW4nXSA9ICdNaW51dGUnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RheSddID0gJ0RheSc7CiRsYW5nWydtb24nXSA9ICdNb250aCc7CiRsYW5nWyd5ZWFyJ10gPSAnWWVhcic7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+Cjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0EgcmVndWxhciBleHByZXNzaW9uIHRvIGFsbG93IGZpbHRlcmluZyBjYXRhbG9nZXIgaXRlbXMgYnkgbmFtZSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ1RoZSBoZWlnaHQgb2YgdGhlIG11bHRpc2VsZWN0IGZpZWxkJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGaWVsZCBIZWlnaHQnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGVzdGluYXRpb24gRGlyZWN0b3J5IGZvciBvdXRwdXQgZmlsZXMnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVc2VyIERlZmluZWQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm0gRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdTaG93IEZpZWxkIEFsaWFzZXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBkaXNwbGF5IGZpZWxkIGFsaWFzZXMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdGaWVsZCBBbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU3RyYW4gJXMgb2QgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb24mIzAzOTt0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPgo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnRGVmYXVsdCB2YWx1ZSBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0NsZWFyIGRlZmF1bHQgb24gY2xpY2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTmVlZCBtb3JlIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnVG9vIG1hbnkgY29uZnVzaW5nIGZpZWxkIHR5cGVzPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1N3aXRjaCB0byBTaW1wbGUgTW9kZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcnkgdG8gc2F2ZSBmaWxlIGluJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnXSA9ICdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ10gPSAnTGVhdmUgYmxhbmsgdG8gYWxsb3cgbmV3bGluZXMgYW5kIGNhcnJpYWdlIHJldHVybnMgaW4gb3V0cHV0JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIFVzZXIgYSBDb3B5IG9mIFN1Ym1pc3Npb24/JzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHlfbGFiZWwnXSA9ICdMYWJlbCBmb3IgQ2hlY2tib3ggKGlmIHVzZXIgY2hvaWNlKSc7CiRsYW5nWyd0aXRsZV9zZW5kX21lX2FfY29weSddID0gJ1NlbmQgbWUgYSBjb3B5IG9mIGZvcm0nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZSddID0gJ0FsbG93IHN1YmplY3QgdG8gYmUgb3ZlcnJpZGRlbj8nOwokbGFuZ1sndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJ10gPSAnQWxsb3cgJiMwMzk7RW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZHMmIzAzOTsgdG8gb3ZlcnJpZGUgdGhlIHN1YmplY3Qgc3BlY2lmaWVkIGluIHRoZSBwdWxsZG93bi4nOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyY2gnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPGJyIC8+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48YnIgLz4KUGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUKeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUKY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjxiciAvPgpBZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdApvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+CjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4KCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcKaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPgo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KPC9wPgoKPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+CjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcgpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUKZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+CjwvdWw+CjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+CjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+CjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPgo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPgo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4KPC91bD48L2xpPgoKPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cwo8dWw+PGxpPkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPgo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+CjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjwvdWw+PC9saT4KCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weS4gVGhpcyB3b3JrcyBsaWtlIHRoZSBFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQgZGVzY3JpYmVkIGFib3ZlLCBidXQgaXQgcHJvdmlkZXMgb3B0aW9ucyBmb3Igc2VuZGluZyBhIGNvcHkgb2YgdGhlIHJlc3VsdHMgdG8gdGhlIHVzZXIuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPgo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkKc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIHdpbGwgYmVjb21lIHRoZSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyIGluIHRoZSBuZXh0IHJlbGVhc2UuPC9saT4KCjwvdWw+PC9saT48L2xpPjwvdWw+CgoKPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPgo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPgo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+CjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwKYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPgoKPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPgo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4KCjxoMz5Db25maWd1cmF0aW9uPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPgo8dWw+CjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPgo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPgo8L3VsPgo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4KPHA+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIApzdGF0aWMgdGV4dCBmaWVsZHMuIEluc3RlYWQsIGl0IGNyZWF0ZXMgYSBzdHlsZXNoZWV0IGNhbGxlZCAmcXVvdDtGb3JtQnVpbGRlciBEZWZhdWx0JnF1b3Q7IHRoYXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGFjaCB0byB0aGUgcGFnZSB0ZW1wbGF0ZQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+CgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPgo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IE1ha2Ugc3VyZSB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBzZW5kIGVtYWlsIHZpYSB0aGUgdGVzdCBpbiB0aGUgQ01TTWFpbGVyIE1vZHVsZS4gSXQmIzAzOTtzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+CjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4KPC9vbD4gCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+CjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4KPC91bD4KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIGFuZCBodW5kcmVkcyBvZiBob3VycyBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4gUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciBzZW5kIHlvdXIgcXVlc3Rpb25zIHdyaXR0ZW4gb24gZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzIGV2ZW4ga25vdyB3aGF0IGEgYnJva2VuIHJlY29yZCBpcz8gSSB3b3VsZCBzYXkgc2tpcHBpbmcgQ0QsIGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgd2hhdCB0aGF0IGlzIGVpdGhlci4gTGlrZSBhIHNhbXBsZSB0aGF0IGdvdCBzdHVjayBvbiBsb29wPyBEYW1uLCBJIGFtIGdldHRpbmcgb2xkLiBTbyBpcyB0aGlzIHBhcmFncmFwaC4gVGltZSB0byBtb3ZlIG9uLCBoZXJlLjwvcD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My45NDY1NjY0OTMzMDQ5Mjk3MDAuMTIzNjE3OTA5OS4xMjM2ODUwMzEzLjEyMzY4NjE1MTIuNic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMzY4NjE1MTIuNi41LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1qdXBpdGVyLnNpbnVzaWtzLm5ldHx1dG1jY3Q9L2FkbWluL2FkZHRlbXBsYXRlLnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhdW1sO3JieWdnYXJlbiAoRm9ybSBCdWlsZGVyKSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0YmYXVtbDtsdHR5cCBpbnRlIHZhbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnViZhdW1sO2xqIGVuIChlbGxlciBmbGVyKSBrYXRhbG9nIG9iamVjdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLVNsdXQgcCZhcmluZzsgZ3J1cHBydXRhIChmaWVsZHNldCknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLVN0YXJ0IHAmYXJpbmc7IGdydXBwcnV0YSAoZmllbGRzZXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnSW5tYXRuaW5nc2YmYXVtbDtsdCAodGV4dCBpbnB1dCknOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnTCZvdW1sO3Nlbm9yZCc7CiRsYW5nWydmaWVsZF90eXBlX1Bhc3N3b3JkQWdhaW5GaWVsZCddID0gJ0wmb3VtbDtzZW5vcmQgaWdlbic7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdJbm1hdG5pbmdzZiZhdW1sO2x0IChmbGVyYSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dHJ1dGEgKHRleHRhcmVhKSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnS25hcHAnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnS3J5c3NydXRhIChjaGVjayBib3gpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnS3J5c3NydXRlZ3J1cHAgKGNoZWNrIGJveCBncm91cCknOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICcmQXJpbmc7ciBSdWxsZ2FyZGluc21lbnknOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGl2JmF1bWw7bGphcmUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnViZhdW1sO2xqYXJlIGYmb3VtbDtyIGFtZXJpa2Fuc2sgc3RhdCc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLYW5hZGVuc2lzayBQcm92aW5zIFYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmR2JmF1bWw7bGphcmUnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXR1bXYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0FsdGVybmF0aXZrbmFwcGdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFLXBvc3RhIHJlc3VsdGF0IGJhc2VyYWRlIHAmYXJpbmc7IHZhbCBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNwYXJhIHJlc3VsdGF0IHRpbGwgZmlsIGJhc2VyYWRlIHAmYXJpbmc7IHZhbCBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU3BhcmEgcmVzdWx0YXQgdGlsbCBmaWwoZXIpIGJhc2VyYWRlIHAmYXJpbmc7IGZsZXJhIHZhbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqT21kaXJpZ2VyYSB0aWxsIHNpZGEgYmFzZXJhdCBwJmFyaW5nOyB2YWwgaSBydWxsZ2FyZGluc21lbnknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkUtcG9zdGEgcmVzdWx0YXRldCB0aWxsIGJlc3QmYXVtbDttZCBhZHJlc3MvYmVzdCZhdW1sO21kYSBhZHJlc3Nlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqQWRyZXNzIGYmb3VtbDtyIHZlcmlmaWVyYS12aWEtZXBvc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLWFkcmVzc2VuJnF1b3Q7LCBvY2ggc2tpY2thIGVuIGtvcGlhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0IHRpbGwgdmFubGlnIGZpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3BhcmEgcmVzdWx0YXQgaSBkYXRhYmFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTcGFyYSByZXN1bHRhdGV0IGYmb3VtbDtyIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQW5yb3AgdGlsbCBlbiBhbnYmYXVtbDtuZGFyZGVmaW5pZXJhZCB0YWdnIG1lZCBmb3JtdWwmYXVtbDtycmVzdWx0YXQnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm0nXSA9ICcqU3VibWl0IHRvIGFuIGFyYml0cmFyeSBmb3JtIGFjdGlvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1wb3N0YSB0aWxsIGVuIGF2IGFudiZhdW1sO25kYXJlbiBhbmdpdmVuIGUtcG9zdGFkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRS1wb3N0YSB0aWxsIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2lkYnJ5dG5pbmcnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWx1cHBsYWRkbmluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLWFkcmVzc2VuJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFLXBvc3RmJmF1bWw7bHQgZiZvdW1sO3IgJnF1b3Q7RnImYXJpbmc7bi1hZHJlc3NlbiZxdW90OyBpZ2VuIGYmYXVtbDtsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLW5hbW5ldCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDsmQXVtbDttbmUmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzayB0ZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2sgbCZhdW1sO25rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTCZhdW1sO25rIChhbnYmYXVtbDtuZGFyY2VudHJlcmFkKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLWcmb3VtbDttdCBmJmF1bWw7bHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLWJlciZhdW1sO2tuYXQgZiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLSBVbmlrdCBoZWx0YWwgKFNlcmllKSc7CiRsYW5nWydmaWVsZF90eXBlX1VzZXJUYWdGaWVsZCddID0gJy1BbnYmYXVtbDtuZGFyIERlZmluaWVyYXQgVGFnIEFucm9wJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcGFueURpcmVjdG9yeUZpZWxkJ10gPSAnRiZvdW1sO3JldGFnc2thdGFsb2cgZiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTW9kdWxlSW50ZXJmYWNlRmllbGQnXSA9ICctTW9kdWxnciZhdW1sO25zc25pdHRzIGYmYXVtbDtsdCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2ZXJpZmllcmluZyc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmlzayc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdIZWx0YWwnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRS1wb3N0YWRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNJmFyaW5nO3N0ZSB2YXJhIGlrcnlzc2FkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaGEgcmVndWxqJmF1bWw7cnV0dHJ5Y2snOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTWF0Y2hhIGludGUgcmVndWxqJmF1bWw7cnV0dHJ5Y2snOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0luZ2V0IHYmYXVtbDtyZGUgYW5nYXZzIGYmb3VtbDtyIGV0dCBmJmF1bWw7bHQgc29tICZhdW1sO3Igb2JsaWdhdG9yaXNrdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0FuZ2UgZXR0IHYmYXVtbDtyZGUgZiZvdW1sO3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnQW5nZSBldHQgdGFsIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2UgZXR0IGdpbHRpZ3QgdiZhdW1sO3JkZSBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0FuZ2UgZXR0IGhlbHRhbHN2JmF1bWw7cmRlIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0FuZ2UgZW4gZ2lsdGlnIGUtcG9zdGFkcmVzcyBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1wb3N0YWRyZXNzZW4gbWF0Y2hhciBpbnRlIHYmYXVtbDtyZGV0IGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdWJmF1bWw7bmxpZ2VuIGZ5bGwgaSBldHQgZ29kayZhdW1sO250IHRlbGVmb25udW1tZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2xvZ2luJ10gPSAnViZhdW1sO25saWdlbiBsb2dnYSBpbiBmJm91bWw7ciBhdHQgYW52JmF1bWw7bmRhIGZvcm11bCZhdW1sO3JldCc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyB2ZXJrYXIgaW50ZSB2YXJhIGVuIGdpbHRpZyBlLXBvc3RhZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdBbmdlIGV0dCB2JmF1bWw7cmRlIHNvbSBpbnRlICZhdW1sO3IgbCZhdW1sO25ncmUgJmF1bWw7biAlcyB0ZWNrZW4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2F0X2xlYXN0J10gPSAnVmFyIHYmYXVtbDtubGlnIGFuZ2UgZXR0IHYmYXVtbDtyZGUgc29tICZhdW1sO3IgbWluc3QgJXMgdGVja2VuJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVja2VuIGF0dCBhbnYmYXVtbDtuZGEgc29tIGF2Z3ImYXVtbDtuc2FyZSBpIHJlc3VsdGF0IHNvbSByZXR1cm5lcmFyIG1lciAmYXVtbDtuIGV0dCB2JmF1bWw7cmRlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdEdSBiZWgmb3VtbDt2ZXIgciZhdW1sO3R0aWdoZXRlbiAmcXVvdDslcyZxdW90OyBmJm91bWw7ciBhdHQgdXRmJm91bWw7cmEgZGVuICZhcmluZzt0ZyZhdW1sO3JkZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnVHl2JmF1bWw7cnIhIER1IGhhciBpbnRlIHRpbGxyJmF1bWw7Y2tsaWdhIHImYXVtbDt0dGlnaGV0ZXIgZiZvdW1sO3IgYXR0IGtvbW1hICZhcmluZzt0IGRlbiBoJmF1bWw7ciBzZWt0aW9uZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGJmF1bWw7bHRvcmRuaW5nZW4gdXBwZGF0ZXJhZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsJmF1bWw7ciBib3J0dGFnZXQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGJmF1bWw7bHQgYm9ydHRhZ2V0Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmF0aW9uIHVwcGRhdGVyYWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRHUgbSZhcmluZztzdGUga3J5c3NhIGkgJnF1b3Q7JXMmcXVvdDsgZiZvdW1sO3IgYXR0IGZvcnRzJmF1bWw7dHRhJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nO3N0ZSBhbmdlICZhcmluZzt0bWluc3RvbmUgZW4gbW90dGFnYXJhZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGZvcm11bCZhdW1sO3JldCAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGYmYXVtbDtsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuY2VyYWRlIGluc3QmYXVtbDtsbG5pbmdhciAmYXVtbDtyIGludGUgdGlsbGcmYXVtbDtuZ2xpZ2EgZiZvdW1sO3JyJmF1bWw7biBmJmF1bWw7bHR0eXBlbiBoYXIgYW5nZXR0cy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGJmF1bWw7bHRuYW1uZXQgJnF1b3Q7JXMmcXVvdDsgYW52JmF1bWw7bmRzIHJlZGFuLiBWJmF1bWw7bmxpZ2VuIGFudiZhdW1sO25kIHVuaWthIGYmYXVtbDtsdG5hbW4gZWxsZXIgYXZtYXJrZXJhIHVuaWthIGYmYXVtbDtsdG5hbW4gaSBrb25maWd1cmF0aW9uZW4gZiZvdW1sO3IgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVuLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRiZhdW1sO2x0IG0mYXJpbmc7c3RlIGhhIGV0dCBuYW1uLCBzJmFyaW5nO3ZpZGEgZHUgaW50ZSBhdm1hcmtlcmFyIGRldHRhIGkgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyBrb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYXVtbDtuZ2Q6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgcnV0b3InOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbCc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyUgdGVja2VuLic7CiRsYW5nWydvcmRlciddID0gJ09yZG5pbmcnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbb3NwZWNpZmljZXJhdF0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxsYWdkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cHBkYXRlcmFkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnRlcmluZ3N2YWwgdmlkIG91dHB1dC91dG1hdG5pbmcnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYXVtbDtsaiBFbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1YmYXVtbDtsaiBUeXAnOwokbGFuZ1sndG8nXSA9ICdUaWxsJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVqJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdtb3R0YWdhcmUnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG0mb3VtbDtqbGlnYSBmaWxlcic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9uZXInOwokbGFuZ1snc2F2ZSddID0gJ1NwYXJhJzsKJGxhbmdbJ2FkZCddID0gJ0wmYXVtbDtnZyB0aWxsJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwcGRhdGVyYSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NwYXJhIG9jaCBmb3J0cyZhdW1sO3R0IHJlZGlnZXJhJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bCZhdW1sO3InOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bCZhdW1sO3IgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ1N0YXR1cyBmJm91bWw7ciBvYmxpZ2F0b3Jpc2t0IGYmYXVtbDtsdCB1cHBkYXRlcmFkJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heHN0b3JsZWsnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdGaWwmYXVtbDtuZGVsc2VyJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUaWxsJmFyaW5nO3RuYSBmaWx0eXBlcic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0RlbiB1cHBsYWRkYWRlIGZpbGVuICZvdW1sO3IgZiZvdW1sO3Igc3RvciEgTWF4aW1hbCBzdG9ybGVrICZhdW1sO3I6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGVuIGgmYXVtbDtyIGZpbHR5cGVuIGthbiBpbnRlIGxhZGRhcyB1cHAuIEtvbnRyb2xsZXJhIGF0dCBmaWwmYXVtbDtuZGVsc2VuICZhdW1sO3Iga29ycmVrdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTGFkZGEgdXBwJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWwmYXVtbDtyIGltcG9ydGVyYXQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBhdiBmb3JtdWwmYXVtbDtyIG1pc3NseWNrYWRlcyEgRGV0IHZhciBwcm9ibGVtIG1lZCBYTUwtZmlsZW5zIGZvcm1hdC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJhZGVyJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2x1bW5lcic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdGltbWFyc2tsb2NrYSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtdGltbWFyc2tsb2NrYSc7CiRsYW5nWydob3VyJ10gPSAnVGltbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUiZhdW1sO2NrdmlkZDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUYWNrISBEaXR0IGZvcm11bCZhdW1sO3IgaGFyIHNraWNrYXRzLic7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snZGVsZXRlJ10gPSAnVGEgYm9ydCc7CiRsYW5nWydkYXknXSA9ICdEYWcnOwokbGFuZ1snbW9uJ10gPSAnTSZhcmluZztuYWQnOwokbGFuZ1sneWVhciddID0gJyZBcmluZztyJzsKJGxhbmdbJ25vbmUnXSA9ICcoaW5nZW4pJzsKJGxhbmdbJ2NzcyddID0gJ0NTUyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZW4gYXZpbnN0YWxsZXJhZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWx2ZXJzaW9uICVzIGluc3RhbGxlcmFkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZW4gdXBwZ3JhZGVyYWQgdGlsbCB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUaWxsYmFrYS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2tpY2thIGZvcm11bCZhdW1sO3InOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnRm9ydHMmYXVtbDt0dC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnSWtyeXNzYWQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnRWogaWtyeXNzYWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdIdXZ1ZC0nOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0luc3QmYXVtbDtsbG5pbmdhciBmJm91bWw7ciBmb3JtdWwmYXVtbDtydmlzbmluZyc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnU2tpY2thdCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnSW5zdCZhdW1sO2xsbmluZ2FyIGYmb3VtbDtyIENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQXZhbmNlcmFkZSBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybXVsJmF1bWw7cm1hbGwnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1NraWNrYS1tYWxsJzsKJGxhbmdbJ3RhYl91ZHQnXSA9ICdVRFQgSW50ZWdyYXRpb24nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHktdmFyaWFibGVyICZhdW1sO3IgaW50ZSB0aWxsJmFyaW5nO3RuYSBpIGRldCBoJmF1bWw7ciBmJmF1bWw7bHRldC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0wmYXVtbDtnZyB0aWxsIGZsZXIgdmFsJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUgdmFsJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTCZhdW1sO2dnIHRpbGwgZmxlciBrcnlzc3J1dG9yJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUga3J5c3NydXRvcic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0wmYXVtbDtnZyB0aWxsIGVuIGFkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1RhIGJvcnQgbWFya2VyYWRlIGFkcmVzc2VyJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0wmYXVtbDtnZyB0aWxsIG1vdHRhZ2FyZSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdUYSBib3J0IG1hcmtlcmFkZSBtb3R0YWdhcmUnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdGJm91bWw7ciBtJmFyaW5nO25nYSBlLXBvc3RtZWRkZWxhbmRlbiBnZW5lcmVyYWRlcyBmciZhcmluZztuIGRpbiBJUC1hZHJlc3MuIEFudGktc2tyJmF1bWw7cHBvc3Qta29kIGhhciBmJm91bWw7cmhpbmRyYXQgYXR0IGRlIGxldmVyZXJhdHMuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01pc3N0JmF1bWw7bmt0IHNrciZhdW1sO3Bwb3N0IGZyJmFyaW5nO24gSVAtYWRyZXNzZW4gJXMgc3RvcHBhZGVzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnJkF1bWw7bmRyYSBmJmF1bWw7bHRvcmRuaW5nJzsKJGxhbmdbJ2NhbmNlbCddID0gJyZBcmluZztuZ3JhJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1YmYXVtbDtyZGV1cHBzJmF1bWw7dHRuaW5nOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPgo8YnIvPgo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPgpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4KPGJyLz4KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPgo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdFdHQgdmFubGlndCB1dHRyeWNrIGYmb3VtbDtyIGF0dCB0aWxsJmFyaW5nO3RhIGZpbHRyZXJpbmcgYXYga2F0YWxvZ2VyIGdlbm9tIG5hbW4nOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdIJm91bWw7amRlbiBwJmFyaW5nOyBmbGVydmFsc2YmYXVtbDtsdGV0JzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGJmF1bWw7bHRldHMgaCZvdW1sO2pkJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ00mYXJpbmc7bG1hcHAgZiZvdW1sO3IgZmlsZXInOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdBbnYmYXVtbDtuZGFyZGVmaW5pZXJhZCB0YWdnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaWRhIGF0dCAmYXJpbmc7dGVydiZhdW1sO25kYSB0aWxsIG1lZCB1cHBsYWRkbmluZ3NsJmF1bWw7bmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTa2lja2F0IG1lZCBmb3JtdWwmYXVtbDtyYnlnZ2FyZW4nOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwcGxhZGRuaW5nc2thdGVnb3JpJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2tpY2thIGRlbm5hIGZpbCB0aWxsIHVwcGxhZGRuaW5nc21vZHVsZW4uJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0Ymb3VtbDtya2xhcmluZyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGwmYXVtbDtuZ2QnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdFdGlrZXR0IGYmb3VtbDtyIGtyeXNzcnl0YSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0V0aWtldHQgZiZvdW1sO3IgYWx0ZXJuYXRpdmtuYXBwJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWJmF1bWw7cmRlIG9tIGlrcnlzc2FkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1YmYXVtbDtyZGUgb20gZWogaWtyeXNzYWQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0RldGFsamVyIGYmb3VtbDtyIGtyeXNzcnV0ZWdydXBwJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1RhIGJvcnQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHQgZiZvdW1sO3IgJnF1b3Q7ViZhdW1sO2xqIEVuJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1YmYXVtbDtyZGUgZiZvdW1sO3IgdXJ2YWwnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnTmFtbiBmJm91bWw7ciB1cnZhbHN2aXNuaW5nJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnJkF1bWw7bW5lIGYmb3VtbDtyIHVydmFsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTdGFuZGFyZHVydmFsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhcmR1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1N0YW5kYXJkdXJ2YWwnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOYW1uIGYmb3VtbDtyIGFsdGVybmF0aXYnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnViZhdW1sO3JkZXQgc2tpY2thdCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnQWx0ZXJuYXRpdiBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGl2YWwtYWx0ZXJuYXRpdic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnTW90dGFnYXJlbnMgZS1wb3N0YWRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTmFtbiBwJmFyaW5nOyBtJmFyaW5nO2xmaWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnImYXJpbmc7bi1uYW1uJnF1b3Q7IGYmb3VtbDtyIGUtcG9zdCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnQW52JmF1bWw7bmQgZW5rZWwgZS1wb3N0dmVyaWZpZXJpbmcnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnQW52JmF1bWw7bmQgZW5rZWwgZS1wb3N0YWRyZXNzdmVyaWZpZXJpbmcgKHQuZXguIHRpbGwmYXJpbmc7dCAmcXVvdDt4QHkmcXVvdDsgaXN0JmF1bWw7bGxldCBmJm91bWw7ciBhdHQga3ImYXVtbDt2YSAmcXVvdDt4QHkuc2UmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0ZyJmFyaW5nO24tYWRyZXNzJnF1b3Q7IGYmb3VtbDtyIGUtcG9zdCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0UtcG9zdHRlY2tlbmtvZG5pbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1J1bGxnYXJkaW5zbWVueWJhc2VyYWRlIGUtcG9zdGRldGFsamVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbG5hbW4nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJyZBdW1sO21uZXNyYWQgZiZvdW1sO3IgZS1wb3N0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bCZhdW1sO3JuYW1uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybXVsJmF1bWw7cnN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0YmYXVtbDtyZGlnIGF0dCBhbnYmYXVtbDtuZGFzJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdFaiBmJmF1bWw7cmRpZyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2lkYSBhdHQgb21kaXJpZ2VyYSB0aWxsIGVmdGVyIGF0dCBmb3JtdWwmYXVtbDtyZXQgc2tpY2thdHMnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1YmYXVtbDtubGlnYSBsJmF1bWw7Z2cgdGlsbCBldHQgZiZhdW1sO2x0IHRpbGwgZm9ybXVsJmF1bWw7cmV0IHMmYXJpbmc7IGF0dCBhbnYmYXVtbDtuZGFyZW5zIGlubWF0bmluZyBrYW4gaGFudGVyYXMuIER1IGthbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2FudiZhdW1sO25kIGRlbm5hIGdlbnYmYXVtbDtnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0FsaWFzIGYmb3VtbDtyIGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXNfc2hvcnQnXSA9ICdBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm11bCZhdW1sO3JmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGJmF1bWw7bHQtSUQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdWaXNhIGYmYXVtbDtsdGVucyBhbGlhcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnT20gZHUga2xpY2thciBoJmF1bWw7ciBrb21tZXIgZiZhdW1sO2x0YWxpYXMgYXR0IHZpc2FzIG4mYXVtbDtyIGR1IGwmYXVtbDtnZ2VyIHRpbGwgZWxsZXIgcmVkaWdlcmFyIGV0dCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGJmF1bWw7bHRuYW1uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRiZhdW1sO2x0YWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnRGV0YWxqZXIgZiZvdW1sO3IgYWx0ZXJuYXRpdmtuYXBwZ3J1cHAnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0YmYXVtbDtsdHR5cCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnZiZvdW1sO3IgYXR0IHNrYXBhIGV0dCBmb3JtdWwmYXVtbDtyaGFudGVyaW5nc2YmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdMJmF1bWw7Z2cgdGlsbCBueXR0IGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnVmlzYSBGb3JtdWwmYXVtbDtyYnlnZ2FyZW5zIHZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGV0dGEga29tbWVyIGF0dCBsJmF1bWw7Z2dhIHRpbGwgdmVyc2lvbnNudW1yZXQgZiZvdW1sO3IgZGVuIHZlcnNpb24gYXYgRm9ybXVsJmF1bWw7cmJ5Z2dhcm1vZHVsZW4gc29tIGR1IGhhciBpbnN0YWxsZXJhZCBpIGVuIGtvbW1lbnRhciwgZiZvdW1sO3IgYXR0IGhqJmF1bWw7bHBhIHRpbGwgbWVkIGZlbHMmb3VtbDtrbmluZy4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0wmYXVtbDtnZyB0aWxsIG55dHQgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1RleHQgZiZvdW1sO3IgZm9ybXVsJmF1bWw7cmV0cyBza2lja2Eta25hcHAnOwokbGFuZ1sndGl0bGVfYnV0dG9uX3RleHQnXSA9ICdLbmFwcCB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnTCZhdW1sO2dnYSB0aWxsIEphdmFzY3JpcHQgZiZvdW1sO3IgZGVuIHNpc3RhIHNraWNrYS1rbmFwcGVuIGYmb3VtbDtyIGF0dCBmJm91bWw7cmhpbmRyYSBhdHQgZm9ybXVsJmF1bWw7cmV0IHNraWNrYXMgZmxlcmEgZyZhcmluZztuZ2VyPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnTCZhdW1sO2dnIHRpbGwgcyZhdW1sO2tlcmhldHNzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHQgZiZvdW1sO3IgJnF1b3Q7TiZhdW1sO3N0YS1rbmFwcGVuJnF1b3Q7IGkgZm9ybXVsJmF1bWw7cmV0IChhbnYmYXVtbDtuZHMgZiZvdW1sO3IgZm9ybXVsJmF1bWw7ciBtZWQgZmxlcmEgc2lkb3IpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyICZxdW90O0Ymb3VtbDtyZWcmYXJpbmc7ZW5kZS1rbmFwcGVuJnF1b3Q7IGkgZm9ybXVsJmF1bWw7cmV0IChhbnYmYXVtbDtuZHMgZiZvdW1sO3IgZm9ybXVsJmF1bWw7ciBtZWQgZmxlcmEgc2lkb3IpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGJmF1bWw7bHR2ZXJpZmllcmluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0YmYXVtbDtsdCBmJm91bWw7ciB2YWxpZGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19pZCddID0gJ0NTUyBpZCBmJm91bWw7ciBkZXR0YSBmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1Mta2xhc3MgZiZvdW1sO3IgZGV0dGEgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1Mta2xhc3MgZiZvdW1sO3IgZGV0dGEgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdBbnYmYXVtbDtuZGFyZGVmaW5pZXJhZCB0YWcgYXR0IGwmYXVtbDtzYSBpbiBmJm91bWw7cmUgZm9ybXVsJmF1bWw7cmV0IHZpc2FzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdCddID0gJ0FudiZhdW1sO25kYXJkZWZpbmllcmFkIHRhZyBhdHQgYW5yb3BhIGlubmFuIGZvcm11bCZhdW1sO3IgdmlzYXMgKGFucm9wYWQgcCZhcmluZzsgdmFyamUgc2lkYSBzb20gaW5nJmFyaW5nO3IgaSBldHQgZm9ybXVsJmF1bWw7ciBtZWQgZmxlcmEgc2lkb3IpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAnQW52JmF1bWw7bmRhcmRlZmluaWVyYWQgdGFnIGF0dCBhbnJvcGEgdW5kZXIgZm9ybXVsJmF1bWw7ciB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIGYmb3VtbDtyIGF0dCBtYXJrZXJhIG9ibGlnYXRvcmlza2EgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnT2JsaWdhdG9yaXNrdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnRyZvdW1sO3IgZGV0dGEgZiZhdW1sO2x0IG9ibGlnYXRvcmlza3QnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0cmb3VtbDttIGV0aWtldHQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnRyZvdW1sO20gZGV0dGEgZiZhdW1sO2x0cyBuYW1uIHAmYXJpbmc7IGZvcm11bCZhdW1sO3JldCc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGlzayB0ZXh0IGF0dCB2aXNhJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnUmVndWxqJmF1bWw7cnV0dHJ5Y2sgZiZvdW1sO3IgdmVyaWZpZXJpbmcnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FudGFsIHJhZGVyIGF0dCB2aXNhJzsKJGxhbmdbJ3RpdGxlX3JlYWRfb25seSddID0gJ1JlYWQgT25seSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnSW5nZXQgc3RhbmRhcmR2YWwnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTaWRhIGF0dCBvbWRpcmlnZXJhIHRpbGwgZWZ0ZXIgZ29kayZhdW1sO25uYW5kZSc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnRGV0dGEgcmVndWxqJmF1bWw7cnV0dHJ5Y2sgYW52JmF1bWw7bmRzIGJhcmEgb20gJnF1b3Q7dmVyaWZpZXJpbmdzdHlwZW4mcXVvdDsgJmF1bWw7ciBzYXR0IHRpbGwgZXR0IHJlZ3VsaiZhdW1sO3J1dHRyeWNrLXJlbGF0ZXJhdCBhbHRlcm5hdGl2LiBJbmtsdWRlcmEgZXR0IGZ1bGx0IHJlZ3VsaiZhdW1sO3J1dHRyeWNrIGkgUGVybC1zdGlsLCBpbmtsdXNpdmUgc3RhcnQvc3RvcC1zbmVkc3RyZWNrZW4gb2NoIC1mbGFnZ29ybmEgKHQuZXguICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnT2JsaWcuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnRyZvdW1sO20gZmVsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtdWwmYXVtbDtydmlzbmluZ3N0eXAnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0Ymb3VtbDtyaGluZHJhIGZlbHMmb3VtbDtrbmluZ3MtIG9jaCBmZWxtZWRkZWxhbmRlbiBmciZhcmluZztuIGF0dCB2aXNhcyBmJm91bWw7ciBhbmRyYSBhbnYmYXVtbDtuZGFyZS4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFLXBvc3RtYWxsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWwgZmlsc3RvcmxlayBmJm91bWw7ciB1cHBsYWRkbmluZyAoa2lsb2J5dGUpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnRGVubmEgYmVnciZhdW1sO25zbmluZyAmYXVtbDtyIHV0Jm91bWw7dmVyIGFuZHJhIGJlZ3ImYXVtbDtuc25pbmdhciBzb20gJmF1bWw7ciBzYXR0YSBhdiBwaHAtIGVsbGVyIHdlYmJzZXJ2ZXJpbnN0JmF1bWw7bGxuaW5nYXIuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVGlsbCZhcmluZzt0bmEgZmlsJmF1bWw7bmRlbHNlcic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnU2tyaXYgZW4ga29tbWEtc2VwYXJhcmFkIGxpc3RhLCB1dGFuIHB1bmt0ICh0LmV4LiAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBNZWxsYW5zbGFnIGlnbm9yZXJhcy4gT20gZHUgbCZhdW1sO21uYXIgZGV0dGEgZiZhdW1sO2x0ZXQgYmxhbmt0IGlubmViJmF1bWw7ciBkZXQgYXR0IGRldCBpbnRlIGtvbW1lciBhdHQgZmlubmFzIG4mYXJpbmc7Z3JhIHJlc3RyaWt0aW9uZXIuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdWaXNhIHJlc3RyaWt0aW9uZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ1Zpc2EgYWxsYSBzdG9ybGVrcy0gb2NoIGZpbCZhdW1sO25kZWxzZXJlc3RyaWt0aW9uZXIgZiZvdW1sO3IgdXBwbGFkZG5pbmdzZiZhdW1sO2x0ZXQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdNYWxsIGF0dCBhbnYmYXVtbDtuZGEgZiZvdW1sO3IgVmlzYSBGb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2lkYSAlcyBhdiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRiZhdW1sO2x0ZXQgaGFyIGluZ2EgYXZhbmNlcmFkZSBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgYXR0IHJldHVybmVyYSBmJm91bWw7ciBvc3BlY2lmaWNlcmFkZSBmJmF1bWw7bHR2JmF1bWw7cmRlbic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTSZvdW1sO2psaWdnJm91bWw7ciBydWxsZ2FyZGluc21lbnkgZiZvdW1sO3Igc25hYmItdGlsbCZhdW1sO2dnIGF2bCBmJmF1bWw7bHQgZiZvdW1sO3IgZm9ybXVsJmF1bWw7cj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdNJm91bWw7amxpZ2cmb3VtbDtyIHJ1bGxnYXJkaW5zbWVueSBmJm91bWw7ciBzbmFiYi10aWxsJmF1bWw7Z2c/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTbmFiYi10aWxsJmF1bWw7Z2cgYXYgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnTiZhdW1sO3IgZGVubmEga2xpY2thcyBwJmFyaW5nOyB0aWxsJmFyaW5nO3RzIGVuZGFzdCAxMCBlLXBvc3RtZWRkZWxhbmRlbiBhdHQgZ2VuZXJlcmFzIGZyJmFyaW5nO24gZW4gZ2l2ZW4gSVAtYWRyZXNzIChwZXIgdGltbWUpJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ1RpbGwmYXJpbmc7dCBwcmltaXRpdmEgYW50aS1za3ImYXVtbDtwcG9zdGVnZW5za2FwZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdWaXNhIGYmYXVtbDtsdC1JRCYjMDM5O24nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnTiZhdW1sO3IgZGVubmEga2xpY2thcyB0aWxsJmFyaW5nO3RzIGYmYXVtbDtsdC1JRCYjMDM5O24gYXR0IHZpc2FzIG4mYXVtbDtyIG1hbiBsJmF1bWw7Z2dlciB0aWxsIGVsbGVyIHJlZGlnZXJhciBldHQgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnTGFkZGEgdXBwIGZvcm11bCZhdW1sO3IgZnImYXJpbmc7biBYTUwtZmlsJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdBbnYmYXVtbDtuZCBkZXR0YSBmb3JtdWwmYXVtbDtybmFtbic7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MLWltcG9ydCBhdiBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnQW52JmF1bWw7bmQgZGV0dGEgZm9ybXVsJmF1bWw7cmFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmVyYSBIVE1MLWVwb3N0bWVkZGVsYW5kZW4/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnRnlsbCBpIGF1dG9tYXRpc2t0Pyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnRnlsbCBpIFVSTC1hZHJlc3MgZiZvdW1sO3Igc2lkYW4gZCZhdW1sO3IgZm9ybXVsJmF1bWw7cmV0IGZpbm5zIGF1dG9tYXRpc2t0PyAoZGV0dGEgJmFyaW5nO3NpZG9zJmF1bWw7dHRlciBhbHRlcm5hdGl2ZXQgc2FqdHNpZGVsJmF1bWw7bmsgbmVkYW4pJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYXJkLVVSTC1hZHJlc3MgZiZvdW1sO3IgbCZhdW1sO25rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1N0YW5kYXJkdGV4dCBmJm91bWw7ciBsJmF1bWw7bmsnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0wmYXVtbDtuayB0aWxsIHNhanQtc2lkYW4nOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnQW52JmF1bWw7bmQgQ2FwdGNoYSBmJm91bWw7ciBhdHQgZiZvdW1sO3JlYnlnZ2EgbyZvdW1sO25za2F0IGZvcm11bCZhdW1sO3JkYXRhPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnQmVrciZhdW1sO2Z0YSBhdHQgZHUgaW50ZSAmYXVtbDtyIGV0dCBzY3JpcHQgZ2Vub20gYXR0IG1hdGEgaW4gdGV4dGVuIGkgYmlsZGVuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0NhcHRjaGEtdGV4dGVuIG1pc3NseWNrYWRlcyc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYS10ZXh0ZW4gdmFyIGludGUgciZhdW1sO3R0JzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hqJmF1bWw7bHB0ZXh0IGYmb3VtbDtyIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdLbGlja2EgaCZhdW1sO3Igb20gZHUgYmFyYSB2aWxsIGhhIGYmb3VtbDtya3J5c3NhZGUgcnV0b3JzIHYmYXVtbDtyZGVuLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTCZhdW1sO25rdGV0aWtldHQnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ1VSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0lrcnlzc2FkIHNvbSBzdGFuZGFyZD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ0FudiZhdW1sO25kIDI0LXRpbW1hcnMgdGlkc2FuZ2l2ZWxzZT8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdFTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnRk0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdCZWhhbmRsYSBzbWFydHktdGFnOmFyIGkgZiZhdW1sO2x0Pyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUmFkZXIgKE5vdGVyYSBhdHQgZGV0dGEga2FuICZvdW1sO3ZlcnNrcmlkYXMgYXYgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnS29sdW1uZXIgKE5vdGVyYSBhdHQgZGV0dGEga2FuICZvdW1sO3ZlcnNrcmlkYXMgYXYgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdEZXRhbGplciBmJm91bWw7ciBodXZ1ZGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFuayddID0gJ0RlZmF1bHQgdG8gYmxhbmsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9ibGFua19oZWxwJ10gPSAnRGVmYXVsdCB0byBibGFuayAodW5jaGVjayB0byBkZWZhdWx0IHRvIHRvZGF5JiMwMzk7cyBkYXRlKSc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnQmVnciZhdW1sO25zYSBhbnYmYXVtbDtuZGFybGlzdGFuIHRpbGwgYW52JmF1bWw7bmRhcmUgaSB2aXNzIGdydXBwJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0tyeXB0ZXJhIGxhZ3JhZCBkYXRhIGkgZGF0YWJhc2VuJzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2NlcnQnXSA9ICdDZXJ0aWZpa2F0IGYmb3VtbDtyIGtyeXB0ZXJpbmcgYXYgZGF0YSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2tleWZpbGUnXSA9ICdQYXNzcGhyYXNlIG9yIHBhdGggdG8gZmlsZSBjb250YWluaW5nIHBhc3NwaHJhc2UuIChJZiB1c2luZyBPcGVuU1NMLCB0aGlzIGlzIHRoZSBwYXNzcGhyYXNlIGZvciB0aGUgcHJpdmF0ZSBrZXkpJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkcyddID0gJ0hhc2ggc29ydCBmaWVsZHM/JzsKJGxhbmdbJ3RpdGxlX3ByaXZhdGVfa2V5J10gPSAnUHJpdmF0IG55Y2tlbCBmJm91bWw7ciBrcnlwdGVyaW5nIGF2IGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9zb3J0ZmllbGRzX2hlbHAnXSA9ICdUaGlzIGhhc2hlcyB0aGUgc29ydCBmaWVsZHMsIGJ1dCBsZWF2ZXMgdGhlIGZpcnN0IGZldyBsZXR0ZXJzIHVuZW5jcnlwdGVkLiBDcnlwdG9ncmFwaGljYWxseSwgdGhpcyBjcmVhdGVzIGEgdnVsbmVyYWJpbGl0eSwgYnV0IGZvciBtb3N0IHVzZXJzIGl0IGlzIGFuIGFjY2VwdGFibGUgdHJhZGVvZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgdGhlIGFiaWxpdHkgdG8gc29ydCByZWNvcmRzLiBTb3J0aW5nIGJlY29tZXMgYXBwcm94aW1hdGUsIGJ1dCB3aWxsIHJlbWFpbiBwcmV0dHkgZ29vZC4gSWYgeW91IGRvIG5vdCB1c2UgdGhpcyBvcHRpb24sIHNvcnQgZmllbGRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0Lic7CiRsYW5nWyd0aXRsZV9lbmNyeXB0aW9uX2Z1bmN0aW9ucyddID0gJ0xhZ3Jpbmdza3J5cHRlcmluZyBvdGlsbGcmYXVtbDtuZ2xpZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2NyeXB0byddID0gJ1ZhciB2JmF1bWw7bmxpZyBpbnN0YWxsZXJhIE9wZW5TU0wgbW9kdWxlbiBlbGxlciBtY3J5cHQgc3Qmb3VtbDtkIG9tIGR1IHZpbGwgbSZvdW1sO2psaWdnJm91bWw7cmEgZGF0YWJhc2tyeXB0ZXJpbmcnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jdXJsJ10gPSAnS29udHJvbGxlcmEgYXR0IGR1IGhhciBzdCZvdW1sO2QgZiZvdW1sO3IgQ1VSTCBha3RpdmVyYXQgaSBkaW4gUEhQIGluc3RhbGxhdGlvbi4gU2UgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnSyZvdW1sO3IgaSBNTEUgbCZhdW1sO2dlJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VzL3N1cHBvcnQgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gRG8gbm90IGNoZWNrIHRoaXMgaWYgeW91IGFyZSBub3QgcnVubmluZyB0aGUgTUxFIHZlcnNpb24uJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ0Vuc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlIHByaXZhdGUga2V5IHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSB5b3UgYXJlIHVzaW5nIGZvciBlbmNyeXB0aW9uISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdLcnlwdGVyaW5ncyBiaWJsaW90ZWsnOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnQ2hlY2sgdGhpcyB0byBlbmNyeXB0IHRoZSBzdG9yZWQgZGF0YS4gVGhpcyBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdCAoYnV0IG5vdCBpbXBvc3NpYmxlKSBmb3IgaGFja2VycyB0byB2aWV3IHRoZSBpbmZvcm1hdGlvbi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdUaGUgb3B0aW9ucyBiZWxvdyBvbmx5IGFwcGx5IGlmIHlvdSBhcmUgdXNpbmcgdGhlIE9wZW5TU0wgRW5jcnlwdGlvbiBsaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ0tyeXB0ZXJpbmdzIGJpYmxpb3Rlayc7CiRsYW5nWydvcGVuc3NsJ10gPSAnT3BlblNTTCBMaWJyYXJ5JzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUCBtY3J5cHQgTGlicmFyeSc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ0Zyb250ZW5kIFVzZXIgYmluZGluZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ1ZhciB2JmF1bWw7bmxpZyBpbnN0YWxsZXJhIEZyb250ZW5kIFVzZXIgbW9kdWxlbiBmJm91bWw7ciBhdHQga29wcGxhIGV0dCBmb3JtdWwmYXVtbDtyIG9jaCBkZXNzIGRhdGEgdGlsbCBlbiBzcGVjaWZpayBhbnYmYXVtbDtuZGFyZSc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBsb2NrIGZyb250LWVuZCBhY2Nlc3MgdG8gdGhpcyBmb3JtJiMwMzk7cyBkYXRhIHRvIHRoZSBsb2dnZWQtaW4gZnJvbnQtZW5kIHVzZXIuJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRpb24nXSA9ICdLcnlwdGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF9mb3JtX3RvX3VkdCddID0gJ0V4cG9ydCBmb3JtIHJlZmVyZW5jZSB0byBVRFQgYXMgJHBhcmFtc1smIzAzOTtGT1JNJiMwMzk7XT8nOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdFbnRpcmUgVVJMLCBpbmNsdWRpbmcgcHJvdG9jb2wgYW5kIHBhdGggKGUuZy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0Zvcm0gc3VibWlzc2lvbiBVUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnRm9ybSBtZXRob2QnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcCBmaWVsZCAmcXVvdDslcyZxdW90OyB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0FkZGl0aW9uYWwgc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdWRlIGZpZWxkIGluIFN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfZGF0YV9zdG9yZWRfaW5fZmJyJ10gPSAnRGF0YSB3aWxsIGJlIHN0b3JlZCBpbiBhbiBYTUwgZm9ybWF0IGluIHRoZSBbUFJFRklYXV9tb2R1bGVfZmJfZnJvbWJyb3dzZXIgZGF0YWJhc2UgdGFibGUuJzsKJGxhbmdbJ2Vycm9yX2hhc19ub19mYl9maWVsZCddID0gJ0Vycm9yISBFaXRoZXIgdGhlIGZvcm0gaGFzIG5vIGZvcm1fYnVpbGRlciBkaXNwb3NpdGlvbiwgb3IgaXQgZmFpbGVkIHRvIGluc3RhbnRpYXRlIChkdWUgdG8gbWVtb3J5IGlzc3Vlcz8pJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdFbmRhc3QgaSBncnVwcCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdWaXNhIGYmb3VtbDtyIGFudiZhdW1sO25kYXJlPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdEZXQgaCZhdW1sO3IgZiZhdW1sO2x0ZXQga2FuIGwmYXVtbDttbmFzIHRvbXQnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVyIGYmb3VtbDtyIG1hbGwnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVGlsbGcmYXVtbDtuZ2xpZ2EgdmFyaWFibGVyJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAtdmFyaWFiZWwnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdJbnNraWNrYXQgZGF0dW0nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAtYWRyZXNzIGYmb3VtbDtyIHBlcnNvbmVuIHNvbSBhbnYmYXVtbDtudCBmb3JtdWwmYXVtbDtyZXQnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIGYmb3VtbDtyIHNpZGFuIHNvbSBpbm5laCZhcmluZztsbGVyIGZvcm11bCZhdW1sO3InOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgVmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGl2YSBmJmF1bWw7bHRuYW1uIGthbiBhbnYmYXVtbDtuZGFzIHV0Ynl0YmFydCAocyZhdW1sO3Jza2lsdCBhbnYmYXVtbDtuZGJhcnQgb20gU21hcnR5IGludGUgZ2lsbGFyIHRlY2tlbiB1dGFuZiZvdW1sO3IgQVNDSUkgMzItMTI2KSA8YnIgLz5BbmRyYSBmJmF1bWw7bHQgYmxpciB0aWxsZyZhdW1sO25nbGlnYSBlZnRlcmhhbmQgc29tIGR1IGwmYXVtbDtnZ2VyIHRpbGwgZGVtIHRpbGwgZm9ybXVsJmF1bWw7cmV0Lic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0YmYXVtbDtsdCBzb20gaGFyIGZsZXJhIHYmYXVtbDtyZGVuIGthbiBvY2tzJmFyaW5nOyBrb21tYXMgJmFyaW5nO3QgdmlhIHNtYXJ0eXYmYXVtbDtyZGVuYSAkZmllbGRuYW1lX2FycmF5IGVsbGVyICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnBocC1tYW51YWxlbjwvYT4gZiZvdW1sO3IgaGomYXVtbDtscCBtZWQgZm9ybWF0dGVyaW5nLi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFiZWwnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnUmVwcmVzZW50ZXJhZGUgZiZhdW1sO2x0JzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBUaWxsYmFrYSB0aWxsIGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ1NrYXBhIHByb3ZtYWxsJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ1NrYXBhIHByb3ZtYWxsIGYmb3VtbDtyIEhUTUwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdTa2FwYSBQcm92bWFsbCBmJm91bWw7ciBIZWFkZXJuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnU2thcGEgcnVicmlrIChoZWFkZXIpJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2V0dCB0YWJ1bGF0b3ItdGVja2VuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdNYWxsIGYmb3VtbDtyIGVuIHJhZCBpIHV0ZGF0YWZpbCc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ01hbGwgZiZvdW1sO3IgaHV2dWQgcCZhcmluZzsgdXRmaWwnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBhdHQga2xpY2thIGYmb3VtbDtyIGZvcm11bCZhdW1sO3JiZWtyJmF1bWw7ZnRlbHNlJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnViZhdW1sO3JkZSAoc2UgZmxpa2VuIEF2YW5jZXJhdCBvbSBkdSBhbnYmYXVtbDtuZGVyIFNtYXJ0eS10YWdhciknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXR1bWZvcm1hdCAodmFubGlnYTxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPnBocC1kYXR1bWZvcm1hdDwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnQW52JmF1bWw7bmQgV1lTSVdZRy1yZWRpZ2VyYXJlIGYmb3VtbDtyIHRleHRydXRhbiAoZW5iYXJ0IGFkbWluc2lkYW4pPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdTdGFydCBwJmFyaW5nOyAmYXJpbmc7cm9tZiZhcmluZztuZyc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1NsdXQgcCZhcmluZzsgJmFyaW5nO3JvbWYmYXJpbmc7bmcnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnU3RhbmRhcmQgJkFyaW5nO3InOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoUyZhdW1sO3R0IHRpbGwgLTEgZiZvdW1sO3IgYXR0IHN0YW5kYXJkJmFyaW5nO3Igc2thIHZhcmEgbnV2YXJhbmRlICZhcmluZztyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnRWZ0ZXIgYXR0IGZvcm11bCZhdW1sO3JldCBsJmF1bWw7bW5hdHMgaW4nOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfZGF0ZSddID0gJ0RhdGUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX2FwcHJvdmFsX2RhdGUnXSA9ICdEYXR1bSBHb2RrJmF1bWw7bmQgKGF2IGFkbWluKSc7CiRsYW5nWyd0aXRsZV91c2VyX2FwcHJvdmVkJ10gPSAnRGF0ZSBBcHByb3ZlZCAoYnkgc3VibWl0dGVyKSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1NraWNrYSB0aWxsIHNpZGEnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uc3NpZGEnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnS3ImYXVtbDt2ZXIgZiZhdW1sO2x0bmFtbic7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0tyJmF1bWw7diBhdHQgZiZhdW1sO2x0IGhhciBldHQgbmFtbj8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdLciZhdW1sO3YgdW5pa2EgZiZhdW1sO2x0bmFtbic7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnS3ImYXVtbDt2IGF0dCBmJmF1bWw7bHQgaGFyIHVuaWthIG5hbW4/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ09tZ3J1cHBlcmEgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYWRkYSBtYWxsJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0wmYXVtbDt0dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdSYWRlcmEga25hcHB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlbHB0ZXh0J10gPSAnSGomYXVtbDtscC10ZXh0IGF0dCB2aXNhcyBtZWQgZGV0IGgmYXVtbDtyIGYmYXVtbDtsdGV0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0ciZhdW1sO25nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmlzayc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtjbXNfbW9kdWxlfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdTdGFuZGFyZHYmYXVtbDtyZGUgZiZvdW1sO3IgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZiZvdW1sO3IgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdWJmF1bWw7bGogaW50ZSBiYXJhIGVuIHNsdW1wYXJ0YWQgYWRyZXNzIGgmYXVtbDtyIC0tIG0mYXJpbmc7bmdhIElTUHMga29tbWVyIDxiciAvPiBpbnRlIGF0dCBsZXZlcmVyYSBtYWlsZXQgb20gZHUgYW52JmF1bWw7bmRlciBlbiBhbm5hbiBkb20mYXVtbDtuICZhdW1sO24gZGl0dCB2ZXJrbGlnYSA8YnIgLz4gaG9zdCAoZC52LnMuLCBhbnYmYXVtbDtuZCBuJmFyaW5nO2dvdCBzb20gbmFtbkAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnQmVoJm91bWw7dmVyIGR1IGZsZXIgZiZhdW1sO2x0dHlwZXI/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdGJm91bWw7ciBtJmFyaW5nO25nYSBmJm91bWw7cnZpcnJhbmRlIGYmYXVtbDtsdHR5cGVyPyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1NraWZ0YSB0aWxsIGF2YW5jZXJhdCBsJmF1bWw7Z2UnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdTa2lmdGEgdGlsbCBhdmFuY2VyYXQgbCZhdW1sO2dlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0ZvbGRlciBmJm91bWw7ciBhdHQgc3BhcmEgZmlsZXIgaSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTa2lja2EgbWlnIGVuIGtvcGlhIGF2IGZvcm11bCZhdW1sO3JldCc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0Rpc3BsYXkgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnTCZvdW1sO3Nlbm9yZCBtYXRjaGFyIGludGUgJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdCYWNrIHRvIEZvcm1CdWlsZGVyIE1haW4gUGFnZSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ1doaWNoIGVtYWlsIGhlYWRlcnMgc2hvdWxkIHRoaXMgaW5wdXQgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWQnXSA9ICdEbyBub3QgYWNjZXB0IGJsYW5rIHNwYWNlIGFzIHZhbGlkIHJlc3BvbnNlJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ0lmIGEgZmllbGQgaXMgcmVxdWlyZWQsIGNoZWNraW5nIHRoaXMgd2lsbCByZXF1aXJlIHRoYXQgcGVvcGxlIHB1dCBpbiBzb21lIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBub3QganVzdCBzcGFjZXMnOwokbGFuZ1snZXJyb3JfQ29tcGFueURpcmVjdG9yeV9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlISc7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdBbGRyaWcnOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2UgYmVzJm91bWw7a2FyZW4gZXR0IHZhbCAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbGx0aWQnOwokbGFuZ1snb3B0aW9uX2Zyb20nXSA9ICcmcXVvdDtGcm9tJnF1b3Q7IGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snb3B0aW9uX3JlcGx5J10gPSAnJnF1b3Q7UmVwbHktVG8mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fYm90aCddID0gJ0JvdGggJnF1b3Q7RnJvbSZxdW90OyBhbmQgJnF1b3Q7UmVwbHktVG8mcXVvdDsgZW1haWwgYWRkcmVzc2VzJzsKJGxhbmdbJ29wdGlvbl9kcm9wZG93biddID0gJ0Ryb3Bkb3duJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X3NpbmdsZSddID0gJ1NlbGVjdCBMaXN0IChzaW5nbGUpJzsKJGxhbmdbJ29wdGlvbl9zZWxlY3RsaXN0X211bHRpcGxlJ10gPSAnU2VsZWN0IExpc3QgKG11bHRpcGxlKSc7CiRsYW5nWydvcHRpb25fcmFkaW9ncm91cCddID0gJ1JhZGlvIEdyb3VwJzsKJGxhbmdbJ3RpdGxlX2NvbXBhbnlfZmllbGRfbm90ZSddID0gJ05vdGU6IE91dHB1dCB3aWxsIGJlIGluIHRoZSBmb3JtIG9mPGJyLz4mcXVvdDtjb21wYW55IG5hbWUmcXVvdDs9PiZxdW90O3ZhbHVlJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3BpY2tfY2F0ZWdvcmllcyddID0gJ1BpY2sgYSBjYXRlZ29yeSAobXVsdGlwbGUpJzsKJGxhbmdbJ3RpdGxlX3BpY2tfZmllbGRkZWYnXSA9ICdQdWxsIGEgZmllbGQgRGVmaW5pdGlvbiYjMDM5O3MgdmFsdWUgKHNpbmdsZSkgPGVtPm9wdGlvbmFsPC9lbT4nOwokbGFuZ1sndGl0bGVfY2hvb3NlX3VzZXJfaW5wdXQnXSA9ICdDaG9vc2UgVXNlciBpbnB1dCc7CiRsYW5nWyd0aXRsZV9zZWVfYWxzb191ZHQnXSA9ICcoQWxzbyB0YWtlIGEgbG9vayBhdCB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiBpZiB5b3Ugd2FudCB0byBzZXQgYSBVRFQgZm9yIGZvcm0gdmFsaWRhdGlvbiknOwokbGFuZ1sndGl0bGVfeWVhcl9lbmRfbWVzc2FnZSddID0gJ0VuZCB5ZWFyJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWdfZGlzcG9zaXRpb24nXSA9ICdVc2VyIGRlZmluZWQgdGFnIHJldHVybmVkIGFuIGVycm9yJzsKJGxhbmdbJ2Vycm9yX3VzZXJ0YWcnXSA9ICdVc2VyIGRlZmluZWQgdGFnICVzIHJldHVybmVkIGFuIGVycm9yLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGVuIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1ZBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGJm91bWw7cnZhbGQgbWFsbCc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxsbWFsbCwgdGl0bGFyIHRpbGwgdiZhdW1sO25zdGVyJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsbG1hbGwsIHRpdGxhciAmb3VtbDt2ZXIgZiZhdW1sO2x0JzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ01hbGwgZnImYXJpbmc7biAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZSddID0gJ1VzaW5nIE1vZHVsZSBJbnRlcmZhY2UnOwokbGFuZ1snaGVscF9tb2R1bGVfaW50ZXJmYWNlX2xvbmcnXSA9ICc8Yj5UaGlzIGZpZWxkIGlzIHVzZWQgYXMgYSBnYXRld2F5IHRvIG90aGVyIG1vZHVsZXMhPC9iPgpVc2UgaXQgYnkgY3JlYXRpbmcgeW91ciBmb3JtIGVsZW1lbnRzIGluIHRoZSB0ZW1wbGF0ZXMgb2YgdGhlIG90aGVyIG1vZHVsZShzKSB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSwgYW5kIHVzaW5nIHRoZSA8c3Ryb25nPnskRkJpZH08L3N0cm9uZz4gdG8gdGllIGl0IGJhY2sgdG8gRm9ybUJ1aWxkZXIuIEZvciBleGFtcGxlLCB0byBpbmNsdWRlIGZvcm0gb3B0aW9ucyBiYXNlZCBvbiB0aGUgUHJvZHVjdHMgbW9kdWxlLCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0ZW1wbGF0ZSBpbiBQcm9kdWN0czo8YnIvPgo8cHJlPgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7JiMwMzk7fQoJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7JiMwMzk7fQoJCXtmb3JlYWNoIGZyb209JEZCdmFsdWUgaXRlbT1NRGF0YX0KCQkJe2Fzc2lnbiB2YXI9TURhdGEgdmFsdWU9JiMwMzk7OjomIzAzOTt8ZXhwbG9kZTokTURhdGF9CgkJCXtpZiAkTURhdGFbMV09PSRlbnRyeS0+aWR9CgkJCQl7YXNzaWduIHZhcj1DZCB2YWx1ZT0mIzAzOTsgY2hlY2tlZD0mcXVvdDtjaGVja2VkJnF1b3Q7JiMwMzk7fQoJCQl7L2lmfQoJCXsvZm9yZWFjaH0KCTxkaXYgY2xhc3M9JnF1b3Q7UHJvZHVjdERpcmVjdG9yeUl0ZW0mcXVvdDs+CgkJPGlucHV0IHR5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgdmFsdWU9JnF1b3Q7eyRlbnRyeS0+cHJpY2V9Ojp7JGVudHJ5LT5pZH0mcXVvdDsgbmFtZT0mcXVvdDt7JEZCaWR9W10mcXVvdDsgeyRDZH0gLz57JGVudHJ5LT5wcm9kdWN0X25hbWV9ICh7JGVudHJ5LT53ZWlnaHR9eyR3ZWlnaHRfdW5pdHN9KSAmcG91bmQ7eyRlbnRyeS0+cHJpY2V9ICAgIAoJPC9kaXY+CnsvZm9yZWFjaH0KPC9wcmU+Cjxici8+CndoZXJlIGluIHRoZSBpbnB1dCBiZWxvdyB5b3UgcHV0IHNvbWV0aGluZyBsaWtlIDxzdHJvbmc+e1Byb2R1Y3RzIGNhdGVnb3J5PSZxdW90O2NhdCZxdW90OyBzdW1tYXJ5dGVtcGxhdGU9JnF1b3Q7WW91cl9GQl90ZW1wbGF0ZSZxdW90O308L3N0cm9uZz4nOwokbGFuZ1sndGl0bGVfYWRkX3RhZyddID0gJ0wmYXVtbDtnZyB0aWxsIGRpbiB0YWcnOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyaSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcmknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFqJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmknOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVsaSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdGknOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2t0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdMZWRzZW4hIERldCB1cHBzdG9kIGV0dCBmZWwgZCZhcmluZzsgZGl0dCBmb3JtdWwmYXVtbDtyIGhhbnRlcmFkZXMnOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnS3VuZGUgaW50ZSBoaXR0YSBtb2R1bGVuIFVwbG9hZHMnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwcGxhZGRuaW5ncy9CaWZvZ25pbmdzZmVsIGYmb3VtbDtyIGZpbCAlcyAodG1wX25hbWU6ICVzLCBhdiB0eXBlbiAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFdHQgZmVsIGhhciB1cHBzdCZhcmluZzt0dCEgS3VuZGUgaW50ZSBvcmRuYSBsJmFyaW5nO3NuaW5nIHAmYXJpbmc7IGZpbGVuLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBvbWFya2VyYWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnU3RhbmRhcmQ6IG1hcmtlcmFkJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkluZ2VuIGVwb3N0bWFsbCAmYXVtbDtyIHRpbGxzYXR0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zSUQuIEFudiZhdW1sO25kcyBhdiBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRiZvdW1sO3J2YWxkYSBmJmF1bWw7bHR2JmF1bWw7cmRlbjsgc2UgaGomYXVtbDtscGVuIGYmb3VtbDtyIGRlbiBoJmF1bWw7ciBtb2R1bGVuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0YmYXVtbDtsdElEIGYmb3VtbDtyIGludGVybiBoYW50ZXJpbmcnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bCZhdW1sO3JzbmFtbic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm11bCZhdW1sO3JzSUQgZiZvdW1sO3IgaW50ZXJuIGhhbnRlcmluZyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0FsbG0mYXVtbDtuYSBwYXJhbWV0cmFyIGYmb3VtbDtyIGludGVybiBoYW50ZXJpbmcnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQogICB0YWdzLjwvcD4KCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucwpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPgo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPgo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdApvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPgo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZAppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+Cgo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+CjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUKcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPgoKPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPgo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQpDb25maWd1cmF0aW9uLjwvcD4KCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcwpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5CmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO2FtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+Cgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KPGg0Pk1haW48L2g0Pgo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+CjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+CjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoJnF1b3Q7UHJldmlvdXMmcXVvdDssICZxdW90O25leHQmcXVvdDssICZxdW90O3N1Ym1pdCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pgo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+CjxoND5Gb3JtIFRlbXBsYXRlPC9oND4KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJiMwMzk7cyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+CjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+CjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPgo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lgo8L3A+Cgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbgppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcgplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPgo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHAKZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUKc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+CjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cKY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPgo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPgo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPgo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+CjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+CjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPgo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPgo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPgo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4KPC91bD48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyB3aWxsIGJlY29tZSB0aGUgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3NlciBpbiB0aGUgbmV4dCByZWxlYXNlLjwvbGk+Cgo8L3VsPjwvbGk+PC9saT48L3VsPgoKCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUKYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbgphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+CjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+CjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+Cgo8aDM+Q29uZmlndXJhdGlvbjwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4KPHVsPgo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPgo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+CjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4KPC91bD4KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+CjxwcmU+CgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8KCWZvcm0ge21hcmdpbi10b3A6MH0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9Cglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQoJZmllbGRzZXQgZGl2IHsKCQltYXJnaW4tYm90dG9tOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbTsKCX0KCWZpZWxkc2V0IGRpdiBkaXYgewoJCW1hcmdpbi10b3A6MC41ZW07CgkJbWFyZ2luLWxlZnQ6MWVtCgl9CglmaWVsZHNldCB7CgkJbWFyZ2luLWJvdHRvbToxZW07CgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOwoJCXBhZGRpbmc6MC41ZW0KCX0KCWZpZWxkc2V0IGxhYmVsIHsKCQl3aWR0aDphdXRvOwoJfQoJbGVnZW5kIHsKCQljb2xvcjojRkZGOwoJCWJhY2tncm91bmQ6I0Y2MDsKCQlmb250LXN0eWxlOml0YWxpYzsKCQlmb250LXNpemU6MS4yZW07CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQlwYWRkaW5nOjAuMmVtOwoJCXdpZHRoOmF1dG87CgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDCgl9Cgl0ZXh0YXJlYSB7CgkJbWFyZ2luOiAwLjVlbSAwOwoJCXdpZHRoOjk4JTsKCQloZWlnaHQ6IDZlbQoJfQoKCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMKCQl0byBoZWxwIGFsaWdubWVudCAqLwoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwKCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQoKCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovCgkuY2FwdGNoYSB7CgkJbWFyZ2luOjAuNWVtIDA7CgkJd2lkdGg6MjAwcHg7CgkJdGV4dC1hbGlnbjpjZW50ZXIKCX0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQoKCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLwoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0KPC9wcmU+Cgo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICZhbXA7IzEyMzskZmJfaGlkZGVufSBhbmQgJmFtcDsjMTIzOyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPgo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbgp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+CjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4KPC91bD4KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIGFuZCBodW5kcmVkcyBvZiBob3VycyBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4gUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciBzZW5kIHlvdXIgcXVlc3Rpb25zIHdyaXR0ZW4gb24gZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzIGV2ZW4ga25vdyB3aGF0IGEgYnJva2VuIHJlY29yZCBpcz8gSSB3b3VsZCBzYXkgc2tpcHBpbmcgQ0QsIGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgd2hhdCB0aGF0IGlzIGVpdGhlci4gTGlrZSBhIHNhbXBsZSB0aGF0IGdvdCBzdHVjayBvbiBsb29wPyBEYW1uLCBJIGFtIGdldHRpbmcgb2xkLiBTbyBpcyB0aGlzIHBhcmFncmFwaC4gVGltZSB0byBtb3ZlIG9uLCBoZXJlLjwvcD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sncWNhJ10gPSAnUDAtMjQ1NzQ4MDcyLTEyNTE1MDQxODA5OTAnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjY5ODk0OTAzLjIyLjE1LnV0bWNzcj1nb29nbGV8dXRtY2NuPShvcmdhbmljKXx1dG1jbWQ9b3JnYW5pY3x1dG1jdHI9bW9kdWxlcyBjbXNtcyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjI5MTcyODA3MTUzOTE4NTkwMDAuMTI1MTUwNDE4MS4xMjY5NTQwMTQ5LjEyNjk4OTExMTMuMjInOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI2OTg5MTExMyc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1TnVtYmVyRmllbGQnXSA9ICdIVE1MNSBOdW1iZXIgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9IVE1MNUVtYWlsRmllbGQnXSA9ICdIVE1MNSBFbWFpbCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX0hUTUw1VVJMRmllbGQnXSA9ICdIVE1MNSBVUkwgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9QYXNzd29yZEZpZWxkJ10gPSAnxZ5pZnJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFzc3dvcmRBZ2FpbkZpZWxkJ10gPSAnxZ5pZnJlIFRla3JhciAoZG/En3J1bGFtYSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0J1dHRvbkZpZWxkJ10gPSAnQnV0b24nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfWWVhclB1bGxEb3duRmllbGQnXSA9ICdZZWFyIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0NhbmFkaWFuIFByb3ZpbmNlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVuaXF1ZUZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBhIFVuaXF1ZSBGbGF0IEZpbGUgZm9yIGVhY2ggc3VibWlzc2lvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMC4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybSddID0gJypTdWJtaXQgdG8gYW4gYXJiaXRyYXJ5IGZvcm0gYWN0aW9uJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbEJhc2VkRnJvbnRlbmRGaWVsZHMnXSA9ICcqRW1haWwgcmVzdWx0cyBiYXNlZCBvbiBmcm9udGVuZCBmaWVsZHMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1TYXlmYSBTb251JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsZSBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBBZ2FpbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlrIFlhesSxJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpayBMaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTGluayAoVXNlci1lbnRlcmVkKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLS1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVXNlclRhZ0ZpZWxkJ10gPSAnLVVzZXIgRGVmaW5lZCBUYWcgQ2FsbCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXBhbnlEaXJlY3RvcnlGaWVsZCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEFsYW7EsSc7CiRsYW5nWydmaWVsZF90eXBlX01vZHVsZUludGVyZmFjZUZpZWxkJ10gPSAnLU1vZHVsZSBJbnRlcmZhY2UgRmllbGQnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTm8gVmFsaWRhdGlvbic7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmlrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVnZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWwgQWRyZXNpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb24gTnVtYXJhc8SxIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsdWUgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW50cnkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnUGxlYXNlIGVudGVyIGFuIGludGVnZXIgdmFsdWUgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdFbWFpbCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoIHZhbHVlIGluICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfbG9naW4nXSA9ICdQbGVhc2UgbG9nIGluIHRvIHVzZSB0aGlzIGZvcm0nOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgbm8gbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYXRfbGVhc3QnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmllbGQgb3JkZXIgdXBkYXRlZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybSBzaWxpbmRpLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmllbGQgc2lsaW5kaS4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnS29uZmlnJnV1bWw7cmFzeW9uIEcmdXVtbDtuY2VsbGVuZGkuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnWW91IG11c3QgY2hlY2sgJnF1b3Q7JXMmcXVvdDsgaW4gb3JkZXIgdG8gY29udGludWUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZmllbGQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snbm9fZmllbGRfYXNzaWduZWQnXSA9ICdObyBmaWVsZCBhc3NpZ25lZCBmb3IgJXMnOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQmlsaW5tZXllbic7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZXInOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnZWtsZW5kaSc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnZyZ1dW1sO25jZWxsZW5kaSc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZSZjY2VkaWw7aW5peic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlJmNjZWRpbDtpbml6JzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sneWVzJ10gPSAnRXZldCc7CiRsYW5nWydubyddID0gJ0hhecSxcic7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydmaWVsZHMnXSA9ICdmaWVsZHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdLYXlkZXQnOwokbGFuZ1snYWRkJ10gPSAnRWtsZSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdHJnV1bWw7bmNlbGxlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnS2F5ZGV0IHZlIGQmdXVtbDt6ZW5sZW1leWUgZGV2YW0gZXQnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdCaWxnaSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdPdG9tYXRpayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1sYXInOwokbGFuZ1snZm9ybSddID0gJ0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0F5YXJsYXInOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ8SwemluIHZlcmlsZW4gZG9zeWEgdGlwbGVyaSc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdZJnV1bWw7a2xlJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJvd3MnOwokbGFuZ1snY29scyddID0gJyVzIGNvbHMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyIFNhYXQnOwokbGFuZ1snMjRfaG91ciddID0gJzI0IFNhYXQnOwokbGFuZ1snaG91ciddID0gJ1NhYXQnOwokbGFuZ1snbWluJ10gPSAnRGFraWthJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RoYW5rcyEgWW91ciBzdWJtaXNzaW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdEJnV1bWw7emVubGUnOwokbGFuZ1snZGVsZXRlJ10gPSAnU2lsJzsKJGxhbmdbJ2RheSddID0gJ0cmdXVtbDtuJzsKJGxhbmdbJ21vbiddID0gJ0F5JzsKJGxhbmdbJ3llYXInXSA9ICd5xLFsJzsKJGxhbmdbJ25vbmUnXSA9ICcoeW9rKSc7CiRsYW5nWydjc3MnXSA9ICdDU1MnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2QmdXVtbDtsIGthbGTEsXLEsWxkxLEuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnR2VyaS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnRyZvdW1sO25kZXInOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnRGV2YW0uLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1NlJmNjZWRpbDtpbGknOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnU2UmY2NlZGlsO2lsaSBEZcSfaWwnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIEcmb3VtbDtyJnV1bWw7biZ1dW1sO20gQXlhcmxhcsSxJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtIFN1Ym1pc3Npb24nOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIEF5YXJsYXLEsSc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdHZWxpxZ9tacWfIEF5YXJsYXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSDFnmFibG9udSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfdWR0J10gPSAnVURUIEVudGVncmFzeW9udSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ8SwcHRhbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+Cjxici8+CjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+ClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+Cjxici8+CjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+ClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+Cjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0EgcmVndWxhciBleHByZXNzaW9uIHRvIGFsbG93IGZpbHRlcmluZyBjYXRhbG9nZXIgaXRlbXMgYnkgbmFtZSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ1RoZSBoZWlnaHQgb2YgdGhlIG11bHRpc2VsZWN0IGZpZWxkJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGaWVsZCBIZWlnaHQnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGVzdGluYXRpb24gRGlyZWN0b3J5IGZvciBvdXRwdXQgZmlsZXMnOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVc2VyIERlZmluZWQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2FsbG93X292ZXJ3cml0ZSddID0gJ0FsbG93IHVwbG9hZCB0byBvdmVyd3JpdGUgcHJldmlvdXNseSBmaWxlcz8nOwokbGFuZ1sndGl0bGVfYWxsb3dfb3ZlcndyaXRlX2xvbmcnXSA9ICdTaG91bGQgdXBsb2FkZWQgZmlsZSBvdmVyd3JpdGUgcHJldmlvdXNseSB1cGxvYWRlZCBmaWxlIGlmIGl0IGhhcyB0aGUgc2FtZSBuYW1lPyc7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdBbGxvd3MgT3ZlcndyaXRpbmcnOwokbGFuZ1snbm9vdmVyd3JpdGUnXSA9ICdObyBPdmVyd3JpdGUnOwokbGFuZ1snZmlsZV9hbHJlYWR5X2V4aXN0cyddID0gJ0ZpbGUgJXMgYWxyZWFkeSBleGlzdHMsIGFuZCBjYW5ub3QgYmUgb3ZlcndyaXR0ZW4uJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcmVuYW1lJ10gPSAnRmlsZW5hbWUgdGVtcGxhdGUnOwokbGFuZ1snb3JpZ2luYWxfZmlsZV9leHRlbnNpb24nXSA9ICdPcmlnaW5hbCBmaWxlIGV4dGVuc2lvbiAoaW5jbHVkZXMgdGhlICZxdW90Oy4mcXVvdDspJzsKJGxhbmdbJ3RpdGxlX3N1cHByZXNzX2ZpbGVuYW1lJ10gPSAnU3VwcHJlc3MgZmlsZW5hbWUgaW4gZW1haWxzIGFuZCBmb3JtcyB0aGUgZW5kIHVzZXIgd2lsbCBzZWUnOwokbGFuZ1snZmlsZV9yZW5hbWVfaGVscCddID0gJ1RvIHJlbmFtZSBhIGZpbGUgdXBvbiB1cGxvYWRpbmcsIGNyZWF0ZSB0aGUgdGVtcGxhdGUgaGVyZS4gTGVhdmUgYmxhbmsgdG8gcHJlc2VydmUgb3JpZ2luYWwgZmlsZW5hbWUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlvIEJ1dHRvbiBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1NpbD8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7U2VsZWN0IE9uZSZxdW90OyBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1NlbGVjdGlvbiBWYWx1ZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ09wdGlvbiBOYW1lJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbHVlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnUHVsbGRvd24gT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGlzZWxlY3QgT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcm9tIG5hbWUmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgJnF1b3Q7eEB5JnF1b3Q7IGluc3RlYWQgb2YgcmVxdWlyaW5nICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0Zyb20gYWRkcmVzcyZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRG9zeWEgQWTEsSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgS29udSBBbGFuxLEnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybSBBZMSxJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybSBTdGF0JnV1bWw7cyZ1dW1sOyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdIYXrEsXIgRGXEn2lsJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXImIzAzOTtzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzZSB0aGlzIHNob3J0Y3V0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzX3Nob3J0J10gPSAnQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEFsYW5sYXLEsSc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMgYW5kIERPTSBpZCAoQ1NTIGlkKSBhdHRyaWJ1dGUnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ1llbmkgRm9ybSBFa2xlJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX2J1dHRvbl90ZXh0J10gPSAnQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZGQgSmF2YXNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnRmllbGQgdG8gVmFsaWRhdGUnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2lkJ10gPSAnQ1NTIGlkIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIHRoZSBmaXJzdCB0aW1lIChvbmx5IGNhbGxlZCBvbmNlKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdmFsaWRhdGVfdWR0J10gPSAnVXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGR1cmluZyBmb3JtIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdab3J1bmx1JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfbGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGggb2YgZmllbGQgY29udGVudCAoMCBvciBibGFuayBtZWFucyBubyBsaW1pdCknOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9yZWFkX29ubHknXSA9ICdTYWx0IE9rdW51cic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdIYXRhbGFyxLEgR2l6bGUnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIMWeYWJsb251JzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9maWxlX2Rlc3RpbmF0aW9uJ10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZXMgaW50byc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdIxLF6bMSxIEFsYW4gRWtsZXlpY2knOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rJ10gPSAnRGVmYXVsdCB0byBibGFuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2JsYW5rX2hlbHAnXSA9ICdEZWZhdWx0IHRvIGJsYW5rICh1bmNoZWNrIHRvIGRlZmF1bHQgdG8gdG9kYXkmIzAzOTtzIGRhdGUpJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfZGF0YWJhc2VfZGF0YSddID0gJ0VuY3J5cHQgZGF0YSBzdG9yZWQgaW4gZGF0YWJhc2UnOwokbGFuZ1sndGl0bGVfY3J5cHRfY2VydCddID0gJ0NlcnRpZmljYXRlIGZvciBlbmNyeXB0aW5nIGRhdGEnOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9rZXlmaWxlJ10gPSAnUGFzc3BocmFzZSBvciBwYXRoIHRvIGZpbGUgY29udGFpbmluZyBwYXNzcGhyYXNlLiAoSWYgdXNpbmcgT3BlblNTTCwgdGhpcyBpcyB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIHByaXZhdGUga2V5KSc7CiRsYW5nWyd0aXRsZV9lbmNyeXB0X3NvcnRmaWVsZHMnXSA9ICdIYXNoIHNvcnQgZmllbGRzPyc7CiRsYW5nWyd0aXRsZV9wcml2YXRlX2tleSddID0gJ1ByaXZhdGUgS2V5IHRvIHVzZSBmb3IgZW5jcnlwdGluZyBkYXRhJzsKJGxhbmdbJ3RpdGxlX2VuY3J5cHRfc29ydGZpZWxkc19oZWxwJ10gPSAnVGhpcyBoYXNoZXMgdGhlIHNvcnQgZmllbGRzLCBidXQgbGVhdmVzIHRoZSBmaXJzdCBmZXcgbGV0dGVycyB1bmVuY3J5cHRlZC4gQ3J5cHRvZ3JhcGhpY2FsbHksIHRoaXMgY3JlYXRlcyBhIHZ1bG5lcmFiaWxpdHksIGJ1dCBmb3IgbW9zdCB1c2VycyBpdCBpcyBhbiBhY2NlcHRhYmxlIHRyYWRlb2ZmIGJldHdlZW4gc2VjdXJpdHkgYW5kIHRoZSBhYmlsaXR5IHRvIHNvcnQgcmVjb3Jkcy4gU29ydGluZyBiZWNvbWVzIGFwcHJveGltYXRlLCBidXQgd2lsbCByZW1haW4gcHJldHR5IGdvb2QuIElmIHlvdSBkbyBub3QgdXNlIHRoaXMgb3B0aW9uLCBzb3J0IGZpZWxkcyBhcmUgc3RvcmVkIGluIHBsYWludGV4dC4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbl9mdW5jdGlvbnMnXSA9ICdTdG9yYWdlIEVuY3J5cHRpb24gVW5hdmFpbGFibGUnOwokbGFuZ1sndGl0bGVfaW5zdGFsbF9jcnlwdG8nXSA9ICdQbGVhc2UgaW5zdGFsbCB0aGUgT3BlblNTTCBtb2R1bGUgb3IgbWNyeXB0IHN1cHBvcnQgaWYgeW91IHdvdWxkIGxpa2UgdG8gZW5hYmxlIGRhdGFiYXNlIGVuY3J5cHRpb24uJzsKJGxhbmdbJ3RpdGxlX2luc3RhbGxfY3VybCddID0gJ1BsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgQ1VSTCBzdXBwb3J0IGFjdGl2ZSBpbiB5b3VyIFBIUCBpbnN0YWxsLiBTZWUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLmN1cmwucGhwJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uJ10gPSAnUnVuIGluIE1MRSBNb2RlJzsKJGxhbmdbJ3RpdGxlX21sZV92ZXJzaW9uX2xvbmcnXSA9ICdDaGFuZ2VzL3N1cHBvcnQgZm9yIENNU01TIE11bHRpLUxhbmd1YWdlIEVkaXRpb24gZm9yay4gRG8gbm90IGNoZWNrIHRoaXMgaWYgeW91IGFyZSBub3QgcnVubmluZyB0aGUgTUxFIHZlcnNpb24uJzsKJGxhbmdbJ3RpdGxlX2Vuc3VyZV9jZXJ0X2tleV9tYXRjaCddID0gJ0Vuc3VyZSB0aGF0IHlvdSBzZWxlY3QgdGhlIHByaXZhdGUga2V5IHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSB5b3UgYXJlIHVzaW5nIGZvciBlbmNyeXB0aW9uISc7CiRsYW5nWydjaG9vc2VfY3J5cHQnXSA9ICdFbmNyeXB0aW9uIExpYnJhcnknOwokbGFuZ1sndGl0bGVfZW5jcnlwdF9kYXRhYmFzZV9sb25nJ10gPSAnQ2hlY2sgdGhpcyB0byBlbmNyeXB0IHRoZSBzdG9yZWQgZGF0YS4gVGhpcyBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdCAoYnV0IG5vdCBpbXBvc3NpYmxlKSBmb3IgaGFja2VycyB0byB2aWV3IHRoZSBpbmZvcm1hdGlvbi4nOwokbGFuZ1snY2hvb3NlX2NyeXB0X2xvbmcnXSA9ICdUaGUgb3B0aW9ucyBiZWxvdyBvbmx5IGFwcGx5IGlmIHlvdSBhcmUgdXNpbmcgdGhlIE9wZW5TU0wgRW5jcnlwdGlvbiBsaWJyYXJ5JzsKJGxhbmdbJ3RpdGxlX2NyeXB0X2xpYiddID0gJ0VuY3J5cHRpb24gTGlicmFyeSc7CiRsYW5nWydvcGVuc3NsJ10gPSAnT3BlblNTTCBMaWJyYXJ5JzsKJGxhbmdbJ21jcnlwdCddID0gJ1BIUCBtY3J5cHQgTGlicmFyeSc7CiRsYW5nWyd0aXRsZV9mZXVfYmluZGluZyddID0gJ0Zyb250ZW5kIFVzZXIgYmluZGluZyc7CiRsYW5nWyd0aXRsZV9pbnN0YWxsX2ZldSddID0gJ1BsZWFzZSBpbnN0YWxsIHRoZSBGcm9udGVuZCBVc2VyIG1vZHVsZSB0byBjb25uZWN0IGEgZm9ybSBhbmQgaXRzIGRhdGEgdG8gYSBzcGVjaWZpYyB1c2VyJzsKJGxhbmdbJ3RpdGxlX2ZldV9iaW5kX2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGxvY2sgZnJvbnQtZW5kIGFjY2VzcyB0byB0aGlzIGZvcm0mIzAzOTtzIGRhdGEgdG8gdGhlIGxvZ2dlZC1pbiBmcm9udC1lbmQgdXNlci4nOwokbGFuZ1sndGl0bGVfZW5jcnlwdGlvbiddID0gJ0VuY3J5cHRpb24nOwokbGFuZ1sndGl0bGVfZXhwb3J0X2Zvcm1fdG9fdWR0J10gPSAnRXhwb3J0IGZvcm0gcmVmZXJlbmNlIHRvIFVEVCBhcyAkcGFyYW1zWyYjMDM5O0ZPUk0mIzAzOTtdPyAoZG8gbm90IGRvIHRoaXMgaWYgeW91IGFyZSBnb2luZyB0byBwcmludF9yKCRwYXJhbXMpICknOwokbGFuZ1sndGl0bGVfdXJsX2hlbHAnXSA9ICdFbnRpcmUgVVJMLCBpbmNsdWRpbmcgcHJvdG9jb2wgYW5kIHBhdGggKGUuZy4sIGh0dHA6Ly9teWhvc3QuY29tL2Zvcm1faGFuZGxlci5jZ2kpJzsKJGxhbmdbJ3RpdGxlX3VybCddID0gJ0Zvcm0gc3VibWlzc2lvbiBVUkwnOwokbGFuZ1sndGl0bGVfbWV0aG9kJ10gPSAnRm9ybSBtZXRob2QnOwokbGFuZ1sndGl0bGVfbWFwc190byddID0gJ01hcCBmaWVsZCAmcXVvdDslcyZxdW90OyB0byBmb3JtIHN1Ym1pc3Npb24gdmFyaWFibGUnOwokbGFuZ1sndGl0bGVfYWRkaXRpb25hbCddID0gJ0FkZGl0aW9uYWwgc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9hZGRpdGlvbmFsX2hlbHAnXSA9ICdBbnl0aGluZyB0byBiZSBhcHBlbmRlZCB0byB0aGUgc3VibWlzc2lvbiBwYXlsb2FkLCBpbiBVUkwtZW5jb2RlZCBmb3JtICguZS5nLCAmcXVvdDt1c2VyPXN0ZXZlK2pvYnMmYW1wO2VtcGxveWVlX251bWJlcj0xKSc7CiRsYW5nWyd0aXRsZV9pbmNsdWRlX2luX3N1Ym1pc3Npb24nXSA9ICdJbmNsdWRlIGZpZWxkIGluIFN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfZGF0ZV9vcmRlciddID0gJ0RhdGUgY29tcG9uZW50IGZpZWxkIG9yZGVyIChmb3IgaW5wdXQpJzsKJGxhbmdbJ3RpdGxlX2RhdGFfc3RvcmVkX2luX2ZiciddID0gJ0RhdGEgd2lsbCBiZSBzdG9yZWQgaW4gYW4gWE1MIGZvcm1hdCBpbiB0aGUgW1BSRUZJWF1fbW9kdWxlX2ZiX2Zyb21icm93c2VyIGRhdGFiYXNlIHRhYmxlLic7CiRsYW5nWydlcnJvcl9oYXNfbm9fZmJfZmllbGQnXSA9ICdFcnJvciEgRWl0aGVyIHRoZSBmb3JtIGhhcyBubyBmb3JtX2J1aWxkZXIgZGlzcG9zaXRpb24sIG9yIGl0IGZhaWxlZCB0byBpbnN0YW50aWF0ZSAoZHVlIHRvIG1lbW9yeSBpc3N1ZXM/KSc7CiRsYW5nWydoZWxwX2RhdGVfb3JkZXInXSA9ICdVc2UgJnF1b3Q7bSZxdW90OyBmb3IgTW9udGgsICZxdW90O2QmcXVvdDsgZm9yIERheSwgYW5kICZxdW90O3kmcXVvdDsgZm9yIFllYXIuIFNlcGFyYXRlIHRoZSBpdGVtcyBieSBoeXBoZW5zLic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXI/JzsKJGxhbmdbJ3RpdGxlX3VzZV9yYW5kb21fZ2VuZXJhdG9yJ10gPSAnVXNlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIGluc3RlYWQgb2Ygc3RhdGljJzsKJGxhbmdbJ3RpdGxlX251bWJlcnNfdG9fZ2VuZXJhdGUnXSA9ICdIb3cgbWFueSBudW1iZXJzIHRvIGdlbmVyYXRlIGluIHByb2Nlc3MnOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ1RhcmloJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdTZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2l5b24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgS2FyYWt0ZXJpJzsKJGxhbmdbJ2hlbHBfaWdub3JlZF9pZl91cGxvYWQnXSA9ICcoVGhpcyBmaWVsZCBpZ25vcmVkIGlmIHlvdSB1c2UgdGhlIFVwbG9hZHMgbW9kdWxlIHRvIG1hbmFnZSBmaWxlcyknOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPgo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2hlbHBfcnRmX2ZpbGVfdGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgZmlsZSBsb2NhdGVkIGluIHRoZSBGb3JtQnVpbGRlci90ZW1wbGF0ZXMvIGZvbGRlci4gVGhpcyBmaWVsZCBpcyBpZ25vcmVkIGlmIHlvdSB1c2UgVFhUIGFzIHlvdXIgZmlsZSB0eXBlLic7CiRsYW5nWydoZWxwX3J0Zl90ZW1wbGF0ZV90eXBlJ10gPSAnQmFzaWM6IFVzZSB0aGUgdGV4dGFyZWEgYmVsb3cgdG8gbGF5b3V0IHRoZSBmaWVsZCBuYW1lcy92YWx1ZXMgaW4gYSBzaW5nbGUgYmxvY2suPGJyIC8+CkFkdmFuY2VkOiBTcGVjaWZ5IFNtYXJ0eSB2YXJpYWJsZXMgaW4gdGhlIFJURiBUZW1wbGF0ZSBGaWxlIGFzIHlvdSB3b3VsZCBiZWxvdywgYnV0IGFycmFuZ2UgdGhlbSBob3dldmVyIHlvdSBsaWtlIGFuZCBhZGQgZm9ybWF0dGluZy48YnIgLz4KJm5ic3A7WW91IGNhbiBzdGlsbCB1c2UgdGhlICUlSEVBREVSJSUgYW5kICUlRk9PVEVSJSUgc2VjdGlvbnMgaW4gdGhlIFJURiBmaWxlLic7CiRsYW5nWydoZWxwX3VuaXF1ZV9maWxlX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBIZWFkZXIgVGVtcGxhdGUuPGJyIC8+CkZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZJRUxEUyUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZSBpZiBSVEYgVGVtcGxhdGUgVHlwZSBpcyBzZXQgdG8gJnF1b3Q7QmFzaWMmcXVvdDsuPGJyIC8+ClRoaXMgZmllbGQgd2lsbCBiZSBpZ25vcmVkIGlmIHVzaW5nICZxdW90O1JURiZxdW90OyBhcyBGaWxlIFR5cGUgYW5kICZxdW90O0FkdmFuY2VkJnF1b3Q7IGFzIFJURiBUZW1wbGF0ZSBUeXBlLic7CiRsYW5nWydoZWxwX2ZpbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnRm9yIFRYVCwgdGhpcyB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLiBGb3IgUlRGLCB0aGlzIHdpbGwgcmVwbGFjZSB0aGUgJSVIRUFERVIlJSBzdHJpbmcgaW4gdGhlIHRlbXBsYXRlIGZpbGUuJzsKJGxhbmdbJ2hlbHBfZmlsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdGb3IgVFhULCB0aGlzIHdpbGwgYmUgcGxhY2VkIGF0IHRoZSBib3R0b20gb2YgdGhlIGZpbGUuIEZvciBSVEYsIHRoaXMgd2lsbCByZXBsYWNlIHRoZSAlJUZPT1RFUiUlIHN0cmluZyBpbiB0aGUgdGVtcGxhdGUgZmlsZS4nOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEZvcm1hIEdlcmkgRCZvdW1sO24nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9mb290ZXJfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEZvb3RlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9mb290ZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGZvb3RlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9ydGZfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIFJURiBmaWxlIHRvIHVzZSc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvdXRwdXQnOwokbGFuZ1sndGl0bGVfZmlsZV90eXBlJ10gPSAnQ2hvb3NlIGEgZmlsZSB0eXBlIHRvIHVzZSc7CiRsYW5nWyd0aXRsZV9ydGZfdGVtcGxhdGVfdHlwZSddID0gJ0Nob29zZSBhbiBSVEYgdGVtcGxhdGUgdHlwZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgZm9yIGRpc3BsYXkgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZxLFsIGFyYWzEscSfxLEgYmHFn2xhbmfEsWPEsSc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1nEsWwgYXJhbMSxxJ/EsSBzb251JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ1ZhcnNhecSxbGFuIFnEsWwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfc3VibWl0X2RhdGUnXSA9ICdEYXRlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9hcHByb3ZhbF9kYXRlJ10gPSAnRGF0ZSBBcHByb3ZlZCAoYnkgYWRtaW4pJzsKJGxhbmdbJ3RpdGxlX3VzZXJfYXBwcm92ZWQnXSA9ICdEYXRlIEFwcHJvdmVkIChieSBzdWJtaXR0ZXIpJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdZJm91bWw7bmxlbmRpcmlsZWNlayBTYXlmYSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWxwdGV4dCddID0gJ0hlbHAtdGV4dCB0byBkaXNwbGF5IHdpdGggdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9zdHJpbmdfdW5zcGFjZWQnXSA9ICdTdHJpbmcgKG5vIHNwYWNlcyBiZXR3ZWVuIGZpZWxkcyk/JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGUnXSA9ICdDb21wdXRlZC9QSFAnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge0Zvcm1CdWlsZGVyfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdOZWVkIG1vcmUgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdUb28gbWFueSBjb25mdXNpbmcgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1N3aXRjaCB0byBBZHZhbmNlZCBNb2RlJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnU3dpdGNoIHRvIFNpbXBsZSBNb2RlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZSBhIGNvcHkgb2YgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWyd0aXRsZV9kaXNwbGF5X2xlbmd0aCddID0gJ0Rpc3BsYXkgbGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX21pbmltdW1fbGVuZ3RoJ10gPSAnTWluaW11bSByZXNwb25zZSBsZW5ndGgnOwokbGFuZ1sndGl0bGVfaGlkZSddID0gJ0hpZGUgaW5wdXQnOwokbGFuZ1sndGl0bGVfaGlkZV9oZWxwJ10gPSAnU2hvdyBzeW1ib2xzIHJhdGhlciBwbGFpbiB0ZXh0IHdoZW4gdXNlciBlbnRlcnMgcGFzc3dvcmQ/JzsKJGxhbmdbJ3Bhc3N3b3JkX2RvZXNfbm90X21hdGNoJ10gPSAnUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2ggJXMnOwokbGFuZ1snYmFja190b3AnXSA9ICdCYWNrIHRvIEZvcm1CdWlsZGVyIE1haW4gUGFnZSc7CiRsYW5nWyd0aXRsZV9oZWFkZXJzX3RvX21vZGlmeSddID0gJ1doaWNoIGVtYWlsIGhlYWRlcnMgc2hvdWxkIHRoaXMgaW5wdXQgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWQnXSA9ICdEbyBub3QgYWNjZXB0IGJsYW5rIHNwYWNlIGFzIHZhbGlkIHJlc3BvbnNlJzsKJGxhbmdbJ3RpdGxlX2JsYW5rX2ludmFsaWRfbG9uZyddID0gJ0lmIGEgZmllbGQgaXMgcmVxdWlyZWQsIGNoZWNraW5nIHRoaXMgd2lsbCByZXF1aXJlIHRoYXQgcGVvcGxlIHB1dCBpbiBzb21lIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBub3QganVzdCBzcGFjZXMnOwokbGFuZ1sndGl0bGVfbXVzdF9zYXZlX29yZGVyJ10gPSAnWW91IG11c3QgY2xpY2sgb25lIG9mIHRoZSAmcXVvdDtzYXZlJnF1b3Q7IGJ1dHRvbnMgdG8gbWFrZSB5b3VyIG5ldyBmaWVsZCBvcmRlciBwZXJtYW5lbnQuJzsKJGxhbmdbJ3RpdGxlX2h0bWw1J10gPSAnVXNlIEhUTUw1IHBsYWNlaG9sZGVyIHRleHQgaW5zdGVhZCBvZiBKYXZhc2NyaXB0JzsKJGxhbmdbJ2Vycm9yX0NvbXBhbnlEaXJlY3RvcnlfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICdDb21wYW55IERpcmVjdG9yeSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnR2l2ZSB1c2VyIGEgY2hvaWNlIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0Fsd2F5cyc7CiRsYW5nWydvcHRpb25fZnJvbSddID0gJyZxdW90O0Zyb20mcXVvdDsgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydvcHRpb25fcmVwbHknXSA9ICcmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ29wdGlvbl9ib3RoJ10gPSAnQm90aCAmcXVvdDtGcm9tJnF1b3Q7IGFuZCAmcXVvdDtSZXBseS1UbyZxdW90OyBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snb3B0aW9uX2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3Rfc2luZ2xlJ10gPSAnU2VsZWN0IExpc3QgKHNpbmdsZSknOwokbGFuZ1snb3B0aW9uX3NlbGVjdGxpc3RfbXVsdGlwbGUnXSA9ICdTZWxlY3QgTGlzdCAobXVsdGlwbGUpJzsKJGxhbmdbJ29wdGlvbl9yYWRpb2dyb3VwJ10gPSAnUmFkaW8gR3JvdXAnOwokbGFuZ1sndGl0bGVfY29tcGFueV9maWVsZF9ub3RlJ10gPSAnTm90ZTogT3V0cHV0IHdpbGwgYmUgaW4gdGhlIGZvcm0gb2Y8YnIvPiZxdW90O2NvbXBhbnkgbmFtZSZxdW90Oz0+JnF1b3Q7dmFsdWUmcXVvdDsnOwokbGFuZ1sndGl0bGVfcGlja19jYXRlZ29yaWVzJ10gPSAnUGljayBhIGNhdGVnb3J5IChtdWx0aXBsZSknOwokbGFuZ1sndGl0bGVfcGlja19maWVsZGRlZiddID0gJ1B1bGwgYSBmaWVsZCBEZWZpbml0aW9uJiMwMzk7cyB2YWx1ZSAoc2luZ2xlKSA8ZW0+b3B0aW9uYWw8L2VtPic7CiRsYW5nWyd0aXRsZV9jaG9vc2VfdXNlcl9pbnB1dCddID0gJ0Nob29zZSBVc2VyIGlucHV0JzsKJGxhbmdbJ3RpdGxlX3NlZV9hbHNvX3VkdCddID0gJyhBbHNvIHRha2UgYSBsb29rIGF0IHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiIGlmIHlvdSB3YW50IHRvIHNldCBhIFVEVCBmb3IgZm9ybSB2YWxpZGF0aW9uKSc7CiRsYW5nWyd0aXRsZV95ZWFyX2VuZF9tZXNzYWdlJ10gPSAnRW5kIHllYXInOwokbGFuZ1sndGl0bGVfZmllbGRfbG9naWMnXSA9ICdTbWFydHkgZGF0YSBvciBsb2dpYyB0aGF0IGlzIG1lYW50IHRvIGJlIHNlbnQgd2l0aCB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2xvZ2ljX2xvbmcnXSA9ICdDYW4gYmUgc21hcnR5IGRhdGEsIGphdmFzY3JpcHQsIG9yIHNvbWUgb3RoZXIgZGF0YSB5b3Ugd2FuJiMwMzk7dCB0byBzZW50IGFsb25nIHdpdGggdGhpcyBmaWVsZC48YnIgLz5Hb2VzIHRocm91Z2ggdGhlIFNtYXJ0eSBjb21waWxlciwgc28gcmVtZW1iZXIgdXNlIHtsaXRlcmFsfXsvbGl0ZXJhbH0gdGFncyB3aXRoIDxzY3JpcHQ+PC9zY3JpcHQ+JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2luY2x1ZGVsYWJlbHMnXSA9ICdJbmNsdWRlIGxhYmVscyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pbmNsdWRlbGFiZWxzX2hlbHAnXSA9ICdFbmFibGluZyB0aGlzIGluY2x1ZGVzIGxhYmVscyB0byBvdXRwdXQuIGV4YW1wbGUgLSBsYWJlbDogdmFsdWUsbGFiZWwyOiB2YWx1ZTInOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3MnXSA9ICdMaW5rIHRoaXMgZmllbGQgdG8gaXQmIzAzOTtzIHNpYmxpbmcnOwokbGFuZ1sndGl0bGVfZmllbGRfc2libGluZ3NfaGVscCddID0gJ0Ryb3Bkb3duIGxpc3RzIGFsbCBzaWJsaW5ncyBvZiB0aGlzIGZpZWxkIGFuZCBhbGxvd3MgeW91IHRvIGxpbmsgdGhpcyBmaWVsZCB0byBvbmUgb2YgaXQmIzAzOTtzIHNpYmxpbmcuIE1ha2VzIHBvc3NpYmxlIGNvbnRyb2xsaW5nIHRoaXMgZmllbGQgd2l0aCBzZWxlY3RlZCBzaWJsaW5nIGNvbnRyb2xzLic7CiRsYW5nWyd0aXRsZV9maWVsZF9oaWRlYnV0dG9ucyddID0gJ0hpZGUgY29udHJvbCBidXR0b25zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hpZGVidXR0b25zX2hlbHAnXSA9ICdIaWRlcyBmcm9udGVuZCBjb250cm9sIGJ1dHRvbnMgb2YgdGhpcyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfbm90ZSddID0gJ05vdGUnOwokbGFuZ1sndGl0bGVfY2hhbmdpbmdfdHJpZ2dlcnNfcmVpbmRleCddID0gJ0NoYW5naW5nIGFueSBvZiB0aGUgYWJvdmUgZmllbGRzIHdpbGwgdHJpZ2dlciBhIHJlaW5kZXggb2YgKmFsbCogc2F2ZWQgcmVjb3Jkcywgc28gaXQgY291bGQgdGFrZSBhIHdoaWxlLic7CiRsYW5nWydpbGxlZ2FsX2ZpbGUnXSA9ICdBdHRlbXB0ZWQgdXBsb2FkIG9mIGlsbGVnYWwgZmlsZSB0eXBlICglcykgZnJvbSAlcyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlJ10gPSAnTWFrZSByZWNvcmRzIGFjY2Vzc2libGUgdG8gU2VhcmNoIE1vZHVsZSc7CiRsYW5nWyd0aXRsZV9zZWFyY2hhYmxlX2hlbHAnXSA9ICdDaGVja2luZyB0aGlzIHdpbGwgbWFrZSBhbGwgc3VibWl0dGVkIGRhdGEgYWNjZXNzaWJsZSB0byB0aGUgU2VhcmNoIE1vZHVsZS4gRE8gTk9UIHVzZSB0aGlzIGlmIHlvdSBlbmNyeXB0IHlvdXIgZGF0YSAtLSB0aGUgaW5mb3JtYXRpb24gZ2V0cyBleHBvc2VkIHRvIHNlYXJjaCB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlbmNyeXB0ZWQhJzsKJGxhbmdbJ3VwbG9hZGVkX291dHNpZGVfd2Vicm9vdCddID0gJyVzIChvdXRzaWRlIHdlYiByb290KSc7CiRsYW5nWyd0aXRsZV9mYnJfZWRpdCddID0gJ0VkaXRhYmxlIGluIEZvcm1Ccm93c2VyIEFkbWluPyc7CiRsYW5nWydlcnJvcl91c2VydGFnX2Rpc3Bvc2l0aW9uJ10gPSAnVXNlciBkZWZpbmVkIHRhZyByZXR1cm5lZCBhbiBlcnJvcic7CiRsYW5nWydlcnJvcl91c2VydGFnJ10gPSAnVXNlciBkZWZpbmVkIHRhZyAlcyByZXR1cm5lZCBhbiBlcnJvci4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVzcG9uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXNwb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKykuIElmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4gSWYgeW91IHVzZSBDb21wdXRlZC9QSFAgZXZhbHVhdGlvbiwgeW91IGNhbgp1c2UgYW55IGZ1bmN0aW9uIHlvdSB3YW50LCBidXQgeW91IG5lZWQgdG8gcXVvdGUgdGhpbmdzIChzdWJzdGl0dXRpb24gb2NjdXJzIGJlZm9yZSBldmFsdWF0aW9uKSwgZS5nLiwgc3Vic3RyKCYjMDM5OyRmbGRfMjImIzAzOTssMCwyKS4mIzAzOTskZmxkXzIzJiMwMzk7Lic7CiRsYW5nWydoZWxwX21vZHVsZV9pbnRlcmZhY2UnXSA9ICdVc2luZyBNb2R1bGUgSW50ZXJmYWNlJzsKJGxhbmdbJ2hlbHBfbW9kdWxlX2ludGVyZmFjZV9sb25nJ10gPSAnPGI+VGhpcyBmaWVsZCBpcyB1c2VkIGFzIGEgZ2F0ZXdheSB0byBvdGhlciBtb2R1bGVzITwvYj4KVXNlIGl0IGJ5IGNyZWF0aW5nIHlvdXIgZm9ybSBlbGVtZW50cyBpbiB0aGUgdGVtcGxhdGVzIG9mIHRoZSBvdGhlciBtb2R1bGUocykgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUsIGFuZCB1c2luZyB0aGUgPHN0cm9uZz57JEZCaWR9PC9zdHJvbmc+IHRvIHRpZSBpdCBiYWNrIHRvIEZvcm1CdWlsZGVyLiBGb3IgZXhhbXBsZSwgdG8gaW5jbHVkZSBmb3JtIG9wdGlvbnMgYmFzZWQgb24gdGhlIFByb2R1Y3RzIG1vZHVsZSwgY3JlYXRlIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGUgaW4gUHJvZHVjdHM6PGJyLz4KPHByZT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5OyYjMDM5O30KCXthc3NpZ24gdmFyPUNkIHZhbHVlPSYjMDM5OyYjMDM5O30KCQl7Zm9yZWFjaCBmcm9tPSRGQnZhbHVlIGl0ZW09TURhdGF9CgkJCXthc3NpZ24gdmFyPU1EYXRhIHZhbHVlPSYjMDM5Ozo6JiMwMzk7fGV4cGxvZGU6JE1EYXRhfQoJCQl7aWYgJE1EYXRhWzFdPT0kZW50cnktPmlkfQoJCQkJe2Fzc2lnbiB2YXI9Q2QgdmFsdWU9JiMwMzk7IGNoZWNrZWQ9JnF1b3Q7Y2hlY2tlZCZxdW90OyYjMDM5O30KCQkJey9pZn0KCQl7L2ZvcmVhY2h9Cgk8ZGl2IGNsYXNzPSZxdW90O1Byb2R1Y3REaXJlY3RvcnlJdGVtJnF1b3Q7PgoJCTxpbnB1dCB0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7IHZhbHVlPSZxdW90O3skZW50cnktPnByaWNlfTo6eyRlbnRyeS0+aWR9JnF1b3Q7IG5hbWU9JnF1b3Q7eyRGQmlkfVtdJnF1b3Q7IHskQ2R9IC8+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfSAoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkgJnBvdW5kO3skZW50cnktPnByaWNlfSAgICAKCTwvZGl2Pgp7L2ZvcmVhY2h9CjwvcHJlPgo8YnIvPgp3aGVyZSBpbiB0aGUgaW5wdXQgYmVsb3cgeW91IHB1dCBzb21ldGhpbmcgbGlrZSA8c3Ryb25nPntQcm9kdWN0cyBjYXRlZ29yeT0mcXVvdDtjYXQmcXVvdDsgc3VtbWFyeXRlbXBsYXRlPSZxdW90O1lvdXJfRkJfdGVtcGxhdGUmcXVvdDt9PC9zdHJvbmc+JzsKJGxhbmdbJ3RpdGxlX2FkZF90YWcnXSA9ICdBZGQgeW91ciB0YWcnOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnT2Nhayc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnxZ51YmF0JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJ0JzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdOaXNhbic7CiRsYW5nWydkYXRlX21heSddID0gJ01hecSxcyc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdIYXppcmFuJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ1RlbW11eic7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0HEn3VzdG9zJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnRXlsJnV1bWw7bCc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdFa2ltJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdLYXPEsW0nOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0FyYWzEsWsnOwokbGFuZ1snQUYnXSA9ICdBZmdoYW5pc3Rhbic7CiRsYW5nWydBWCddID0gJ0FsYW5kIElzbGFuZHMnOwokbGFuZ1snQUwnXSA9ICdBbGJhbmlhJzsKJGxhbmdbJ0RaJ10gPSAnQWxnZXJpYSc7CiRsYW5nWydBUyddID0gJ0FtZXJpY2FuIFNhbW9hJzsKJGxhbmdbJ0FEJ10gPSAnQW5kb3JyYSc7CiRsYW5nWydBTyddID0gJ0FuZ29sYSc7CiRsYW5nWydBSSddID0gJ0FuZ3VpbGxhJzsKJGxhbmdbJ0FRJ10gPSAnQW50YXJjdGljYSc7CiRsYW5nWydBRyddID0gJ0FudGlndWEgYW5kIEJhcmJ1ZGEnOwokbGFuZ1snQVInXSA9ICdBcmdlbnRpbmEnOwokbGFuZ1snQU0nXSA9ICdBcm1lbmlhJzsKJGxhbmdbJ0FXJ10gPSAnQXJ1YmEnOwokbGFuZ1snQVUnXSA9ICdBdXN0cmFsaWEnOwokbGFuZ1snQVQnXSA9ICdBdXN0cmlhJzsKJGxhbmdbJ0FaJ10gPSAnQXplcmJhaWphbic7CiRsYW5nWydCUyddID0gJ0JhaGFtYXMnOwokbGFuZ1snQkgnXSA9ICdCYWhyYWluJzsKJGxhbmdbJ0JCJ10gPSAnQmFyYmFkb3MnOwokbGFuZ1snQkQnXSA9ICdCYW5nbGFkZXNoJzsKJGxhbmdbJ0JZJ10gPSAnQmVsYXJ1cyc7CiRsYW5nWydCRSddID0gJ0JlbGdpdW0nOwokbGFuZ1snQlonXSA9ICdCZWxpemUnOwokbGFuZ1snQkonXSA9ICdCZW5pbic7CiRsYW5nWydCTSddID0gJ0Jlcm11ZGEnOwokbGFuZ1snQlQnXSA9ICdCaHV0YW4nOwokbGFuZ1snQlcnXSA9ICdCb3Rzd2FuYSc7CiRsYW5nWydCTyddID0gJ0JvbGl2aWEnOwokbGFuZ1snQkEnXSA9ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJzsKJGxhbmdbJ0JWJ10gPSAnQm91dmV0IElzbGFuZCc7CiRsYW5nWydCUiddID0gJ0JyYXppbCc7CiRsYW5nWydJTyddID0gJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSc7CiRsYW5nWydCTiddID0gJ0JydW5laSBEYXJ1c3NhbGFtJzsKJGxhbmdbJ0JHJ10gPSAnQnVsZ2FyaWEnOwokbGFuZ1snQkYnXSA9ICdCdXJraW5hIEZhc28nOwokbGFuZ1snQkknXSA9ICdCdXJ1bmRpJzsKJGxhbmdbJ0tIJ10gPSAnQ2FtYm9kaWEnOwokbGFuZ1snQ00nXSA9ICdDYW1lcm9vbic7CiRsYW5nWydDQSddID0gJ0NhbmFkYSc7CiRsYW5nWydDViddID0gJ0NhcGUgVmVyZGUnOwokbGFuZ1snS1knXSA9ICdDYXltYW4gSXNsYW5kcyc7CiRsYW5nWydDRiddID0gJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyc7CiRsYW5nWydURCddID0gJ0NoYWQnOwokbGFuZ1snQ0wnXSA9ICdDaGlsZSc7CiRsYW5nWydDTiddID0gJ0NoaW5hJzsKJGxhbmdbJ0NYJ10gPSAnQ2hyaXN0bWFzIElzbGFuZCc7CiRsYW5nWydDQyddID0gJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJzsKJGxhbmdbJ0NPJ10gPSAnQ29sb21iaWEnOwokbGFuZ1snS00nXSA9ICdDb21vcm9zJzsKJGxhbmdbJ0NHJ10gPSAnQ29uZ28nOwokbGFuZ1snQ0QnXSA9ICdDb25nbywgIERlbW9jcmF0aWMgUmVwdWJsaWMnOwokbGFuZ1snQ0snXSA9ICdDb29rIElzbGFuZHMnOwokbGFuZ1snQ1InXSA9ICdDb3N0YSBSaWNhJzsKJGxhbmdbJ0NJJ10gPSAnSXZvaXJlIChJdm9yeSBDb2FzdCknOwokbGFuZ1snSFInXSA9ICdDcm9hdGlhIChIcnZhdHNrYSknOwokbGFuZ1snQ1UnXSA9ICdDdWJhJzsKJGxhbmdbJ0NZJ10gPSAnQ3lwcnVzJzsKJGxhbmdbJ0NaJ10gPSAnQ3plY2ggUmVwdWJsaWMnOwokbGFuZ1snREsnXSA9ICdEZW5tYXJrJzsKJGxhbmdbJ0RKJ10gPSAnRGppYm91dGknOwokbGFuZ1snRE0nXSA9ICdEb21pbmljYSc7CiRsYW5nWydETyddID0gJ0RvbWluaWNhbiBSZXB1YmxpYyc7CiRsYW5nWydUUCddID0gJ0Vhc3QgVGltb3InOwokbGFuZ1snRUMnXSA9ICdFY3VhZG9yJzsKJGxhbmdbJ0VHJ10gPSAnRWd5cHQnOwokbGFuZ1snU1YnXSA9ICdFbCBTYWx2YWRvcic7CiRsYW5nWydHUSddID0gJ0VxdWF0b3JpYWwgR3VpbmVhJzsKJGxhbmdbJ0VSJ10gPSAnRXJpdHJlYSc7CiRsYW5nWydFRSddID0gJ0VzdG9uaWEnOwokbGFuZ1snRVQnXSA9ICdFdGhpb3BpYSc7CiRsYW5nWydGSyddID0gJ0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSc7CiRsYW5nWydGTyddID0gJ0Zhcm9lIElzbGFuZHMnOwokbGFuZ1snRkonXSA9ICdGaWppJzsKJGxhbmdbJ0ZJJ10gPSAnRmlubGFuZCc7CiRsYW5nWydGUiddID0gJ0ZyYW5jZSc7CiRsYW5nWydGWCddID0gJ0ZyYW5jZSwgIE1ldHJvcG9saXRhbic7CiRsYW5nWydHRiddID0gJ0d1ZXJuc2V5JzsKJGxhbmdbJ1BGJ10gPSAnRnJlbmNoIFBvbHluZXNpYSc7CiRsYW5nWydURiddID0gJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyc7CiRsYW5nWydNSyddID0gJ0YuWS5SLk8uTS4gKE1hY2Vkb25pYSknOwokbGFuZ1snR0EnXSA9ICdHYWJvbic7CiRsYW5nWydHTSddID0gJ0dhbWJpYSc7CiRsYW5nWydHRSddID0gJ0dlb3JnaWEnOwokbGFuZ1snREUnXSA9ICdHZXJtYW55JzsKJGxhbmdbJ0dIJ10gPSAnR2hhbmEnOwokbGFuZ1snR0knXSA9ICdHaWJyYWx0YXInOwokbGFuZ1snR0InXSA9ICdHcmVhdCBCcml0YWluIChVSyknOwokbGFuZ1snR1InXSA9ICdHcmVlY2UnOwokbGFuZ1snR0wnXSA9ICdHcmVlbmxhbmQnOwokbGFuZ1snR0QnXSA9ICdHcmVuYWRhJzsKJGxhbmdbJ0dQJ10gPSAnR3VhZGVsb3VwZSc7CiRsYW5nWydHVSddID0gJ0d1YW0nOwokbGFuZ1snR1QnXSA9ICdHdWF0ZW1hbGEnOwokbGFuZ1snR04nXSA9ICdHdWluZWEnOwokbGFuZ1snR1cnXSA9ICdHdWluZWEtQmlzc2F1JzsKJGxhbmdbJ0dZJ10gPSAnR3V5YW5hJzsKJGxhbmdbJ0hUJ10gPSAnSGFpdGknOwokbGFuZ1snSE0nXSA9ICdIZWFyZCBhbmQgTWNEb25hbGQgSXNsYW5kcyc7CiRsYW5nWydITiddID0gJ0hvbmR1cmFzJzsKJGxhbmdbJ0hLJ10gPSAnSG9uZyBLb25nJzsKJGxhbmdbJ0hVJ10gPSAnSHVuZ2FyeSc7CiRsYW5nWydJUyddID0gJ0ljZWxhbmQnOwokbGFuZ1snSU4nXSA9ICdJbmRpYSc7CiRsYW5nWydJRCddID0gJ0luZG9uZXNpYSc7CiRsYW5nWydJUiddID0gJ0lyYW4nOwokbGFuZ1snSVEnXSA9ICdJcmFxJzsKJGxhbmdbJ0lFJ10gPSAnSXJlbGFuZCc7CiRsYW5nWydJTCddID0gJ0lzcmFlbCc7CiRsYW5nWydJTSddID0gJ0lzbGUgb2YgTWFuJzsKJGxhbmdbJ0lUJ10gPSAnSXRhbHknOwokbGFuZ1snSkUnXSA9ICdKZXJzZXknOwokbGFuZ1snSk0nXSA9ICdKYW1haWNhJzsKJGxhbmdbJ0pQJ10gPSAnSmFwYW4nOwokbGFuZ1snSk8nXSA9ICdKb3JkYW4nOwokbGFuZ1snS1onXSA9ICdLYXpha2hzdGFuJzsKJGxhbmdbJ0tFJ10gPSAnS2VueWEnOwokbGFuZ1snS0knXSA9ICdLaXJpYmF0aSc7CiRsYW5nWydLUCddID0gJ0tvcmVhIChOb3J0aCknOwokbGFuZ1snS1InXSA9ICdLb3JlYSAoU291dGgpJzsKJGxhbmdbJ0tXJ10gPSAnS3V3YWl0JzsKJGxhbmdbJ0tHJ10gPSAnS3lyZ3l6c3Rhbic7CiRsYW5nWydMQSddID0gJ0xhb3MnOwokbGFuZ1snTFYnXSA9ICdMYXR2aWEnOwokbGFuZ1snTEInXSA9ICdMZWJhbm9uJzsKJGxhbmdbJ0xJJ10gPSAnTGllY2h0ZW5zdGVpbic7CiRsYW5nWydMUiddID0gJ0xpYmVyaWEnOwokbGFuZ1snTFknXSA9ICdMaWJ5YSc7CiRsYW5nWydMUyddID0gJ0xlc290aG8nOwokbGFuZ1snTFQnXSA9ICdMaXRodWFuaWEnOwokbGFuZ1snTFUnXSA9ICdMdXhlbWJvdXJnJzsKJGxhbmdbJ01PJ10gPSAnTWFjYXUnOwokbGFuZ1snTUcnXSA9ICdNYWRhZ2FzY2FyJzsKJGxhbmdbJ01XJ10gPSAnTWFsYXdpJzsKJGxhbmdbJ01ZJ10gPSAnTWFsYXlzaWEnOwokbGFuZ1snTVYnXSA9ICdNYWxkaXZlcyc7CiRsYW5nWydNTCddID0gJ01hbGknOwokbGFuZ1snTVQnXSA9ICdNYWx0YSc7CiRsYW5nWydNSCddID0gJ01hcnNoYWxsIElzbGFuZHMnOwokbGFuZ1snTVEnXSA9ICdNYXJ0aW5pcXVlJzsKJGxhbmdbJ01SJ10gPSAnTWF1cml0YW5pYSc7CiRsYW5nWydNVSddID0gJ01hdXJpdGl1cyc7CiRsYW5nWydZVCddID0gJ01heW90dGUnOwokbGFuZ1snTVgnXSA9ICdNZXhpY28nOwokbGFuZ1snRk0nXSA9ICdNaWNyb25lc2lhJzsKJGxhbmdbJ01DJ10gPSAnTW9uYWNvJzsKJGxhbmdbJ01EJ10gPSAnTW9sZG92YSc7CiRsYW5nWydNQSddID0gJ01vcm9jY28nOwokbGFuZ1snTU4nXSA9ICdNb25nb2xpYSc7CiRsYW5nWydNUyddID0gJ01vbnRzZXJyYXQnOwokbGFuZ1snTVonXSA9ICdNb3phbWJpcXVlJzsKJGxhbmdbJ01NJ10gPSAnTXlhbm1hcic7CiRsYW5nWydOQSddID0gJ05hbWliaWEnOwokbGFuZ1snTlInXSA9ICdOYXVydSc7CiRsYW5nWydOUCddID0gJ05lcGFsJzsKJGxhbmdbJ05MJ10gPSAnTmV0aGVybGFuZHMnOwokbGFuZ1snQU4nXSA9ICdOZXRoZXJsYW5kcyBBbnRpbGxlcyc7CiRsYW5nWydOVCddID0gJ05ldXRyYWwgWm9uZSc7CiRsYW5nWydOQyddID0gJ05ldyBDYWxlZG9uaWEnOwokbGFuZ1snTlonXSA9ICdOZXcgWmVhbGFuZCAoQW90ZWFyb2EpJzsKJGxhbmdbJ05JJ10gPSAnTmljYXJhZ3VhJzsKJGxhbmdbJ05FJ10gPSAnTmlnZXInOwokbGFuZ1snTkcnXSA9ICdOaWdlcmlhJzsKJGxhbmdbJ05VJ10gPSAnTml1ZSc7CiRsYW5nWydORiddID0gJ05vcmZvbGsgSXNsYW5kJzsKJGxhbmdbJ01QJ10gPSAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJzsKJGxhbmdbJ05PJ10gPSAnTm9yd2F5JzsKJGxhbmdbJ09NJ10gPSAnT21hbic7CiRsYW5nWydQSyddID0gJ1Bha2lzdGFuJzsKJGxhbmdbJ1BXJ10gPSAnUGFsYXUnOwokbGFuZ1snUFMnXSA9ICdQYWxlc3RpbmlhbiBUZXJyaXRvcnknOwokbGFuZ1snUEEnXSA9ICdQYW5hbWEnOwokbGFuZ1snUEcnXSA9ICdQYXB1YSBOZXcgR3VpbmVhJzsKJGxhbmdbJ1BZJ10gPSAnUGFyYWd1YXknOwokbGFuZ1snUEUnXSA9ICdQZXJ1JzsKJGxhbmdbJ1BIJ10gPSAnUGhpbGlwcGluZXMnOwokbGFuZ1snUE4nXSA9ICdQaXRjYWlybic7CiRsYW5nWydQTCddID0gJ1BvbGFuZCc7CiRsYW5nWydQVCddID0gJ1BvcnR1Z2FsJzsKJGxhbmdbJ1BSJ10gPSAnUHVlcnRvIFJpY28nOwokbGFuZ1snUUEnXSA9ICdRYXRhcic7CiRsYW5nWydSRSddID0gJ1JldW5pb24nOwokbGFuZ1snUk8nXSA9ICdSb21hbmlhJzsKJGxhbmdbJ1JVJ10gPSAnUnVzc2lhbiBGZWRlcmF0aW9uJzsKJGxhbmdbJ1JXJ10gPSAnUndhbmRhJzsKJGxhbmdbJ0dTJ10gPSAnUy4gR2VvcmdpYSBhbmQgUy4gU2FuZHdpY2ggSXNscy4nOwokbGFuZ1snS04nXSA9ICdTYWludCBLaXR0cyBhbmQgTmV2aXMnOwokbGFuZ1snTEMnXSA9ICdTYWludCBMdWNpYSc7CiRsYW5nWydWQyddID0gJ1NhaW50IFZpbmNlbnQgJmFtcDsgdGhlIEdyZW5hZGluZXMnOwokbGFuZ1snV1MnXSA9ICdTYW1vYSc7CiRsYW5nWydTTSddID0gJ1NhbiBNYXJpbm8nOwokbGFuZ1snU1QnXSA9ICdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnOwokbGFuZ1snU0EnXSA9ICdTYXVkaSBBcmFiaWEnOwokbGFuZ1snU04nXSA9ICdTZW5lZ2FsJzsKJGxhbmdbJ1NDJ10gPSAnU2V5Y2hlbGxlcyc7CiRsYW5nWydTTCddID0gJ1NpZXJyYSBMZW9uZSc7CiRsYW5nWydTRyddID0gJ1NpbmdhcG9yZSc7CiRsYW5nWydTSSddID0gJ1Nsb3ZlbmlhJzsKJGxhbmdbJ1NLJ10gPSAnU2xvdmFrIFJlcHVibGljJzsKJGxhbmdbJ1NCJ10gPSAnU29sb21vbiBJc2xhbmRzJzsKJGxhbmdbJ1NPJ10gPSAnU29tYWxpYSc7CiRsYW5nWydaQSddID0gJ1NvdXRoIEFmcmljYSc7CiRsYW5nWydFUyddID0gJ1NwYWluJzsKJGxhbmdbJ0xLJ10gPSAnU3JpIExhbmthJzsKJGxhbmdbJ1NIJ10gPSAnU3QuIEhlbGVuYSc7CiRsYW5nWydQTSddID0gJ1N0LiBQaWVycmUgYW5kIE1pcXVlbG9uICc7CiRsYW5nWydTRCddID0gJ1N1ZGFuJzsKJGxhbmdbJ1NSJ10gPSAnU3VyaW5hbWUnOwokbGFuZ1snU0onXSA9ICdTdmFsYmFyZCAmYW1wOyBKYW4gTWF5ZW4gSXNsYW5kcyc7CiRsYW5nWydTWiddID0gJ1N3YXppbGFuZCc7CiRsYW5nWydTRSddID0gJ1N3ZWRlbic7CiRsYW5nWydDSCddID0gJ1N3aXR6ZXJsYW5kJzsKJGxhbmdbJ1NZJ10gPSAnU3lyaWEnOwokbGFuZ1snVFcnXSA9ICdUYWl3YW4nOwokbGFuZ1snVEonXSA9ICdUYWppa2lzdGFuJzsKJGxhbmdbJ1RaJ10gPSAnVGFuemFuaWEnOwokbGFuZ1snVEgnXSA9ICdUaGFpbGFuZCc7CiRsYW5nWydURyddID0gJ1RvZ28nOwokbGFuZ1snVEsnXSA9ICdUb2tlbGF1JzsKJGxhbmdbJ1RPJ10gPSAnVG9uZ2EnOwokbGFuZ1snVFQnXSA9ICdUcmluaWRhZCBhbmQgVG9iYWdvJzsKJGxhbmdbJ1ROJ10gPSAnVHVuaXNpYSc7CiRsYW5nWydUUiddID0gJ1QmdXVtbDtya2l5ZSc7CiRsYW5nWydUTSddID0gJ1R1cmttZW5pc3Rhbic7CiRsYW5nWydUQyddID0gJ1R1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyc7CiRsYW5nWydUViddID0gJ1R1dmFsdSc7CiRsYW5nWydVRyddID0gJ1VnYW5kYSc7CiRsYW5nWydVQSddID0gJ1VrcmFpbmUnOwokbGFuZ1snQUUnXSA9ICdVbml0ZWQgQXJhYiBFbWlyYXRlcyc7CiRsYW5nWydVSyddID0gJ1VuaXRlZCBLaW5nZG9tJzsKJGxhbmdbJ1VTJ10gPSAnVW5pdGVkIFN0YXRlcyc7CiRsYW5nWydVTSddID0gJ1VTIE1pbm9yIE91dGx5aW5nIElzbGFuZHMnOwokbGFuZ1snVVknXSA9ICdVcnVndWF5JzsKJGxhbmdbJ1VaJ10gPSAnVXpiZWtpc3Rhbic7CiRsYW5nWydWVSddID0gJ1ZhbnVhdHUnOwokbGFuZ1snVkEnXSA9ICdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSc7CiRsYW5nWydWRSddID0gJ1ZlbmV6dWVsYSc7CiRsYW5nWydWTiddID0gJ1ZpZXQgTmFtJzsKJGxhbmdbJ1ZHJ10gPSAnVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpJzsKJGxhbmdbJ1ZJJ10gPSAnVmlyZ2luIElzbGFuZHMgKFUuUy4pJzsKJGxhbmdbJ1dGJ10gPSAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyc7CiRsYW5nWydFSCddID0gJ1dlc3Rlcm4gU2FoYXJhJzsKJGxhbmdbJ1lFJ10gPSAnWWVtZW4nOwokbGFuZ1snWVUnXSA9ICdZdWdvc2xhdmlhJzsKJGxhbmdbJ1pNJ10gPSAnWmFtYmlhJzsKJGxhbmdbJ1pXJ10gPSAnWmltYmFid2UnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIEFkxLEnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGVscHRleHQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGhlbHAgdGV4dDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+YWxpYXM8L3RkPjx0ZD50aGUgYWxpYXMgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pZDwvdGQ+PHRkPnRoZSBpbnRlcm5hbCAvIG9wYXF1ZSBpZCBGb3JtQnVpbGRlciB1c2VzIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIHRoZSBjYXNlIG9mIGEgbXVsdGlwYWdlIGZvcm0sIHlvdSB3aWxsIGFsc28gaGF2ZSBhY2Nlc3MgdG8gdGhlIHZhbHVlIG9mIHByZXZpb3VzIGZpZWxkcy4gVGhleQphcmUgaW4gdGhlICRwcmV2aW91cyBhcnJheSwgb3IgYWNjZXNzaWJsZSBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT52YWx1ZX0gKS4KWW91IGNhbiB1c2UgdGhpcyBpbiBTdGF0aWMgVGV4dCBmaWVsZHMgYXMgd2VsbCwgd2hpY2ggaXMgYSBuaWNlIHdheSB0byBwZXJzb25hbGl6ZSBmb3JtcyE8L3A+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9mb3JtYnJvd3NlcjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgZnJvbSBGb3JtQnJvd3NlcjwvdGQ+PC90cj4KPHRyPjx0ZD5pbl9hZG1pbjwvdGQ+PHRkPjEgaWYgZm9ybSBpcyBiZWluZyB2aWV3ZWQgdmlhIEZvcm1Ccm93c2VyIGFkbWluPC90ZD48L3RyPgo8dHI+PHRkPmZicl9pZDwvdGQ+PHRkPlJlc3BvbnNlIElEIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJ0Zvcm1CdWlsZGVyIGluc3RhbGxlZC4gUGxlYXNlIGNvbnN1bHQgdGhlIG1vZHVsZSYjMDM5O3MgSGVscCBwYWdlIGZvciBkb2N1bWVudGF0aW9uLic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoCnRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPgo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZAppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+Cgo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+CjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUKcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPgoKPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPgo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQpDb25maWd1cmF0aW9uLjwvcD4KCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcwpzb21ldGhpbmcgbGlrZSB7Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5CmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPgo8aDQ+TWFpbjwvaDQ+CjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPgo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+CjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pgo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCjwvcD4KCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+CjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgo8L3VsPgo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLApidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLgpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMKdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbgp3cml0ZSB5b3VyIENTUy48L3A+Cjx1bD4KPGxpPlN0YW5kYXJkIElucHV0cwo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPgo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPgo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4KPGxpPkJ1dHRvbi4gVGhpcyBkb2VucyYjMDM5O3QgZG8gYW55dGhpbmcsIGJ1dCB5b3UgY2FuIGhvb2sgaXQgaW50byBzb21lIEphdmFzY3JpcHQuPC9saT4KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+CjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPgo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+CjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+UGFzc3dvcmQuIFRoaXMgaXMgYW4gYXN0ZXJpc2tlZC1vdXQgdGV4dCBmaWVsZCwgdXNlZnVsIGZvciBwYXNzd29yZHMuPC9saT4KPGxpPlBhc3N3b3JkIEFnYWluICh2ZXJpZnkpLiBUaGlzIGlzIGEgZmllbGQgdGhhdCBtdXN0IG1hdGNoIGEgUGFzc3dvcmQgZmllbGQgZm9yIHN1Ym1pc3Npb24KdG8gc3VjY2VlZC48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4KPGxpPkVtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPgo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+CjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+CjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPgo8bGk+LVVzZXIgVGFnLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVXNlciBEZWZpbmVkIFRhZywgYW5kIGRpc3BsYXlzIGFueXRoaW5nIGl0IHJldHVybnMuIFRoZSBVRFQgZ2V0cyBjYWxsZWQgYW55IHRpbWUgdGhlIGZpZWxkIHdvdWxkIGJlIHZpc2libGUuPC9saT4KPC91bD48L2xpPgo8bGk+LU1vZHVsZSBJbmNsdWRlIFRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIG90aGVyIG1vZHVsZSBvdXRwdXQgaW50byB5b3VyIGZvcm0sIGUuZy4sIGEgbGlzdCBvZiBwcm9kdWN0cyBmcm9tIHRoZSBQcm9kdWN0cyBtb2R1bGUuPC9saT4KCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbXNbJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10sIGFuZCBhcyAkcGFyYW1zWyYjMDM5O2ZpZWxkX2FsaWFzJiMwMzk7XSAoaWYgZGVmaW5lZCkuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHkuIFRoaXMgd29ya3MgbGlrZSB0aGUgRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkIGRlc2NyaWJlZCBhYm92ZSwgYnV0IGl0IHByb3ZpZGVzIG9wdGlvbnMgZm9yIHNlbmRpbmcgYSBjb3B5IG9mIHRoZSByZXN1bHRzIHRvIHRoZSB1c2VyLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiA8c3Ryb25nPkRlcHJlY2F0ZWQuPC9zdHJvbmc+IFVzZSBTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgaW5zdGVhZCEgVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+CjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPgo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMC4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyBpcyB0aGUgb25seSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyLiBTZWUgc2VjdGlvbiBiZWxvdy48L2xpPgo8bGk+KlN1Ym1pdCB0byBhbiBhcmJpdHJhcnkgZm9ybSBhY3Rpb24uIENyYWZ0IGFuIEhUVFAgR0VUIG9yIFBPU1QsIGFuZCB0cmFuc21pdCBpdCB1c2luZyBjVVJMIHRvIHRoZSBzcGVjaWZpZWQgVVJMLiBUaGlzIGxldHMgeW91IHVzZSBGb3JtQnVpbGRlciBhcyBhIGZyb250LWVuZCB0byBhbnkgQ0dJIG9yIEZvcm0gSGFuZGxpbmcgc2NyaXB0IG91dCB0aGVyZS48L2xpPgoKPC91bD48L2xpPjwvbGk+PC91bD4KCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUKYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4KPHA+e0Zvcm1CdWlsZGVyIGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPgo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2llbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbgphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgo8cD57Rm9ybUJ1aWxkZXIgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+CjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdHMgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy4gQXMgb2YgdmVyc2lvbiAwLjUsIHZhcmlhYmxlcyBhbHNvIGhhdmUgYWxpYXNlcywgd2hpY2ggeW91IGNhbiB1c2UuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+CjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPlVzZSB3aXRoIEZvcm1Ccm93c2VyIHYzPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgc3BlY2lhbCBmZWF0dXJlcyB3aGVuIHVzaW5nIEZvcm1CdWlsZGVyIHdpdGggRm9ybUJyb3dzZXIuIFRoZSBuZXcgYXBwcm9hY2ggc3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gWE1MLCBzbyB0aGF0IGZhciBmZXdlcgpxdWVyaWVzIGFyZSBuZWVkZWQgdG8gcmV0cmlldmUgcmVjb3Jkcy4gVGhpcyBtZWFucyB5b3UgY2FuIHVzZSBGb3JtQnJvd3NlciB3aXRoIGh1bmRyZWRzIG9yIGV2ZW4gdGhvdXNhbmRzIG9mIHJlY29yZHMuIEl0IGFsc28gbWVhbnMgeW91CndpbGwgaGF2ZSB0byBjaG9vc2UgdXAgZnJvbnQgd2hpY2ggZmllbGRzIHlvdSB3aWxsIHdhbnQgdG8gYmUgYWJsZSB0byBzb3J0IGJ5LiBZb3UgY2FuIGNob29zZSB1cCB0byBmaXZlLiBDaGFuZ2luZyB0aGVzZSBhZnRlciB0aGVyZSBhcmUgc3VibWl0dGVkIHJlY29yZHMgd2lsbCByZXN1bHQgaW4gaW1wcm9wZXIgc29ydGluZyEgQSByZS1pbmRleCBmdW5jdGlvbiB3aWxsIGJlIGFkZGVkIHRvIGEgZnV0dXJlIHZlcnNpb24uPC9wPgo8cD5JbiBhZHZhbmNlZCBvcHRpb25zLCB5b3UgY2FuIHRpZSBhIGZvcm0gdG8gRnJvbnRlbmQgVXNlcnMuIFRoYXQgbWVhbnMgZWFjaCB1c2VyIGdldHMgb25lIHJlY29yZCBmb3IgdGhlIGZvcm07IHRoZXkgY2FuIGNyZWF0ZSBpdAphIHNpbmdsZSB0aW1lLCBzdWJzZXF1ZW50IHRpbWVzIHRoZXkgd2lsbCBiZSBlZGl0aW5nIHRoZWlyIHJlY29yZC4gVGhlIHJlY29yZCB3aWxsIG5vdCBiZSB2aXNpYmxlIHRvIGFueSBvdGhlciB1c2VycyAoZXhjbHVkaW5nIGFkbWlucykuClRoaXMgZm9ybSBzaG91bGQgYmUgYWRkZWQgdG8geW91ciBwYWdlIHVzaW5nIHRoZSBzeW50YXgge0Zvcm1CdWlsZGVyIGFjdGlvbj0mIzAzOTtmZXVzZXJmb3JtJiMwMzk7IGZvcm09JiMwMzk7Zm9ybV9uYW1lJiMwMzk7fS48L3A+CjxwPkZvciBncmVhdGVyIGRhdGEgc2FmZXR5LCB5b3UgY2FuIGVuY3J5cHQgdGhlIHN0b3JlZCBmb3JtcyBpbiB0aGUgZGF0YWJhc2UuIFlvdSBjYW4gdXNlIHRoZSBidWlsdC1pbiBteWNyeXB0IGxpYnJhcnkgb3IgdGhlIE9wZW5TU0wgbW9kdWxlLgpJbiBlaXRoZXIgY2FzZSwgZm9yIHRoZSBwYXNzcGhyYXNlLCB5b3UgY2FuIGVpdGhlciBlbnRlciB0ZXh0IGluIHRoZSBmaWVsZCBvciBhIGZpbGUgbmFtZS4gSWYgeW91IHNwZWNpZnkgYSBmaWxlIG5hbWUsIHRoZSBjb250ZW50cyBvZiB0aGF0CmZpbGUgd2lsbCBiZSB1c2VkIGFzIHRoZSBwYXNzcGhyYXNlIGZvciBlbmNyeXB0aW5nLjwvcD4KPHA+SWYgeW91IGVuY3J5cHQsIGJlIGF3YXJlIHRoYXQgdGhlIGZpZWxkcyB5b3UgdXNlIGZvciBzb3J0aW5nIGFyZSA8c3Ryb25nPm5vdDwvc3Ryb25nPiBlbmNyeXB0ZWQuIFlvdSBjYW4gY2hvb3NlIHRvIGhhc2ggdGhlbTsgdGhlIGNoZWF0IGhlcmUKaXMgdGhhdCB0aGUgZmlyc3QgZm91ciBsZXR0ZXJzIGFyZSBsZWZ0IGludGFjdCB0byBhbGxvdyBmb3Igc29ydGluZy4gVGhlIHNvcnRpbmcgbWF5IG5vdCBiZSBwZXJmZWN0LCBhbmQgdGhpcyB3ZWFrZW5zIHRoZSBzZWN1cml0eSBzaW5jZSBpdApleHBvc2VzIHNvbWUgY2xlYXJ0ZXh0LCBidXQgaXQgaXMgYmV0dGVyIHRoYW4gbm90aGluZy48L3A+CjxwPjxzdHJvbmc+RElTQ0xBSU1FUjwvc3Ryb25nPi4gVGhlIGVuY3J5cHRpb24gb2ZmZXJlZCBoZXJlIHNob3VsZCBiZSBjb25zaWRlcmVkIGp1c3Qgb25lIG1vcmUgaHVyZGxlIGZvciBhIGhhY2tlciwgbm90IGFzIGEgZ3VhcmFudGVlIHRoYXQKeW91ciBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlY3VyZS4gQSBzbWFydCBoYWNrZXIgd2hvIGhhcyBmb3VuZCBzb21lIGV4cGxvaXQgdG8gdmlldyBkYXRhYmFzZSByZWNvcmRzIG1heSB3ZWxsIGJlIHNtYXJ0IGVub3VnaCB0byBnZXQgYXQKdGhlIG1vZHVsZSBzb3VyY2UgY29kZSwgYW5kIGZpbmQgdGhlaXIgd2F5IHRvIHRoZSBwYXNzcGhyYXNlLiBUaGlzIHdpbGwgbm90IHByb3RlY3QgeW91IGFnYWluc3QgYW4gZW5lbXkgd2hvIGhhcyBmdWxsIGFjY2VzcyB0byB5b3VyCnNlcnZlciwgc29tZSBmYW1pbGlhcml0eSB3aXRoIFBIUCwgYW5kIHRoZSB0aW1lIHRvIHBva2UgYXJvdW5kLiA8ZW0+PHN0cm9uZz5EbyBub3Q8L3N0cm9uZz4gdXNlIHRoaXMgdG8gcHJvdGVjdCBoaWdoLXZhbHVlIGluZm9ybWF0aW9uIHN1Y2ggYXMgZmluYW5jaWFsIGRhdGEsCnNlbnNpdGl2ZSBwb2xpdGljYWwgaW5mb3JtYXRpb24sIGh1bWFuIHJpZ2h0cyBkYXRhLCBvciBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgb2YgdmFsdWUgdG8gYSByZXByZXNzaXZlIGdvdmVybm1lbnQgb3Igb3JnYW5pemVkIGNyaW1lCmNhcnRlbC48L2VtPjwvcD4KPGgzPlVzaW5nIHdpdGggVXNlciBEZWZpbmVkIFRhZ3MgKFVEVHMpPC9oMz4KPHA+U2V2ZXJhbCBvcHRpb25zIGZvciBjdXN0b21pemluZyBiZWhhdmlvciB2aWEgVURUcyBpcyBwcm92aWRlZCAodGhhbmtzIHRvIGtpbmQgY29kZSBjb250cmlidXRpb25zLCBzZWUgY3JlZGl0cykuPC9wPgoKPHVsPjxsaT5DYWxsIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIGZpZWxkIHR5cGUgc3VibWl0cyB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQKVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtc1smIzAzOTtmaWVsZF9uYW1lJiMwMzk7XSwgYW5kCmFzICRwYXJhbXNbJiMwMzk7ZmllbGRfYWxpYXMmIzAzOTtdIChpZiBkZWZpbmVkKS4gQXMgcGVyIGEgc3VnZ2VzdGlvbiwgaXQgYWxzbyBwb3B1bGF0ZXMgYWxsIG9mIHRoZSBTbWFydHkgdmFsdWVzIHRoYXQgd291bGQgYmUgdmlzaWJsZSB0byB0aGUgU3VibWlzc2lvbiBUZW1wbGF0ZSB0b28hPC9saT4KPGxpPlVzZXIgVGFnIEZpZWxkLiBUaGlzIGNhbGxzIHRoZSBzcGVjaWZpZWQgVURULCBhbmQgZGlzcGxheXMgYW55dGhpbmcgaXQgcmV0dXJucy4gVGhlIFVEVCBnZXRzIGNhbGxlZCBhbnkgdGltZSB0aGUgZmllbGQgd291bGQgYmUgdmlzaWJsZS48L2xpPgo8bGk+VmFsaWRhdGlvbiBVRFQuIFNldCB0aGlzIGZvciBhIGZvcm0sIGFuZCB0aGUgVURUIHdpbGwgcmVjZWl2ZSBhbGwgb2YgdGhlIGZvcm1cJiMwMzk7cyBodW1hbi1yZWFkYWJsZSByZXN1bHRzLiBUaGUgVURUIHNob3VsZCBkbyB3aGF0ZXZlcgp2YWxpZGF0aW9uIGl0IHdhbnRzLCBhbmQgcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRydWUgb3IgZmFsc2UgKGluZGljYXRpb24gd2hldGhlciB0aGUgZm9ybSB2YWxpZGF0ZXMpLCBhbmQgdGhlIHNlY29uZAp2YWx1ZSBiZWluZyBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L2xpPgo8bGk+VXNlciBkZWZpbmVkIHRhZyB0byBjYWxsIGJlZm9yZSBmb3JtIGlzIGRpc3BsYXllZCB0aGUgZmlyc3QgdGltZSAob25seSBjYWxsZWQgb25jZSkuIFRoaXMKaXMgc2V0IGluIHRoZSBGb3JtIEFkbWluIGluIHRoZSBVRFQgSW50ZWdyYXRpb24gdGFiLiBUaGUgVURUIGdldHMgY2FsbGVkIG9uIHRoZSBmaXJzdCBkaXNwbGF5Cm9mIHRoZSBmb3JtLjwvbGk+CjxsaT5Vc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYmVmb3JlIGZvcm0gaXMgZGlzcGxheWVkIChjYWxsZWQgb24gZXZlcnkgcGFnZSBvZiBtdWx0aXBhZ2UKZm9ybXMpLiBUaGlzIGlzIHNldCBpbiB0aGUgRm9ybSBBZG1pbiBpbiB0aGUgVURUIEludGVncmF0aW9uIHRhYi4gVGhlIFVEVCBnZXRzIGNhbGxlZApldmVyeSB0aW1lIGFueSBwYWdlIG9mIHRoZSBmb3JtIGlzIGRpc3BsYXllZCAoaW5jbHVkaW5nIHdoZW4gdmFsaWRhdGlvbiBmYWlscykuPC9saT4KPC91bD4KPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5SdW4gaW4gTUxFIE1vZGUuIFRoaXMgY2hhbmdlcyBzb21lIHF1ZXJpZXMgYWdhaW5zdCB0aGUgY29udGVudCB0YWJsZSB0byB0cnkgdG8gcHJldmVudCB1Z2x5IGNyYXNoZXMgdW5kZXIgdGhlIE1MRSBmb3JrLiBDaGVja2luZyB0aGlzIHdpbGwgY2F1c2UgdWdseSBjcmFzaGVzIGlmIHlvdSBhcmUgTk9UIHJ1bm5pbmcgdGhlIE1MRSBmb3JrLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBubyBsb25nZXIgc2V0IGJ5IGRlZmF1bHQuIENoZWNraW5nIGl0IHdpbGwgaGlkZSB0aGUgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdGhhdCB3b3VsZCBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPgo8L3VsPgo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4KPHA+QWZ0ZXIgYSBiaXQgb2YgbmFnZ2luZyBvbiB0aGUgcGFydCBvZiBwZW9wbGUgd2hvIGFjdHVhbGx5IHJlc3BlY3Qgc3RhbmRhcmRzLCBGb3JtQnVpbGRlciBubyBsb25nZXIgZW5jb3VyYWdlcyB0cmlja3MgbGlrZSBlbWJlZGRpbmcgQ1NTIGluIApzdGF0aWMgdGV4dCBmaWVsZHMuIEluc3RlYWQsIGl0IGNyZWF0ZXMgYSBzdHlsZXNoZWV0IGNhbGxlZCAmcXVvdDtGb3JtQnVpbGRlciBEZWZhdWx0JnF1b3Q7IHRoYXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGFjaCB0byB0aGUgcGFnZSB0ZW1wbGF0ZQp0aGF0IHlvdSB1c2UgZm9yIHBhZ2VzIHRoYXQgY29udGFpbiB5b3VyIGZvcm0uPC9wPiAgCjxwPlRoaXMgZGVmYXVsdCBDU1Mgd2FzIGdyYWNpb3VzbHkgcHJvdmlkZWQgYnkgUGF1bCBOb29uZS48L3A+CgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLgogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhlbHB0ZXh0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBoZWxwIHRleHQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSZxdW90O2ZvbyZxdW90Oyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmFsaWFzPC90ZD48dGQ+dGhlIGFsaWFzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aWQ8L3RkPjx0ZD50aGUgaW50ZXJuYWwgLyBvcGFxdWUgaWQgRm9ybUJ1aWxkZXIgdXNlcyBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiB0aGUgY2FzZSBvZiBhIG11bHRpcGFnZSBmb3JtLCB5b3Ugd2lsbCBhbHNvIGhhdmUgYWNjZXNzIHRvIHRoZSB2YWx1ZSBvZiBwcmV2aW91cyBmaWVsZHMuIFRoZXkKYXJlIGluIHRoZSAkcHJldmlvdXMgYXJyYXksIG9yIGFjY2Vzc2libGUgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+dmFsdWV9ICkuCllvdSBjYW4gdXNlIHRoaXMgaW4gU3RhdGljIFRleHQgZmllbGRzIGFzIHdlbGwsIHdoaWNoIGlzIGEgbmljZSB3YXkgdG8gcGVyc29uYWxpemUgZm9ybXMhPC9wPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+aW5fZm9ybWJyb3dzZXI8L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIGZyb20gRm9ybUJyb3dzZXI8L3RkPjwvdHI+Cjx0cj48dGQ+aW5fYWRtaW48L3RkPjx0ZD4xIGlmIGZvcm0gaXMgYmVpbmcgdmlld2VkIHZpYSBGb3JtQnJvd3NlciBhZG1pbjwvdGQ+PC90cj4KPHRyPjx0ZD5mYnJfaWQ8L3RkPjx0ZD5SZXNwb25zZSBJRCBpZiBmb3JtIGlzIGJlaW5nIHZpZXdlZCBmcm9tIEZvcm1Ccm93c2VyPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+Cgo8aDM+Q3JlZGl0czwvaDM+CjxwPk1hbnkgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQgY29kZSwgYnVnIHJlcG9ydHMsIGNhc2gsIGFuZCBpZGVhcyB0byBGb3JtQnVpbGRlci4gQW1vbmcgdGhlbSAoYWxwaGFiZXRpY2FsbHkpOgo8dWw+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJwdGkuZXUiPkJhbHRpYyBpbnN0aXR1dGUgb2YgYWR2YW5jZWQgdGVjaG5vbG9neTwvYT4gLSBjb2RlLCBmdW5kaW5nIDwvbGk+CjxsaT5KZXJlbXkgQmFzcyAtIGNvZGUgYW5kIHN1Z2dlc3Rpb25zPC9saT4KPGxpPkFsYmVydG8gQmVuYXRpIC0gY29kZTwvbGk+CjxsaT5UeWxlciBCb2VzcGZsdWcgLSBmdW5kaW5nIGFuZCBpZGVhczwvbGk+CjxsaT5KZWZmIEJvc2NoIC0gVURUIFZhbGlkYXRpb248L2xpPgo8bGk+Um9iZXJ0IENhbXBiZWxsIC0gbnVtZXJvdXMgY29kZSBjb250cmlidXRpb25zPC9saT4KPGxpPlBpb3RyYXMgQ2ltbXBlcm1hbiAtIGNvZGU8L2xpPgo8bGk+TnVubyBDb3N0YSAtIHN1Z2dlc3Rpb25zPC9saT4KPGxpPlJ5YW4gRm9zdGVyIC0gY29kZTwvbGk+CjxsaT5NYXJjIEdlbGRvbiAtIGNvZGU8L2xpPgo8bGk+S2V2aW4gR3JhbmRvbiAtIGNvZGU8L2xpPgo8bGk+Um9ubnkgS3JpanQgLSBjb2RlPC9saT4KPGxpPlBhdWwgTm9vbmUgLSBDU1MgYW5kIGlkZWFzPC9saT4KPGxpPk1vcnRlbiBQb3Vsc2VuIC0gY29kZTwvbGk+CjxsaT5QcnVlIFJvd2xhbmQgLSBidWcgZml4ZXM8L2xpPgo8bGk+U2ltb24gU2NoYXVmZWxiZXJnZXIgLSBjb2RlPC9saT4KPC91bD4KPHA+SSBhcG9sb2dpemUgZm9yIGFueSBvbWlzc2lvbnMgLSBub3RpZnkgbWUsIGFuZCBJJiMwMzk7bGwgY29ycmVjdCB0aGUgb21pc3Npb24hPC9wPgo8aDM+TWlzY2VsbGFuZW91cyBOb3RlczwvaDM+Cjx1bD4KPGxpPkFueSBmaWVsZHMgdGhhdCBzZW5kcyBlbWFpbCB0byBhIHNwZWNpZmllZCBlbWFpbCBhZGRyZXNzIHdpbGwgYWxzbyBhY2NlcHQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMuPC9saT4KPC91bD4KPGgzPktub3duIElzc3VlczwvaDM+Cjx1bD4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSBVUkxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+CjxsaT5Gb3JtQnVpbGRlci9Gb3JtQnJvd3NlciA8c3Ryb25nPnJlcXVpcmVzPC9zdHJvbmc+IFBIUCA1IG9yIGxhdGVyIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L2xpPgo8bGk+Rmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjYgb3IgbGF0ZXIuPC9saT4KPGxpPlNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IE1ha2Ugc3VyZSB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBzZW5kIGVtYWlsIHZpYSB0aGUgdGVzdCBpbiB0aGUgQ01TTWFpbGVyIE1vZHVsZS4gSXQmIzAzOTtzIHNpbXBseSBhbWF6aW5nIGhvdyBtYW55IHByb2JsZW1zIGJvaWwgZG93biB0byBhIG1pc2NvbmZpZ3VyZWQgQ01TTWFpbGVyLjwvbGk+CjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4KPC9vbD4gCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+CjxsaT5Eb25hdGlvbnMgYXJlIGdvb2QgbW90aXZhdG9ycywgdG9vLiBLZWVwIGluIG1pbmQgdGhhdCB0aGUgZG9sbGFyIGlzIHdlYWssIGFuZCBpZiB5b3UgYXJlIG5vdCBpbiB0aGUgVVMsIHlvdXIgZG9uYXRpb24gZ2V0cyBtYWduaWZpZWQuPC9saT4KPC91bD4KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IDxlbT5odW5kcmVkcyBhbmQgaHVuZHJlZHMgb2YgaG91cnM8L2VtPiBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4KUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciBzZW5kIHlvdXIgcXVlc3Rpb25zIHdyaXR0ZW4gb24KZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzCmV2ZW4ga25vdyB3aGF0IGEgYnJva2VuIHJlY29yZCBpcz8gSSB3b3VsZCBzYXkgc2tpcHBpbmcgQ0QsIGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgd2hhdCB0aGF0IGlzIGVpdGhlci4gTGlrZSBhCnNhbXBsZSB0aGF0IGdvdCBzdHVjayBvbiBsb29wPyBEYW1uLCBJIGFtIGdldHRpbmcgb2xkLiBTbyBpcyB0aGlzIHBhcmFncmFwaC4gVGltZSB0byBtb3ZlIG9uLCBoZXJlLjwvcD48Zm9ybSBhY3Rpb249JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciZxdW90OyBtZXRob2Q9JnF1b3Q7cG9zdCZxdW90Oz4KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4KPGlucHV0IHR5cGU9JnF1b3Q7aW1hZ2UmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2RvbmF0ZUNDX0xHLmdpZiZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBuYW1lPSZxdW90O3N1Ym1pdCZxdW90OyBhbHQ9JnF1b3Q7UGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhJnF1b3Q7Pgo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+CjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2VuY3J5cHRlZCZxdW90OyB2YWx1ZT0mcXVvdDstLS0tLUJFR0lOIFBLQ1M3LS0tLS1NSUlIVHdZSktvWklodmNOQVFjRW9JSUhRRENDQnp3Q0FRRXhnZ0V3TUlJQkxBSUJBRENCbERDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwQ0FRQXdEUVlKS29aSWh2Y05BUUVCQlFBRWdZQUlObkJXYi9YTTRsbXZMR0hsOVJkMWN2TDV0cnFSaGM3K0ZvR0g1THRvZlFpVnJnRlN2aDdoMW9qZzVTelR4Ymd0aTMyWkYwL3VjdXEvT1FTRCtWenV1QUYxdjZ3VnJ0eU9lQ1BFQXc4ajgxREpPWFZqSkhzSVkybXZpb3JQam9sTFFrRm52MTJ5UlRwdUZXRm40WlhlNSt2bkNqWHFCeTBFRS9haHpFTU1uekVMTUFrR0JTc09Bd0lhQlFBd2djd0dDU3FHU0liM0RRRUhBVEFVQmdncWhraUc5dzBEQndRSWNLTk53T1BGb3d1QWdhaXZTN3YwajJYRnlROWRyOG5pOUc5NWVFN1lxb2dHbEs5d3VTcGxsT2c5bG5ydXZuRVFxc21SbVFudGhRcVdDVGJaekcyK0lFdGVNNElVc3hFdUdUcnc4cFpDVTI0VE5EY2tuS1V4OVV6M3ZTeE9oM2d1OTV5SnlEd29lTXZhRUEyNGJzMTRRRWJKYmhOalk2V3hIejkraS9sVkFEQmp5QU9EWU11emFsRGt2ZHV2d2VHTlprOWxZTFJSQ29QUE5pbEcxUGY2dzg3Qkhwa1NNOFdRMUxDOStSV2RYZlpjbStlZ2dnT0hNSUlEZ3pDQ0F1eWdBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQURDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1SWXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dnU1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpWOWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwd0hoY05NRFF3TWpFek1UQXhNekUxV2hjTk16VXdNakV6TVRBeE16RTFXakNCampFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ1RBa05CTVJZd0ZBWURWUVFIRXcxTmIzVnVkR0ZwYmlCV2FXVjNNUlF3RWdZRFZRUUtFd3RRWVhsUVlXd2dTVzVqTGpFVE1CRUdBMVVFQ3hRS2JHbDJaVjlqWlhKMGN6RVJNQThHQTFVRUF4UUliR2wyWlY5aGNHa3hIREFhQmdrcWhraUc5dzBCQ1FFV0RYSmxRSEJoZVhCaGJDNWpiMjB3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQU1GSFR0MzhSTXhMWEp5TzJTbVMrTmRsNzJUN29LSjR1NHV3KzZhd250QUxXaDAzUGV3bUlKdXpiQUxTY3NUUzRzWm9TMWZLY2lCR29oMTFnSWZIenlsdmtkTmUvaEpsNjYvUkdxcmo1ckZiMDhzQUFCTlR6RFRpcXFOcEplQnNZcy9jMmFpR296cHRYMlJsbkJrdEgrU1VOcEFhalc3MjROdjJXdmhpZjZzRkFnTUJBQUdqZ2U0d2dlc3dIUVlEVlIwT0JCWUVGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyTUlHN0JnTlZIU01FZ2JNd2diQ0FGSmFmZkx2R2J4ZTlXVDlTMXdvYjdCRFdaSlJyb1lHVXBJR1JNSUdPTVFzd0NRWURWUVFHRXdKVlV6RUxNQWtHQTFVRUNCTUNRMEV4RmpBVUJnTlZCQWNURFUxdmRXNTBZV2x1SUZacFpYY3hGREFTQmdOVkJBb1RDMUJoZVZCaGJDQkpibU11TVJNd0VRWURWUVFMRkFwc2FYWmxYMk5sY25Sek1SRXdEd1lEVlFRREZBaHNhWFpsWDJGd2FURWNNQm9HQ1NxR1NJYjNEUUVKQVJZTmNtVkFjR0Y1Y0dGc0xtTnZiWUlCQURBTUJnTlZIUk1FQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQlFVQUE0R0JBSUZmT2xhYWdGcmw3MStqcTZPS2lkYldGU0UrUTRGcVJPdmRnSU9OdGgrOGtTSy8vWS80aWh1RTRZbXZ6bjVjZUUzUy9pQlNRUU1qeXZiK3MyVFdiUVlEd2NwMTI5T1BJYkQ5ZXBkcjR0Sk9VTmlTb2p3N0JId1lSaVBoNThTMXhHbEZnSEZYd3JFQmIzZGdOYk1VYSt1NHFlY3RzTUFYcFZIbkQ5d0l5Zm1ITVlJQm1qQ0NBWllDQVFFd2daUXdnWTR4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSUV3SkRRVEVXTUJRR0ExVUVCeE1OVFc5MWJuUmhhVzRnVm1sbGR6RVVNQklHQTFVRUNoTUxVR0Y1VUdGc0lFbHVZeTR4RXpBUkJnTlZCQXNVQ214cGRtVmZZMlZ5ZEhNeEVUQVBCZ05WQkFNVUNHeHBkbVZmWVhCcE1Sd3dHZ1lKS29aSWh2Y05BUWtCRmcxeVpVQndZWGx3WVd3dVkyOXRBZ0VBTUFrR0JTc09Bd0lhQlFDZ1hUQVlCZ2txaGtpRzl3MEJDUU14Q3dZSktvWklodmNOQVFjQk1Cd0dDU3FHU0liM0RRRUpCVEVQRncwd09EQTNNREV3TXpVNU16bGFNQ01HQ1NxR1NJYjNEUUVKQkRFV0JCUU0wTFYzMGZMWGNIOU01ZE1tdVRCTG5zRlE0akFOQmdrcWhraUc5dzBCQVFFRkFBU0JnQkV6MlhxTU1xRmJ1VWhqK0wxMjhDdzJ1OFNoT0tRdHRyS3IvaGkwV1JlZW5IRFlCaUhPU3RsNjNSdjc2UTJtcGQ0NTNSdkNqNW1xN2RSdHVSQjZwZkhHUkRrVVg2TjErT09Jb0lmcm9CWklBVE5oejlDRUh3RUZrTmpZZzBFR01BRytqY2JBajFESmpSNzNjeGJhTnJYV1B4QStoaVFoSGxBcnJaQTdyRlY1LS0tLS1FTkQgUEtDUzctLS0tLQomcXVvdDs+CjwvZm9ybT48cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEyNDk4MzcxODAuMTI3NjIxODI4Ni4xMjk3MzQ4NTA4LjEyOTczNTExOTkuOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyOTczNDg1OTAuOC4zLnV0bWNzcj1mZWVkYnVybmVyfHV0bWNjbj1GZWVkOiBjbXNtYWRlc2ltcGxlL2Jsb2cgKENNUyBNYWRlIFNpbXBsZSl8dXRtY21kPWZlZWQnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTMzMjQzNjc1Ni0xMjk1NDAzMTMwNDM5JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJJGZsZHMgPSAiCgkJCWZvcm1faWQgSSBLRVksCgkJCW5hbWUgQygyNTUpLAoJCQlhbGlhcyBDKDI1NSkKCQkiOwoJCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0nLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1faWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSAoYWxpYXMpJyk7CgkJCgkJJGZsZHMgPSAiCgkJCWZvcm1fYXR0cl9pZCBJIEtFWSwKCQkJZm9ybV9pZCBJLAoJCQluYW1lIEMoMzUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHIgKGZvcm1faWQpJyk7CgoJCSRmbGRzID0gIgoJCQlmaWVsZF9pZCBJIEtFWSwKCQkJZm9ybV9pZCBJLAoJCQluYW1lIEMoMjU1KSwKCQkJdHlwZSBDKDUwKSwKCQkJdmFsaWRhdGlvbl90eXBlIEMoNTApLAoJCQlyZXF1aXJlZCBJMSwKCQkJaGlkZV9sYWJlbCBJMSwKCQkJb3JkZXJfYnkgSQoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwoJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQgKGZvcm1faWQpJyk7CgoKCQkkZmxkcyA9ICIKCQkJb3B0aW9uX2lkIEkgS0VZLAoJCQlmaWVsZF9pZCBJLAoJCQlmb3JtX2lkIEksCgkJCW5hbWUgQygyNTUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0JywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHQgKGZpZWxkX2lkLGZvcm1faWQpJyk7CgoJCSRmbGRzID0gIgoJCQlmbG9ja19pZCBJIEtFWSwKCQkJZmxvY2sgVAoJCSI7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mbG9jaycsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJZmV1c2VyX2lkIEksCgkJCXVzZXJfYXBwcm92ZWQgIi5DTVNfQURPREJfRFQuIiwKCQkJc2VjcmV0X2NvZGUgQygzNSksCgkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCXN1Ym1pdHRlZCAiLkNNU19BRE9EQl9EVDsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfYXR0cl9pZCBJIEtFWSwKCQkJcmVzcF9pZCBJLAoJCQluYW1lIEMoMzUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9hdHRyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cl9zZXEnKTsKCgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfdmFsX2lkIEkgS0VZLAoJCQlyZXNwX2lkIEksCgkJCWZpZWxkX2lkIEksCgkJCXZhbHVlIFgKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXNlbnRfaWQgSSBLRVksCgkJCXNyY19pcCBDKDE2KSwKCQkJc2VudF90aW1lICIuQ01TX0FET0RCX0RUOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwoKCQkkZmxkcyA9ICIKCQkJCWZicl9pZCBJIEtFWSwKCQkJCWZvcm1faWQgSSwKCQkJCWluZGV4X2tleV8xIEMoODApLAoJCQkJaW5kZXhfa2V5XzIgQyg4MCksCgkJCQlpbmRleF9rZXlfMyBDKDgwKSwKCQkJCWluZGV4X2tleV80IEMoODApLAoJCQkJaW5kZXhfa2V5XzUgQyg4MCksCgkJCQlmZXVpZCBJLAoJCQkJcmVzcG9uc2UgWEwsCgkJCQl1c2VyX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzZWNyZXRfY29kZSBDKDM1KSwKCQkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzdWJtaXR0ZWQgIi5DTVNfQURPREJfRFQ7CgkJCQkKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXInLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl91bmlxdWVmaWVsZF9zZXEnKTsKCgkJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBGb3JtcycsICdNb2RpZnkgRm9ybXMnKTsKCgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnICk7CgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5JyApOwoJCSR0aGlzLT5DcmVhdGVFdmVudCggJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InICk7CgoJCSRjc3MgPSBmaWxlX2dldF9jb250ZW50cyhjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCAnaW5jbHVkZXMnLCdkZWZhdWx0LmNzcycpKTsKCQkkY3NzX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ2Nzc19zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2luc2VydCBpbnRvICcuY21zX2RiX3ByZWZpeCgpLidjc3MgKGNzc19pZCwgY3NzX25hbWUsIGNzc190ZXh0LCBtZWRpYV90eXBlLCBjcmVhdGVfZGF0ZSkgdmFsdWVzICg/LD8sPyw/LD8pJywKCQkJYXJyYXkoJGNzc19pZCwnRm9ybUJ1aWxkZXIgRGVmYXVsdCBTdHlsZScsJGNzcywnc2NyZWVuJyxkYXRlKCdZLW0tZCcpKSk7CgoJCS8vaW5jbHVkZSAnaW5jbHVkZXMvRm9ybUJ1aWxkZXJTYW1wbGVEYXRhLmluYyc7CQoJCSRwYXRoID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwnaW5jbHVkZXMnKTsKCQkkZGlyPW9wZW5kaXIoJHBhdGgpOwogICAJCXdoaWxlICgkZmlsZXNwZWM9cmVhZGRpcigkZGlyKSkKICAgCQkJewogICAJCQkkcGFyYW1zID0gYXJyYXkoKTsKICAgCQkJJGFlZm9ybSA9ICcnOwogICAgICAgCQlpZiAocHJlZ19tYXRjaCgnLy54bWwkLycsJGZpbGVzcGVjKSA+IDApCiAgICAgICAJCQl7CiAgICAgICAJCQkkcGFyYW1zWydmYnJwX3htbF9maWxlJ10gPSBjbXNfam9pbl9wYXRoKCRwYXRoLCRmaWxlc3BlYyk7CiAgICAgICAJCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCQkkcmVzID0gJGFlZm9ybS0+SW1wb3J0WE1MKCRwYXJhbXMpOwogICAgICAgCQkJfQogICAgICAgCQl9CgoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybScpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9zZXEnKTsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHInKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0Jyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmxvY2snKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWwnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9hdHRyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZycpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3NlcScpOwoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfdmFsX3NlcScpOwoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cl9zZXEnKTsKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2dfc2VxJyk7CgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXJfc2VxJyk7CgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfdW5pcXVlZmllbGRfc2VxJyk7CgoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKTsKCQkKCQkkdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCcgKTsKCQkkdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknICk7CgkJJHRoaXMtPlJlbW92ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicgKTsKCgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4Jyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdyZXF1aXJlX2ZpZWxkbmFtZXMnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgndW5pcXVlX2ZpZWxkbmFtZXMnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdzaG93X2ZpZWxkYWxpYXNlcycpOwoJCQoJCSRkYi0+RXhlY3V0ZSgnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ2NzcyBXSEVSRSBjc3NfbmFtZSA9ID8nLCBhcnJheSgnRm9ybUJ1aWxkZXIgRGVmYXVsdCBTdHlsZScpKTsKCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCQkkY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgkJZGVidWdfZGlzcGxheSgnQ3VycmVudC12ZXJzaW9uOiAnLiRjdXJyZW50X3ZlcnNpb24pOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMC4xIjoKCQkJY2FzZSAiMC4yIjoKCQkJY2FzZSAiMC4yLjIiOgoJCQljYXNlICIwLjIuMyI6CgkJCWNhc2UgIjAuMi40IjoKCQkJCXsKCQkJCSRmbGRzID0gIgoJCQkJCXNlbnRfaWQgSSBLRVksCgkJCQkJc3JjX2lwIEMoMTYpLAoJCQkJCXNlbnRfdGltZSAiLkNNU19BRE9EQl9EVDsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZ19zZXEnKTsKCQkJCX0KCQkJY2FzZSAiMC4zIjoKCQkJICAgewogICAgICAgICAgICAvLyByZWFkIHRoZSBvbGQgdGVtcGxhdGVzCiAgICAgICAgICAgICR0ZW1wX3RhYl9sZWZ0ID0gZmlsZV9nZXRfY29udGVudHMgKCBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9SZW5kZXJGb3JtVGFibGVUaXRsZUxlZnQudHBsJyk7CiAgICAgICAgICAgICR0ZW1wX3RhYl90b3AgPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL1JlbmRlckZvcm1UYWJsZVRpdGxlVG9wLnRwbCcpOwogICAgICAgICAgICAkdGVtcF90YWJfY3NzID0gIGZpbGVfZ2V0X2NvbnRlbnRzICggZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMvUmVuZGVyRm9ybUNTUy50cGwnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIHRoaXMgdXBncmFkZSBzaG91bGQgaGF2ZSBhIGxvdCBtb3JlIGVycm9yIGNoZWNraW5nLCBidXQgSSdtIHRvbyBsYXp5LgogICAgICAgICAgICAvLyBUaGF0J3MgdGhlIGRvd25zaWRlIHRvIEZyZWUgc29mdHdhcmUgOigKCiAgICAgICAgICAgIC8vIHVwZGF0ZSBhbGwgZm9ybXMgdG8gdXNlIGEgQ3VzdG9tIFRlbXBsYXRlCgkgICAgICAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIG5hbWU9J2Zvcm1fZGlzcGxheXR5cGUnIGFuZCB2YWx1ZSA8PiAndGVtcGxhdGUnIjsKICAgICAgICAgICAgJHN1YnNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIFNFVCB2YWx1ZT0/IHdoZXJlIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIGFuZCBmb3JtX2lkPT8iOwoJICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgaWYgKCRyb3dbJ3ZhbHVlJ10gPT0gJ3RhYicpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgLy8gdG9wIG9yIGxlZnQgdGl0bGU/IEFub3RoZXIgZGFtbiBxdWVyeS4KICAgICAgICAgICAgICAgICAgJHRvcGxlZnQgPSAkZGItPkdldE9uZSgnU0VMRUNUIHZhbHVlIGZyb20gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9mYl9mb3JtX2F0dHIgd2hlcmUgbmFtZT0ndGl0bGVfcG9zaXRpb24nIGFuZCBmb3JtX2lkPT8iLAogICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCRyb3dbJ2Zvcm1faWQnXSkpOwogICAgICAgICAgICAgICAgICBpZiAoJHRvcGxlZnQgPT0gJ2xlZnQnKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHN1YnNxbCxhcnJheSgkdGVtcF90YWJfbGVmdCwkcm93Wydmb3JtX2lkJ10pKTsKICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmYl8nLiRyb3dbJ2Zvcm1faWQnXSwkdGVtcF90YWJfbGVmdCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHN1YnNxbCxhcnJheSgkdGVtcF90YWJfdG9wLCRyb3dbJ2Zvcm1faWQnXSkpOwogICAgICAgICAgICAgICAgICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2ZiXycuJHJvd1snZm9ybV9pZCddLCR0ZW1wX3RhYl90b3ApOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZSBpZiAoJHJvd1sndmFsdWUnXSA9PSAnY3Nzb25seScpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3Vic3FsLGFycmF5KCR0ZW1wX3RhYl9jc3MsJHJvd1snZm9ybV9pZCddKSk7CiAgICAgICAgICAgICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmJfJy4kcm93Wydmb3JtX2lkJ10sJHRlbXBfdGFiX2Nzcyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAkY2xlYW51cHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAgICAgICAibW9kdWxlX2ZiX2Zvcm1fYXR0ciB3aGVyZSBuYW1lPSd0aXRsZV9wb3NpdGlvbicgb3IgbmFtZT0nZm9ybV9kaXNwbGF5dHlwZSciOwogICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRjbGVhbnVwc3FsKTsKICAgICAgICAgICAgfQogICAgICAgICBjYXNlICIwLjQiOgogICAgICAgICAgICB7CiAgICAgICAgICAgIC8vIHVwZ3JhZGUgdGhlIHRlbXBsYXRlcyBzbyB0aGV5IGF0IGxlYXN0IHdvcmsuCgkgICAgICAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkLCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIjsKICAgICAgICAgICAgJHN1YnNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIFNFVCB2YWx1ZT0/IHdoZXJlIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIGFuZCBmb3JtX2lkPT8iOwogICAgICAgICAgICAkdGVtcF9uZmggPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvaW5jbHVkZXMvbmV3X2Zvcm1faGVhZGVyLnRwbCcpOwogICAgICAgICAgICAkdGVtcF9uZmYgPSBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvaW5jbHVkZXMvbmV3X2Zvcm1fZm9vdGVyLnRwbCcpOwoJICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoKICAgICAgICAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICRmaXh0ZW1wbCA9ICR0ZW1wX25maC4ieyoiLiR0aGlzLT5MYW5nKCd1cGdyYWRlMDN0bzA0JykuIip9XG4iLiRyb3dbJ3ZhbHVlJ10uJHRlbXBfbmZmOwoKICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3Vic3FsLGFycmF5KCRmaXh0ZW1wbCwkcm93Wydmb3JtX2lkJ10pKTsKICAgICAgICAgICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmYl8nLiRyb3dbJ2Zvcm1faWQnXSwkZml4dGVtcGwpOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGZpeCByb3dzL2NvbHMgcHJvYmxlbSBmb3IgVGV4dEFyZWFzCgkgICAgICAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkLCBmaWVsZF9pZCwgbmFtZSwgdmFsdWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAibW9kdWxlX2ZiX2ZpZWxkX29wdCB3aGVyZSBuYW1lPSdyb3dzJyBvciBuYW1lPSdjb2xzJyI7CiAgICAgICAgICAgICRyb3dzID0gYXJyYXkoKTsKICAgICAgICAgICAgJGNvbHMgPSBhcnJheSgpOwoJICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgaWYgKCRyb3dbJ25hbWUnXSA9PSAncm93cycpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgJGNvbHNbJHJvd1snZm9ybV9pZCddLidfJy4kcm93WydmaWVsZF9pZCddXSA9ICRyb3dbJ3ZhbHVlJ107CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICRyb3dzWyRyb3dbJ2Zvcm1faWQnXS4nXycuJHJvd1snZmllbGRfaWQnXV0gPSAkcm93Wyd2YWx1ZSddOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgJHNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfZmllbGRfb3B0IHNldCB2YWx1ZT0/IHdoZXJlIGZvcm1faWQ9PyBhbmQgZmllbGRfaWQ9PyBhbmQgbmFtZT0/JzsKICAgICAgICAgICAgZm9yZWFjaCAoJHJvd3MgYXMgJGtleT0+JHZhbCkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkdGhpc1JvdyA9ICR2YWw7CiAgICAgICAgICAgICAgICR0aGlzQ29sID0gJGNvbHNbJGtleV07CiAgICAgICAgICAgICAgIGxpc3QoJGZvcm1faWQsJGZpZWxkX2lkKSA9IGV4cGxvZGUoJ18nLCRrZXkpOwogICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHRoaXNSb3csJGZvcm1faWQsJGZpZWxkX2lkLCdyb3dzJykpOwogICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHRoaXNDb2wsJGZvcm1faWQsJGZpZWxkX2lkLCdjb2xzJykpOwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgkJY2FzZSAiMC40LjEiOgoJCWNhc2UgIjAuNC4yIjoKCQljYXNlICIwLjQuMyI6CgkJY2FzZSAiMC40LjQiOgoJCQl7CgkJCSRmbGRzID0gIgoJCQkJZmJyX2lkIEkgS0VZLAoJCQkJZm9ybV9pZCBJLAoJCQkJaW5kZXhfa2V5XzEgQyg4MCksCgkJCQlpbmRleF9rZXlfMiBDKDgwKSwKCQkJCWluZGV4X2tleV8zIEMoODApLAoJCQkJaW5kZXhfa2V5XzQgQyg4MCksCgkJCQlpbmRleF9rZXlfNSBDKDgwKSwKCQkJCXJlc3BvbnNlIFgsCgkJCQl1c2VyX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzZWNyZXRfY29kZSBDKDM1KSwKCQkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCQlzdWJtaXR0ZWQgIi5DTVNfQURPREJfRFQ7CgkJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtYnJvd3NlcicsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3VuaXF1ZWZpZWxkX3NlcScpOwoJCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyX3NlcScpOwoJCQkJCgkJCX0KCQljYXNlICIwLjUiOgoJCWNhc2UgIjAuNS4xIjoKCQljYXNlICIwLjUuMiI6CgkJY2FzZSAiMC41LjMiOgoJCQl7CgkJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtX2lkeCBvbiAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZm9ybSAoYWxpYXMpJyk7CgkJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtX2F0dHJfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtX2F0dHIgKGZvcm1faWQpJyk7CgkJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9maWVsZF9vcHRfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9maWVsZF9vcHQgKGZpZWxkX2lkLGZvcm1faWQpJyk7CgkJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9maWVsZF9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2ZpZWxkIChmb3JtX2lkKScpOwoJCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXJfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgKGZvcm1faWQsaW5kZXhfa2V5XzEsaW5kZXhfa2V5XzIsaW5kZXhfa2V5XzMsaW5kZXhfa2V5XzQsIGluZGV4X2tleV81KScpOwoJCQl9CgkJY2FzZSAiMC41LjQiOgoJCWNhc2UgIjAuNS41IjoKCQljYXNlICIwLjUuNiI6CgkJCXsKCQkJJGNzcyA9IGZpbGVfZ2V0X2NvbnRlbnRzKGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksICdpbmNsdWRlcycsJ2RlZmF1bHQuY3NzJykpOwoJCQkkY3NzX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ2Nzc19zZXEnKTsKCQkJJGRiLT5FeGVjdXRlKCdpbnNlcnQgaW50byAnLmNtc19kYl9wcmVmaXgoKS4nY3NzIChjc3NfaWQsIGNzc19uYW1lLCBjc3NfdGV4dCwgbWVkaWFfdHlwZSwgY3JlYXRlX2RhdGUpIHZhbHVlcyAoPyw/LD8sPyw/KScsCgkJCQkJYXJyYXkoJGNzc19pZCwnRm9ybUJ1aWxkZXIgRGVmYXVsdCBTdHlsZScsJGNzcywnc2NyZWVuJyxkYXRlKCdZLW0tZCcpKSk7CgkJCQoJCQl9CgkJY2FzZSAiMC41LjciOgoJCWNhc2UgIjAuNS44IjoKCQljYXNlICIwLjUuOSI6CgkJY2FzZSAiMC41LjEwIjoKCQljYXNlICIwLjUuMTEiOgoJCWNhc2UgIjAuNS4xMiI6CgkJY2FzZSAiMC42YjEiOgoJCWNhc2UgIjAuNmIyIjoKICAgICAgICAJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtYnJvd3NlciIsICJmZXVpZCBJIik7CiAgICAgICAgCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtYnJvd3NlciIsICJyZXNuZXcgWEwiKTsKICAgICAgICAJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQkkZGItPkV4ZWN1dGUoJ3VwZGF0ZSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyIHNldCByZXNuZXc9cmVzcG9uc2UnKTsKCQkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZm9ybWJyb3dzZXIiLCAicmVzcG9uc2UiKTsKICAgICAgICAJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICAgICAvLyBhZG9kYi1saXRlIGhvc2VzIGNvbHVtbiByZW5hbWVzLCBzbyB3ZSBkbyBpdCB0aGUgaGFyZCB3YXkKCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtYnJvd3NlciIsICJyZXNwb25zZSBYTCIpOwogICAgICAgIAkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCSRkYi0+RXhlY3V0ZSgndXBkYXRlICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IHJlc3BvbnNlPXJlc25ldycpOwoJCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mb3JtYnJvd3NlciIsICJyZXNuZXciKTsKICAgICAgICAJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICAgIAkvLyB3aGV3LiB0aGF0IHdhcyBsYW1lLgoJCQkkcGF0aCA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ2luY2x1ZGVzJyk7CgkJCSRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSA9IGNtc19qb2luX3BhdGgoJHBhdGgsJ0FkdmFuY2VkX0NvbnRhY3RfRm9ybS54bWwnKTsKCQkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCQkkcmVzID0gJGFlZm9ybS0+SW1wb3J0WE1MKCRwYXJhbXMpOwoJCWNhc2UgIjAuNiI6CgkJY2FzZSAiMC42LjEiOgoJCWNhc2UgIjAuNi4yIjoKCQljYXNlICIwLjYuMyI6CgkJY2FzZSAiMC42LjQiOgoJCX0KCQkKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/output/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/output/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/AddEditField.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskbWVzc2FnZX08L3A+PC9kaXY+ey9pZn0KeyRiYWNrdG9mb3JtX25hdn08YnIgLz4KeyRzdGFydF9mb3JtfXskZmJfaGlkZGVufXskb3B9eyR0YWJfc3RhcnR9CnskbWFpbnRhYl9zdGFydH0KCXtmb3JlYWNoIGZyb209JG1haW5MaXN0IGl0ZW09ZW50cnl9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGVudHJ5LT50aXRsZX06PC9wPgoJCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvZGl2PgoJCQl7aWYgJGVudHJ5LT5oZWxwICE9ICcnfTxkaXYgY2xhc3M9ImlucHV0aGVscCI+eyRlbnRyeS0+aGVscH08L2Rpdj57L2lmfQoJCTwvZGl2PgoJey9mb3JlYWNofQp7JHRhYl9lbmR9CnskYWR2YW5jZWR0YWJfc3RhcnR9Cgl7Zm9yZWFjaCBmcm9tPSRhZHZMaXN0IGl0ZW09ZW50cnl9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGVudHJ5LT50aXRsZX06PC9wPgoJCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvZGl2PgoJCQl7aWYgJGVudHJ5LT5oZWxwICE9ICcnfTxkaXYgY2xhc3M9ImlucHV0aGVscCI+eyRlbnRyeS0+aGVscH08L2Rpdj57L2lmfQoJCTwvZGl2PgoJey9mb3JlYWNofQp7JHRhYl9lbmR9CnskdGFic19lbmR9CntpZiAkYWRkICE9ICcnIG9yICRkZWwgIT0gJyd9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYWRkfXskZGVsfTwvcD4KCTwvZGl2Pgp7L2lmfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+Cgk8L2Rpdj4KeyRlbmRfZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/AddEditForm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskbWVzc2FnZX08L3A+PC9kaXY+ey9pZn0KCnskZm9ybXN0YXJ0fQp7JGZvcm1pZH17JGZiX2hpZGRlbn0KeyR0YWJfc3RhcnR9Cgp7JG1haW50YWJfc3RhcnR9CjxmaWVsZHNldCBjbGFzcz0ibW9kdWxlX2ZiX2ZpZWxkc2V0Ij48bGVnZW5kPnskdGl0bGVfZm9ybV9tYWlufTwvbGVnZW5kPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9uYW1lfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX25hbWV9PC9wPgoJPC9kaXY+CntpZiAkYWRkaW5nID09IDB9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3N0YXR1c306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPntpZiAkaGFzZGlzcG9zaXRpb24gPT0gMX17JHRleHRfcmVhZHl9e2Vsc2V9eyRsaW5rX25vdHJlYWR5fXsvaWZ9PC9wPgoJPC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2FsaWFzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX2FsaWFzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9jc3NfY2xhc3N9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fY3NzX2NsYXNzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfaW5saW5lX2Zvcm19OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2lubGluZV9mb3JtfTwvcD4KCTwvZGl2Pgo8L2ZpZWxkc2V0Pgp7aWYgJGFkZGluZz09MH0KPGZpZWxkc2V0PjxsZWdlbmQ+eyR0aXRsZV9mb3JtX2ZpZWxkc308L2xlZ2VuZD4KCXtpZiAkZmFzdGFkZD09MX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZmFzdGFkZH08L3A+CgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCQl7JGlucHV0X2Zhc3RhZGR9CgkJCTwvZGl2PgoJCTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fZmllbGRzfTwvcD4KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgoJCQk8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSBwYWdldGFibGUiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+CgkJCQk8dGhlYWQ+PHRyPgoJICAgICAgIAl7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2lkKX0KICAgICAgICAgICAgICAgIDx0aCB3aWR0aD0iMjAiPnskdGl0bGVfZmllbGRfaWR9PC90aD4KCQl7L2lmfQogICAgCQkJCTx0aCB3aWR0aD0iMTIwIj57JHRpdGxlX2ZpZWxkX25hbWV9PC90aD4KICAgICAgICB7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2FsaWFzKX0KICAgIAkJCQk8dGggd2lkdGg9IjYwIj57JHRpdGxlX2ZpZWxkX2FsaWFzfTwvdGg+CgkJey9pZn0KICAgICAgICAgICAgICAgIAk8dGggd2lkdGg9Ijg1Ij57JHRpdGxlX2ZpZWxkX3R5cGV9PC90aD4KICAgICAgICAgICAgICAgIAk8dGggd2lkdGg9IjIwIj57JHRpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldn08L3RoPgogICAgICAgICAgICAgICAgCTx0aD57JHRpdGxlX2luZm9ybWF0aW9ufTwvdGg+CiAJCQkJCTx0aCB3aWR0aD0iMjAiIGNsYXNzPSJ1cGRvd24iPiZuYnNwOzwvdGg+CgkJCQkJPHRoIHdpZHRoPSIyMCIgY2xhc3M9InVwZG93biI+Jm5ic3A7PC90aD4KICAgICAgICAgICAgICAgICAgIDx0aCB3aWR0aD0iMjAiPiZuYnNwOzwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIHdpZHRoPSIyMCI+Jm5ic3A7PC90aD4KCQkJCQk8L3RyPgoJCQkJPC90aGVhZD4KCQkJCTx0Ym9keT4KCQkJCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCQkJCTx0ciBpZD0iZmJycF97JGVudHJ5LT5pZH0iIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgoJCQkJe2lmIGlzc2V0KCR0aXRsZV9maWVsZF9pZCl9CgkJCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCQl7L2lmfQoJCQkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCQkJe2lmIGlzc2V0KCR0aXRsZV9maWVsZF9hbGlhcyl9CgkJCQkJCTx0ZD57JGVudHJ5LT5hbGlhc308L3RkPgoJCQkJCXsvaWZ9CgkJCQkJPHRkPnskZW50cnktPnR5cGV9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZGlzcG9zaXRpb259PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZmllbGRfc3RhdHVzfTwvdGQ+CgkJCQkJPHRkIGNsYXNzPSJ1cGRvd24iPnskZW50cnktPnVwfTwvdGQ+CgkJCQkJPHRkIGNsYXNzPSJ1cGRvd24iPnskZW50cnktPmRvd259PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCQkJCTwvdHI+CgkJCQl7L2ZvcmVhY2h9CgkJCQk8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgoJCQk8ZGl2IGNsYXNzPSJyZW9yZGVybWVzc2FnZSBwYWdlbWNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PHAgY2xhc3M9InBhZ2VtZXNzYWdlIj57JHRpdGxlX211c3Rfc2F2ZV9vcmRlcn08L3A+PC9kaXY+CgkJCTxiciAvPgoJCQl7JGFkZF9maWVsZF9saW5rfQogICAgICAgIDwvZGl2PgogICAgIDwvZGl2Pgo8L2ZpZWxkc2V0Pgp7L2lmfQp7JHRhYl9lbmR9eyRzdWJtaXR0YWJfc3RhcnR9Cgk8ZmllbGRzZXQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfc3VibWl0X2hlbHB9PC9wPgoJPC9kaXY+Cgk8L2ZpZWxkc2V0Pgo8ZmllbGRzZXQgY2xhc3M9Im1vZHVsZV9mYl9maWVsZHNldCI+PGxlZ2VuZD57JHRpdGxlX3N1Ym1pdF9hY3Rpb25zfTwvbGVnZW5kPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV92YWxpZGF0ZV91ZHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdmFsaWRhdGVfdWR0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X2FjdGlvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VibWl0X2FjdGlvbn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlZGlyZWN0X3BhZ2V9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlZGlyZWN0X3BhZ2V9PC9wPgoJPC9kaXY+CjwvZmllbGRzZXQ+CjxmaWVsZHNldCBjbGFzcz0ibW9kdWxlX2ZiX2ZpZWxkc2V0Ij48bGVnZW5kPnskdGl0bGVfc3VibWl0X2xhYmVsc308L2xlZ2VuZD4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfYnV0dG9uX3NhZmV0eX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfamF2YXNjcmlwdH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9zdWJtaXRfYnV0dG9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9uZXh0X2J1dHRvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9uZXh0X2J1dHRvbn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fcHJldl9idXR0b259OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcHJldl9idXR0b259PC9wPgoJPC9kaXY+CjwvZmllbGRzZXQ+CnskdGFiX2VuZH17JHN5bWJvbHRhYl9zdGFydH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3JlcXVpcmVkX3N5bWJvbH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fdW5zcGVjaWZpZWR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdW5zcGVjaWZpZWR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9saXN0X2RlbGltaXRlcn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbGlzdF9kZWxpbWl0ZXJ9PC9wPgoJPC9kaXY+CnskdGFiX2VuZH17JHVkdHRhYl9zdGFydH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3NlZV9hbHNvX3VkdH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fcHJlZGlzcGxheV91ZHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcHJlZGlzcGxheV91ZHR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3ByZWRpc3BsYXlfZWFjaF91ZHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcHJlZGlzcGxheV9lYWNoX3VkdH08L3A+Cgk8L2Rpdj4KeyR0YWJfZW5kfXskY2FwdGNoYXRhYl9zdGFydH0Ke2lmICRjYXB0Y2hhX2luc3RhbGxlZH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3VzZV9jYXB0Y2hhfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF91c2VfY2FwdGNoYX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90aXRsZV91c2VyX2NhcHRjaGFfZXJyb3J9PC9wPgoJPC9kaXY+CntlbHNlfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRpdGxlX2luc3RhbGxfY2FwdGNoYX08L3A+Cgk8L2Rpdj4Key9pZn0KeyR0YWJfZW5kfQp7JHRlbXBsYXRldGFiX3N0YXJ0fQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbG9hZF90ZW1wbGF0ZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbG9hZF90ZW1wbGF0ZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdGVtcGxhdGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+eyRoZWxwX3RlbXBsYXRlX3ZhcmlhYmxlc308L2Rpdj4KCTwvZGl2Pgp7JHRhYl9lbmR9Cnskc3VibWl0dGVtcGxhdGV0YWJfc3RhcnR9Cgk8ZmllbGRzZXQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHB9PC9wPgoJPC9kaXY+Cgk8L2ZpZWxkc2V0PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X3Jlc3BvbnNlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfcmVzcG9uc2V9PC9wPgoJCXskaGVscF9zdWJtaXRfcmVzcG9uc2V9Cgk8L2Rpdj4KeyR0YWJfZW5kfQp7JHRhYnNfZW5kfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNhdmVfYnV0dG9ufXskc3VibWl0X2J1dHRvbn08L3A+Cgk8L2Rpdj4KeyRmb3JtX2VuZH0KeyRiYWNrfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/AdminMain.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskbWVzc2FnZX08L3A+PC9kaXY+ey9pZn0KCnskdGFiaGVhZGVyc30KeyRzdGFydF9mb3JtdGFifQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiIHdpZHRoPSI4MCUiPgo8dGhlYWQ+PHRyPgoJPHRoPnskdGl0bGVfZm9ybV9uYW1lfTwvdGg+Cgk8dGg+eyR0aXRsZV9mb3JtX2FsaWFzfTwvdGg+Cgk8dGggd2lkdGg9IjUwIj4mbmJzcDs8L3RoPgoJPHRoIHdpZHRoPSIzMyI+Jm5ic3A7PC90aD4KCTx0aCB3aWR0aD0iMzMiPiZuYnNwOzwvdGg+CjwvdHI+CjwvdGhlYWQ+Cgp7Zm9yZWFjaCBmcm9tPSRmb3JtcyBpdGVtPWVudHJ5fQoJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCTx0ZD4mIzEyMztGb3JtQnVpbGRlciBmb3JtPSd7JGVudHJ5LT51c2FnZX0nJiMxMjU7PC90ZD4KCQk8dGQ+eyRlbnRyeS0+eG1sfTwvdGQ+CgkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCTwvdHI+CnsvZm9yZWFjaH0KCjx0cj4KCTx0ZCBjb2xzcGFuPSI1Ij4mbmJzcDs8L3RkPgo8L3RyPgo8dHI+Cgk8dGQgY29sc3Bhbj0iNSI+CntpZiAkYWRkbGluayAhPSAnJ317JGFkZGxpbmt9eyRhZGRmb3JtfXsvaWZ9Cgk8L3RkPgo8L3RyPgo8L3RhYmxlPgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbGVnZW5kX3htbF9pbXBvcnR9PC9sZWdlbmQ+Cnskc3RhcnRfeG1sZm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxfdG9fdXBsb2FkfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3htbF90b191cGxvYWR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3htbF91cGxvYWRfZm9ybW5hbWV9Jm5ic3A7PGVtPnskaW5mb19sZWF2ZWVtcHR5fTwvZW0+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhc306PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxfdXBsb2FkX2Zvcm1hbGlhc30mbmJzcDs8ZW0+eyRpbmZvX2xlYXZlZW1wdHl9PC9lbT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdHhtbH08L3A+CjwvZGl2Pgp7JGVuZF94bWxmb3JtfQo8L2ZpZWxkc2V0Pgp7JGVuZF90YWJ9Cnskc3RhcnRfY29uZmlndGFifQoKe2lmICRtYXlfY29uZmlnID09IDF9Cnskc3RhcnRfY29uZmlnZm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9lbmFibGVfZmFzdGFkZH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmFibGVfZmFzdGFkZH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX21sZV92ZXJzaW9ufTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X21sZV92ZXJzaW9ufTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfaGlkZV9lcnJvcnN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaGlkZV9lcnJvcnN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVxdWlyZV9maWVsZG5hbWVzfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdW5pcXVlX2ZpZWxkbmFtZXN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9ibGFua19pbnZhbGlkfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2JsYW5rX2ludmFsaWR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlbGF4ZWRfZW1haWxfcmVnZXh9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zaG93X3ZlcnNpb259OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd192ZXJzaW9ufTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZW5hYmxlX2FudGlzcGFtfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VuYWJsZV9hbnRpc3BhbX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfZmllbGRpZHN9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd19maWVsZGlkc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfZmllbGRhbGlhc2VzfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3Nob3dfZmllbGRhbGlhc2VzfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KPC9kaXY+CnskZW5kX2NvbmZpZ2Zvcm19Cgp7ZWxzZX0KCTxwPnskbm9fcGVybWlzc2lvbn08L3A+CnsvaWZ9CnskZW5kX3RhYn0KeyRlbmRfdGFic30=]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormCSS.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogU0lNUExFIENTUyBGb3JtICp9CjxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4Ke2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQoJCXtzdHJpcH0KCQl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KCQk8ZGl2CgkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJycgfHwgJGVudHJ5LT52YWxpZCA9PSAwfSBjbGFzcz0iCgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQoJCQkJCXJlcXVpcmVkCgkJCQl7L2lmfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0KCQkJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30KCQkJCQl7JGVudHJ5LT5jc3NfY2xhc3N9CgkJCQl7L2lmfQoJCQkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0KCQkJCQlmYl9pbnZhbGlkCgkJCQl7L2lmfQoJCQkJIgoJCQl7L2lmfQoJCT4KCQl7L2lmfQoJCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQoJCTxsYWJlbHtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzICE9IDF9IGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9InsvaWZ9PnskZW50cnktPm5hbWV9CgkJCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30KCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJey9pZn0KCQk8L2xhYmVsPgoJCXsvaWZ9CgkJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0KCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KCQkJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CgkJCQkJPGRpdj57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9PC9kaXY+CgkJCQl7ZWxzZX0KCQkJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CgkJCQl7L2lmfQoJCQkJe2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQoJCQl7L3NlY3Rpb259CgkJe2Vsc2V9CgkJCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQoJCXsvaWZ9CgkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7JGVudHJ5LT5lcnJvcn17L2lmfQoJCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQoJCQk8L2Rpdj4KCQl7L2lmfQoJCXsvc3RyaXB9Cgl7L2lmfQp7L2ZvcmVhY2h9CntpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCTxkaXYgY2xhc3M9ImNhcHRjaGEiPnskZ3JhcGhpY19jYXB0Y2hhfXskdGl0bGVfY2FwdGNoYX08YnIgLz57JGlucHV0X2NhcHRjaGF9PC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormDefault.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CntsaXRlcmFsfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIGZiaHQoaHRpZCkKCXsKCQl2YXIgZmJodGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaHRpZCk7CgkJaWYgKGZiaHRjKQoJCQl7CgkJCWlmIChmYmh0Yy5zdHlsZS5kaXNwbGF5ID09ICdub25lJykKCQkJCXsKCQkJCWZiaHRjLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJzsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZmJodGMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQkJCX0KCQkJfQp9Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiBpc3NldCgkZmJfc3VibWlzc2lvbl9lcnJvcikgJiYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2PgoJCXtpZiBpc3NldCgkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycykgJiYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgaXNzZXQoJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzKSAmJiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+CgkJPHVsPgoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJPC9kaXY+Cgl7L2lmfQoJe2lmIGlzc2V0KCRjYXB0Y2hhX2Vycm9yKSAmJiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoJPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CgkJCXtzdHJpcH0KCQkJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9CgkJCQk8ZGl2CgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnIHx8ICRlbnRyeS0+dmFsaWQgPT0gMH0gY2xhc3M9IgoJCQkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9cmVxdWlyZWR7L2lmfQoJCQkJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30geyRlbnRyeS0+Y3NzX2NsYXNzfXsvaWZ9CgkJCQkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gZmJfaW52YWxpZHsvaWZ9CgkJCQkJIgoJCQkJey9pZn0KCQkJCT4KCQkJey9pZn0KCQkJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkJCQk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJCXsvaWZ9CgkJCQk8L2xhYmVsPgoJCQl7L2lmfQoJCQl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KCQkJCQl7aWYgJGVudHJ5LT5sYWJlbF9wYXJ0cyA9PSAxfQoJCQkJCQk8ZGl2PnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L2Rpdj4KCQkJCQl7ZWxzZX0KCQkJCQkJeyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fQoJCQkJCXsvaWZ9CgkJCQkJe2lmIGlzc2V0KCRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wKSAmJiAkZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9ey9pZn0KCQkJCXsvc2VjdGlvbn0KCQkJe2Vsc2V9CgkJCQl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0KCQkJey9pZn0KCQkJe2lmICRlbnRyeS0+aGVscHRleHQgIT0gJyd9Jm5ic3A7PGEgaHJlZj0iamF2YXNjcmlwdDpmYmh0KCd7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0nKSI+PGltZyBzcmM9Im1vZHVsZXMvRm9ybUJ1aWxkZXIvaW1hZ2VzL2luZm8tc21hbGwuZ2lmIiBhbHQ9IkhlbHAiIC8+PC9hPgoJCQkJCTxzcGFuIGlkPSJ7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0iIHN0eWxlPSJkaXNwbGF5Om5vbmUiIGNsYXNzPSJmYnJfaGVscHRleHQiPnskZW50cnktPmhlbHB0ZXh0fTwvc3Bhbj57L2lmfQoJCQl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CgkJCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQoJCQkJPC9kaXY+CgkJCXsvaWZ9CgkJCXsvc3RyaXB9CgkJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2PgoJPC9kaXY+Cgl7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleLeft.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gTGVmdCAqfQp7KiBuZXh0IGxpbmUgc2V0cyBudW1iZXIgb2YgY29sdW1ucyBmb3IgdGhpbmdzIGxpa2UgY2hlY2tib3ggZ3JvdXBzICp9Cnthc3NpZ24gdmFyPSJjb2xzIiB2YWx1ZT0iMyJ9CntsaXRlcmFsfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIGZiaHQoaHRpZCkKCXsKCQl2YXIgZmJodGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaHRpZCk7CgkJaWYgKGZiaHRjKQoJCQl7CgkJCWlmIChmYmh0Yy5zdHlsZS5kaXNwbGF5ID09ICdub25lJykKCQkJCXsKCQkJCWZiaHRjLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJzsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZmJodGMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQkJCX0KCQkJfQp9Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+CgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8dGFibGUgY2xhc3M9ImVycm9yIj4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTx0cj48dGQ+eyR0aGlzRXJyfTwvdGQ+PC90cj4KCQkJey9mb3JlYWNofQoJCQk8L3RhYmxlPgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4KCQk8dWw+CgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9CgkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQl7L2ZvcmVhY2h9CgkJPC91bD4KCQk8L2Rpdj4KCXsvaWZ9Cgl7aWYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4KCgk8dGFibGV7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08dHI+PHRkIGNvbHNwYW49IjIiPnskdGl0bGVfcGFnZV94X29mX3l9PC90ZD48L3RyPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDEgJiYKCQkJJGVudHJ5LT50eXBlICE9ICctRmllbGRzZXQgU3RhcnQnICYmCgkJCSRlbnRyeS0+dHlwZSAhPSAnLUZpZWxkc2V0IEVuZCcgfQoJCTx0cj4KCQkJe3N0cmlwfQoJCQk8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIKCQkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiAKCQkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkJCQkJcmVxdWlyZWQKCQkJCXsvaWZ9CgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQoJCQkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQoJCQkJCXskZW50cnktPmNzc19jbGFzc30KCQkJCXsvaWZ9CgkJCQkiCgkJCXsvaWZ9CgkJCT4KCQkJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkJCQl7JGVudHJ5LT5uYW1lfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJCXsvaWZ9CgkJCXsvaWZ9CgkJCTwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCJ7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGVudHJ5LT5jc3NfY2xhc3N9InsvaWZ9PgoJCQl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJCQk8dGFibGU+CgkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJCQkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9e2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfTwvdGQ+CgkJCQkJe2lmIG5vdCAoJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3Aucm93bnVtIG1vZCAkY29scyl9CgkJCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KCQkJCTwvdHI+PHRyPgoJCQkJCQl7L2lmfQoJCQkJCXsvaWZ9CgkJCQkJe2lmICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CgkJCQkJCXttYXRoIGVxdWF0aW9uID0gIm4gLSBhICUgbiIgbj0kY29scyBhPSRlbnRyeS0+aW5wdXR8QGNvdW50IGFzc2lnbj0iY2VsbHMifQoJCQkJCQl7aWYgJGNlbGxzIG5lICRjb2xzfQoJCQkJCQkJe3NlY3Rpb24gbmFtZT1wYWQgbG9vcD0kY2VsbHN9CgkJCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCQkJCQl7L3NlY3Rpb259CgkJCQkJCXsvaWZ9CgkJCQk8L3RyPgoJCQkJCXsvaWZ9CgkJCQl7L3NlY3Rpb259CgkJCQk8L3RhYmxlPgoJCQl7ZWxzZX0KCQkJCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQoJCQl7L2lmfQoJCQl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CgkJCXtpZiAkZW50cnktPmhlbHB0ZXh0ICE9ICcnfSZuYnNwOzxhIGhyZWY9ImphdmFzY3JpcHQ6ZmJodCgneyRlbnRyeS0+ZmllbGRfaGVscHRleHRfaWR9JykiPjxpbWcgc3JjPSJtb2R1bGVzL0Zvcm1CdWlsZGVyL2ltYWdlcy9pbmZvLXNtYWxsLmdpZiIgYWx0PSJIZWxwIiAvPjwvYT4KCQkJCQk8c3BhbiBpZD0ieyRlbnRyeS0+ZmllbGRfaGVscHRleHRfaWR9IiBzdHlsZT0iZGlzcGxheTpub25lIiBjbGFzcz0iZmJyX2hlbHB0ZXh0Ij57JGVudHJ5LT5oZWxwdGV4dH08L3NwYW4+ey9pZn0KCQkJCgkJCQoJCQk8L3RkPjwvdHI+CgkJCXsvc3RyaXB9CgkJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8dHI+PHRkPnskZ3JhcGhpY19jYXB0Y2hhfTwvdGQ+PHRkPnskaW5wdXRfY2FwdGNoYX08YnIgLz57JHRpdGxlX2NhcHRjaGF9PC90ZD48L3RyPgoJey9pZn0KCQk8dHI+PHRkPnskcHJldn08L3RkPjx0ZD57JHN1Ym1pdH08L3RkPjwvdHI+Cgk8L3RhYmxlPgoJeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn0=]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleTop.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gVG9wICp9CnsqIG5leHQgbGluZSBzZXRzIG51bWJlciBvZiBjb2x1bW5zIGZvciB0aGluZ3MgbGlrZSBjaGVja2JveCBncm91cHMgKn0Ke2Fzc2lnbiB2YXI9ImNvbHMiIHZhbHVlPSIzIn0Ke2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gZmJodChodGlkKQoJewoJCXZhciBmYmh0Yz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChodGlkKTsKCQlpZiAoZmJodGMpCgkJCXsKCQkJaWYgKGZiaHRjLnN0eWxlLmRpc3BsYXkgPT0gJ25vbmUnKQoJCQkJewoJCQkJZmJodGMuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlmYmh0Yy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCQkJfQoJCQl9Cn0KPC9zY3JpcHQ+CnsvbGl0ZXJhbH0KeyRmYl9mb3JtX2hlYWRlcn0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0KCXsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQoJe2lmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4KCQl7aWYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTx0YWJsZSBjbGFzcz0iZXJyb3IiPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPHRyPjx0ZD57JHRoaXNFcnJ9PC90ZD48L3RyPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdGFibGU+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPgoJCTx1bD4KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0KCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCXsvZm9yZWFjaH0KCQk8L3VsPgoJCTwvZGl2PgoJey9pZn0KCXtpZiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoKCTx0YWJsZXtpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTx0cj48dGQgY29sc3Bhbj0iMiI+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3RkPjwvdHI+ey9pZn0KCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCXtpZiAkZW50cnktPmRpc3BsYXkgPT0gMSAmJgoJCQkkZW50cnktPnR5cGUgIT0gJy1GaWVsZHNldCBTdGFydCcgJiYKCQkJJGVudHJ5LT50eXBlICE9ICctRmllbGRzZXQgRW5kJyB9CgkJPHRyPgoJCQl7c3RyaXB9CgkJCTx0ZCB2YWxpZ249InRvcCIKCQkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiAKCQkJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkJCQkJcmVxdWlyZWQKCQkJCXsvaWZ9CgkJCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQoJCQkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQoJCQkJCXskZW50cnktPmNzc19jbGFzc30KCQkJCXsvaWZ9CgkJCQkiCgkJCXsvaWZ9CgkJCT4KCQkJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkJCQl7JGVudHJ5LT5uYW1lfQoJCQkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJCQkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCQkJCXsvaWZ9CgkJCXsvaWZ9CgkJCTwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCJ7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGVudHJ5LT5jc3NfY2xhc3N9InsvaWZ9PgoJCQl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJCQk8dGFibGU+CgkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJCQkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9e2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfTwvdGQ+CgkJCQkJe2lmIG5vdCAoJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3Aucm93bnVtIG1vZCAkY29scyl9CgkJCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KCQkJCTwvdHI+PHRyPgoJCQkJCQl7L2lmfQoJCQkJCXsvaWZ9CgkJCQkJe2lmICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9CgkJCQkJCXttYXRoIGVxdWF0aW9uID0gIm4gLSBhICUgbiIgbj0kY29scyBhPSRlbnRyeS0+aW5wdXR8QGNvdW50IGFzc2lnbj0iY2VsbHMifQoJCQkJCQl7aWYgJGNlbGxzIG5lICRjb2xzfQoJCQkJCQkJe3NlY3Rpb24gbmFtZT1wYWQgbG9vcD0kY2VsbHN9CgkJCQkJCQkJPHRkPiZuYnNwOzwvdGQ+CgkJCQkJCQl7L3NlY3Rpb259CgkJCQkJCXsvaWZ9CgkJCQk8L3RyPgoJCQkJCXsvaWZ9CgkJCQl7L3NlY3Rpb259CgkJCTwvdGFibGU+CgkJCXtlbHNlfQoJCQkJe2lmICRlbnRyeS0+c21hcnR5X2V2YWwgPT0gJzEnfXtldmFsIHZhcj0kZW50cnktPmlucHV0fXtlbHNlfXskZW50cnktPmlucHV0fXsvaWZ9CgkJCXsvaWZ9CgkJCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KCQkJe2lmICRlbnRyeS0+aGVscHRleHQgIT0gJyd9Jm5ic3A7PGEgaHJlZj0iamF2YXNjcmlwdDpmYmh0KCd7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0nKSI+PGltZyBzcmM9Im1vZHVsZXMvRm9ybUJ1aWxkZXIvaW1hZ2VzL2luZm8tc21hbGwuZ2lmIiBhbHQ9IkhlbHAiIC8+PC9hPgoJCQkJCTxzcGFuIGlkPSJ7JGVudHJ5LT5maWVsZF9oZWxwdGV4dF9pZH0iIHN0eWxlPSJkaXNwbGF5Om5vbmUiIGNsYXNzPSJmYnJfaGVscHRleHQiPnskZW50cnktPmhlbHB0ZXh0fTwvc3Bhbj57L2lmfQoJCQkKCQkJPC90ZD48L3RyPgoJCQl7L3N0cmlwfQoJCXsvaWZ9Cgl7L2ZvcmVhY2h9Cgl7aWYgJGhhc19jYXB0Y2hhID09IDF9Cgk8dHI+PHRkPnskZ3JhcGhpY19jYXB0Y2hhfTwvdGQ+PC90cj48dHI+PHRkPnskaW5wdXRfY2FwdGNoYX08YnIgLz57JHRpdGxlX2NhcHRjaGF9PC90ZD48L3RyPgoJey9pZn0KCTx0cj48dGQ+eyRwcmV2fTwvdGQ+PC90cj48dHI+PHRkPnskc3VibWl0fTwvdGQ+PC90cj4KPC90YWJsZT4KeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn0=]]></data>
	</file>
	<file>
	  <filename>/templates/RTF_TemplateAdvanced.rtf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzNcZGVmbGFuZ2ZlMjA1MntcZm9udHRibHtcZjBcZnN3aXNzXGZwcnEyXGZjaGFyc2V0MCBBcmlhbDt9fQ0KXHZpZXdraW5kNFx1YzFccGFyZFxub3dpZGN0bHBhclxmMFxmczIwICUlSEVBREVSJSVccGFyDQpccGFyDQpUaGlzIGlzIGEgc2ltcGxlIEFkdmFuY2VkIFJURiBGaWxlIFRlbXBsYXRlLlxwYXINClxwYXINCkZvcm0gTmFtZTogJVskc3ViX2Zvcm1fbmFtZV0lXHBhcg0KRGF0ZSBvZiBTdWJtaXNzaW9uOiAlWyRzdWJfZGF0ZV0lXHBhcg0KWW91ciBzZXJ2ZXI6ICVbJHN1Yl9ob3N0XSVccGFyDQpJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtOiAlWyRzdWJfc291cmNlX2lwXSVccGFyDQpVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm06ICVbJHN1Yl91cmxdJVxwYXINCkZvcm1CdWlsZGVyIHZlcnNpb246ICVbJGZiX3ZlcnNpb25dJVxwYXINClxwYXINCkRvbid0IHdhbnQgYSBGb290ZXI/ICBEb24ndCBwdXQgdGhlIEZPT1RFUiB0YWcgaW4gdGhlIGRvY3VtZW50IVxwYXINCn0NCgA=]]></data>
	</file>
	<file>
	  <filename>/templates/RTF_TemplateAdvancedTables.rtf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzNcZGVmbGFuZ2ZlMjA1MntcZm9udHRibHtcZjBcZnN3aXNzXGZwcnEyXGZjaGFyc2V0MCBBcmlhbDt9e1xmMVxmc3dpc3NcZnBycTJcZmNoYXJzZXQwIENhbGlicmk7fX0NCntcY29sb3J0YmwgO1xyZWQyNTVcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1O1xyZWQwXGdyZWVuMjU1XGJsdWUwO30NClx2aWV3a2luZDRcdWMxXHBhcmRcbm93aWRjdGxwYXJcZjBcZnMyMCAlJUhFQURFUiUlXHBhcg0KXHBhcg0KVGhpcyBpcyBhIHRlc3QgUlRGIGZyb20gV29yZCAodG8gZWFzaWx5IG1ha2UgdGFibGVzKSB0byBXb3JkUGFkICh0byByZWR1Y2UgZmlsZSBjbHV0dGVyIGFuZCBzaXplKS5ccGFyDQpccGFyDQpcdHJvd2RcdHJnYXBoMTE1XHRybGVmdDkwXHRyYnJkcmxcYnJkcnNcYnJkcncxMCBcdHJicmRydFxicmRyc1xicmRydzEwIFx0cmJyZHJyXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcmJcYnJkcnNcYnJkcncxMCBcdHJwYWRkbDExNVx0cnBhZGRyMTE1XHRycGFkZGZsM1x0cnBhZGRmcjMNClxjbGJyZHJsXGJyZHJ3MTBcYnJkcnNcY2xicmRydFxicmRydzEwXGJyZHJzXGNsYnJkcnJcYnJkcncxMFxicmRyc1xjbGJyZHJiXGJyZHJ3MTBcYnJkcnMgXGNlbGx4MTU0OFxjbGJyZHJsXGJyZHJ3MTBcYnJkcnNcY2xicmRydFxicmRydzEwXGJyZHJzXGNsYnJkcnJcYnJkcncxMFxicmRyc1xjbGJyZHJiXGJyZHJ3MTBcYnJkcnMgXGNlbGx4NTg2OFxwYXJkXGludGJsXG5vd2lkY3RscGFyXGNmMSBGb3JtIE5hbWU6XGNlbGwgJVskc3ViX2Zvcm1fbmFtZV0lXGNlbGxccm93XHRyb3dkXHRyZ2FwaDExNVx0cmxlZnQ5MFx0cmJyZHJsXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcnRcYnJkcnNcYnJkcncxMCBcdHJicmRyclxicmRyc1xicmRydzEwIFx0cmJyZHJiXGJyZHJzXGJyZHJ3MTAgXHRycGFkZGwxMTVcdHJwYWRkcjExNVx0cnBhZGRmbDNcdHJwYWRkZnIzDQpcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDE1NDhcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDU4NjhccGFyZFxpbnRibFxub3dpZGN0bHBhclxjZjIgRGF0ZSBvZiBTdWJtaXNzaW9uOlxjZWxsICVbJHN1Yl9kYXRlXSVcY2VsbFxyb3dcdHJvd2RcdHJnYXBoMTE1XHRybGVmdDkwXHRyYnJkcmxcYnJkcnNcYnJkcncxMCBcdHJicmRydFxicmRyc1xicmRydzEwIFx0cmJyZHJyXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcmJcYnJkcnNcYnJkcncxMCBcdHJwYWRkbDExNVx0cnBhZGRyMTE1XHRycGFkZGZsM1x0cnBhZGRmcjMNClxjbGJyZHJsXGJyZHJ3MTBcYnJkcnNcY2xicmRydFxicmRydzEwXGJyZHJzXGNsYnJkcnJcYnJkcncxMFxicmRyc1xjbGJyZHJiXGJyZHJ3MTBcYnJkcnMgXGNlbGx4MTU0OFxjbGJyZHJsXGJyZHJ3MTBcYnJkcnNcY2xicmRydFxicmRydzEwXGJyZHJzXGNsYnJkcnJcYnJkcncxMFxicmRyc1xjbGJyZHJiXGJyZHJ3MTBcYnJkcnMgXGNlbGx4NTg2OFxwYXJkXGludGJsXG5vd2lkY3RscGFyXGNmMyBZb3VyIHNlcnZlcjpcY2VsbCAlWyRzdWJfaG9zdF0lXGNlbGxccm93XHRyb3dkXHRyZ2FwaDExNVx0cmxlZnQ5MFx0cmJyZHJsXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcnRcYnJkcnNcYnJkcncxMCBcdHJicmRyclxicmRyc1xicmRydzEwIFx0cmJyZHJiXGJyZHJzXGJyZHJ3MTAgXHRycGFkZGwxMTVcdHJwYWRkcjExNVx0cnBhZGRmbDNcdHJwYWRkZnIzDQpcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDE1NDhcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDU4NjhccGFyZFxpbnRibFxub3dpZGN0bHBhclxjZjBcYiBJUCBBZGRyZXNzOlxjZWxsICVbJHN1Yl9zb3VyY2VfaXBdJVxjZWxsXHJvd1x0cm93ZFx0cmdhcGgxMTVcdHJsZWZ0OTBcdHJicmRybFxicmRyc1xicmRydzEwIFx0cmJyZHJ0XGJyZHJzXGJyZHJ3MTAgXHRyYnJkcnJcYnJkcnNcYnJkcncxMCBcdHJicmRyYlxicmRyc1xicmRydzEwIFx0cnBhZGRsMTE1XHRycGFkZHIxMTVcdHJwYWRkZmwzXHRycGFkZGZyMw0KXGNsYnJkcmxcYnJkcncxMFxicmRyc1xjbGJyZHJ0XGJyZHJ3MTBcYnJkcnNcY2xicmRyclxicmRydzEwXGJyZHJzXGNsYnJkcmJcYnJkcncxMFxicmRycyBcY2VsbHgxNTQ4XGNsYnJkcmxcYnJkcncxMFxicmRyc1xjbGJyZHJ0XGJyZHJ3MTBcYnJkcnNcY2xicmRyclxicmRydzEwXGJyZHJzXGNsYnJkcmJcYnJkcncxMFxicmRycyBcY2VsbHg1ODY4XHBhcmRcaW50Ymxcbm93aWRjdGxwYXJcYjBcaSBVUkw6XGNlbGwgJVxpMFxmMVxmczIyICBcaVxmMFxmczIwIFskc3ViX3VybF0lXGNlbGxccm93XHRyb3dkXHRyZ2FwaDExNVx0cmxlZnQ5MFx0cmJyZHJsXGJyZHJzXGJyZHJ3MTAgXHRyYnJkcnRcYnJkcnNcYnJkcncxMCBcdHJicmRyclxicmRyc1xicmRydzEwIFx0cmJyZHJiXGJyZHJzXGJyZHJ3MTAgXHRycGFkZGwxMTVcdHJwYWRkcjExNVx0cnBhZGRmbDNcdHJwYWRkZnIzDQpcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDE1NDhcY2xicmRybFxicmRydzEwXGJyZHJzXGNsYnJkcnRcYnJkcncxMFxicmRyc1xjbGJyZHJyXGJyZHJ3MTBcYnJkcnNcY2xicmRyYlxicmRydzEwXGJyZHJzIFxjZWxseDU4NjhccGFyZFxpbnRibFxub3dpZGN0bHBhclx1bFxpMCBGQiBWZXJzaW9uOlxjZWxsICVbJGZiX3ZlcnNpb25dJVxjZWxsXHJvd1xwYXJkXG5vd2lkY3RscGFyXHVsbm9uZVxwYXINClxwYXINCkRvbid0IHdhbnQgYSBGb290ZXI/ICBEb24ndCBwdXQgdGhlIEZPT1RFUiB0YWcgaW4gdGhlIGRvY3VtZW50IVxwYXINCn0NCgA=]]></data>
	</file>
	<file>
	  <filename>/templates/RTF_TemplateBasic.rtf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZzd2lzc1xmY2hhcnNldDAgQXJpYWw7fX0NClx2aWV3a2luZDRcdWMxXHBhcmRcZjBcZnMyMCAlJUhFQURFUiUlXHBhcg0KJSVGSUVMRFMlJVxwYXINCiUlRk9PVEVSJSVccGFyDQp9DQoA]]></data>
	</file>
	<file>
	  <filename>/templates/RTF_TemplateBasicColors.rtf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzEwMzN7XGZvbnR0Ymx7XGYwXGZzd2lzc1xmY2hhcnNldDAgQXJpYWw7fX0NCntcY29sb3J0YmwgO1xyZWQyNTVcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMjU1XGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1O30NClx2aWV3a2luZDRcdWMxXHBhcmRcY2YxXGYwXGZzMjAgJSVIRUFERVIlJVxjZjBccGFyDQpcY2YyICUlRklFTERTJSVcY2YwXHBhcg0KXGNmMyAlJUZPT1RFUiUlXGNmMFxwYXINCn0NCgA=]]></data>
	</file>
</module>
