a:3:{s:4:"name";s:7:"captcha";s:4:"dirs";a:4:{i:0;s:7:"captcha";i:1;s:12:"captcha/l10n";i:2;s:20:"captcha/l10n/fr-utf8";i:3;s:15:"captcha/l10n/fr";}s:5:"files";a:11:{s:16:"captcha/icon.png";s:552:"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAALnRFWHRDcmVhdGlvbiBUaW1lAGpldS4gMzEgbWFycyAyMDA1IDE0OjU3OjU0ICswMTAweekyGQAAAAd0SU1FB9UDHw0EHldGcREAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAEZ0FNQQAAsY8L/GEFAAAA8klEQVR42tWW2xKDIAxEE6f/DXw5ZcRSSAJELk67w5OVPWRBGvTeQ1MOkT80vVlJr66vaf/aIyGvIE42oJLrYnwpG57cH5b5JMG8e5sBS9zjAIkBq9xrjEN52vRyztFNXrX8VIS1dmMFRLsA36DW5sNTejii89iODymlv93kpPK6lq7+X6/gCFe5m7fJUzjP6IMV7LM2xlyAhSmRfPZWcCHTnz4ialsRxfJjPkUFgTTzFfBwhIiGGcQ9LR/4HkSGHoNNdxA7u8AIFyF+5viKbxSJhbhDrXXM30MpWTFu7g5i65iLtggVidYqQJvU8L0NGNYbYDuTdvyJXEgAAAAASUVORK5CYII=";s:30:"captcha/l10n/fr-utf8/main.lang";s:4896:"O0NhcHRjaGEgYW50aS1zcGFtCkNhcHRjaGEgYW50aS1zcGFtCgo7culzdWx0YXQgZHUgY2FwdGNoYSBpbmNvcnJlY3QKcsOpc3VsdGF0IGR1IGNhcHRjaGEgaW5jb3JyZWN0IDogcG91ciBsdXR0ZXIgY29udHJlIGxlIHNwYW0gZGUgY29tbWVudGFpcmVzLCBsYSByw6l1c3NpdGUgZHUgdGVzdCBkZSBUdXJpbmcgZXN0IHVuZSBjb25kaXRpb24gbsOpY2Vzc2FpcmUgcG91ciBzb3VtZXR0cmUgdW4gY29tbWVudGFpcmUKCjtyZWNvcGlleiBsZSBjb2RlIG51belyaXF1ZSBpbmRpcXXpIGNpLWRlc3N1cwpwb3VyIHZhbGlkZXIgdm90cmUgY29tbWVudGFpcmUsIG1lcmNpIGRlIHJlY29waWVyIGxlIGNvZGUgbnVtw6lyaXF1ZSBpbmRpcXXDqSBjaS1kZXNzdXMKCjtTaSB2b3VzIG5lIHZveWV6IGF1Y3VuIGNoaWZmcmUgbGlzaWJsZSwgdXRpbGlzZXogbGUgZm9ybXVsYWlyZSBkZSBjb250YWN0IHBvdXIgc2lnbmFsZXIgbGUgcHJvYmzobWUKU2kgdm91cyBuZSB2b3lleiBhdWN1biBjaGlmZnJlIGxpc2libGUsIHV0aWxpc2V6IGxlIGZvcm11bGFpcmUgZGUgY29udGFjdCBwb3VyIHNpZ25hbGVyIGxlIHByb2Jsw6htZQoKO3rpcm8KesOpcm8KCjt1bgp1bgoKO2RldXgKZGV1eAoKO3Ryb2lzCnRyb2lzCgo7cXVhdHJlCnF1YXRyZQoKO2NpbnEKY2lucQoKO3NpeApzaXgKCjtzZXB0CnNlcHQKCjtodWl0Cmh1aXQKCjtuZXVmCm5ldWYKCjtkaXgKZGl4Cgo7b256ZQpvbnplCgo7ZG91emUKZG91emUKCjt0cmVpemUKdHJlaXplCgo7cXVhdG9yemUKcXVhdG9yemUKCjtxdWluemUKcXVpbnplCgo7c2VpemUKc2VpemUKCjtkaXgtc2VwdApkaXgtc2VwdAoKO2RpeC1odWl0CmRpeC1odWl0Cgo7ZGl4LW5ldWYKZGl4LW5ldWYKCjt2aW5ndAp2aW5ndAoKO3Zpbmd0IGV0IHVuCnZpbmd0IGV0IHVuCgo7dmluZ3QtZGV1eAp2aW5ndC1kZXV4Cgo7dmluZ3QtdHJvaXMKdmluZ3QtdHJvaXMKCjt2aW5ndC1xdWF0cmUKdmluZ3QtcXVhdHJlCgo7dmluZ3QtY2lucQp2aW5ndC1jaW5xCgo7dmluZ3Qtc2l4CnZpbmd0LXNpeAoKO3Zpbmd0LXNlcHQKdmluZ3Qtc2VwdAoKO3Zpbmd0LWh1aXQKdmluZ3QtaHVpdAoKO3Zpbmd0LW5ldWYKdmluZ3QtbmV1ZgoKO3RyZW50ZQp0cmVudGUKCjt0cmVudGUgZXQgdW4KdHJlbnRlIGV0IHVuCgo7dHJlbnRlLWRldXgKdHJlbnRlLWRldXgKCjt0cmVudGUtdHJvaXMKdHJlbnRlLXRyb2lzCgo7dHJlbnRlLXF1YXRyZQp0cmVudGUtcXVhdHJlCgo7dHJlbnRlLWNpbnEKdHJlbnRlLWNpbnEKCjt0cmVudGUtc2l4CnRyZW50ZS1zaXgKCjt0cmVudGUtc2VwdAp0cmVudGUtc2VwdAoKO3RyZW50ZS1odWl0CnRyZW50ZS1odWl0Cgo7dHJlbnRlLW5ldWYKdHJlbnRlLW5ldWYKCjtxdWFyYW50ZQpxdWFyYW50ZQoKO3F1YXJhbnRlIGV0IHVuCnF1YXJhbnRlIGV0IHVuCgo7cXVhcmFudGUtZGV1eApxdWFyYW50ZS1kZXV4Cgo7cXVhcmFudGUtdHJvaXMKcXVhcmFudGUtdHJvaXMKCjtxdWFyYW50ZS1xdWF0cmUKcXVhcmFudGUtcXVhdHJlCgo7cXVhcmFudGUtY2lucQpxdWFyYW50ZS1jaW5xCgo7cXVhcmFudGUtc2l4CnF1YXJhbnRlLXNpeAoKO3F1YXJhbnRlLXNlcHQKcXVhcmFudGUtc2VwdAoKO3F1YXJhbnRlLWh1aXQKcXVhcmFudGUtaHVpdAoKO3F1YXJhbnRlLW5ldWYKcXVhcmFudGUtbmV1ZgoKO2NpbnF1YW50ZQpjaW5xdWFudGUKCgo7bGUgcHJlbWnocmUKbGUgcHJlbWnDqHJlCgo7bGUgZGV1eGnobWUKbGUgZGV1eGnDqG1lCgo7bGUgdHJvaXNp6G1lCmxlIHRyb2lzacOobWUKCjtsZSBxdWF0cmnobWUKbGUgcXVhdHJpw6htZQoKO2xlIGNpbnF1aehtZQpsZSBjaW5xdWnDqG1lCgo7bGUgc2l4aehtZQpsZSBzaXhpw6htZQoKO2xlIHNlcHRp6G1lCmxlIHNlcHRpw6htZQoKO2xlIGh1aXRp6G1lCmxlIGh1aXRpw6htZQoKO2xlIG5ldXZp6G1lCmxlIG5ldXZpw6htZQoKO2xlIGRpeGnobWUKbGUgZGl4acOobWUKCjtsZSBvbnpp6G1lCmxlIG9uemnDqG1lCgo7bGUgZG91emnobWUKbGUgZG91emnDqG1lCgo7bGUgdHJlaXpp6G1lCmxlIHRyZWl6acOobWUKCjtsZSBxdWF0b3J6aehtZQpsZSBxdWF0b3J6acOobWUKCjtsZSBxdWluemnobWUKbGUgcXVpbnppw6htZQoKO2xlIHNlaXpp6G1lCmxlIHNlaXppw6htZQoKO2xlIGRpeC1zZXB0aehtZQpsZSBkaXgtc2VwdGnDqG1lCgo7bGUgZGl4LWh1aXRp6G1lCmxlIGRpeC1odWl0acOobWUKCjtsZSBkaXgtbmV1dmnobWUKbGUgZGl4LW5ldXZpw6htZQoKO2xlIHZpbmd0aehtZQpsZSB2aW5ndGnDqG1lCgo7bGUgZGVybmnocmUKbGUgZGVybmnDqHJlCgo7bCdhdmFudC1kZXJuaehyZQpsJ2F2YW50LWRlcm5pw6hyZQoKCjtxdWVsIGVzdCAlcyBjYXJhY3TocmUgZHUgbW90ICIlcyIgPwpxdWVsIGVzdCAlcyBjYXJhY3TDqHJlIGR1IG1vdCAiJXMiJm5ic3A7PwoKO2NvbXBs6XRleiBsZSBtb3QgIiVzIiAuLi4KY29tcGzDqXRleiBsZSBtb3QgIiVzIiAuLi4KCjtjb21iaWVuIGZvbnQgJXMgZXQgJXMmbmJzcDs/IChjaGlmZnJlcykKY29tYmllbiBmb250ICVzIGV0ICVzJm5ic3A7PyAoY2hpZmZyZXMpCgo7cXVlIGRvbm5lICVzIG1vaW5zICVzJm5ic3A7PyAoY2hpZmZyZXMpCnF1ZSBkb25uZSAlcyBtb2lucyAlcyZuYnNwOz8gKGNoaWZmcmVzKQoKO3F1ZSBkb25uZSAlcyBmb2lzICVzJm5ic3A7PyAoY2hpZmZyZXMpCnF1ZSBkb25uZSAlcyBmb2lzICVzJm5ic3A7PyAoY2hpZmZyZXMpCgoKO3F1ZWxsZSBlc3QgbGEgY291bGV1ciBkdSBjaGV2YWwgYmxhbmMgZGUgTmFwb2zpb24gPwpxdWVsbGUgZXN0IGxhIGNvdWxldXIgZHUgY2hldmFsIGJsYW5jIGRlIE5hcG9sw6lvbiZuYnNwOz8KCjtibGFuYwpibGFuYwoKO3F1ZWxsZSBlc3QgbGEgdmVyc2lvbiBkZSBQSFAgJXMgPwpxdWVsbGUgZXN0IGxhIHZlcnNpb24gZGUgUEhQICVzJm5ic3A7PwoKO3F1ZWxsZSBlc3QgbGEgdmVyc2lvbiBkZSBteVNRTCA0LjEgPyAoY2hpZmZyZXMpCnF1ZWxsZSBlc3QgbGEgdmVyc2lvbiBkZSBteVNRTCA0LjEmbmJzcDs/Cgo7cXVlIGRvbm5lIGxhIHNvbW1lICVzICsgJXMgPyAoY2hpZmZyZXMpCnF1ZSBkb25uZSBsYSBzb21tZSAlcyArICVzJm5ic3A7PyAoY2hpZmZyZXMpCgo7cXVlIHZhdXQgbGEgc29tbWUgZGUgJXMgZXQgJXMgPyAoY2hpZmZyZXMpCnF1ZSB2YXV0IGxhIHNvbW1lIGRlICVzIGV0ICVzJm5ic3A7PyAoY2hpZmZyZXMpCgo7cXVlbGxlIGVzdCBsYSBjYXBpdGFsZSBkZSBsYSBGcmFuY2UgPwpxdWVsbGUgZXN0IGxhIGNhcGl0YWxlIGRlIGxhIEZyYW5jZSZuYnNwOz8KCjtQYXJpcwpQYXJpcwoKO3F1ZWxsZSBlc3QgbGEgY2FwaXRhbGUgZGUgbGEgQmVsZ2lxdWUgPwpxdWVsbGUgZXN0IGxhIGNhcGl0YWxlIGRlIGxhIEJlbGdpcXVlJm5ic3A7PwoKO0JydXhlbGxlcwpCcnV4ZWxsZXMKCjtxdWVsbGUgZXN0IGxhIGNhcGl0YWxlIGRlIGwnSXRhbGllID8KcXVlbGxlIGVzdCBsYSBjYXBpdGFsZSBkZSBsJ0l0YWxpZSZuYnNwOz8KCjtSb21lClJvbWUKCjtxdWVsIGVzdCBsZSBwculub20gZGUgV2FsdCBEaXNuZXkgPwpxdWVsIGVzdCBsZSBwcsOpbm9tIGRlIFdhbHQgRGlzbmV5Jm5ic3A7PwoKO1dhbHQKV2FsdAoKO2RhbnMgcXVlbGxlIHZpbGxlIHNlIHRyb3V2ZSBsYSB0b3VyIGRlIFBpc2UgPwpkYW5zIHF1ZWxsZSB2aWxsZSBzZSB0cm91dmUgbGEgdG91ciBkZSBQaXNlJm5ic3A7PwoKO1Bpc2UKUGlzZQoKO4AKgA==";s:25:"captcha/l10n/fr/main.lang";s:4852:"O0NhcHRjaGEgYW50aS1zcGFtCkNhcHRjaGEgYW50aS1zcGFtCgo7culzdWx0YXQgZHUgY2FwdGNoYSBpbmNvcnJlY3QKculzdWx0YXQgZHUgY2FwdGNoYSBpbmNvcnJlY3QgOiBwb3VyIGx1dHRlciBjb250cmUgbGUgc3BhbSBkZSBjb21tZW50YWlyZXMsIGxhIHLpdXNzaXRlIGR1IHRlc3QgZGUgVHVyaW5nIGVzdCB1bmUgY29uZGl0aW9uIG7pY2Vzc2FpcmUgcG91ciBzb3VtZXR0cmUgdW4gY29tbWVudGFpcmUKCjtyZWNvcGlleiBsZSBjb2RlIG51belyaXF1ZSBpbmRpcXXpIGNpLWRlc3N1cwpwb3VyIHZhbGlkZXIgdm90cmUgY29tbWVudGFpcmUsIG1lcmNpIGRlIHJlY29waWVyIGxlIGNvZGUgbnVt6XJpcXVlIGluZGlxdekgY2ktZGVzc3VzCgo7U2kgdm91cyBuZSB2b3lleiBhdWN1biBjaGlmZnJlIGxpc2libGUsIHV0aWxpc2V6IGxlIGZvcm11bGFpcmUgZGUgY29udGFjdCBwb3VyIHNpZ25hbGVyIGxlIHByb2Js6G1lClNpIHZvdXMgbmUgdm95ZXogYXVjdW4gY2hpZmZyZSBsaXNpYmxlLCB1dGlsaXNleiBsZSBmb3JtdWxhaXJlIGRlIGNvbnRhY3QgcG91ciBzaWduYWxlciBsZSBwcm9ibOhtZQoKO3rpcm8KeulybwoKO3VuCnVuCgo7ZGV1eApkZXV4Cgo7dHJvaXMKdHJvaXMKCjtxdWF0cmUKcXVhdHJlCgo7Y2lucQpjaW5xCgo7c2l4CnNpeAoKO3NlcHQKc2VwdAoKO2h1aXQKaHVpdAoKO25ldWYKbmV1ZgoKO2RpeApkaXgKCjtvbnplCm9uemUKCjtkb3V6ZQpkb3V6ZQoKO3RyZWl6ZQp0cmVpemUKCjtxdWF0b3J6ZQpxdWF0b3J6ZQoKO3F1aW56ZQpxdWluemUKCjtzZWl6ZQpzZWl6ZQoKO2RpeC1zZXB0CmRpeC1zZXB0Cgo7ZGl4LWh1aXQKZGl4LWh1aXQKCjtkaXgtbmV1ZgpkaXgtbmV1ZgoKO3Zpbmd0CnZpbmd0Cgo7dmluZ3QgZXQgdW4KdmluZ3QgZXQgdW4KCjt2aW5ndC1kZXV4CnZpbmd0LWRldXgKCjt2aW5ndC10cm9pcwp2aW5ndC10cm9pcwoKO3Zpbmd0LXF1YXRyZQp2aW5ndC1xdWF0cmUKCjt2aW5ndC1jaW5xCnZpbmd0LWNpbnEKCjt2aW5ndC1zaXgKdmluZ3Qtc2l4Cgo7dmluZ3Qtc2VwdAp2aW5ndC1zZXB0Cgo7dmluZ3QtaHVpdAp2aW5ndC1odWl0Cgo7dmluZ3QtbmV1Zgp2aW5ndC1uZXVmCgo7dHJlbnRlCnRyZW50ZQoKO3RyZW50ZSBldCB1bgp0cmVudGUgZXQgdW4KCjt0cmVudGUtZGV1eAp0cmVudGUtZGV1eAoKO3RyZW50ZS10cm9pcwp0cmVudGUtdHJvaXMKCjt0cmVudGUtcXVhdHJlCnRyZW50ZS1xdWF0cmUKCjt0cmVudGUtY2lucQp0cmVudGUtY2lucQoKO3RyZW50ZS1zaXgKdHJlbnRlLXNpeAoKO3RyZW50ZS1zZXB0CnRyZW50ZS1zZXB0Cgo7dHJlbnRlLWh1aXQKdHJlbnRlLWh1aXQKCjt0cmVudGUtbmV1Zgp0cmVudGUtbmV1ZgoKO3F1YXJhbnRlCnF1YXJhbnRlCgo7cXVhcmFudGUgZXQgdW4KcXVhcmFudGUgZXQgdW4KCjtxdWFyYW50ZS1kZXV4CnF1YXJhbnRlLWRldXgKCjtxdWFyYW50ZS10cm9pcwpxdWFyYW50ZS10cm9pcwoKO3F1YXJhbnRlLXF1YXRyZQpxdWFyYW50ZS1xdWF0cmUKCjtxdWFyYW50ZS1jaW5xCnF1YXJhbnRlLWNpbnEKCjtxdWFyYW50ZS1zaXgKcXVhcmFudGUtc2l4Cgo7cXVhcmFudGUtc2VwdApxdWFyYW50ZS1zZXB0Cgo7cXVhcmFudGUtaHVpdApxdWFyYW50ZS1odWl0Cgo7cXVhcmFudGUtbmV1ZgpxdWFyYW50ZS1uZXVmCgo7Y2lucXVhbnRlCmNpbnF1YW50ZQoKCjtsZSBwcmVtaehyZQpsZSBwcmVtaehyZQoKO2xlIGRldXhp6G1lCmxlIGRldXhp6G1lCgo7bGUgdHJvaXNp6G1lCmxlIHRyb2lzaehtZQoKO2xlIHF1YXRyaehtZQpsZSBxdWF0cmnobWUKCjtsZSBjaW5xdWnobWUKbGUgY2lucXVp6G1lCgo7bGUgc2l4aehtZQpsZSBzaXhp6G1lCgo7bGUgc2VwdGnobWUKbGUgc2VwdGnobWUKCjtsZSBodWl0aehtZQpsZSBodWl0aehtZQoKO2xlIG5ldXZp6G1lCmxlIG5ldXZp6G1lCgo7bGUgZGl4aehtZQpsZSBkaXhp6G1lCgo7bGUgb256aehtZQpsZSBvbnpp6G1lCgo7bGUgZG91emnobWUKbGUgZG91emnobWUKCjtsZSB0cmVpemnobWUKbGUgdHJlaXpp6G1lCgo7bGUgcXVhdG9yemnobWUKbGUgcXVhdG9yemnobWUKCjtsZSBxdWluemnobWUKbGUgcXVpbnpp6G1lCgo7bGUgc2VpemnobWUKbGUgc2VpemnobWUKCjtsZSBkaXgtc2VwdGnobWUKbGUgZGl4LXNlcHRp6G1lCgo7bGUgZGl4LWh1aXRp6G1lCmxlIGRpeC1odWl0aehtZQoKO2xlIGRpeC1uZXV2aehtZQpsZSBkaXgtbmV1dmnobWUKCjtsZSB2aW5ndGnobWUKbGUgdmluZ3Rp6G1lCgo7bGUgZGVybmnocmUKbGUgZGVybmnocmUKCjtsJ2F2YW50LWRlcm5p6HJlCmwnYXZhbnQtZGVybmnocmUKCgo7cXVlbCBlc3QgJXMgY2FyYWN06HJlIGR1IG1vdCAiJXMiID8KcXVlbCBlc3QgJXMgY2FyYWN06HJlIGR1IG1vdCAiJXMiJm5ic3A7PwoKO2NvbXBs6XRleiBsZSBtb3QgIiVzIiAuLi4KY29tcGzpdGV6IGxlIG1vdCAiJXMiIC4uLgoKO2NvbWJpZW4gZm9udCAlcyBldCAlcyZuYnNwOz8gKGNoaWZmcmVzKQpjb21iaWVuIGZvbnQgJXMgZXQgJXMmbmJzcDs/IChjaGlmZnJlcykKCjtxdWUgZG9ubmUgJXMgbW9pbnMgJXMmbmJzcDs/IChjaGlmZnJlcykKcXVlIGRvbm5lICVzIG1vaW5zICVzJm5ic3A7PyAoY2hpZmZyZXMpCgo7cXVlIGRvbm5lICVzIGZvaXMgJXMmbmJzcDs/IChjaGlmZnJlcykKcXVlIGRvbm5lICVzIGZvaXMgJXMmbmJzcDs/IChjaGlmZnJlcykKCgo7cXVlbGxlIGVzdCBsYSBjb3VsZXVyIGR1IGNoZXZhbCBibGFuYyBkZSBOYXBvbOlvbiA/CnF1ZWxsZSBlc3QgbGEgY291bGV1ciBkdSBjaGV2YWwgYmxhbmMgZGUgTmFwb2zpb24mbmJzcDs/Cgo7YmxhbmMKYmxhbmMKCjtxdWVsbGUgZXN0IGxhIHZlcnNpb24gZGUgUEhQICVzID8KcXVlbGxlIGVzdCBsYSB2ZXJzaW9uIGRlIFBIUCAlcyZuYnNwOz8KCjtxdWVsbGUgZXN0IGxhIHZlcnNpb24gZGUgbXlTUUwgNC4xID8gKGNoaWZmcmVzKQpxdWVsbGUgZXN0IGxhIHZlcnNpb24gZGUgbXlTUUwgNC4xJm5ic3A7PwoKO3F1ZSBkb25uZSBsYSBzb21tZSAlcyArICVzID8gKGNoaWZmcmVzKQpxdWUgZG9ubmUgbGEgc29tbWUgJXMgKyAlcyZuYnNwOz8gKGNoaWZmcmVzKQoKO3F1ZSB2YXV0IGxhIHNvbW1lIGRlICVzIGV0ICVzID8gKGNoaWZmcmVzKQpxdWUgdmF1dCBsYSBzb21tZSBkZSAlcyBldCAlcyZuYnNwOz8gKGNoaWZmcmVzKQoKO3F1ZWxsZSBlc3QgbGEgY2FwaXRhbGUgZGUgbGEgRnJhbmNlID8KcXVlbGxlIGVzdCBsYSBjYXBpdGFsZSBkZSBsYSBGcmFuY2UmbmJzcDs/Cgo7UGFyaXMKUGFyaXMKCjtxdWVsbGUgZXN0IGxhIGNhcGl0YWxlIGRlIGxhIEJlbGdpcXVlID8KcXVlbGxlIGVzdCBsYSBjYXBpdGFsZSBkZSBsYSBCZWxnaXF1ZSZuYnNwOz8KCjtCcnV4ZWxsZXMKQnJ1eGVsbGVzCgo7cXVlbGxlIGVzdCBsYSBjYXBpdGFsZSBkZSBsJ0l0YWxpZSA/CnF1ZWxsZSBlc3QgbGEgY2FwaXRhbGUgZGUgbCdJdGFsaWUmbmJzcDs/Cgo7Um9tZQpSb21lCgo7cXVlbCBlc3QgbGUgcHLpbm9tIGRlIFdhbHQgRGlzbmV5ID8KcXVlbCBlc3QgbGUgcHLpbm9tIGRlIFdhbHQgRGlzbmV5Jm5ic3A7PwoKO1dhbHQKV2FsdAoKO2RhbnMgcXVlbGxlIHZpbGxlIHNlIHRyb3V2ZSBsYSB0b3VyIGRlIFBpc2UgPwpkYW5zIHF1ZWxsZSB2aWxsZSBzZSB0cm91dmUgbGEgdG91ciBkZSBQaXNlJm5ic3A7PwoKO1Bpc2UKUGlzZQoKO4AKgA==";s:18:"captcha/config.php";s:4572:"PD9waHANCiMgKioqKiogQkVHSU4gTElDRU5TRSBCTE9DSyAqKioqKg0KIyBDYXB0Y2hhIGZvciBEb3RDbGVhcg0KIyAgQ29weXJpZ2h0IChDKSAyMDA1IERhc2ggYW5kIGNvbnRyaWJ1dG9ycw0KIyAgU29tZSBvZiB0aGUgY29kZSBpcyBiYXNlZCBvbiA6DQojICAgIC0gRG90Y2xlYXIgQ29weXJpZ2h0IChjKSAyMDA0IE9saXZpZXIgTWV1bmllciBhbmQgY29udHJpYnV0b3JzDQojDQojICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMNCiMgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4NCiMNCiMgKioqKiogRU5EIExJQ0VOU0UgQkxPQ0sgKioqKioNCg0KCSMtLS0tIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCgkjIC0gYWNjZXNzaWJpbGl0ZSA6MCA9PiB0ZXh0ZSBhY2Nlc3NpYmxlDQoJIyAtIGFjY2Vzc2liaWxpdGUgOjEgPT4gbXVsdGlwbGVzIGltYWdlcyBQTkcNCgkjIC0gYWNjZXNzaWJpbGl0ZSA6MiA9PiBpbWFnZSBHRCB1bmlxdWUNCgkkR0xPQkFMU1snY2FwdGNoYV9sZXZlbCddID0gcmFuZCgwLCA0KTsNCg0KDQoJIyAtIHRhYmxlYXUgU1VQUExFTUVOVEFJUkUgZGUgbW90cyB1dGlsaXNhYmxlcyAobW90cyBhIGNvbXBsZXRlciwgZW5pZW1lIGxldHRyZSwgZXRjLikNCgkkR0xPQkFMU1snY2FwdGNoYV9teV93b3JkcyddID0gYXJyYXkoDQoJCSdjYXB0Y2hhJywgJ2FkZGl0aW9uJywgJ3NvdXN0cmFjdGlvbicsICdtdWx0aXBsaWNhdGlvbicsICdwcm90ZWN0aW9uJywgJ3NvbHV0aW9uJywgJ3NlcnZldXInLCAnY2xpZW50JywgJ2F1dGhlbnRpZmljYXRpb24nLA0KCQknZHluYW1pcXVlJywgJ2NvbmNlcHQnLCAnculhY3Rpb24nLCAnY29tbWVudGFpcmUnLCAnb3JpZ2luYWxpdOknLCAnY29tbXVuaWNhdGlvbicsICdzdWNj6HMnLCAnaW5ub3ZhdGlvbicsICdvcmlnaW5pYWxpdOknLA0KCQkpOw0KDQoNCgkjIC0gdGFibGVhdSBkZSBxdWVzdGlvbnMgcGVyc29ubmVsbGVzIChzdXBwbOltZW50YWlyZXMpDQoJJEdMT0JBTFNbJ215X2NhcHRjaGEnXSA9IGFycmF5KA0KCQlfXygncXVlbGxlIGVzdCBsYSBjb3VsZXVyIGR1IGNoZXZhbCBibGFuYyBkZSBOYXBvbOlvbiA/JykgPT4gX18oJ2JsYW5jJyksDQoJCXNwcmludGYoX18oJ3F1ZWxsZSBlc3QgbGEgdmVyc2lvbiBkZSBQSFAgJXMgPycpLCAkdj1waHB2ZXJzaW9uKCkgKSA9PiAkdiwNCgkJX18oJ3F1ZWxsZSBlc3QgbGEgdmVyc2lvbiBkZSBteVNRTCA0LjEgPyAoY2hpZmZyZXMpJykgPT4gJzQuMScsDQoJCXNwcmludGYoX18oJ3F1ZSBkb25uZSBsYSBzb21tZSAlcyArICVzID8gKGNoaWZmcmVzKScpLCAkYSA9IHJhbmQoMSwgMjApLCAkYiA9IHJhbmQoMSwgMjApICkgPT4gJGEgKyAkYiwNCgkJc3ByaW50ZihfXygncXVlIHZhdXQgbGEgc29tbWUgZGUgJXMgZXQgJXMgPyAoY2hpZmZyZXMpJyksICRhID0gcmFuZCgxLCAyMCksICRiID0gcmFuZCgxLCAyMCkgKSA9PiAkYSArICRiLA0KCQlfXygncXVlbGxlIGVzdCBsYSBjYXBpdGFsZSBkZSBsYSBGcmFuY2UgPycpID0+IF9fKCdQYXJpcycpLA0KCQlfXygncXVlbGxlIGVzdCBsYSBjYXBpdGFsZSBkZSBsYSBCZWxnaXF1ZSA/JykgPT4gX18oJ0JydXhlbGxlcycpLA0KCQlfXygncXVlbGxlIGVzdCBsYSBjYXBpdGFsZSBkZSBsXCdJdGFsaWUgPycpID0+IF9fKCdSb21lJyksDQoJCV9fKCdxdWVsIGVzdCBsZSBwculub20gZGUgV2FsdCBEaXNuZXkgPycpID0+ICdXYWx0JywNCgkJX18oJ2RhbnMgcXVlbGxlIHZpbGxlIHNlIHRyb3V2ZSBsYSB0b3VyIGRlIFBpc2UgPycpID0+IF9fKCdQaXNlJyksDQoJKTsNCg0KDQoJIyAtIHR5cGVzIGRlIHF1ZXN0aW9uL2NhcHRjaGEgcG9zc2libGVzIChtZXR0ZXogZW4gY29tbWVudGFpcmUgbGVzIHR5cGVzIGEgZGVzYWN0aXZlcikNCgkjc2kgdm91cyBuZSBzb3VoYWl0ZXogcXVlIGRlcyBvcGVyYXRpb25zIG1hdGhlbWF0aXF1ZXMsIG1ldHRleiB0b3V0ZXMgbGVzIGF1dHJlcyBsaWduZXMgZW4gY29tbWVudGFpcmVzDQoJJEdMT0JBTFNbJ2NhcHRjaGFfZm9uY3Rpb25zJ11bXSA9ICdzb3VzdHJhY3Rpb24nOyAvL3NvdXN0cmF0aW9uIGRlIG5vbWJyZXMNCgkkR0xPQkFMU1snY2FwdGNoYV9mb25jdGlvbnMnXVtdID0gJ2FkZGl0aW9uJzsgLy9hZGRpdGlvbiBkZSBub21icmVzDQoJJEdMT0JBTFNbJ2NhcHRjaGFfZm9uY3Rpb25zJ11bXSA9ICdtdWx0aXBsaWNhdGlvbic7IC8vbXVsdGlwbGljYXRpb24gZGUgbm9tYnJlcw0KCSRHTE9CQUxTWydjYXB0Y2hhX2ZvbmN0aW9ucyddW10gPSAnY2hpZmZyZV9tb3Rfc3VpdmFudGUnOyAvL2NoaWZmcmUgcXVpIHZpZW50IGF2YW50L2FwcmVzIHVuIGF1dHJlIHVuIGF1dHJlIGNoaWZmcmUgZGFucyB1biBtb3QNCgkkR0xPQkFMU1snY2FwdGNoYV9mb25jdGlvbnMnXVtdID0gJ2xldHRyZV9tb3QnOyAvL3hpZW1lIGxldHRyZSBkJ3VuIG1vdA0KCSRHTE9CQUxTWydjYXB0Y2hhX2ZvbmN0aW9ucyddW10gPSAnbXlfY2FwdGNoYSc7IC8vdXRpbGlzYXRpb24gZGVzIHF1ZXN0aW9ucyBwZXJzb25uZWxsZXMgY29udGVudWVzIGRhbnMgJEdMT0JBTFNbJ215X2NhcHRjaGEnXQ0KDQoNCgkjIC0gbG9nIGRlcyB0ZW50YXRpdmVzIGVjaG91ZWVzIGRlIGNhcHRjaGEgKHNwYW0gPykNCgkjbWV0dGV6IGNldHRlIGxpZ25lIGVuIGNvbW1lbnRhaXJlIHBvdXIgZGVzYWN0aXZlciBsYSBqb3VybmFsaXNhdGlvbiBkZXMgZWNoZWNzDQoJJEdMT0JBTFNbJ2NhcHRjaGFfbG9ncyddID0gZGlybmFtZShfX0ZJTEVfXykuJy9zcGFtLnR4dCc7DQoNCj8+";s:16:"captcha/desc.xml";s:376:"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMTUiPz4KPHBsdWdpbiBuYW1lPSJjYXB0Y2hhIiB2ZXJzaW9uPSIxLjEiIGFjdGl2ZT0iMCI+CiAgPGF1dGhvcj5kYXNoIEBhdGVsaWVycGhwNS5jb208L2F1dGhvcj4KICA8bGFiZWw+QW50aS1TcGFtIHBvdXIgbGVzIGNvbW1lbnRhaXJlczwvbGFiZWw+CiAgPGRlc2M+VGVzdCBkZSBUdXJpbmcgKGFjY2Vzc2libGUpIHBvdXIgbHV0dGVyIGNvbnRyZSBsZSBzcGFtIGRlcyBjb21tZW50YWlyZXMuPC9kZXNjPgo8L3BsdWdpbj4K";s:21:"captcha/functions.php";s:31044:"PD9waHANCiMgKioqKiogQkVHSU4gTElDRU5TRSBCTE9DSyAqKioqKg0KIyBDYXB0Y2hhIGZvciBEb3RDbGVhcg0KIyAgQ29weXJpZ2h0IChDKSAyMDA1IERhc2ggYW5kIGNvbnRyaWJ1dG9ycw0KIyAgU29tZSBvZiB0aGUgY29kZSBpcyBiYXNlZCBvbiA6DQojICAgIC0gRG90Y2xlYXIgQ29weXJpZ2h0IChjKSAyMDA0IE9saXZpZXIgTWV1bmllciBhbmQgY29udHJpYnV0b3JzDQojDQojICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMNCiMgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4NCiMNCiMgKioqKiogRU5EIExJQ0VOU0UgQkxPQ0sgKioqKioNCg0KY2xhc3MgZGNDYXB0Y2hhDQp7DQoJZnVuY3Rpb24gTUFYKCkge3JldHVybiA1MDt9DQoNCglmdW5jdGlvbiBlbmNvZGUoJHN0cikNCgl7DQoJCXJldHVybiAoZGNfZW5jb2RpbmcgPT0gJ1VURi04JykgPyB1dGY4X2VuY29kZSgkc3RyKSA6IGh0bWxlbnRpdGllcygkc3RyKTsNCgl9DQoNCg0KDQoJZnVuY3Rpb24gbm9tYnJlcygkaSkNCgl7DQoJCSRhcnIgPSBhcnJheSgNCgkJCTAgPT4neulybycsDQoJCQkxID0+J3VuJywNCgkJCTIgPT4nZGV1eCcsDQoJCQkzID0+J3Ryb2lzJywNCgkJCTQgPT4ncXVhdHJlJywNCgkJCTUgPT4nY2lucScsDQoJCQk2ID0+J3NpeCcsDQoJCQk3ID0+J3NlcHQnLA0KCQkJOCA9PidodWl0JywNCgkJCTkgPT4nbmV1ZicsDQoJCQkxMCA9PidkaXgnLA0KCQkJMTEgPT4nb256ZScsDQoJCQkxMiA9Pidkb3V6ZScsDQoJCQkxMyA9Pid0cmVpemUnLA0KCQkJMTQgPT4ncXVhdG9yemUnLA0KCQkJMTUgPT4ncXVpbnplJywNCgkJCTE2ID0+J3NlaXplJywNCgkJCTE3ID0+J2RpeC1zZXB0JywNCgkJCTE4ID0+J2RpeC1odWl0JywNCgkJCTE5ID0+J2RpeC1uZXVmJywNCgkJCTIwID0+J3Zpbmd0JywNCgkJCTIxID0+J3Zpbmd0IGV0IHVuJywNCgkJCTIyID0+J3Zpbmd0LWRldXgnLA0KCQkJMjMgPT4ndmluZ3QtdHJvaXMnLA0KCQkJMjQgPT4ndmluZ3QtcXVhdHJlJywNCgkJCTI1ID0+J3Zpbmd0LWNpbnEnLA0KCQkJMjYgPT4ndmluZ3Qtc2l4JywNCgkJCTI3ID0+J3Zpbmd0LXNlcHQnLA0KCQkJMjggPT4ndmluZ3QtaHVpdCcsDQoJCQkyOSA9Pid2aW5ndC1uZXVmJywNCgkJCTMwID0+J3RyZW50ZScsDQoJCQkzMSA9Pid0cmVudGUgZXQgdW4nLA0KCQkJMzIgPT4ndHJlbnRlLWRldXgnLA0KCQkJMzMgPT4ndHJlbnRlLXRyb2lzJywNCgkJCTM0ID0+J3RyZW50ZS1xdWF0cmUnLA0KCQkJMzUgPT4ndHJlbnRlLWNpbnEnLA0KCQkJMzYgPT4ndHJlbnRlLXNpeCcsDQoJCQkzNyA9Pid0cmVudGUtc2VwdCcsDQoJCQkzOCA9Pid0cmVudGUtaHVpdCcsDQoJCQkzOSA9Pid0cmVudGUtbmV1ZicsDQoJCQk0MCA9PidxdWFyYW50ZScsDQoJCQk0MSA9PidxdWFyYW50ZSBldCB1bicsDQoJCQk0MiA9PidxdWFyYW50ZS1kZXV4JywNCgkJCTQzID0+J3F1YXJhbnRlLXRyb2lzJywNCgkJCTQ0ID0+J3F1YXJhbnRlLXF1YXRyZScsDQoJCQk0NSA9PidxdWFyYW50ZS1jaW5xJywNCgkJCTQ2ID0+J3F1YXJhbnRlLXNpeCcsDQoJCQk0NyA9PidxdWFyYW50ZS1zZXB0JywNCgkJCTQ4ID0+J3F1YXJhbnRlLWh1aXQnLA0KCQkJNDkgPT4ncXVhcmFudGUtbmV1ZicsDQoJCQk1MCA9PidjaW5xdWFudGUnLA0KCQkpOw0KCQlyZXR1cm4gJGkgPj0gMCA/ICRhcnJbJGldIDogYXJyYXlfdmFsdWVzKCRhcnIpOw0KCX0NCg0KDQoNCglmdW5jdGlvbiBwb3NpdGlvbl9sZXR0cmUoJHNpemUsICRuPTApDQoJew0KCQkkcmVzID0gJyc7DQoJCXN3aXRjaCgkbikNCgkJew0KCQkJY2FzZSAwICA6ICRyZXMgPSAnbGUgcHJlbWnocmUnOyBicmVhazsNCgkJCWNhc2UgMSAgOiAkcmVzID0gJ2xlIGRldXhp6G1lJzsgYnJlYWs7DQoJCQljYXNlIDIgIDogJHJlcyA9ICdsZSB0cm9pc2nobWUnOyBicmVhazsNCgkJCWNhc2UgMyAgOiAkcmVzID0gJ2xlIHF1YXRyaehtZSc7IGJyZWFrOw0KCQkJY2FzZSA0ICA6ICRyZXMgPSAnbGUgY2lucXVp6G1lJzsgYnJlYWs7DQoJCQljYXNlIDUgIDogJHJlcyA9ICdsZSBzaXhp6G1lJzsgYnJlYWs7DQoJCQljYXNlIDYgIDogJHJlcyA9ICdsZSBzZXB0aehtZSc7IGJyZWFrOw0KCQkJY2FzZSA3ICA6ICRyZXMgPSAnbGUgaHVpdGnobWUnOyBicmVhazsNCgkJCWNhc2UgOCAgOiAkcmVzID0gJ2xlIG5ldXZp6G1lJzsgYnJlYWs7DQoJCQljYXNlIDkgOiAkcmVzID0gJ2xlIGRpeGnobWUnOyBicmVhazsNCgkJCWNhc2UgMTAgOiAkcmVzID0gJ2xlIG9uemnobWUnOyBicmVhazsNCgkJCWNhc2UgMTEgOiAkcmVzID0gJ2xlIGRvdXpp6G1lJzsgYnJlYWs7DQoJCQljYXNlIDEyIDogJHJlcyA9ICdsZSB0cmVpemnobWUnOyBicmVhazsNCgkJCWNhc2UgMTMgOiAkcmVzID0gJ2xlIHF1YXRvcnpp6G1lJzsgYnJlYWs7DQoJCQljYXNlIDE0IDogJHJlcyA9ICdsZSBxdWluemnobWUnOyBicmVhazsNCgkJCWNhc2UgMTUgOiAkcmVzID0gJ2xlIHNlaXpp6G1lJzsgYnJlYWs7DQoJCQljYXNlIDE2IDogJHJlcyA9ICdsZSBkaXgtc2VwdGnobWUnOyBicmVhazsNCgkJCWNhc2UgMTcgOiAkcmVzID0gJ2xlIGRpeC1odWl0aehtZSc7IGJyZWFrOw0KCQkJY2FzZSAxOCA6ICRyZXMgPSAnbGUgZGl4LW5ldXZp6G1lJzsgYnJlYWs7DQoJCQljYXNlIDE5IDogJHJlcyA9ICdsZSB2aW5ndGnobWUnOyBicmVhazsNCgkJfQ0KDQoJCWlmICgxKyRuID09ICRzaXplKSAkcmVzPSAnbGUgZGVybmnocmUnOw0KCQllbHNlIGlmICggMSskbiA9PSAkc2l6ZS0xICkgJHJlcz0nbFwnYXZhbnQtZGVybmnocmUnOw0KDQoJCXJldHVybiAkcmVzOw0KCX0NCg0KDQoNCglmdW5jdGlvbiBtb3RzKCkNCgl7DQoJCSRtb3RzID0gZGNDYXB0Y2hhOjpub21icmVzKC0xKTsgLy9yZWN1cGVyZSB0b3VzIGxlcyBub21icmVzDQoJCWFycmF5X21hcCgnbW90czJsMTBuJywgJG1vdHMpOyAvL2ludGVybmFsaXNhdGlvbg0KDQoJCWlmICggIWVtcHR5KCRHTE9CQUxTWydjYXB0Y2hhX215X3dvcmRzJ10pICkNCgkJew0KCQkJJG1vdHMgPSBhcnJheV9tZXJnZSgkbW90cywgJEdMT0JBTFNbJ2NhcHRjaGFfbXlfd29yZHMnXSk7IC8vYWpvdXRlIGxlcyBtb3RzIHBlcnNvbm5lbHMNCgkJfQ0KDQoJCSRpPSByYW5kKDAsIGNvdW50KCRtb3RzKS0xKTsgLy9tb3QgYWxlYXRvaXJlDQoJCXJldHVybiAkbW90c1skaV07DQoJfQ0KDQoNCg0KCWZ1bmN0aW9uIGFkZGl0aW9uKCkNCgl7DQoJCXdoaWxlICggKCAkYyA9KCRhID0gcmFuZCgwLCBkY0NhcHRjaGE6Ok1BWCgpKSkgKyAoJGIgPSByYW5kKDAsIGRjQ2FwdGNoYTo6TUFYKCkpKSkgPiBkY0NhcHRjaGE6Ok1BWCgpICk7DQoJCXJldHVybiBhcnJheSggc3ByaW50ZihfXygnY29tYmllbiBmb250ICVzIGV0ICVzID8gKGNoaWZmcmVzKScpLCBfXyhkY0NhcHRjaGE6Om5vbWJyZXMoJGEpKSwgX18oZGNDYXB0Y2hhOjpub21icmVzKCRiKSkgKSAsICRjKTsNCgl9DQoNCg0KDQoJZnVuY3Rpb24gc291c3RyYWN0aW9uKCkNCgl7DQoJCXdoaWxlICggKCAkYyA9KCRhID0gcmFuZCgwLCBkY0NhcHRjaGE6Ok1BWCgpKSkgLSAoJGIgPSByYW5kKDAsIGRjQ2FwdGNoYTo6TUFYKCkpKSkgPCAwICk7DQoJCXJldHVybiBhcnJheSggc3ByaW50ZihfXygncXVlIGRvbm5lICVzIG1vaW5zICVzID8gKGNoaWZmcmVzKScpLCBfXyhkY0NhcHRjaGE6Om5vbWJyZXMoJGEpKSwgX18oZGNDYXB0Y2hhOjpub21icmVzKCRiKSkgKSAsICRjKTsNCgl9DQoNCg0KDQoJZnVuY3Rpb24gbXVsdGlwbGljYXRpb24oKQ0KCXsNCgkJd2hpbGUgKCAoICRjID0oJGEgPSByYW5kKDAsIGRjQ2FwdGNoYTo6TUFYKCkpKSAqICgkYiA9IHJhbmQoMCwgZGNDYXB0Y2hhOjpNQVgoKSkpKSA+IGRjQ2FwdGNoYTo6TUFYKCkgKTsNCgkJcmV0dXJuIGFycmF5KCBzcHJpbnRmKF9fKCdxdWUgZG9ubmUgJXMgZm9pcyAlcyA/IChjaGlmZnJlcyknKSwgX18oZGNDYXB0Y2hhOjpub21icmVzKCRhKSksIF9fKGRjQ2FwdGNoYTo6bm9tYnJlcygkYikpICkgLCAkYyk7DQoJfQ0KDQoNCg0KCWZ1bmN0aW9uIGxldHRyZV9tb3QoKQ0KCXsNCgkJJGYgPSByYW5kKDAsIDMpOw0KDQoJCWlmICgkZiA8PSAxKSAvLyAwDQoJCXsNCgkJCWlmICgkZikgIC8vIDEgOiBvbiByZWN1cGVyZSB1biBtb3QNCgkJCXsNCgkJCQlkb3sNCgkJCQkJZG97DQoJCQkJCQkkc3RyID0gZGNDYXB0Y2hhOjptb3RzKCk7DQoJCQkJCQkkb2sgPSBzdHJwb3MoJHN0ciwgJyAnKSA9PT0gRkFMU0U7DQoJCQkJCX0gd2hpbGUgKCEkb2spOw0KCQkJCQkkbCA9IHN0cmxlbigkc3RyKTsNCgkJCQkJJG5iciA9IHJhbmQoMCwgJGwpOw0KCQkJCX13aGlsZSAoKCEkb2sgPSBkY0NhcHRjaGE6OnBvc2l0aW9uX2xldHRyZSgkbCwgJG5icikpIHx8ICFpc3NldCgkc3RyWyRuYnJdKSApOw0KCQkJfQ0KCQkJZWxzZSAvLyAwIDogb24gZ2VuZXJlIHVuIGNoYWluZSBkZSBjYXJhY3RlcmVzDQoJCQl7DQoJCQkJJHN0ciA9ICcnOw0KCQkJCSRsID0gcmFuZCg0LCAxNik7IC8vNCBhIDE2IGNhcmFjdGVyZXMNCgkJCQkkY2hhcnMgPSByYW5nZSgwLCA5KTsgLy8gY2hpZmZyZXMgZGUgMCBhIDkgOiAwMTIzNDU2Nzg5DQoJCQkJJGNoYXJzID0gYXJyYXlfbWVyZ2UoJGNoYXJzLCByYW5nZSgnQScsICdaJykpOyAvLz0+IDAxMjM0NTY3ODlBQkNERUYuLi5YWVoNCgkJCQkkY2hhcnMgPSBhcnJheV9tZXJnZSgkY2hhcnMsIGFycmF5KCctJywgJ18nLCAnKicpKTsgLy89PiAwMTIzNDU2Nzg5QUJDREVGLi4uWFlaLV8qDQoJCQkJc2h1ZmZsZSgkY2hhcnMpOyAvLyBvbiB0b3VpbGxlDQoNCgkJCQlmb3IgKCRpPTA7ICAkaSA8ICRsOyAkaSsrKQ0KCQkJCXsNCgkJCQkJJGM9IGFycmF5X3BvcCgkY2hhcnMpOw0KCQkJCQkkc3RyLj0gcmFuZCgwLCAxKSA/IHN0cnRvbG93ZXIoJGMpIDogc3RydG91cHBlcigkYyk7IC8vIG1pbnVzY3VsZS9NQUpVU0NVTEUNCgkJCQl9DQoNCgkJCQkkbmJyID0gcmFuZCgwLCAkbC0xKTsNCgkJCQkkb2sgPSBkY0NhcHRjaGE6OnBvc2l0aW9uX2xldHRyZSgkbCwgJG5icik7DQoJCQl9DQoJCQlyZXR1cm4gYXJyYXkoc3ByaW50ZihfXygncXVlbCBlc3QgJXMgY2FyYWN06HJlIGR1IG1vdCAiJXMiID8nKSwgX18oJG9rKSwgZGNDYXB0Y2hhOjplbmNvZGUoJHN0cikpLCAkc3RyWyRuYnJdKSA7DQoJCX0NCg0KCQllbHNlIC8vMiwgMyA6IG1vdCBhIGNvbXBsZXRlcg0KCQl7DQoJCQlkb3sNCgkJCQkkc3RyID0gZGNDYXB0Y2hhOjptb3RzKCk7DQoJCQkJJGwgPSBzdHJsZW4oJHN0cik7DQoJCQl9d2hpbGUgKCRsIDwgNik7DQoJCQkkY2hhcnMgPSByYW5nZSgwLCAkbC0xKTsNCgkJCXNodWZmbGUoJGNoYXJzKTsNCgkJCSRyZXMgPSAkc3RyOw0KDQoJCQkkbmJyID0gMTsNCgkJCWZvciAoJGk9MDsgICRpIDwgJG5icjsgJGkrKykNCgkJCXsNCgkJCQlkbyB7DQoJCQkJCSRqID0gYXJyYXlfcG9wKCRjaGFycyk7DQoJCQkJfSB3aGlsZSggJHJlc1skal0gPT0gJyAnKTsNCgkJCQkkc3RyWyRqXSA9ICcqJzsNCgkJCX0NCgkJCSRzdHIgPSBzcHJpbnRmKF9fKCdjb21wbOl0ZXogbGUgbW90ICIlcyIgLi4uJyksIGRjQ2FwdGNoYTo6ZW5jb2RlKCRzdHIpKSA7DQoNCgkJCSRzdHIgPSBzdHJfcmVwbGFjZSgnKicsICc8c3BhbiBzdHlsZT0iY29sb3I6cmVkIj4qPC9zcGFuPicsICRzdHIpOw0KCQkJcmV0dXJuIGFycmF5KCRzdHIgLCAkcmVzKTsNCgkJfQ0KCX0NCg0KDQoNCglmdW5jdGlvbiBjaGlmZnJlX21vdF9zdWl2YW50ZSgpDQoJew0KCQkkc3RyID0gJyc7DQoJCSRuYnIgPSByYW5kKDQsIDEwKTsNCg0KCQkkbnVtYmVycyA9IHJhbmdlKDAsOSk7DQoJCXNodWZmbGUoJG51bWJlcnMpOw0KCQlmb3IgKCRpPTA7ICAkaSA8ICRuYnI7ICRpKyspICRzdHIgLj0gYXJyYXlfcG9wKCRudW1iZXJzKTsNCg0KCQkkZiA9IHJhbmQoMCwgMSk7DQoJCWlmICgkZikNCgkJew0KCQkJJG5iciA9IHJhbmQoMCwgJG5ici0yKTsNCgkJCXJldHVybiBhcnJheShkY0NhcHRjaGE6OmVuY29kZSgnZGFucyBsZSBub21icmUgIicuJHN0ci4nIiwgcXVlbCBjaGlmZnJlIHZpZW50IGFwcuhzICcuIGRjQ2FwdGNoYTo6bm9tYnJlcygkc3RyWyRuYnJdKS4gJyZuYnNwOz8gKGNoaWZmcmVzKSAnKSAsICRzdHJbMSskbmJyXSk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkbmJyID0gcmFuZCgxLCAkbmJyLTEpOw0KCQkJcmV0dXJuIGFycmF5KGRjQ2FwdGNoYTo6ZW5jb2RlKCdkYW5zIGxlIG5vbWJyZSAiJy4kc3RyLiciLCBxdWVsIGNoaWZmcmUgdmllbnQgYXZhbnQgJy4gZGNDYXB0Y2hhOjpub21icmVzKCRzdHJbJG5icl0pLiAnJm5ic3A7PyAoY2hpZmZyZXMpICcpICwgJHN0clskbmJyLTFdKTsNCgkJfQ0KCX0NCg0KDQoNCglmdW5jdGlvbiBjYXJhY3RlcmVfbW90X3N1aXZhbnRlKCkNCgl7DQoJCSRzdHI9Jyc7DQoJCSRsID0gMTU7DQoJCSRuYnIgPSByYW5kKDQsICRsKTsNCg0KCQkkY2hhcnMgPSByYW5nZSgwLCA5KTsNCgkJJGNoYXJzID0gYXJyYXlfbWVyZ2UoJGNoYXJzLCByYW5nZSgnQScsICdaJykpOw0KCQlzaHVmZmxlKCRudW1iZXJzKTsNCgkJZm9yICgkaT0wOyAgJGkgPCAkbmJyOyAkaSsrKSAkc3RyLj1hcnJheV9wb3AoJG51bWJlcnMpOw0KDQoJCSRuYnIgPSByYW5kKDAsICRuYnItMSk7DQoJCSRuYnIgPSBkY0NhcHRjaGE6OnBvc2l0aW9uX2xldHRyZSgkbCwgJG5icik7DQoNCgkJcmV0dXJuIGFycmF5KHNwcmludGYoX18oJ3F1ZWwgZXN0ICVzIGNhcmFjdOhyZSBkdSBtb3QgIiVzIiA/JyksIF9fKCRuYnIpLCBkY0NhcHRjaGE6OmVuY29kZSgkc3RyKSkgLCAkc3RyWyRuYnJdKTsNCgl9DQoNCg0KDQoJZnVuY3Rpb24gbXlfY2FwdGNoYSgpDQoJew0KCQlpZiAoICFlbXB0eSgkR0xPQkFMU1snbXlfY2FwdGNoYSddKSApDQoJCXsNCgkJCSR0ZW1wID0gYXJyYXkoKTsNCgkJCWZvcmVhY2goJEdMT0JBTFNbJ215X2NhcHRjaGEnXSBhcyAkayA9PiAkdikgJHRlbXBbXSA9IGFycmF5KCRrLCAkdik7DQoJCQlzaHVmZmxlKCR0ZW1wKTsNCgkJCWxpc3QoJHF1ZXN0aW9uLCAkc29sKSA9IGFycmF5X3BvcCgkdGVtcCk7DQoJCQlyZXR1cm4gYXJyYXkoJHF1ZXN0aW9uICwgJHNvbCk7DQoJCX0NCgkJZWxzZSByZXR1cm4gZGNDYXB0Y2hhOjpsZXR0cmVfbW90KCk7DQoJfQ0KDQoNCg0KCWZ1bmN0aW9uIGNhcHRjaGFfbGV2ZWwoJGwgPSAwKQ0KCXsNCgkJJGwgPSBpbnR2YWwoJGwpOw0KCQkkR0xPQkFMU1snY2FwdGNoYV9sZXZlbCddID0gKCAoJGwgPCAwKSB8fCAoJGwgPiAyKSApID8gMCA6ICRsOw0KCX0NCg0KDQoNCglmdW5jdGlvbiBxdWVzdGlvbigkcz0nJXMnKQ0KCXsNCgkJaWYgKCAhZW1wdHkoJEdMT0JBTFNbJ2NhcHRjaGFfZW5hYmxlJ10pICkNCgkJew0KCQkJaWYgKCBlbXB0eSgkR0xPQkFMU1snY2FwdGNoYV9sZXZlbCddKSApDQoJCQl7DQoJCQkJaWYgKCAhZW1wdHkoJEdMT0JBTFNbJ2NhcHRjaGFfZm9uY3Rpb25zJ10pICkNCgkJCQl7DQoJCQkJCSRmY3RfaSA9IHJhbmQoMCwgY291bnQoJEdMT0JBTFNbJ2NhcHRjaGFfZm9uY3Rpb25zJ10pLTEgKTsNCgkJCQkJJGZjdCA9ICRHTE9CQUxTWydjYXB0Y2hhX2ZvbmN0aW9ucyddWyRmY3RfaV07DQoJCQkJfQ0KCQkJCWVsc2UgJGZjdCA9ICdsZXR0cmVfbW90JzsNCg0KCQkJCSRHTE9CQUxTWydkY19jYXB0Y2hhX2luZGV4J10gPSBkY0NhcHRjaGE6OiRmY3QoKTsNCgkJCQlkY0NhcHRjaGE6OnNhdmVfY2FwdGNoYSgpOw0KCQkJCWVjaG8gJzxzdHJvbmc+JyAuIF9fKCdDYXB0Y2hhIGFudGktc3BhbScpIC4gJyZuYnNwOzogPC9zdHJvbmc+PGJyIC8+JzsNCgkJCQlwcmludGYoJHMsICRHTE9CQUxTWydkY19jYXB0Y2hhX2luZGV4J11bMF0pOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRjYXB0Y2hhX2lkID0gbWQ1KCB1bmlxaWQobWljcm90aW1lKCkpICk7DQoJCQkJJEdMT0JBTFNbJ2RjX2NhcHRjaGFfaW5kZXgnXSA9IGFycmF5ICgkY2FwdGNoYV9pZCwgbXRfcmFuZCgxMDAwMDAsIDk5OTk5OSksICdnZCcpOw0KCQkJCSR1cmwgPSAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXTsNCg0KCQkJCWlmIChkY191cmxfc2NhbiA9PSAncGF0aF9pbmZvJykNCgkJCQl7DQoJCQkJCWlmICggc3RycG9zKCcgJy4kdXJsLCAnPycpICkNCgkJCQkJCSR1cmwgPSBzdHJfcmVwbGFjZSgnPycsICc/aW1nX2NhcHRjaGE9JyAuICRHTE9CQUxTWydkY19jYXB0Y2hhX2luZGV4J11bMF0gLicmYW1wOycsICR1cmwuJyZhbXA7Jyk7DQoJCQkJCWVsc2UgJHVybCAuPSAnP2ltZ19jYXB0Y2hhPScgLiAkR0xPQkFMU1snZGNfY2FwdGNoYV9pbmRleCddWzBdIC4nJmFtcDsnOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkdXJsIC49ICcmYW1wO2ltZ19jYXB0Y2hhPScgLiAkR0xPQkFMU1snZGNfY2FwdGNoYV9pbmRleCddWzBdIC4nJmFtcDsnOw0KCQkJCX0NCg0KCQkJCWlmICggIWZ1bmN0aW9uX2V4aXN0cygnaW1hZ2VQbmcnKSAmJiAhZnVuY3Rpb25fZXhpc3RzKCdpbWFnZUpwZWcnKSApICRHTE9CQUxTWydjYXB0Y2hhX2xldmVsJ10gPSAxOw0KDQoJCQkJZGNDYXB0Y2hhOjpzYXZlX2NhcHRjaGEoKTsNCg0KCQkJCWlmICggJEdMT0JBTFNbJ2NhcHRjaGFfbGV2ZWwnXSA9PSAxICkNCgkJCQl7DQoJCQkJCWVjaG8gJzxpbWcgc3JjPSInLiAkdXJsIC4gJ2k9MCIgYWx0PSInIC4gc3RyX3JlcGxhY2UoJyInLCAnJywgX18oJ1NpIHZvdXMgbmUgdm95ZXogYXVjdW4gY2hpZmZyZSBsaXNpYmxlLCB1dGlsaXNleiBsZSBmb3JtdWxhaXJlIGRlIGNvbnRhY3QgcG91ciBzaWduYWxlciBsZSBwcm9ibOhtZScpKSAuICciIGJvcmRlcj0iMCIgLz4nOw0KCQkJCQllY2hvICc8aW1nIHNyYz0iJy4gJHVybCAuICdpPTEiIGFsdD0iIiBib3JkZXI9IjAiIC8+JzsNCgkJCQkJZWNobyAnPGltZyBzcmM9IicuICR1cmwgLiAnaT0yIiBhbHQ9IiIgYm9yZGVyPSIwIiAvPic7DQoJCQkJCWVjaG8gJzxpbWcgc3JjPSInLiAkdXJsIC4gJ2k9MyIgYWx0PSIiIGJvcmRlcj0iMCIgLz4nOw0KCQkJCQllY2hvICc8aW1nIHNyYz0iJy4gJHVybCAuICdpPTQiIGFsdD0iIiBib3JkZXI9IjAiIC8+JzsNCgkJCQkJZWNobyAnPGltZyBzcmM9IicuICR1cmwgLiAnaT01IiBhbHQ9IiIgYm9yZGVyPSIwIiAvPic7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCWVjaG8gJzxpbWcgc3JjPSInLiAkdXJsIC4gJyIgYWx0PSInIC4gc3RyX3JlcGxhY2UoJyInLCAnJywgX18oJ1NpIHZvdXMgbmUgdm95ZXogYXVjdW4gY2hpZmZyZSBsaXNpYmxlLCB1dGlsaXNleiBsZSBmb3JtdWxhaXJlIGRlIGNvbnRhY3QgcG91ciBzaWduYWxlciBsZSBwcm9ibOhtZScpKSAuICciIHRpdGxlPSInIC4gc3RyX3JlcGxhY2UoJyInLCAnJywgX18oJ1NpIHZvdXMgbmUgdm95ZXogYXVjdW4gY2hpZmZyZSBsaXNpYmxlLCB1dGlsaXNleiBsZSBmb3JtdWxhaXJlIGRlIGNvbnRhY3QgcG91ciBzaWduYWxlciBsZSBwcm9ibOhtZScpKSAuICciIGJvcmRlcj0iMCIgLz4nOw0KCQkJCX0NCgkJCQllY2hvICc8YnIgLz48c3Ryb25nPicgLiBfXygnQ2FwdGNoYSBhbnRpLXNwYW0nKSAuICcmbmJzcDs6IDwvc3Ryb25nPic7DQoJCQkJZWNobyBfXygncmVjb3BpZXogbGUgY29kZSBudW3pcmlxdWUgaW5kaXF16SBjaS1kZXNzdXMnKTsNCgkJCX0NCgkJfQ0KCX0NCg0KDQoNCglmdW5jdGlvbiBzYXZlX2NhcHRjaGEoKQ0KCXsNCgkJZ2xvYmFsICRjb24sICRibG9nOw0KCQlpZiAoIGVtcHR5KCRHTE9CQUxTWydjYXB0Y2hhX2VuYWJsZSddKSB8fCAhaXNzZXQoJEdMT0JBTFNbJ2RjX2NhcHRjaGFfaW5kZXgnXVsxXSkgKSByZXR1cm47DQoNCgkJaWYgKCAhZW1wdHkoJEdMT0JBTFNbJ2RjX2NhcHRjaGFfaW5kZXgnXVsyXSkgKQ0KCQl7DQoJCSAkY29kZSA9ICRHTE9CQUxTWydkY19jYXB0Y2hhX2luZGV4J11bMF07DQoJCSAkcSA9ICRHTE9CQUxTWydjYXB0Y2hhX2xldmVsJ10gLiAnLScgLiAkR0xPQkFMU1snZGNfY2FwdGNoYV9pbmRleCddWzFdOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHEgPSBtZDUoc3RydG9sb3dlcigkR0xPQkFMU1snZGNfY2FwdGNoYV9pbmRleCddWzFdKSk7DQoJCQkkY29kZSA9IG1kNSh1bmlxaWQobWljcm90aW1lKCkpKTsNCgkJfQ0KCQlkY0NhcHRjaGE6OmNsZWFyKCk7DQoNCgkJJGlwID0gIWVtcHR5KCRfU0VSVkVSWydSRU1PVEVfQUREUiddKSA/ICRfU0VSVkVSWydSRU1PVEVfQUREUiddIDogZ2V0ZW52KCdSRU1PVEVfQUREUicpOw0KCQkkYnJvd3NlciA9IHN1YnN0cigkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10sIDAsIDEwMCk7DQoNCgkJJGluc1JlcSA9ICdJTlNFUlQgSU5UTyAnLiBEQl9QUkVGSVggLiAnY2FwdGNoYSAnLg0KCQkJJyhjYXB0Y2hhX2NvZGUsIGNhcHRjaGFfc29sdXRpb24sIGNhcHRjaGFfaXBfYWRkcmVzcywgY2FwdGNoYV91c2VyX2FnZW50LCBjYXB0Y2hhX3RpbWUpIFZBTFVFUyAoJy4NCgkJCSdcJycuJGNvZGUuJ1wnLCAnLg0KCQkJJ1wnJy4kcS4nXCcsICcuDQoJCQknXCcnIC4gJGNvbi0+ZXNjYXBlU3RyKCRpcCkgLiAnXCcsICcuDQoJCQknXCcnIC4gJGNvbi0+ZXNjYXBlU3RyKCRicm93c2VyKSAuICdcJywgJy4NCgkJCXRpbWUoKS4NCgkJJyknOw0KDQoJCWlmICghJGNvbi0+ZXhlY3V0ZSgkaW5zUmVxKSkNCgkJCSRibG9nLT5zZXRFcnJvcignTXlTUUwgOiAnLiRjb24tPmVycm9yKCksIDIwMDApOw0KCQkkR0xPQkFMU1snY2FwdGNoYV9jb2RlJ10gPSAkY29kZTsNCiAgfQ0KDQoNCg0KCWZ1bmN0aW9uIGZpZWxkKCkNCgl7DQoJCWdsb2JhbCAkY29uLCAkYmxvZzsNCgkJaWYgKCBlbXB0eSgkR0xPQkFMU1snY2FwdGNoYV9jb2RlJ10pICkgcmV0dXJuOw0KCS8veHh4eHh4eHh4eHh4eHgNCgkJZWNobw0KCQknPGlucHV0IG5hbWU9ImRjX2NhcHRjaGEiIGlkPSJkY19jYXB0Y2hhIiB0eXBlPSJ0ZXh0IiB0aXRsZT0iY2FwdGNoYSBhbnRpLXNwYW0iIHNpemU9IjEwIiBjbGFzcz0iZm9ybUlucHV0IiAvPicgLg0KCQknPGlucHV0IG5hbWU9ImRjX2NhcHRjaGFfY29kZSIgdmFsdWU9IicgLiAkR0xPQkFMU1snY2FwdGNoYV9jb2RlJ10gLiAnIiB0eXBlPSJoaWRkZW4iIC8+JzsNCiAgfQ0KDQoNCg0KCWZ1bmN0aW9uIGNsZWFyKCRjb2RlPScnKQ0KCXsNCgkJZ2xvYmFsICRjb247DQoNCgkJJHN0clJlcSA9ICdERUxFVEUgRlJPTSAnLiBEQl9QUkVGSVggLiAnY2FwdGNoYSBXSEVSRSBjYXB0Y2hhX3RpbWUgPCcgLiAodGltZSgpIC0gNjAgKiA2MCAqIDI0KTsgLy8yNGgNCg0KCQlpZiAoICFlbXB0eSgkY29kZSkgKQ0KCQkJJHN0clJlcSAuPSAnIE9SIGNhcHRjaGFfY29kZT1cJycgLiAkY29uLT5lc2NhcGVTdHIoJGNvZGUpIC4gJ1wnJzsNCg0KCQlpZiAoISRjb24tPmV4ZWN1dGUoJHN0clJlcSkpDQoJCQlyZXR1cm4gMDsNCgkJcmV0dXJuIDE7DQoJfQ0KDQoNCg0KCWZ1bmN0aW9uIGNoZWNrKCRtZDUsICR2YWx1ZSkNCgl7DQoJCWdsb2JhbCAkY29uOw0KDQoJCSRpcCA9ICFlbXB0eSgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkgPyAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSA6IGdldGVudignUkVNT1RFX0FERFInKTsNCgkJJGJyb3dzZXIgPSBzdWJzdHIoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddLCAwLCAxMDApOw0KDQovLwkJCSdjYXB0Y2hhX2lwX2FkZHJlc3MgPSBcJycgLiAkY29uLT5lc2NhcGVTdHIoJGlwKSAuICdcJyBBTkQgJy4NCg0KCQkkc3RyUmVxID0gJ1NFTEVDVCBjYXB0Y2hhX3NvbHV0aW9uIEZST00gJyAuIERCX1BSRUZJWCAuICdjYXB0Y2hhIFdIRVJFICcgLg0KCQkJJ2NhcHRjaGFfY29kZSA9IFwnJyAuICRjb24tPmVzY2FwZVN0cigkbWQ1KSAuICdcJyBBTkQgJy4NCgkJCSdjYXB0Y2hhX3VzZXJfYWdlbnQgPSBcJycgLiAkY29uLT5lc2NhcGVTdHIoJGJyb3dzZXIpIC4gJ1wnICc7DQoJCQk7DQoNCgkJJG9rID0gMDsNCgkJaWYgKCAkcnMgPSAkY29uLT5zZWxlY3QoJHN0clJlcSkgKQ0KCQl7DQoJCQlpZiAoICRycy0+aW50X3Jvd19jb3VudCA+IDAgKQ0KCQkJew0KCQkJCSRzb2x1dGlvbiA9ICRycy0+ZignY2FwdGNoYV9zb2x1dGlvbicpOw0KCQkJCWlmICggc3RybGVuKCRzb2x1dGlvbikgPCAzMiApDQoJCQkJew0KCQkJCQlsaXN0KCRHTE9CQUxTWydjYXB0Y2hhX2xldmVsJ10sICRzb2x1dGlvbikgPSBzcGxpdCgnLScsICRzb2x1dGlvbik7DQoJCQkJCSRvayA9ICR2YWx1ZSA9PSAkc29sdXRpb247DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCSRvayA9IG1kNShzdHJ0b2xvd2VyKCR2YWx1ZSkpID09ICRzb2x1dGlvbjsNCgkJCQl9DQoJCQkJZGNDYXB0Y2hhOjpjbGVhcigkbWQ1KTsNCgkJCX0NCgkJCWVsc2UgZGNDYXB0Y2hhOjpjbGVhcigpOw0KCQl9DQoJCWVsc2UgJG9rID0gMTsNCg0KCQlyZXR1cm4gJG9rOw0KCX0NCg0KDQoNCglmdW5jdGlvbiBtYWtlX2dkX2ltZygkY29udGVudCA9ICcnKQ0KCXsNCgkJJGNvbnRlbnQgPSAnICAnLiBwcmVnX3JlcGxhY2UoICcvKFx3KS8nLCAnXFwxICcsICRjb250ZW50KSAuJyAnOw0KDQoJCSR0ZW1wX3dpZHRoPSAxMzU7DQoJCSR0ZW1wX2hlaWdodCA9IDIwOw0KDQoJCSRpbWFnZV93aWR0aCA9IDE1MDsNCgkJJGltYWdlX2hlaWdodCA9IDQwOw0KDQoJCWlmICggZnVuY3Rpb25fZXhpc3RzKCdpbWFnZUNyZWF0ZVRydWVDb2xvcicpICkNCgkJew0KCQkJJHRlbXAgPSBpbWFnZUNyZWF0ZVRydWVDb2xvcigkdGVtcF93aWR0aCwgJHRlbXBfaGVpZ2h0KTsNCgkJCSRpbWFnZSAgPSBpbWFnZUNyZWF0ZVRydWVDb2xvcigkaW1hZ2Vfd2lkdGgsICRpbWFnZV9oZWlnaHQpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHRlbXAgPSBpbWFnZUNyZWF0ZSgkdGVtcF93aWR0aCwgJHRlbXBfaGVpZ2h0KTsNCgkJCSRpbWFnZSAgPSBpbWFnZUNyZWF0ZSgkaW1hZ2Vfd2lkdGgsICRpbWFnZV9oZWlnaHQpOw0KCQl9DQoNCgkJJHdoaXRlICA9IGltYWdlQ29sb3JBbGxvY2F0ZSgkdGVtcCwgMjU1LCAyNTUsIDI1NSk7DQoJCSRibGFjayAgPSBpbWFnZUNvbG9yQWxsb2NhdGUoJHRlbXAsIDAsIDAsIDApOw0KCQkkZ3JleSAgID0gaW1hZ2VDb2xvckFsbG9jYXRlKCR0ZW1wLCAyMTAsIDIxMCwgMjEwKTsNCgkJJHRleHRfY29sb3IgPSBpbWFnZUNvbG9yQWxsb2NhdGUoJHRlbXAsIHJhbmQoMCwgMTUwKSwgcmFuZCgwLCA1MCksIHJhbmQoMCwgNjApKTsNCg0KCQlpbWFnZUZpbGwoJHRlbXAsIDAsIDAsICR3aGl0ZSk7DQoNCgkJJG5icl9vYmogPSByYW5kKDMsIDUpOw0KCQlmb3IgKCAkaSA9IDA7ICRpIDwgJG5icl9vYmo7ICRpKysgKQ0KCQl7DQoJCQkkbmJyX2Nvcm5lcnMgPSByYW5kKDMsIDIwKTsNCgkJCSRwb2x5ID0gYXJyYXkoKTsNCgkJCWZvciAoICRqID0gMDsgJGogPCAkbmJyX2Nvcm5lcnM7ICRqKysgKQ0KCQkJew0KCQkJCSRwb2x5W10gPSByYW5kKDAsICR0ZW1wX3dpZHRoKTsNCgkJCQkkcG9seVtdID0gcmFuZCgwLCAkdGVtcF9oZWlnaHQpOw0KCQkJfQ0KCQkJJGNvbG9yID0gaW1hZ2VDb2xvckFsbG9jYXRlKCR0ZW1wLCByYW5kKDEzMCwgMjU1KSwgcmFuZCgxMzAsMjU1KSwgcmFuZCgxMzAsIDI1NSkpOw0KCQkJaW1hZ2VGaWxsZWRQb2x5Z29uKCR0ZW1wLCAkcG9seSwgJG5icl9jb3JuZXJzLCAkY29sb3IpOw0KDQoJCX0NCg0KCQlpbWFnZVN0cmluZygkdGVtcCwgNSwgMCwgMiwgJGNvbnRlbnQsICR0ZXh0X2NvbG9yKTsNCgkJaW1hZ2VDb3B5UmVzaXplZCgkaW1hZ2UsICR0ZW1wLCAwLCAwLCAwLCAwLCAkaW1hZ2Vfd2lkdGgsICRpbWFnZV9oZWlnaHQsICR0ZW1wX3dpZHRoLCAkdGVtcF9oZWlnaHQpOw0KCQlpbWFnZURlc3Ryb3koJHRlbXApOw0KDQoJCSRuYnJfd2F2ZXMgPSByYW5kKDEsIDMpOw0KCQkkY29lZl93YXZlID0gKCRuYnJfd2F2ZXMgKiAzNjApIC8gJGltYWdlX3dpZHRoOw0KCQkkbWF4WSA9ICRpbWFnZV9oZWlnaHQtcmFuZCgwLCAkaW1hZ2VfaGVpZ2h0LzIpOw0KCQlmb3IgKCAkYml0ID0gMDsgJGJpdCA8PSAxOyAkYml0KysgKQ0KCQl7DQoJCQkkY3VyWCA9IDA7DQoJCQkkY3VyWSA9ICRiaXQgPyAwIDogJG1heFk7DQoJCQlmb3IoJHB0ID0gMDsgJHB0IDwgJGltYWdlX3dpZHRoOyAkcHQrKykNCgkJCXsNCgkJCQkkbmV3WCA9ICRjdXJYICsgMTsNCgkJCQkkbmV3WSA9ICRiaXQNCgkJCQkJPygkaW1hZ2VfaGVpZ2h0LzIpICsgKHNpbihkZWcycmFkKCRuZXdYICogJGNvZWZfd2F2ZSAtIDkwKSkgKiAoJG1heFkvMikpDQoJCQkJCTooJGltYWdlX2hlaWdodC8yKSArIChjb3MoZGVnMnJhZCgkbmV3WCAqICRjb2VmX3dhdmUpKSAqICgkbWF4WS8yKSk7DQoJCQkJSW1hZ2VMaW5lKCRpbWFnZSwgJGN1clgsICRjdXJZLCAkbmV3WCwgJG5ld1ksICR0ZXh0X2NvbG9yKTsNCgkJCQkkY3VyWCA9ICRuZXdYOw0KCQkJCSRjdXJZID0gJG5ld1k7DQoJCQl9DQoJCX0NCg0KCQkkbmJyX29iaiA9ICRpbWFnZV93aWR0aCAqICRpbWFnZV9oZWlnaHQgLyByYW5kKDUsIDEwKTsNCgkJZm9yICggJGkgPSAwOyAkaSA8ICRuYnJfb2JqOyAkaSsrICkNCgkJew0KCQkJaW1hZ2VTZXRQaXhlbCgkaW1hZ2UsIHJhbmQoMCwgJGltYWdlX3dpZHRoKSwgcmFuZCgwLCAkaW1hZ2VfaGVpZ2h0KSwgJGJsYWNrKTsNCgkJfQ0KDQoJCSR0eXBlID0gZnVuY3Rpb25fZXhpc3RzKCdpbWFnZUpwZWcnKSA/ICdqcGVnJyA6ICdwbmcnOw0KCQlAaGVhZGVyKCdDb250ZW50LVR5cGU6IGltYWdlLycgLiAkdHlwZSk7DQoJCUBoZWFkZXIoJ0NhY2hlLWNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZScpOw0KCQkoJHR5cGUgPT0ncG5nJykgP2ltYWdlUG5nKCRpbWFnZSkgOiBpbWFnZUpwZWcoJGltYWdlKTsNCgkJSW1hZ2VEZXN0cm95KCRpbWFnZSk7DQoNCgkJZXhpdCgpOw0KCX0NCg0KCWZ1bmN0aW9uIG1ha2VfcG5nX2NoYXIoJGNoYXIpDQoJew0KCQkkcG5nID0gYXJyYXkoDQoJCQkwID0+ICdpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQndBQUFBbENBUUFBQUdNZG5Ic0FBQUFMblJGV0hSRGNtVmhkR2x2YmlCVWFXMWxBR3gxYmk0Z016QWdZVy83ZENBeU1EQTBJREV3T2pNNE9qTTBJQ3N3TVRBd1d1ZDhIZ0FBQUFkMFNVMUZCOVFJSGdnMURHQlpRTkVBQUFBSmNFaFpjd0FBQ3hJQUFBc1NBZExkZnZ3QUFBQUVaMEZOUVFBQXNZOEwvR0VGQUFBQ0RVbEVRVlI0MnIxVkxVekRRQlQrb0NRbEdRa2tJMEZDZ2tBZ0poQ0loU0FtSmhBVENNVEV4TVRFeE1URUJJSVFCQkl4Z1poRUlDY21KaVlRRXhPUUVOUUVZbUlraUFuRVJFVkR5dXU3bjE3WGR2eGs0YnUwMS9kemQ5Kzk5KzRLR0ZpSGh6QzhpSWF3eEFaK3RaQ1hUaFpXY1lUSWNFS2ZPb3VlYXFEYkZyM0ZpalU4MHZzU3Y0Q0ZzZmh3ZVBHYW12a2RwNHF5NE8wR1ZJRVBlbHIrb3N2WXdSQWJwSHpDcDhFMGlNTkNrYWJaOXdLeHlSVE5KbEdWWXByNVRNTzhsSitsVlM1dE4yVE1ZTURTZ0tTeVNXQWdKM1pSajdLTFNiQkNaN0Z4bUlkNzRwRmJpVFgxc2NrbHAzRVRGendWbTNEVFlVOUpSUTQyOTNmMERNM3dpYW1LOUQ0Mm9vMEdmWnhydDZ6czc0WENyNzRVZnozaW12dGQwdGpDT0piR2RhNDdNZTVaclhoTVFoT2lQa0VzWnpZeUpiR2lhYm5oZUFTNzdOTjZFWGlVTmpzK3lEbTBrelBnSkJuOFUvcUdsNy9uOWo5UUovNGRiUDFtU0lwdkpnZFhTZUh5VDI0TlhVekk3UlVYZEd2WktHQkUwaWg1cFFLN0o3VjJQSkh1bkNHcTNjd09hNGZNSmFudHlaSXBRMXc4TTVYbFY2UEh0OHNKRG1oM0xhbWRzQzZydlR6ZXN3RjFoMlFNM1NGcmlvYm1qalZuNXNEb09hMXc2VnBhdGpnUitnY1Juc3ZUcEc3NVVBU0RXbktuR1VRZ1F1UHc4WC9nVSs4SEkwOVR1bkxTNjZUODFSTVQwTVArL0lMS2F0Y3BNU2p4UGY0aitDWFYrS216R1NBbjdnTDREaFZLOW9ML2NJbjRBbndRRWc5dVhVVURBQUFBQUVsRlRrU3VRbUNDJywNCgkJCTEgPT4gJ2lWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCd0FBQUFsQ0FRQUFBR01kbkhzQUFBQUxuUkZXSFJEY21WaGRHbHZiaUJVYVcxbEFHeDFiaTRnTXpBZ1lXLzdkQ0F5TURBMElERXdPak00T2pRd0lDc3dNVEF3cEcxUkZBQUFBQWQwU1UxRkI5UUlIZ2d4SEJtQ2xiRUFBQUFKY0VoWmN3QUFDeElBQUFzU0FkTGRmdndBQUFBRVowRk5RUUFBc1k4TC9HRUZBQUFBeUVsRVFWUjQybU5nUUFIL1lReDVCcUtBTkc0cHNGRk1jTzRYck5hUUJWNGpjN1JSM2JBZXEzK1lzQnNrVHBFemlBTC9HZmJqa2tyR0Z3ei9HYnB4U2QxRzFZZnFOeGFHTzdUM0ZCVkJOYjVBZUk4L2hQQks1dU9UUkFLb3dlZU16NjIvOGR1NEdaZVVQVkRTSDVja080V1pZVVFDYm9iVEROL3hSVEV1Y0JpY2JGNlRxbzBmck8wLzZUYTZnN1VkeGliRmhGZWpEWmpNSWRVK1puQ2UyVStxTmdhRzVXQ0hCcE9xclo2ODhKU0hobWN6cVJxdG9ScUZTZmVoT2pETnpDZGQyeWlnQkFBQUpXYzdnNkpST0gwQUFBQUFTVVZPUks1Q1lJST0nLA0KCQkJMiA9PiAnaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJ3QUFBQWxDQVFBQUFHTWRuSHNBQUFBTG5SRldIUkRjbVZoZEdsdmJpQlVhVzFsQUd4MWJpNGdNekFnWVcvN2RDQXlNREEwSURFd09qTTRPalExSUNzd01UQXc5bFYrc3dBQUFBZDBTVTFGQjlRSUhnZ3lJV3JIaW1NQUFBQUpjRWhaY3dBQUN4SUFBQXNTQWRMZGZ2d0FBQUFFWjBGTlFRQUFzWThML0dFRkFBQUJBVWxFUVZSNDJtTmdRQUhaRU9vL0VPSUh3Z3dNakVES21FRUd1enlhQ1lTTUl4cGd1QXlGZXhsZDdqNzFiQ1lWR0RQc3h4ZU8veG1lWTVjSUIwcXBnMW5SRFBOQjRZenVmUkFNSHloZlVROVlRNzN5SGlIRURHYzlacEJnK01FZ3g3Q0FZU3QyM2E5eGgydzZVRW9ZdXhRM1VLb2VsNzcvRE4raGlxWXpOS05LelFaS2FnTjFndHg3R1YzZmFhaEhUaU81ZnhUUUFFZ0RrMzAvTUpqZkF3UDdPb00vc2RxNHdSb1E4RDJ4R21FZ0dhenRNOUIra3NCbXNMYk5wR25TQmliQy93eS9HWnhKMHpZYmJOZGgwbEtnT0RSZytxRjhkNGJWWU50QmNEK3cvTUlKUHFPRUp3VGVab2duYkxzd01HdmRCbWUwMDhBc3BrK2FIMGZCMEFNQW80dGxTZ0p2d2tBQUFBQUFTVVZPUks1Q1lJST0nLA0KCQkJMyA9PiAnaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJ3QUFBQWxDQVFBQUFHTWRuSHNBQUFBTG5SRldIUkRjbVZoZEdsdmJpQlVhVzFsQUd4MWJpNGdNekFnWVcvN2RDQXlNREEwSURFd09qTTRPalE0SUNzd01UQXdsNElmY3dBQUFBZDBTVTFGQjlRSUhnZ3pPNDYrUWxnQUFBQUpjRWhaY3dBQUN4SUFBQXNTQWRMZGZ2d0FBQUFFWjBGTlFRQUFzWThML0dFRkFBQUJkVWxFUVZSNDJtTmdRQUgvR1JpWUlCUU1jRU9vZWdZTXdJaFErQjlEOGorcTJIOU1lVGpvWmxCbUlCcFVvNXZzenJBYXdiRm1PSTF3Rzh3U1JvUThPeDVYWWZxQlNDQ09UUkRreXVrTXd1aXVSUUIxb01SdGJCTEJZRDMzR2ZZenpHZmdSNWM4emZDZElac0JGQjMvR2RxeDZXWUc2K2JHNVNTc0VpQ3A1ZVQ2bmhqQWowMVFtdUU4MkVuL0dZN0RoSmlnZERQREV3WVJCZzhHRFh5Ry9zY2RZOCtCVXVMWXBUN2psdm9ObEhvT0RPSDlETVhvVWpDWC9zZG1xelZRYUQ4d3F2RTY2VFJRS2h1NzFHcWcxR25zVXYxQXFjUFlwZEp4UzRFYzhobGZ3T0VCNmd5REc4Z0RQYjZjNFRFNHFOZmppa2tFMEFlRzdtK1V5TU1SaVpoQW04RWVLVFJtUTdYNWsrSlliWEJ5Kzg5d0hWZSt3d2FzNFpya2lkY1VETlYwbUJTYnpIRUVEVktPeEE3ZUl5bjlEb3lHYUFabktPODZLY0VEaWsySXN6OFRqa2tFWUFibkdCQmNUYndtU0Y0Q3djdWsyQVhUUkZLNGlrTjlkWmtVVFNCd0dhd3RtalJOSUhBZldKV1FhQmQ5QUFCNlo2UGRMR2JyM3dBQUFBQkpSVTVFcmtKZ2dnPT0nLA0KCQkJNCA9PiAnaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJ3QUFBQWxDQVFBQUFHTWRuSHNBQUFBTG5SRldIUkRjbVZoZEdsdmJpQlVhVzFsQUd4MWJpNGdNekFnWVcvN2RDQXlNREEwSURFd09qTTRPalV4SUNzd01UQXd6ckJhUGdBQUFBZDBTVTFGQjlRSUhnZ3lONTRUUHpJQUFBQUpjRWhaY3dBQUN4SUFBQXNTQWRMZGZ2d0FBQUFFWjBGTlFRQUFzWThML0dFRkFBQUJSVWxFUVZSNDJtTmdRQUhPRU9vL0VCSUM4aURpT1FNRE01QjZ3M0FSaTRyL3lJei9XR1hJQXRGWXJHRUI0bVFHRVlZRkRENHc4ZXNNdjRGeTdzaEt3NUU1MlRBR001amtZbmhJa2F0d2dmOE1uOUdGdmpQTWgwcGhCTVI3cU5CdnNPUnZkT25kWUdFOHdZZEg2amZESUFYL0dRN2prb29IU25MajFvZmhKWGVnRUVpOVBsQlNIVk05SW13WnNFdnFROE8zSFZQeU1KaThqcW5USFJpZklLbjF1Tnhaank5VzdnUDlpQ2RrY0FKdUJuL2NrdVVNSXdNc0J1YVgyY2dDTEVSb1ltYTR3YUFDcE0rUWF0dDVjRFQzRTFJbXpTQ093dDhPMWpZZnZ5WjJZRkdLbXI3bTQwOVVNQUFyRVdDcGZUcVUvNS9oT0RCbHNlUFdDRk1HU243aURMZmgvUDlBQjJ2anN6RWFTU2tNenNkbkV5cmdCcGJURUw4K3hwMjFjUUZRb0p3blZSTURnekpRMjIxb09VOFMyQTIwalF4dDNneW5TZGNFQXRya2FSdTBBQUI4aW4xT0k0cklkQUFBQUFCSlJVNUVya0pnZ2c9PScsDQoJCQk1ID0+ICdpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQndBQUFBbENBUUFBQUdNZG5Ic0FBQUFMblJGV0hSRGNtVmhkR2x2YmlCVWFXMWxBR3gxYmk0Z016QWdZVy83ZENBeU1EQTBJREV3T2pNNE9qVTBJQ3N3TVRBd25JaDFtUUFBQUFkMFNVMUZCOVFJSGdnekM2aG5jdlFBQUFBSmNFaFpjd0FBQ3hJQUFBc1NBZExkZnZ3QUFBQUVaMEZOUVFBQXNZOEwvR0VGQUFBQkJVbEVRVlI0Mm1OZ3dBYitNeEFDMWd3TVRFQktBTGVLWnFBcGowR00zNmppekVCeGU0TG00d1Ava2QzSGo5UFZ6Z2dCa0ZOMUtMS1RkSkFNZHVkL2hzOE0vdWpleHdLWXdLUU4yQmZTdUEyMUJrci94aWJSRHhTK3pDQk9aejlTRHZRWmJrUERLUjlWNGpCVWVERURPNll1ZmdaamJJYk5aemlQMjZiLytBTCtEeER2eDYzM002NWd4MmsweEZodGh0ZFF3N0Y0L0RKUVZ6ZjFRM1RrQUdWZ21sblBjQjhZak4rQnljVVl2Mko1aG1xRzY5QTBCY3VZczRGbEJGNVFEWXgxaU9MckRKTVozTEVsUlZRUURDb1lTUVhUb1hZUUNaamdMQk1vblUyNm5jRnduNzBIK290RW9BN1B0SStKZFNvRWZJSG5oUWZFMkJNTnR3ZHJVVG9LQmowQUFEN0dYTUpWaEpLZ0FBQUFBRWxGVGtTdVFtQ0MnLA0KCQkJNiA9PiAnaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJ3QUFBQWxDQVFBQUFHTWRuSHNBQUFBTG5SRldIUkRjbVZoZEdsdmJpQlVhVzFsQUd4MWJpNGdNekFnWVcvN2RDQXlNREEwSURFd09qTTRPalUzSUNzd01UQXdyV0J2QkFBQUFBZDBTVTFGQjlRSUhnZ3pLdVFPWXFvQUFBQUpjRWhaY3dBQUN4SUFBQXNTQWRMZGZ2d0FBQUFFWjBGTlFRQUFzWThML0dFRkFBQUJIMGxFUVZSNDJtTmd3QWIrQXlGKzhCK0RnVk1GaGhwOXNQbkZES1FCWmlqOW1vR0w0U0RDWkd1c2RqSkI2ZFVRSVVZa1dVWVM3U1VmZ0h5WmpFMWlPbEJpUGo1ZElEQ2Y0VEhjenlpUy9HQUZtN0dGdkRERGJZYnZETTEwOHlHbHdCOTNTdXNIU3Z6R3JlczdMaU94R0FoTERPVkFQQWVYdnRkQWZkSkFtaHRvZERXNjVHZW9vZi9CRUMzcXNvRkM4Y0RJV2cxVzhCaWJYZ2pFNnAxdW9NUjVCbTBhQnZLd0EvekFRTHZQc0JnWVZTU0FabmcwTEFjYVFDU29oMnI1ek9CTXZFM0M0TFFFZ3VHa09GQWNtRDcrZzFPMk9HbkJzUjlxbXorcDRRZ0xFQWpnWnJnTUZ6bU1QMndQUTVYSkE5bkJZTlprQm5ab1p2Nk9UeU03dzNXd290UEFQQVFKSUc2Z1ZvaGg2WVNjYTgzd0hPNUFDRncvbW04R09RQUFERHgvSzNZZk1WOEFBQUFBU1VWT1JLNUNZSUk9JywNCgkJCTcgPT4gJ2lWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCd0FBQUFsQ0FRQUFBR01kbkhzQUFBQUxuUkZXSFJEY21WaGRHbHZiaUJVYVcxbEFHeDFiaTRnTXpBZ1lXLzdkQ0F5TURBMElERXdPak01T2pBeElDc3dNVEF3YVpJL1pBQUFBQWQwU1UxRkI5UUlIZ2cwSUV1YUhYTUFBQUFKY0VoWmN3QUFDeElBQUFzU0FkTGRmdndBQUFBRVowRk5RUUFBc1k4TC9HRUZBQUFBNTBsRVFWUjQybU5nUUFIL0dVZ0RyM0ZKL0ljWXhRVGxya0dWZlUraU5RandIV1l5bXB1WmtEazQvSE1ZVlk2YmJFY1FDZVFSNFlBcmtPNWhsOUFGU3MzR0xpVU1sUExIYmVEUUFmUEJZUU9DcTdGSlN3TWh5RVBmY2VuWEJrcm00NUk4alNzbzlCbCtRMjNGQ3A3Z0RrSitvRlExTHNuditLTlpHcGVVUE1OaWlnTnl4QUIyQm5PR2NvYjFETGZCY2ZpWVlUcHhXVmlkNFRvOHFjSGdkMkkwSWdObXFNYkRwR3JNaDlvblRJb21hWVk1U0k0bEVqVEROZnhsU0NETnZteXd0czhNNHFUNXJSdXM3VDR3WXNnSWtzMmtoaVFrbDhXVHJrMFlHR3MwTCt4SEFUWUFBRDVLV21FMDdCeTNBQUFBQUVsRlRrU3VRbUNDJywNCgkJCTggPT4gJ2lWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCd0FBQUFsQ0FRQUFBR01kbkhzQUFBQUxuUkZXSFJEY21WaGRHbHZiaUJVYVcxbEFHeDFiaTRnTXpBZ1lXLzdkQ0F5TURBMElERXdPak01T2pBMElDc3dNVEF3TzZvUXd3QUFBQWQwU1UxRkI5UUlIZ2d5QjdqS0Q1NEFBQUFKY0VoWmN3QUFDeElBQUFzU0FkTGRmdndBQUFBRVowRk5RUUFBc1k4TC9HRUZBQUFCbWtsRVFWUjQybU5nUUFLSFlZei9RQWdHMlRBR01tQUVxNEFyQlNKOUJtWTBOYitCb3Nrd3ptS0VnUWlkV0F3bUFyQWpHd1V5eEIyVis1L2hOWUlUejNBY29Sek5YaEIxR3VoTW1vSC9ZTmlNNmw0SStBNFVFZ2JTeWtCNk1uWjlJTmpOb0k0c2NSOG81SXltRUN1SEdjd1RSN2NSQXUxcDUyTlN3V1Nva3o1alN1MEdTL3dHeCs1OWJDSDBuZ0dTRmpaams0U0ZGaFN3b0NrQUFRVVlsd2xLTDRjcmVNTGdnR3BrT05TTjJ2QkFoS2RzZG96b1JlS2ZCakt0a2FSQTJTQWZ4Z0ZsRUVTbXFRZnlyaU5VUm9OdGxBWWFYd3cyc0I3VlFkVndoK3ltWmZ3TVJxRE0wTTl3R1J4NGw0RjVTNXdZTGR6QWN1MC9GaGlQWDFzOGt0TFA0SGhraHZJSUZCcXd2SVlBL2xBUlkvd2F6ME9WcFFPZDdNNHdHMnJRZVdBcUlPQy95eGgrKzQxU1VtQUY5WERGKzRFcFhCam91MzRrQSs0RDB5QVdZQXdNQ2tTQU1JQTF2V1pZRDB6VzFzRHNrUS9WL0JoZFd6RlVZajRPdHhoRDVhK2pTL3lHU21BUEFsZ1VuY2FvZnVCUkhvd21iZy9PbFJCZjQwZzlpN0dtRmtodVUyY2dBS1NCcWZJOE9PWmVBMjJvQnFiWEVRMEFaejNud2txT0RrVUFBQUFBU1VWT1JLNUNZSUk9JywNCgkJCTkgPT4gJ2lWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCd0FBQUFsQ0FRQUFBR01kbkhzQUFBQUxuUkZXSFJEY21WaGRHbHZiaUJVYVcxbEFHeDFiaTRnTXpBZ1lXLzdkQ0F5TURBMElERXdPak01T2pFeElDc3dNVEF3cFRnLytnQUFBQWQwU1UxRkI5UUlIZ2cwTTg4a1hLMEFBQUFKY0VoWmN3QUFDeElBQUFzU0FkTGRmdndBQUFBRVowRk5RUUFBc1k4TC9HRUZBQUFCU1VsRVFWUjQybU5nUUFML2dSRE9aR0Jpb0FEOFoxaU96R0ZIbUF3M255d2JycU1hWkE3RXF4SGMxd3paV0MxaWhuTWxHTFlpeS9KVDRrZDg0RFhRWW0wR2UzVFhJTUlEUW1PUjNnOFcvbzlkRW1IQ1ozeVMzdmdrNFlDaUNLWVk2T1Ayb3pSUWVEMlFmczdRamluNUdxcUhIMGh6bzN2bEE1UVdBZUluNkRxVGdUckNnWHArQStuWDZKTE1ETi9od2I2YUFRY3dCMG9HNC9ZU25yQTFSdWFnUzdyZ0M2ZlQrTk1Cc2ZISmpNYi93M0NPWVRmRGtBTHNEUG5nMFBqTU1Cc1I4NFNBTlZENWZ5VDRtMEdlR0cyendZcTN3L25oNERURFRsZ2p4QlptREpINWhEVE9CeXREcEs1bXdxVUFCR2lqK0E4Qno2TXJSRThmVnhrWUdUZ1lQQmltTUZ4ZytBSE1PamVnNGh1SURWc1k0SWJhcUUycVJtR3d0dU9ZRW9TS0pnY3d1WUpVK3hpQXRSTElSblhTTlQ3SEZSV01CRFQreDZXS2tCOUI1ZGNQMGgwNnFBQUEzTngvQXVFWXBSWUFBQUFBU1VWT1JLNUNZSUk9JywNCgkJKTsNCgkJQGhlYWRlcignQ29udGVudC1UeXBlOiBpbWFnZS9wbmcnKTsNCgkJQGhlYWRlcignQ2FjaGUtY29udHJvbDogbm8tY2FjaGUsIG5vLXN0b3JlJyk7DQoJCWVjaG8gYmFzZTY0X2RlY29kZSgkcG5nWyRjaGFyXSk7DQoJCWV4aXQoKTsNCgl9DQoNCg0KDQoJZnVuY3Rpb24gc2hvd19jYXB0Y2hhX2ltZygkY29kZSA9ICcnKQ0KCXsNCgkJZ2xvYmFsICRjb247DQoNCgkJJGlwID0gIWVtcHR5KCRfU0VSVkVSWydSRU1PVEVfQUREUiddKSA/ICRfU0VSVkVSWydSRU1PVEVfQUREUiddIDogZ2V0ZW52KCdSRU1PVEVfQUREUicpOw0KCQkkYnJvd3NlciA9IHN1YnN0cigkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10sIDAsIDEwMCk7DQoNCi8vCQkJJ2NhcHRjaGFfaXBfYWRkcmVzcyA9IFwnJyAuICRjb24tPmVzY2FwZVN0cigkaXApIC4gJ1wnIEFORCAnLg0KDQoJCSRzdHJSZXEgPSAnU0VMRUNUIGNhcHRjaGFfc29sdXRpb24gRlJPTSAnIC4gREJfUFJFRklYIC4gJ2NhcHRjaGEgV0hFUkUgJyAuDQoJCQknY2FwdGNoYV9jb2RlID0gXCcnIC4gJGNvbi0+ZXNjYXBlU3RyKCRjb2RlKSAuICdcJyBBTkQgJy4NCgkJCSdjYXB0Y2hhX3VzZXJfYWdlbnQgPSBcJycgLiAkY29uLT5lc2NhcGVTdHIoJGJyb3dzZXIpIC4gJ1wnICc7DQoNCgkJaWYgKCAkcnMgPSAkY29uLT5zZWxlY3QoJHN0clJlcSkgKQ0KCQl7DQoJCQlpZiAoICRycy0+aW50X3Jvd19jb3VudCA+IDAgKQ0KCQkJew0KCQkJCSRzb2x1dGlvbiA9ICRycy0+ZignY2FwdGNoYV9zb2x1dGlvbicpOw0KDQoJCQkJbGlzdCgkR0xPQkFMU1snY2FwdGNoYV9sZXZlbCddLCAkc29sdXRpb24pID0gc3BsaXQoJy0nLCAkc29sdXRpb24pOw0KCQkJCWlmICggKCRHTE9CQUxTWydjYXB0Y2hhX2xldmVsJ10gPCAxKSB8fCAoJEdMT0JBTFNbJ2NhcHRjaGFfbGV2ZWwnXSA+IDIpICkgcmV0dXJuOw0KDQoJCQkJaWYgKCAoJEdMT0JBTFNbJ2NhcHRjaGFfbGV2ZWwnXSA9PSAxKSAmJiBpc3NldCgkX0dFVFsnaSddKSApDQoJCQkJew0KCQkJCQkkaSA9IGludHZhbCgkX0dFVFsnaSddKTsNCgkJCQkJJG51bWJlciA9IHN1YnN0cigkc29sdXRpb24sICRpLCAxICk7DQoJCQkJCWRjQ2FwdGNoYTo6bWFrZV9wbmdfY2hhcigkbnVtYmVyKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJZGNDYXB0Y2hhOjptYWtlX2dkX2ltZygkc29sdXRpb24pOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCn0NCg0KPz4=";s:17:"captcha/index.php";s:5196:"PD9waHANCiMgKioqKiogQkVHSU4gTElDRU5TRSBCTE9DSyAqKioqKg0KIyBDYXB0Y2hhIGZvciBEb3RDbGVhcg0KIyAgQ29weXJpZ2h0IChDKSAyMDA1IERhc2ggYW5kIGNvbnRyaWJ1dG9ycw0KIyAgU29tZSBvZiB0aGUgY29kZSBpcyBiYXNlZCBvbiA6DQojICAgIC0gRG90Y2xlYXIgQ29weXJpZ2h0IChjKSAyMDA0IE9saXZpZXIgTWV1bmllciBhbmQgY29udHJpYnV0b3JzDQojDQojICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMNCiMgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4NCiMNCiMgKioqKiogRU5EIExJQ0VOU0UgQkxPQ0sgKioqKioNCg0KDQpmdW5jdGlvbiBkaXNwbCgkc3RyKQ0Kew0KCXN0YXRpYyAkdXRmODsNCglpZiAoICFpc3NldCgkdXRmOCkgKSAkdXRmOD0oZGNfZW5jb2RpbmcgPT0gJ1VURi04Jyk7DQoJcmV0dXJuICR1dGY4ID8gdXRmOF9lbmNvZGUoJHN0cikgOiBodG1sZW50aXRpZXMoJHN0cik7DQp9DQoNCg0KYnVmZmVyOjpzdHIoJzxoMj5DYXB0Y2hhPC9oMj4nKTsNCg0KYnVmZmVyOjpzdHIoJzxoMz5Db25maWd1cmF0aW9uPC9oMz4nKTsNCiRwcmVmaXggPSBEQl9QUkVGSVg7DQoNCiRzdHIgPSA8PDxFT1QNCkRST1AgVEFCTEUgSUYgRVhJU1RTIHskcHJlZml4fWNhcHRjaGE7DQpDUkVBVEUgVEFCTEUgeyRwcmVmaXh9Y2FwdGNoYSAoCiAgY2FwdGNoYV9pZCBpbnQoMTEpIHVuc2lnbmVkIE5PVCBOVUxMIGF1dG9faW5jcmVtZW50LAogIGNhcHRjaGFfY29kZSB2YXJjaGFyKDMyKSBOT1QgTlVMTCBkZWZhdWx0ICcnLAogIGNhcHRjaGFfc29sdXRpb24gdmFyY2hhcigzMikgTk9UIE5VTEwgZGVmYXVsdCAnJywKICBjYXB0Y2hhX3RpbWUgaW50KDEwKSB1bnNpZ25lZCBkZWZhdWx0IE5VTEwsCiAgY2FwdGNoYV9pcF9hZGRyZXNzIHZhcmNoYXIoMTYpIGRlZmF1bHQgJzAnLA0KICBjYXB0Y2hhX3VzZXJfYWdlbnQgIHZhcmNoYXIoMTAwKSBkZWZhdWx0ICcnLA0KICBQUklNQVJZIEtFWSAoY2FwdGNoYV9pZCkKKTsNCkVPVDsNCg0KJHN0ciA9ICc8cD4nLmRpc3BsKCdQb3VyIHBvdXZvaXIgdXRpbGlzZXIgY2UgcGx1Z2luIGFudGktc3BhbSwgY29tbWVuY2V6IHBhciBleOljdXRlciBsZXMgaW5zdHJ1Y3Rpb25zIFNRTCBzdWl2YW50ZXMnKS4nJm5ic3A7OjwvcD4nLg0KCSc8ZmllbGRzZXQgY2xhc3M9ImNsZWFyIj48bGVnZW5kPicuZGlzcGwoJ3JlcXXqdGVzIFNRTCcpLic8L2xlZ2VuZD48cHJlPicgLiAkc3RyIC4nPC9wcmU+PC9maWVsZHNldD48YnIgLz4nLg0KCSc8cD4nLmRpc3BsKCdBam91dGV6IGVuc3VpdGUgbGUgY29kZSBxdWkgc3VpdCBkYW5zIGxlIGZvcm11bGFpcmUgZGUgdm9zIGJpbGxldHMnKS4nJm5ic3A7OjwvcD4nLg0KCSc8ZmllbGRzZXQgY2xhc3M9ImNsZWFyIj48bGVnZW5kPicuZGlzcGwoJ2NvZGUgSFRNTC9QSFAnKS4nPC9sZWdlbmQ+PHByZT4nLiJcbiIuDQoJJyZsdDtwIGNsYXNzPSJmaWVsZCImZ3Q7DQogICZsdDtsYWJlbCBmb3I9ImRjX2NhcHRjaGEiJmd0OyZsdDs/cGhwIGRjQ2FwdGNoYTo6cXVlc3Rpb24oKTsgPyZndDsmbHQ7L2xhYmVsJmd0OycuIlxuIi4NCicgICZsdDs/cGhwIGRjQ2FwdGNoYTo6ZmllbGQoKTsgPyZndDsNCiZsdDsvcCZndDsnLg0KCSc8L3ByZT48L2ZpZWxkc2V0PicuIlxuIi4NCgknPHA+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+Jm5ic3A7OiAnLmRpc3BsKCdsZSBmb3JtdWxhaXJlIGRlcyBiaWxsZXRzIHNlIHRyb3V2ZSBn6W7pcmFsZW1lbnQgZGFucyBsZSBmaWNoaWVyICcpLg0KCSc8ZW0+Zm9ybS5waHA8L2VtPiAnLmRpc3BsKCdkZSB2b3RyZSB0aOhtZSBvdSBkdSB0aOhtZSAnKS4nPGVtPmRlZmF1bHQ8L2VtPi48L3A+PGJyIC8+JzsNCg0KYnVmZmVyOjpzdHIoJHN0cik7DQoNCmJ1ZmZlcjo6c3RyKCc8aDM+UGVyc29ubmFsaXNhdGlvbjwvaDM+Jyk7DQokc3RyID0NCic8cD4nLmRpc3BsKCdQbHVzaWV1cnMgdmFyaWFibGVzIGRhbnMgbGUgZmljaGllciAnKS4nPGVtPmNvbmZpZy5waHA8L2VtPiAnLg0KCWRpc3BsKCdkZSBjZSBwbHVnaW4gcGVybWV0dGVudCBkZSBwZXJzb25uYWxpc2VyIHNvbiBmb25jdGlvbm5lbWVudCcpLicmbmJzcDs6PC9wPicuDQoJJzx1bD4nLg0KCSc8bGk+PGNvZGU+JEdMT0JBTFNbXCdjYXB0Y2hhX2xldmVsXCddPC9jb2RlPiAnLmRpc3BsKCcodmFsZXVyIG51belyaXF1ZSBkXCdhY2Nlc3NpYmlsaXTpIGR1IGNhcHRjaGEpIDogJy4NCgknPHVsPjxsaT48c3Ryb25nPjA8L3N0cm9uZz4gKHBhciBk6WZhdXQpOiBjYXB0Y2hhIHNvdXMgZm9ybWUgZGUgdGV4dGUgYWNjZXNzaWJsZTwvbGk+PGxpPjxzdHJvbmc+MTwvc3Ryb25nPiA6IGNoaWZmcmVzIHNvdXMgZm9ybWUgZFwnaW1hZ2VzIFBORzwvbGk+PGxpPjxzdHJvbmc+Mjwvc3Ryb25nPiA6IGltYWdlIEdEIGJyb3VpbGzpZSAobGlicmFpcmllIEdEIG7pY2Vzc2FpcmUpPC9saT48L3VsPicpIC4gJzwvbGk+JyAuDQoJJzxsaT48Y29kZT4kR0xPQkFMU1tcJ2NhcHRjaGFfbG9nc1wnXTwvY29kZT4gJy5kaXNwbCgnKGNoZW1pbiB2ZXJzIGxlIGZpY2hpZXIgZGUgbG9nKSA6ICcuDQoJJ3RvdXRlcyBsZXMgZXJyZXVycyAodGVudGF0aXZlIGRlIHNwYW0/KSBzb250IGpvdXJuYWxpc+llcyBkYW5zIGxlIGZpY2hpZXIgaW5kaXF16S4gJy4NCgknUmVuc2VpZ25leiB1biBjaGVtaW4gdmlkZSBwb3VyIGTpc2FjdGl2ZXIgbGEgam91cm5hbGlzYXRpb24gZGVzIOljaGVjcycpLic8L2xpPicgLg0KCSc8bGk+PGNvZGU+JEdMT0JBTFNbXCdjYXB0Y2hhX215X3dvcmRzXCddPC9jb2RlPiAnLmRpc3BsKCcodGFibGVhdSBkZSBtb3RzIHBlcnNvbm5lbHMpIDogJy4NCgknYWpvdXRleiBkZXMgbW90cyBxdWkgcG91cnJvbnQg6nRyZSB1dGlsaXPpcyBwYXIgbGUgY2FwdGNoYScpLic8L2xpPicuDQoJJzxsaT48Y29kZT4kR0xPQkFMU1tcJ215X2NhcHRjaGFcJ108L2NvZGU+ICcuZGlzcGwoJyh0YWJsZWF1IGRlIHF1ZXN0aW9ucyBwZXJzb25uZWxsZXMpIDogJy4NCgknYWpvdXRleiB2b3MgcHJvcHJlcyBxdWVzdGlvbnMvculwb25zZXMgYXUgY2FwdGNoYScpLic8L2xpPicuDQoJJzxsaT48Y29kZT4kR0xPQkFMU1tcJ2NhcHRjaGFfZm9uY3Rpb25zXCddPC9jb2RlPiAnLmRpc3BsKCcodGFibGVhdSBkZSB0eXBlcyBkZSBxdWVzdGlvbikgOiAnLg0KCSdk6WZpbmlzc2V6IGxlcyB0eXBlcyBkZSBxdWVzdGlvbiB1dGlsaXNhYmxlIHBhciBEb3RjbGVhcicpLic8L2xpPicuDQoNCgknPC91bD4nOw0KYnVmZmVyOjpzdHIoJHN0cik7DQoNCj8+";s:19:"captcha/postcon.php";s:4568:"PD9waHANCg0KIyAqKioqKiBCRUdJTiBMSUNFTlNFIEJMT0NLICoqKioqDQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIERvdENsZWFyLg0KIyBDb3B5cmlnaHQgKGMpIDIwMDQgT2xpdmllciBNZXVuaWVyIGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMNCiMgcmVzZXJ2ZWQuDQojDQojIERvdENsZWFyIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRG90Q2xlYXIgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIw0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIERvdENsZWFyOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0ENCiMNCiMgKioqKiogRU5EIExJQ0VOU0UgQkxPQ0sgKioqKioNCg0Kc3JhbmQoKGRvdWJsZSltaWNyb3RpbWUoKSoxMDAwMDAwKTsNCiRHTE9CQUxTWydjYXB0Y2hhX2xldmVsJ10gPSAwOw0KJEdMT0JBTFNbJ2NhcHRjaGFfZm9uY3Rpb25zJ10gPSBhcnJheSgpOw0KJEdMT0JBTFNbJ2NhcHRjaGFfbXlfd29yZHMnXSA9IGFycmF5KCk7DQokR0xPQkFMU1snY2FwdGNoYV9sb2dzJ10gPSAnJzsNCiRHTE9CQUxTWydteV9jYXB0Y2hhJ10gPSBhcnJheSgpOw0KDQpsMTBuOjpzZXQoZGlybmFtZShfX0ZJTEVfXykuJy9sMTBuLycuRENfTEFORy4oKGRjX2VuY29kaW5nID09ICdVVEYtOCcpID8gJy11dGY4JzonJykuJy90b2MnKTsNCnJlcXVpcmUoZGlybmFtZShfX0ZJTEVfXykuJy9jb25maWcucGhwJyk7DQoNCiRHTE9CQUxTWydjYXB0Y2hhX2xldmVsJ10gPSBpc3NldCgkR0xPQkFMU1snY2FwdGNoYV9sZXZlbCddKSA/IGludHZhbCgkR0xPQkFMU1snY2FwdGNoYV9sZXZlbCddKSA6IDA7DQppZiAoICgkR0xPQkFMU1snY2FwdGNoYV9sZXZlbCddIDwgMCkgfHwgKCRHTE9CQUxTWydjYXB0Y2hhX2xldmVsJ10gPiAyKSApICRHTE9CQUxTWydjYXB0Y2hhX2xldmVsJ109MDsNCg0KDQpmdW5jdGlvbiBtb3RzMmwxMG4oJHN0cikNCnsNCgkkc3RyID0gX18oJHN0cik7DQoJJHRyYW5zID0gZ2V0X2h0bWxfdHJhbnNsYXRpb25fdGFibGUoSFRNTF9FTlRJVElFUyk7DQoJJHRyYW5zID0gYXJyYXlfZmxpcCgkdHJhbnMpOw0KCSRzdHIgPSBzdHJ0cigkc3RyLCAkdHJhbnMpOw0KCWlmIChkY19lbmNvZGluZyA9PSAnVVRGLTgnKSAkc3RyID0gdXRmOF9kZWNvZGUoJHN0cik7CglyZXR1cm4NJHN0cjsKfQ0KDQppZiAoICgkbW9kZSA9PSAncG9zdCcpICYmICRwb3N0X2lkICkNCnsNCgkkeG1sX3BhdGggPSBkaXJuYW1lKF9fRklMRV9fKS4nL2Rlc2MueG1sJzsNCgkkcGx1Z2luID0gbmV3IHBsdWdpbnMoJycpOw0KCSRwX2luZm8gPSAkcGx1Z2luLT5fZ2V0UGx1Z2luSW5mbygkeG1sX3BhdGgpOw0KCSRHTE9CQUxTWydjYXB0Y2hhX2VuYWJsZSddID0gKGludGVnZXIpICAoIWVtcHR5KCRwX2luZm8pICYmICFlbXB0eSgkcF9pbmZvWydhY3RpdmUnXSkpOw0KCWlmICggIWVtcHR5KCRfR0VUWydpbWdfY2FwdGNoYSddKSApDQoJew0KCQlkY0NhcHRjaGE6OnNob3dfY2FwdGNoYV9pbWcoJF9HRVRbJ2ltZ19jYXB0Y2hhJ10pOw0KCQlkaWUoKTsNCgl9DQoNCglpZiAoICFlbXB0eSgkR0xPQkFMU1snY2FwdGNoYV9lbmFibGUnXSkgJiYgIWVtcHR5KCRfUE9TVFsncmVkaXInXSkgJiYgZW1wdHkoJF9QT1NUWydwcmV2aWV3J10pICkNCgl7DQoJCWlmICggZW1wdHkoJF9QT1NUWydkY19jYXB0Y2hhX2NvZGUnXSkgfHwgZW1wdHkoJF9QT1NUWydkY19jYXB0Y2hhJ10pIHx8DQoJCSAgIWRjQ2FwdGNoYTo6Y2hlY2soJF9QT1NUWydkY19jYXB0Y2hhX2NvZGUnXSwgKGRjX2VuY29kaW5nID09ICdVVEYtOCcpID8gdXRmOF9kZWNvZGUoJF9QT1NUWydkY19jYXB0Y2hhJ10pIDogJF9QT1NUWydkY19jYXB0Y2hhJ10gKSApDQoJCXsvL2NhcHRjaGEgaW5jb3JyZWN0DQoNCgkJCXVuc2V0KCRfUE9TVFsncmVkaXInXSk7DQoNCgkJCS8vbWVzc2FnZSBkJ2VycmV1cg0KCQkJJEdMT0JBTFNbJ2Vycm9yX2NhcHRjaGEnXSA9ICRHTE9CQUxTWydmb3JtX2VyciddID0gX18oJ3Lpc3VsdGF0IGR1IGNhcHRjaGEgaW5jb3JyZWN0Jyk7DQoNCgkJCWlmICggIWVtcHR5KCRHTE9CQUxTWydjYXB0Y2hhX2xvZ3MnXSkgKQ0KCQkJew0KCQkJLy9qb3VybmFsaXNhdGlvbiAodGVudGF0aXZlIGRlIHNwYW0gZGUgY29tbWVudGFpcmUgPykNCgkJCQkkZmlsZSA9ICRHTE9CQUxTWydjYXB0Y2hhX2xvZ3MnXTsNCgkJCQlpZiAoIGZpbGVfZXhpc3RzKCRmaWxlKSAmJiAoZmlsZXNpemUoJGZpbGUpID4gMTAwMDApICkNCgkJCQl7DQoJCQkJCUB1bmxpbmsoJGZpbGUpOw0KCQkJCX0NCgkJCQkkc3RyID0gJ1snIC4gZGF0ZSgnWS9kL20gSDptOnMnKSAuICddICcgLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuICIgXHQiIC4gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddIC4gJyAoJyAuICRfU0VSVkVSWydSRVFVRVNUX1VSSSddIC4gJyknIC4gIlxuXHRcdCIgLiBzdHJfcmVwbGFjZSgiXG4iLCAiXG5cdFx0IiwgJF9QT1NUWydjX2NvbnRlbnQnXSkuIlxuIjsNCgkJCQlAZXJyb3JfbG9nKCRzdHIsIDMsICRmaWxlKTsNCgkJCX0NCgkJfQ0KCX0NCn0NCg0KJGNfbm9tID0gZW1wdHkoJGNfbm9tKSAmJiAhZW1wdHkoJF9QT1NUWydjX25vbSddKSA/ICRfUE9TVFsnY19ub20nXSA6ICRjX25vbTsNCiRjX21haWwgPSBlbXB0eSgkY19tYWlsKSAmJiAhZW1wdHkoJF9QT1NUWydjX21haWwnXSkgPyAkX1BPU1RbJ2NfbWFpbCddIDogJGNfbWFpbDsNCiRjX3NpdGUgPSBlbXB0eSgkY19zaXRlKSAmJiAhZW1wdHkoJF9QT1NUWydjX3NpdGUnXSkgPyAkX1BPU1RbJ2Nfc2l0ZSddIDogJGNfc2l0ZTsNCiRjX2NvbnRlbnQgPSBlbXB0eSgkY19jb250ZW50KSAmJiAhZW1wdHkoJF9QT1NUWydjX2NvbnRlbnQnXSkgPyAkX1BPU1RbJ2NfY29udGVudCddIDogJGNfY29udGVudDsNCg0KPz4=";s:17:"captcha/ChangeLog";s:232:"LSAyMDA1LTAzLTMxCglJbml0aWFsIHZlcnNpb24gMS4wCgotIDIwMDUtMDQtMDQKCVZlcnNpb24gMS4xCgktIGNvcnJlY3Rpb24gZGUgYnVncwoJLSBpbnRlcm5hbGlzYXRpb24KCS0gcG9zc2liaWxpdGUgZGUgY2FwdGNoYSBncmFwaGlxdWUgSlBHL1BORyAobGlicmFpcmllIEdEIGZhY3VsdGF0aWYpCg==";s:15:"captcha/COPYING";s:24012:"CQkgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKCQkgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKCiBDb3B5cmlnaHQgKEMpIDE5ODksIDE5OTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICAgICAgICAgICAgICAgICAgICAgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCgkJCSAgICBQcmVhbWJsZQoKICBUaGUgbGljZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYXJlIGRlc2lnbmVkIHRvIHRha2UgYXdheSB5b3VyCmZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljCkxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGZyZWUKc29mdHdhcmUtLXRvIG1ha2Ugc3VyZSB0aGUgc29mdHdhcmUgaXMgZnJlZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFRoaXMKR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcHBsaWVzIHRvIG1vc3Qgb2YgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbidzIHNvZnR3YXJlIGFuZCB0byBhbnkgb3RoZXIgcHJvZ3JhbSB3aG9zZSBhdXRob3JzIGNvbW1pdCB0bwp1c2luZyBpdC4gIChTb21lIG90aGVyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBzb2Z0d2FyZSBpcyBjb3ZlcmVkIGJ5CnRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoMCgkJICAgIEdOVSBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCiAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04gQU5EIE1PRElGSUNBVElPTgoKICAwLiBUaGlzIExpY2Vuc2UgYXBwbGllcyB0byBhbnkgcHJvZ3JhbSBvciBvdGhlciB3b3JrIHdoaWNoIGNvbnRhaW5zCmEgbm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBzYXlpbmcgaXQgbWF5IGJlIGRpc3RyaWJ1dGVkCnVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGUgIlByb2dyYW0iLCBiZWxvdywKcmVmZXJzIHRvIGFueSBzdWNoIHByb2dyYW0gb3Igd29yaywgYW5kIGEgIndvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0iCm1lYW5zIGVpdGhlciB0aGUgUHJvZ3JhbSBvciBhbnkgZGVyaXZhdGl2ZSB3b3JrIHVuZGVyIGNvcHlyaWdodCBsYXc6CnRoYXQgaXMgdG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgUHJvZ3JhbSBvciBhIHBvcnRpb24gb2YgaXQsCmVpdGhlciB2ZXJiYXRpbSBvciB3aXRoIG1vZGlmaWNhdGlvbnMgYW5kL29yIHRyYW5zbGF0ZWQgaW50byBhbm90aGVyCmxhbmd1YWdlLiAgKEhlcmVpbmFmdGVyLCB0cmFuc2xhdGlvbiBpcyBpbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4KdGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKSAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuCgpBY3Rpdml0aWVzIG90aGVyIHRoYW4gY29weWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gYXJlIG5vdApjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mCnJ1bm5pbmcgdGhlIFByb2dyYW0gaXMgbm90IHJlc3RyaWN0ZWQsIGFuZCB0aGUgb3V0cHV0IGZyb20gdGhlIFByb2dyYW0KaXMgY292ZXJlZCBvbmx5IGlmIGl0cyBjb250ZW50cyBjb25zdGl0dXRlIGEgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSAoaW5kZXBlbmRlbnQgb2YgaGF2aW5nIGJlZW4gbWFkZSBieSBydW5uaW5nIHRoZSBQcm9ncmFtKS4KV2hldGhlciB0aGF0IGlzIHRydWUgZGVwZW5kcyBvbiB3aGF0IHRoZSBQcm9ncmFtIGRvZXMuCgogIDEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncwpzb3VyY2UgY29kZSBhcyB5b3UgcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwgcHJvdmlkZWQgdGhhdCB5b3UKY29uc3BpY3VvdXNseSBhbmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZQpjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdCBhbGwgdGhlCm5vdGljZXMgdGhhdCByZWZlciB0byB0aGlzIExpY2Vuc2UgYW5kIHRvIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsKYW5kIGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFByb2dyYW0gYSBjb3B5IG9mIHRoaXMgTGljZW5zZQphbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKWW91IG1heSBjaGFyZ2UgYSBmZWUgZm9yIHRoZSBwaHlzaWNhbCBhY3Qgb2YgdHJhbnNmZXJyaW5nIGEgY29weSwgYW5kCnlvdSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5nZSBmb3IgYSBmZWUuCgogIDIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIFByb2dyYW0gb3IgYW55IHBvcnRpb24Kb2YgaXQsIHRodXMgZm9ybWluZyBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0sIGFuZCBjb3B5IGFuZApkaXN0cmlidXRlIHN1Y2ggbW9kaWZpY2F0aW9ucyBvciB3b3JrIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDEKYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKCiAgICBhKSBZb3UgbXVzdCBjYXVzZSB0aGUgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKICAgIHN0YXRpbmcgdGhhdCB5b3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCgogICAgYikgWW91IG11c3QgY2F1c2UgYW55IHdvcmsgdGhhdCB5b3UgZGlzdHJpYnV0ZSBvciBwdWJsaXNoLCB0aGF0IGluCiAgICB3aG9sZSBvciBpbiBwYXJ0IGNvbnRhaW5zIG9yIGlzIGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSBvciBhbnkKICAgIHBhcnQgdGhlcmVvZiwgdG8gYmUgbGljZW5zZWQgYXMgYSB3aG9sZSBhdCBubyBjaGFyZ2UgdG8gYWxsIHRoaXJkCiAgICBwYXJ0aWVzIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuCgogICAgYykgSWYgdGhlIG1vZGlmaWVkIHByb2dyYW0gbm9ybWFsbHkgcmVhZHMgY29tbWFuZHMgaW50ZXJhY3RpdmVseQogICAgd2hlbiBydW4sIHlvdSBtdXN0IGNhdXNlIGl0LCB3aGVuIHN0YXJ0ZWQgcnVubmluZyBmb3Igc3VjaAogICAgaW50ZXJhY3RpdmUgdXNlIGluIHRoZSBtb3N0IG9yZGluYXJ5IHdheSwgdG8gcHJpbnQgb3IgZGlzcGxheSBhbgogICAgYW5ub3VuY2VtZW50IGluY2x1ZGluZyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBhCiAgICBub3RpY2UgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSAob3IgZWxzZSwgc2F5aW5nIHRoYXQgeW91IHByb3ZpZGUKICAgIGEgd2FycmFudHkpIGFuZCB0aGF0IHVzZXJzIG1heSByZWRpc3RyaWJ1dGUgdGhlIHByb2dyYW0gdW5kZXIKICAgIHRoZXNlIGNvbmRpdGlvbnMsIGFuZCB0ZWxsaW5nIHRoZSB1c2VyIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzCiAgICBMaWNlbnNlLiAgKEV4Y2VwdGlvbjogaWYgdGhlIFByb2dyYW0gaXRzZWxmIGlzIGludGVyYWN0aXZlIGJ1dAogICAgZG9lcyBub3Qgbm9ybWFsbHkgcHJpbnQgc3VjaCBhbiBhbm5vdW5jZW1lbnQsIHlvdXIgd29yayBiYXNlZCBvbgogICAgdGhlIFByb2dyYW0gaXMgbm90IHJlcXVpcmVkIHRvIHByaW50IGFuIGFubm91bmNlbWVudC4pCgwKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoMCiAgNC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCmV4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQKb3RoZXJ3aXNlIHRvIGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGlzCnZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4KSG93ZXZlciwgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsIG9yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIKdGhpcyBMaWNlbnNlIHdpbGwgbm90IGhhdmUgdGhlaXIgbGljZW5zZXMgdGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2gKcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgoKICA1LiBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlLCBzaW5jZSB5b3UgaGF2ZSBub3QKc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IKZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBvciBpdHMgZGVyaXZhdGl2ZSB3b3Jrcy4gIFRoZXNlIGFjdGlvbnMgYXJlCnByb2hpYml0ZWQgYnkgbGF3IGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkKbW9kaWZ5aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0pLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzbywgYW5kCmFsbCBpdHMgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBtb2RpZnlpbmcKdGhlIFByb2dyYW0gb3Igd29ya3MgYmFzZWQgb24gaXQuCgogIDYuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUKb3JpZ2luYWwgbGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSBvciBtb2RpZnkgdGhlIFByb2dyYW0gc3ViamVjdCB0bwp0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlcgpyZXN0cmljdGlvbnMgb24gdGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uCllvdSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHRvCnRoaXMgTGljZW5zZS4KCiAgNy4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAppbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLApjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hldGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50IG9yCm90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QKZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91Cm1heSBub3QgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQKbGljZW5zZSB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieQphbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4KdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0bwpyZWZyYWluIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtLgoKSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCmFueSBwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8KYXBwbHkgYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hvbGUgaXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIKY2lyY3Vtc3RhbmNlcy4KCkl0IGlzIG5vdCB0aGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlvdSB0byBpbmZyaW5nZSBhbnkKcGF0ZW50cyBvciBvdGhlciBwcm9wZXJ0eSByaWdodCBjbGFpbXMgb3IgdG8gY29udGVzdCB2YWxpZGl0eSBvZiBhbnkKc3VjaCBjbGFpbXM7IHRoaXMgc2VjdGlvbiBoYXMgdGhlIHNvbGUgcHVycG9zZSBvZiBwcm90ZWN0aW5nIHRoZQppbnRlZ3JpdHkgb2YgdGhlIGZyZWUgc29mdHdhcmUgZGlzdHJpYnV0aW9uIHN5c3RlbSwgd2hpY2ggaXMKaW1wbGVtZW50ZWQgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiAgTWFueSBwZW9wbGUgaGF2ZSBtYWRlCmdlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKdGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZwp0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QKaW1wb3NlIHRoYXQgY2hvaWNlLgoKVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCmJlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgoMCiAgOC4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBQcm9ncmFtIGlzIHJlc3RyaWN0ZWQgaW4KY2VydGFpbiBjb3VudHJpZXMgZWl0aGVyIGJ5IHBhdGVudHMgb3IgYnkgY29weXJpZ2h0ZWQgaW50ZXJmYWNlcywgdGhlCm9yaWdpbmFsIGNvcHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIExpY2Vuc2UKbWF5IGFkZCBhbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nCnRob3NlIGNvdW50cmllcywgc28gdGhhdCBkaXN0cmlidXRpb24gaXMgcGVybWl0dGVkIG9ubHkgaW4gb3IgYW1vbmcKY291bnRyaWVzIG5vdCB0aHVzIGV4Y2x1ZGVkLiAgSW4gc3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzCnRoZSBsaW1pdGF0aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLgoKICA5LiBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucwpvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4gIFN1Y2ggbmV3IHZlcnNpb25zIHdpbGwKYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvCmFkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgoKRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUgUHJvZ3JhbQpzcGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQgImFueQpsYXRlciB2ZXJzaW9uIiwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zCmVpdGhlciBvZiB0aGF0IHZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlClNvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YKdGhpcyBMaWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLgoKICAxMC4gSWYgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUgcGFydHMgb2YgdGhlIFByb2dyYW0gaW50byBvdGhlciBmcmVlCnByb2dyYW1zIHdob3NlIGRpc3RyaWJ1dGlvbiBjb25kaXRpb25zIGFyZSBkaWZmZXJlbnQsIHdyaXRlIHRvIHRoZSBhdXRob3IKdG8gYXNrIGZvciBwZXJtaXNzaW9uLiAgRm9yIHNvZnR3YXJlIHdoaWNoIGlzIGNvcHlyaWdodGVkIGJ5IHRoZSBGcmVlClNvZnR3YXJlIEZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHdlIHNvbWV0aW1lcwptYWtlIGV4Y2VwdGlvbnMgZm9yIHRoaXMuICBPdXIgZGVjaXNpb24gd2lsbCBiZSBndWlkZWQgYnkgdGhlIHR3byBnb2FscwpvZiBwcmVzZXJ2aW5nIHRoZSBmcmVlIHN0YXR1cyBvZiBhbGwgZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kCm9mIHByb21vdGluZyB0aGUgc2hhcmluZyBhbmQgcmV1c2Ugb2Ygc29mdHdhcmUgZ2VuZXJhbGx5LgoKCQkJICAgIE5PIFdBUlJBTlRZCgogIDExLiBCRUNBVVNFIFRIRSBQUk9HUkFNIElTIExJQ0VOU0VEIEZSRUUgT0YgQ0hBUkdFLCBUSEVSRSBJUyBOTyBXQVJSQU5UWQpGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4KT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUwpQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRApPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgpNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTClRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTSBJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUKUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsClJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxMi4gSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJTiBXUklUSU5HCldJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTUFZIE1PRElGWSBBTkQvT1IKUkVESVNUUklCVVRFIFRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywKSU5DTFVESU5HIEFOWSBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HCk9VVCBPRiBUSEUgVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKVE8gTE9TUyBPRiBEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZCllPVSBPUiBUSElSRCBQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSClBST0dSQU1TKSwgRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCgoJCSAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgwKCSAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbApQdWJsaWMgTGljZW5zZSBpbnN0ZWFkIG9mIHRoaXMgTGljZW5zZS4K";s:14:"captcha/README";s:1248:"Q2FwdGNoYSBmb3IgRG90Q2xlYXIKIENvcHlyaWdodCAoQykgMjAwNSBEYXNoIGFuZCBjb250cmlidXRvcnMKIFNvbWUgb2YgdGhlIGNvZGUgaXMgYmFzZWQgb24gOgogICAtIERvdGNsZWFyIENvcHlyaWdodCAoYykgMjAwNCBPbGl2aWVyIE1ldW5pZXIgYW5kIGNvbnRyaWJ1dG9ycwoKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCgoKQXV0aG9yIDogRGFzaApNYWluIHNpdGUgOiBodHRwOi8vd3d3LmF0ZWxpZXJwaHA1LmNvbQpFbWFpbCA6IGRhc2hAYXRlbGllcnBocDUuY29tCg==";}}