<?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>Eridu</name>
	<version>1.1.beta.5</version>
    <mincmsversion>2.1.5</mincmsversion>
	<help><![CDATA[PGRpdiBpZD0icGFnZV90YWJzIj4NCiAgPGRpdiBpZD0iZ2VuZXJhbCI+DQogICAgV2hhdCBJcyBJdA0KICA8L2Rpdj4gICAgDQogIDxkaXYgaWQ9ImhvdyI+DQogICAgSG93IFRvIFVzZSBJdA0KICA8L2Rpdj4NCiAgPGRpdiBpZD0ibWV0aG9kcyI+DQogIE1ldGhvZHMNCjwvZGl2PiAgICAgICANCiAgPGRpdiBpZD0iYWJvdXQiPg0KICAgIEFib3V0DQogIDwvZGl2Pg0KPC9kaXY+DQoNCg0KPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4NCg0KDQo8ZGl2IGlkPSJwYWdlX2NvbnRlbnQiPg0KDQoNCg0KICA8ZGl2IGlkPSJnZW5lcmFsX2MiPg0KICA8YmxvY2txdW90ZSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmNmY2ZjIDtwYWRkaW5nOiAxcHggM3B4IDhweCAxNnB4OyBib3JkZXItbGVmdDogNXB4IHNvbGlkICM1NzdkYTQ7Ij4NCiAgPGg0PjxlbT48c3Ryb25nPkVyaWR1PC9zdHJvbmc+PC9lbT48L2g0Pg0KICA8cD48ZW0+PHN0cm9uZz5FcmlkdTwvc3Ryb25nPiBpcyBhbiBhbmNpZW50IFN1bWVyaWFuIGNpdHkgaW4gd2hhdCBpcyBub3cgVGVsbCBBYnUgU2hhaHJhaW4sIERoaSBRYXIgR292ZXJub3JhdGUsIElyYXEuPC9lbT48L3A+DQogIDxwPjxlbT48c3Ryb25nPkVyaWR1PC9zdHJvbmc+IHdhcyBsb25nIGNvbnNpZGVyZWQgdGhlIGVhcmxpZXN0IGNpdHkgaW4gc291dGhlcm4gTWVzb3BvdGFtaWEsIGFuZCBpcyBzdGlsbCB0b2RheSBhcmd1ZWQgdG8gYmUgdGhlIG9sZGVzdCBjaXR5IGluIHRoZSB3b3JsZC48L2VtPjwvcD4NCiAgPHA+PGVtPlsuLi5dIFRoZSBFZ3lwdG9sb2dpc3QgPHN0cm9uZz5EYXZpZCBSb2hsPC9zdHJvbmc+LCBoYXMgY29uamVjdHVyZWQgdGhhdCA8c3Ryb25nPkVyaWR1PC9zdHJvbmc+LCB0byB0aGUgc291dGggb2YgVXIsIHdhcyB0aGUgb3JpZ2luYWwgPHN0cm9uZz5CYWJlbDwvc3Ryb25nPiBhbmQgc2l0ZSBvZiB0aGUgPHN0cm9uZz5Ub3dlciBvZiBCYWJlbDwvc3Ryb25nPiwgcmF0aGVyIHRoYW4gdGhlIGxhdGVyIGNpdHkgb2YgPHN0cm9uZz5CYWJ5bG9uPC9zdHJvbmc+IFsuLi5dPC9lbT48L3A+DQogIDxjaXRlPldpa2lwZWRpYTwvY2l0ZT4NCjwvYmxvY2txdW90ZT4NCiAgICA8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCiAgICA8cD5UaGlzIG1vZHVsZSBtYW5hZ2VzIG11bHRpcGxlcyBsYW5ndWFnZXMgZm9yIHRoZSBmcm9udGVuZCBhbmQgcHJvdmlkZXMgbmF2aWdhdGlvbiB0aHJvdWdoIHRoZSBsYW5ndWFnZXMuPC9wPg0KICAgIDxwPkl0cyBhIGZvcmsgb2YgPHN0cm9uZz5CYWJlbDwvc3Ryb25nPiB3aGljaCwgYnkgdGhlIHRpbWUgb2YgdGhpcyB3cml0dGluZywgc2VlbXMgdG8gYmUgPGVtPmFiYW5kb24td2FyZTwvZW0+LjwvcD4NCiAgICA8cD5Cb3RoIHRoaXMgbW9kdWxlIGFuZCBCYWJlbCB1c2UgYW4gYXBwcm9hY2ggdG8gbXVsdGlsaW5ndWFsIHNpdGVzIGNhbGxlZCAic2VwYXJhdGUgdHJlZSBicmFuY2hlcyIsIHdoaWNoIGhhcyBiZWVuIGRldmVsb3BwZWQgYnkgb3RoZXIgY21zbXMgZGV2ZWxvcGVycyAobmFtZWx5IE1hcmNvcyBDcnV6IC0gc2VlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZy92aWV3dG9waWMucGhwP3Q9MTkwOTkjcDk0NzQ5IiB0YXJnZXQ9Il9ibGFuayI+dGhpcyB0b3BpYzwvYT4uPC9wPg0KICAgIDxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHRocm91Z2ggYSBmZXcgY2hhbmdlcyBhbmQgaGFzIGFuIGV4dGVuc2l2ZSByb2FkbWFwIGZvciBmdXR1cmUgcmVsZWFzZXMuIFRoZXJlIG1heSBiZSBhIGZldyBtaW5vciBnbGl0Y2hlcyBidXQgaXQgaGFzIGJlZW4gdXNlZCBpbiBwcm9kdWN0aW9uIHNpdGVzIGZvciBhbG1vc3QgYSB5ZWFyIGFscmVhZHkuIEl0IGhhcyBwcm92ZW4gdG8gYmUgcXVpdGUgc3RhYmxlIHNvIGZhci48L3A+DQogIDwvZGl2Pg0KICANCg0KDQogIDxkaXYgaWQ9Imhvd19jIj4NCiAgICA8aDM+SG93IERvIEkgVXNlIEl0PzwvaDM+DQogICAgPGg0PlRyZWUgYnJhbmNoZXM8L2g0Pg0KICAgIDxwPlRoaXMgbW9kdWxlIHVzZXMgYW4gYXBwcm9hY2ggdG8gbXVsdGlsaW5ndWFsIHNpdGVzIGNhbGxlZCA8ZW0+PHN0cm9uZz4ic2VwYXJhdGUgdHJlZSBicmFuY2hlcyI8L3N0cm9uZz48L2VtPiwgd2hpY2ggaGFzIGJlZW4gZGV2ZWxvcHBlZCBieSBvdGhlciBjbXNtcyBkZXZlbG9wZXJzIChuYW1lbHkgPHN0cm9uZz5NYXJjb3MgQ3J1ejwvc3Ryb25nPiAtIHNlZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcvdmlld3RvcGljLnBocD90PTE5MDk5I3A5NDc0OSIgdGFyZ2V0PSJfYmxhbmsiPnRoaXMgdG9waWM8L2E+KS48L3A+DQogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+PHA+U2hvdWxkIHlvdSBuZWVkIHRvIHVzZSBpdCBpbiB5b3VyIHRlbXBsYXRlcywgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgY29kZSB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgPGVtPjxzdHJvbmc+JHBhZ2VfbGFuZyB2YXJpYWJsZTwvc3Ryb25nPjwvZW0+LjwvcD4NCiAgICA8cD5Nb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBsYW5ndWFnZSBjYW4gYWxzbyBiZSByZXRyaWV2ZWQgdXNpbmcgdGhlIDxlbT48c3Ryb25nPiRwYWdlX2xhbmdfaW5mbyBvYmplY3Q8L3N0cm9uZz48L2VtPiAod2l0aCB0aGUgc2FtZSBhdHRyaWJ1dGVzIGFzIGluIHRoZSBtZW51IHRlbXBsYXRlcykuPC9wPjwvZGl2Pg0KICAgIA0KICAgIDxoND5QYXJ0IDE6IHNldHRpbmcgdXAgdGhlIHBhZ2VzPC9oND4gICAgICANCiAgICA8cD5UbyB1c2UgdGhpcywgeW91IHdpbGwgaGF2ZSB0byBjcmVhdGUgZGlmZmVyZW50IHJvb3QgcGFnZXMgZm9yIGVhY2ggbGFuZ3VhZ2UuIEZvciBleGFtcGxlOjwvcD4NCiAgICA8ZmllbGRzZXQ+DQogICAgICA8bGVnZW5kPlNhbXBsZSBTaXRlIFN0cnVjdHVyZTwvbGVnZW5kPg0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPjEuIEVuZ2xpc2gNCiAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPg0KICAgICAgICAgICAgICA8bGk+MS4yLiAybmQgcGFnZTwvbGk+DQogICAgICAgICAgICAgIDxsaT4xLjMuIDNyZCBwYWdlPC9saT4NCiAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgICA8bGk+Mi4gRnJhbiZjY2VkaWw7YWlzDQogICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgIDxsaT4yLjEuIFBhZ2UgMTwvbGk+DQogICAgICAgICAgICAgIDxsaT4yLjIuIFBhZ2UgMjwvbGk+DQogICAgICAgICAgICAgIDxsaT4yLjMuIFBhZ2UgMzwvbGk+DQogICAgICAgICAgICA8L3VsPg0KICAgICAgICAgIDwvbGk+DQogICAgICAgIDwvdWw+DQogICAgPC9maWVsZHNldD4NCg0KICAgIDxwPjxzdHJvbmc+Um9vdCBsYW5ndWFnZTwvc3Ryb25nPiBwYWdlcyA8c3Ryb25nPigxLiBhbmQgMi4pPC9zdHJvbmc+IHNob3VsZCBiZSA8c3Ryb25nPjxlbT5zZWN0aW9uIGhlYWRlcnM8L2VtPjwvc3Ryb25nPi48L3A+DQogICAgICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPllvdSBjYW4gbmFtZSB0aGVtIChhbGlhcyBhbmQgYWxsKSBhbnkgd2F5IHlvdSB3YW50LjwvZGl2Pg0KICAgICANCiAgICA8cD5JbiBvcmRlciB0byBkaXNwbGF5IG1lbnUgY29ycmVjdGx5ICh0aGF0IGlzLCBub3QgdG8gZGlzcGxheSBsYW5ndWFnZSBoZWFkZXIgcGFnZXMgYW5kIHBhZ2VzIGJlbG9uZ2luZyB0byBvdGhlciBsYW5ndWFnZXMpLCBhbGwgeW91IGhhdmUgdG8gZG8gaXMgYWRkIHRoZSA8c3Ryb25nPnN0YXJ0X2xldmVsPScyJzwvc3Ryb25nPiB0byB5b3VyIG1lbnUgdGFnczo8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPnttZW51IHN0YXJ0X2xldmVsPScyJ308L3ByZT48L3A+DQogICAgPGg0PlBhcnQgMjogc2V0dGluZyB1cCB0aGUgbGFuZ3VhZ2VzPC9oND4NCiAgICA8cD5OZXh0LCBnbyB0bzo8L3A+DQogICAgICA8ZmllbGRzZXQ+DQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+PHN0cm9uZz48ZW0+Q29udGVudCAmZ3Q7IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudDwvZW0+PC9zdHJvbmc+PC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgIDwvZmllbGRzZXQ+IA0KICAgIDxwPkZvciBlYWNoIGxhbmd1YWdlLCBjbGljayA8c3Ryb25nPjxlbT5BZGQgTGFuZ3VhZ2U8L2VtPjwvc3Ryb25nPiBhbmQgZW50ZXIgdGhlIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9ucy48cD4NCiAgICA8cD5UaGUgPHN0cm9uZz4iUm9vdCBwYWdlIjwvc3Ryb25nPiBzaG91bGQgYmUgb25lIG9mIHRoZSA8c3Ryb25nPnNlY3Rpb24gaGVhZGVyczwvc3Ryb25nPiB5b3UndmUgY3JlYXRlZCBmb3IgZWFjaCBsYW5ndWFnZSA8c3Ryb25nPigxLkVuZ2xpc2gsIDIuRnJhbiZjY2VkaWw7YWlzKTwvc3Ryb25nPi48L3A+DQogICAgICA8ZmllbGRzZXQ+DQogICAgICA8bGVnZW5kPlJvb3QgUGFnZXMgYW5kIFNlY3Rpb24gSGVhZGVyczwvbGVnZW5kPg0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPjxzdHJvbmc+MS4gRW5nbGlzaDwvc3Ryb25nPiAoc2hvdWxkIGJlIGEgU2VjdGlvbiBIZWFkZXIpDQogICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgIDxsaT4uLi48L2xpPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICAgIDxsaT48c3Ryb25nPjIuIEZyYW4mY2NlZGlsO2Fpczwvc3Ryb25nPiAoc2hvdWxkIGJlIGEgU2VjdGlvbiBIZWFkZXIpDQogICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgIDxsaT4uLi48L2xpPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICAgIDwvZmllbGRzZXQ+DQogICAgPHA+VGhlIDxzdHJvbmc+IkRlZmF1bHQgcGFnZSI8L3N0cm9uZz4gc2hvdWxkIGJlIHRoZSA8c3Ryb25nPmhvbWUgcGFnZTwvc3Ryb25nPiBmb3IgZWFjaCBsYW5ndWFnZS48L3A+DQogICAgPHA+QXMgb2YgdGhlIGxhbmd1YWdlIGNvZGUsIHlvdSBjb3VsZCB1c2UgYW55IDUgY2hhcmFjdGVycyBjb2RlLCBidXQgaW4gb3JkZXIgdG8gcHJvdmlkZSBnb29kIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgbW9kdWxlcywgeW91IHNob3VsZCB1c2UgdGhlIHNhbWUgYXMgQ01TTVMgdXNlcyAoeW91IG1heSB1c2UgdGhlIGRyb3AgZG93biBsaXN0IG9uIHRoZSB0b3AgcmlnaHQgdG8gcGFydGlhbGx5IGZpbGwgdGhlIGZvcm0pLjwvcD4NCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPjxwPldoZW4gcmVhZHksIG1ha2Ugc3VyZSB5b3UgYWN0aXZhdGUgZWFjaCBsYW5ndWFnZS4uLjwvcD48L2Rpdj4NCiAgICANCiAgICA8aDQ+UGFydCAzOiBMYW5ndWFnZSBtZW51PC9oND4NCiAgICA8cD5UbyBnZXQgYSBsYW5ndWFnZSBtZW51LCB5b3UgbWF5IHVzZSB0aGUgZm9sbG93aW5nIHRhZzo8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntFcmlkdSBhY3Rpb249J21lbnUnfTwvcHJlPjwvcD4NCiAgICA8cD5vciwgdG8gdXNlIGEgdGVtcGxhdGUgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCBvbmU6PC9wPg0KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57RXJpZHUgYWN0aW9uPSdtZW51JyB0ZW1wbGF0ZT0ndGVtcGxhdGVfbmFtZSd9PC9wcmU+PC9wPg0KICAgIDxwPlRoZSAic2hvdyIgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGNob29zZSB3aGljaCBsYW5ndWFnZXMgc2hvdWxkIGJlIGRpc3BsYXllZC48L3A+DQogICAgPGg0PlBhcnQgNCAob3B0aW9uYWwpIDogQ3VzdG9tIGxhbmd1YWdlIGVudHJpZXM8L2g0Pg0KICAgIDxwPkluIDxzdHJvbmc+dGVtcGxhdGVzPC9zdHJvbmc+LCA8c3Ryb25nPm1vZHVsZSB0ZW1wbGF0ZXM8L3N0cm9uZz4sIDxzdHJvbmc+Z2xvYmFsIGNvbnRlbnQgYmxvY2tzIChHQ0Incyk8L3N0cm9uZz4sIDxzdHJvbmc+Y29udGVudCBibG9ja3M8L3N0cm9uZz4sIGV0YywgeW91IG1heSBuZWVkIHRvIGNoYW5nZSB0aGUgY29udGVudCBkZXBlbmRpbmcgb24gdGhlIGxhbmd1YWdlLjwvcD4NCiAgICA8cD5UaGUgdHJhZGl0aW9uYWwgd2F5IHRvIGRvIHRoaXMgd2FzIHRvIGNyZWF0ZSBjb25kaXRpb25zIHdpdGggdGhlIHBhZ2VfbGFuZyB2YXJpYWJsZTo8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPg0KICAgIHtpZiAkcGFnZV9sYW5nID09ICdlbl9VUyd9DQogICAgICBFbmdsaXNoIHRleHQNCiAgICB7ZWxzZWlmICRwYWdlX2xhbmcgPT0gJ2ZyX0ZSJ30NCiAgICAgIFRleHRlIGVuIGZyYW4mY2NlZGlsO2Fpcw0KICAgIHsvaWZ9PC9wcmU+PC9wPg0KICAgIDxwPldlbGwuLi4geW91IGNhbiBzdGlsbCB1c2UgdGhpcyBtZXRob2QgYnV0LCB3aXRoIHRoZSBtb2R1bGUsIGFub3RoZXIgbW9yZSBjZW50cmFsaXplZCB3YXkgaXMgcHJvdmlkZWQuPC9wPg0KICAgIDxwPkluIHRoZSBhZG1pbiBwYW5lbCBvZiB0aGlzIG1vZHVsZSwgeW91IHdpbGwgZmluZCBhIGxpbmsgdG8gZWRpdCBlbnRyaWVzIGZvciBlYWNoIGxhbmd1YWdlLjwvcD4NCiAgICA8cD48c3Ryb25nPjxlbT5MYW5ndWFnZSBFbnRyaWVzPC9lbT48L3N0cm9uZz4gYXJlIHN0cmluZ3MgdGhhdCBleGlzdHMgZm9yIGVhY2ggbGFuZ3VhZ2UgYnV0IGhvbGQgZGlmZmVyZW50IHRleHQgKG9yIEhUTUwpLjwvcD4NCiAgICA8cD5XaGF0IHlvdSBjYW4gZG8gaXMgdG8gY3JlYXRlIGEgbmV3IDxzdHJvbmc+PGVtPmxhbmd1YWdlIGVudHJ5PC9lbT48L3N0cm9uZz4gKGZvciBleGFtcGxlOiAid2VsY29tZSB0ZXh0IiwgZW50ZXIgaXRzIGNvbnRlbnQgZm9yIGFsbCBsYW5ndWFnZXMsIGFuZCBzaW1wbHkgY2FsbCB0aGUgZW50cnkgd2hlcmV2ZXIgeW91IG5lZWQgaXQgdXNpbmcgdGhlIGRlZmF1bHQgYWN0aW9uOjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e0VyaWR1IHNob3c9J3dlbGNvbWUgdGV4dCd9PC9wcmU+PC9wPg0KICAgIDxwPlNob3VsZCB5b3UgZXZlciBuZWVkIHRvIGVkaXQgdGhlIHN0cmluZ3MgYW5kIGFkZCBsYW5ndWFnZXMsIHlvdSB3aWxsIGZpbmQgdGhpcyBzb2x1dGlvbiB0byBiZSBtb3JlIGhhbmR5LiBCdXQgaWYgeW91IHByZWZlciB0aGUgb2xkIG9uZSwgaXQgd2lsbCB3b3JrIGp1c3QgdGhlIHNhbWUuPC9wPg0KICAgIDxwPllvdSBjYW4gYWxzbyBhc3NpZ24gbGFuZ3VhZ2UgZW50cmllcyB0byBzbWFydHkgdmFyaWFibGVzLCB1c2luZzo8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntFcmlkdSBzaG93PSd3ZWxjb21lIHRleHQnIGFzc2lnbj0nd2VsY29tZSd9PC9wcmU+PC9wPg0KICAgIDxwPm9yLCBpZiB5b3Ugd2FudCB0byBhc3NpZ24gbXVsdGlwbGUgZW50cmllcywgc2VwZXJhdGUgdGhlbSBieSBjb21tYXM6PC9wPg0KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57RXJpZHUgc2hvdz0nZW50cnkxLGVudHJ5MixlbnRyeScgYXNzaWduPSd2YXIxLHZhcjIsdmFyMyd9PC9wcmU+PC9wPg0KICA8L2Rpdj4NCiAgDQoNCg0KICA8ZGl2IGlkPSJtZXRob2RzX2MiPg0KICAgIDxoMz5MYW5ndWFnZSByZWRpcmVjdGlvbiBtZXRob2RzPC9oMz4gIA0KICAgIDxwPlRoZXJlIGFyZSB0d28gcG9zc2libGUgbWV0aG9kcyB0byB0ZWxsIENNU01TIHdoaWNoIHBhZ2UgaXMgdGhlIGVxdWl2YWxlbnQgaW4gYW5vdGhlciBsYW5ndWFnZSBvZiBhIGdpdmVuIHBhZ2UuPC9wPg0KICAgIDxwPiBCeSBkZWZhdWx0LCB0aGUgaGlyZXJhcmNoeSBzb2x1dGlvbiBpcyBhY3RpdmF0ZWQsIGJ1dCB5b3UgY2FuIGNoYW5nZSB0aGF0IGluIHRoZSBzZXR0aW5ncyB0YWIuPC9wPg0KICAgIDxoND5NYXJjb3MgQ3J1eidzIGRlZmluaXRpb24gc29sdXRpb248L2g0Pg0KICAgIDxmaWVsZHNldD4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPjxzdHJvbmc+PGVtPlByb3M6PC9lbT48L3N0cm9uZz4gYWxsb3dzIHRoaWdodCBjdXN0b21pemF0aW9uIGFuZCBwYXJ0aWFsIHRyYW5zbGF0aW9uLjwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPjxlbT5Db25zOjwvZW0+PC9zdHJvbmc+IG5lZWQgdG8gc3BlY2lmeSBsYW5ndWFnZSBhbHRlcm5hdGl2ZXMgZm9yIGVhY2ggcGFnZSwgYW5kIHRvIHVwZGF0ZSBpdCBpZiBhbiBhbGlhcyBjaGFuZ2VzLjwvbGk+DQogICAgICA8L3VsPg0KICAgIDwvZmllbGRzZXQ+IA0KICAgIDxwPkFkZCB0aGUgZm9sbG93aW5nIHRhZyBpbiBlYWNoIG9mIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgOjxwPg0KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57Y29udGVudCBibG9jaz0nT3RoZXIgbGFuZ3VhZ2VzJyBvbmVsaW5lPSd0cnVlJyBhc3NpZ249b3RoZXJfbGFuZ3VhZ2VzIHd5c2l3eWc9J2ZhbHNlJ308L3ByZT48L3A+DQogICAgPHA+VGhpcyB3aWxsIGFkZCBhIGNvbnRlbnQgYmxvY2sgdG8gYmUgZmlsbGVkIHdoZW4geW91IGVkaXQgdGhlIHBhZ2UuIFdlIHdpbGwgdXNlIHRoaXMgYmxvY2sgdG8gZGVmaW5lIHRoZSBlcXVpdmFsZW50cyBpbiBvdGhlciBsYW5ndWFnZXMgZm9yIHRoaXMgcGFnZSwgYnkgZmlsbGluZyBpdCBpbiB0aGUgZm9sbG93aW5nIHdheTo8L3A+DQogICAgPGZpZWxkc2V0PmVuX1VTPTxlbT5wYWdlMTwvZW0+O2ZyX0ZSPTxlbT5wYWdlMTwvZW0+O2RlX0RFPTxlbT5wYWdlMTwvZW0+PC9maWVsZHNldD4NCiAgICA8cD53aGVyZSA8c3Ryb25nPjxlbT5wYWdlMTwvZW0+PC9zdHJvbmc+LCA8c3Ryb25nPjxlbT5wYWdlMTwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5wYWdlMTwvZW0+PC9zdHJvbmc+IGFyZSB0aGUgcGFnZSBhbGlhc2VzLjwvcD4NCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPjxwPnRoZSBvcmRlciBkb2VzIG5vdCBtYXR0ZXIsIGJ1dCBubyBzcGFjZXMgYXJlIGFsbG93ZWQ8L3A+PC9kaXY+DQogICAgPHA+VG8gbWFrZSBzdXJlIHRoZSBtb2R1bGVzIHVzZXMgdGhpcyBtZXRob2QsIG1ha2Ugc3VyZSB0byB1bnRpY2sgdGhlIDxzdHJvbmc+PGVtPiJVc2UgaGllcmFyY2h5IGZvciByZWRpcmVjdGlvbiI8L2VtPjwvc3Ryb25nPiBvcHRpb24gaW4gdGhlIDxzdHJvbmc+PGVtPlNldHRpbmdzPC9lbT48L3N0cm9uZz4gdGFiLjwvcD4NCiAgICA8aDQ+VGhlIGhpZXJhcmNoeSBzb2x1dGlvbjwvaDQ+DQogICAgPGZpZWxkc2V0Pg0KICAgICAgPHVsPg0KICAgICAgICA8bGk+PHN0cm9uZz48ZW0+UHJvczo8L2VtPjwvc3Ryb25nPiBpdCdzIGF1dG9tYXRpYyAtIHlvdSBkb24ndCBoYXZlIHRvIGRvIGFueXRoaW5nLjwvbGk+DQogICAgICAgIDxsaT48c3Ryb25nPjxlbT5Db25zOjwvZW0+PC9zdHJvbmc+IHRoZSBwYWdlIHN0cnVjdHVyZSBtdXN0IGJlIGlkZW50aWNhbCBmb3IgZWFjaCBsYW5ndWFnZS48L2xpPg0KICAgICAgPC91bD4NCiAgICA8L2ZpZWxkc2V0PiANCiAgICA8cD5UaGlzIHNvbHV0aW9uIHVzZXMgdGhlIHBhZ2UgaGllcmFyY2h5IHRvIGtub3cgd2hpY2ggcGFnZXMgYXJlIGVxdWl2YWxlbnQuPC9wPg0KICAgIDxwPkluIG91ciBleGFtcGxlIGFib3ZlLCAiMi4zLiBQYWdlIDMiIHdvdWxkIGJlIHRoZSBmcmVuY2ggZXF1aXZhbGVudCBvZiAiMS4zLiAzcmQgcGFnZSIsIGJlY2F1c2UgaXQgb2NjdXBpZXMgdGhlIGVxdWl2YWxlbnQgcG9zaXRpb24gaW4gdGhlIGZyZW5jaCBicmFuY2guPC9wPg0KICAgIDxwPkluIG90aGVyIHdvcmRzLCBzaG91bGQgdGhlIHBhZ2UgYmUgb3JkZXJlZCBkaWZmZXJlbnRseSwgYWxsIHdvdWxkIGJlIG1lc3NlZCB1cDo8L3A+DQogICAgPGZpZWxkc2V0Pg0KICAgICAgPGxlZ2VuZD5QYWdlIEhpZXJhcmNoeSBEb2Vzbid0IE1hdGNoPC9sZWdlbmQ+DQogICAgICA8dWw+DQogICAgICAgIDxsaT4xLiBFbmdsaXNoDQogICAgICAgICAgPHVsPg0KICAgICAgICAgICAgPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPg0KICAgICAgICAgICAgPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPg0KICAgICAgICAgICAgPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgIDwvbGk+DQogICAgICAgIDxsaT4yLiBGcmFuJmNjZWRpbDthaXMNCiAgICAgICAgICA8dWw+DQogICAgICAgICAgICA8bGk+Mi4xLiBQYWdlIDE8L2xpPg0KICAgICAgICAgICAgPGxpPjIuMi4gUGFnZSAzPC9saT4NCiAgICAgICAgICAgIDxsaT4yLjMuIFBhZ2UgMjwvbGk+DQogICAgICAgICAgPC91bD4NCiAgICAgICAgPC9saT4NCiAgICAgIDwvdWw+DQogICAgPC9maWVsZHNldD4NCiAgICA8cD5IZXJlLCAiUGFnZSAyIiBvY2N1cGllcyB0aGUgdGhpcmQgcG9zaXRpb24sIHNvIGl0IHdvdWxkIGJlIGRlZW1lZCBlcXVpdmFsZW50IHRvIHRoZSAzcmQgcGFnZSBpbiBlbmdsaXNoLjwvcD4gICAgICAgIA0KICAgIDxwPlRoaXMgYWxzbyBtZWFucyB0aGF0IGlmIGFsbCBwYWdlcyBkbyBub3QgZXhpc3QgaW4gYWxsIGxhbmd1YWdlcywgeW91IGhhdmUgdG8gYmUgY2FyZWZ1bC4gRm9yIGV4YW1wbGU6PC9wPg0KICAgIDxmaWVsZHNldD4NCiAgICAgIDxsZWdlbmQ+UGFnZSBIaWVyYXJjaHkgV2l0aCBhIE1pc3NpbmcgUGFnZTwvbGVnZW5kPg0KICAgICAgPHVsPg0KICAgICAgICA8bGk+MS4gRW5nbGlzaA0KICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgIDxsaT4xLjEuIDFzdCBwYWdlPC9saT4NCiAgICAgICAgICAgIDxsaT4xLjIuIDJuZCBwYWdlPC9saT4NCiAgICAgICAgICAgIDxsaT4xLjMuIDNyZCBwYWdlPC9saT4NCiAgICAgICAgICA8L3VsPg0KICAgICAgICA8L2xpPg0KICAgICAgICA8bGk+Mi4gRnJhbiZjY2VkaWw7YWlzDQogICAgICAgICAgPHVsPg0KICAgICAgICAgICAgPGxpPjIuMS4gUGFnZSAyPC9saT4NCiAgICAgICAgICAgIDxsaT4yLjIuIFBhZ2UgMzwvbGk+DQogICAgICAgICAgPC91bD4NCiAgICAgICAgPC9saT4NCiAgICAgIDwvdWw+DQogICAgPC9maWVsZHNldD4NCiAgICA8cD5IZXJlLCAiMXN0IHBhZ2UiIHdvdWxkIGJlIHRha2VuIHRvIGJlIGVxdWl2YWxlbnQgdG8gIlBhZ2UgMiIgYW5kICIzcmQgcGFnZSIgd291bGQgYmUgZGVlbWVkIHRvIGhhdmUgbm8gdHJhZHVjdGlvbiwgYWx0aG91Z2ggaXQgZG9lcy48L3A+DQogIDwvZGl2Pg0KICANCg0KDQogIDxkaXYgaWQ9ImFib3V0X2MiPg0KICAgIA0KICAgIDxoMz5TdXBwb3J0PC9oMz4NCiAgICA8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KICAgIDxwPlRoZSBtb2R1bGUgYXV0aG9yIGlzIGluIG5vIHdheSBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUgaW4gYW55IGZhc2hpb24uIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXRzIHVzZTo8L3A+DQogICAgDQogICAgPHA+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcm92aWRlIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L3A+DQogICAgPHA+VGhlIGF1dGhvciwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9wPg0KICAgIDxwPlBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBkZXZlbG9wZXJzIGRvIGhhdmUgdGhlaXIgZGFpbHkgam9icyB3aGljaCBtZWFucyB0aGF0IGZlYXR1cmUgcmVxdWVzdHMgYXJlIGNvbnNpZGVyZWQgYW5kIGRvbmUgYXMgdGltZSBhbGxvd3MuIElmIHlvdSBuZWVkIGEgZmVhdHVyZSByZWFsbHkgYmFkbHkgY29uc2lkZXIgY29udGFjdGluZyBvbmUgb2YgdGhlIGRldmVsb3BlcnMgZm9yIGEgc3BvbnNvcmVkIGRldmVsb3BtZW50LjwvcD4NCg0KICAgIDxwPklmIHdhbnQgdG8gaGVscCB0aGUgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIG9mIHRoaXMgbW9kdWxlLCBwbGVhc2UgY29uc2lkZXIgZG9uYXRpbmcuIDxiciBcPiA8YnIgXD4NCiAgICA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjcj9jbWQ9X3MteGNsaWNrJmhvc3RlZF9idXR0b25faWQ9NDU3UVNaTVFYN0JLQSI+IA0KICAgICAgPGltZyBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvY21zbXMuMi4xLjUvbW9kdWxlcy9FcmlkdS9pbWFnZXMvcHBfYnV0dG9uLnBuZyIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iYXlQYWwg4oCTIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lLiIgLz4NCiAgICA8L2E+PC9wPg0KICANCiAgICA8aDM+VHJvdWJsZXNob290aW5nPC9oMz4gICAgDQogICAgPHA+UGFnZSBsYW5ndWFnZSBzaG91bGQgYmUgZGV0ZWN0ZWQgYW5kIGFzc2lnbmVkIHRvIHRoZSBzbWFydHkgdmFyaWFibGVzIGJlZm9yZSB0aGUgdGVtcGxhdGUgaXMgcHJvY2Vzc2VkIGJ5IGFuIGV2ZW50IGhhbmRsZXIuIEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRoYXQgYXQgc29tZSBwb2ludCBpbiB0aGUgcGFnZSB0ZW1wbGF0ZSB0aGUgcGFnZSBsYW5ndWFnZSBpcyBsb3N0IChlc3BlY2lhbGx5IHNpbmNlIHRoZSBwYWdlIGhlYWQgaXMgcHJvY2Vzc2VkIHNlcGFyYXRseSBmcm9tIHRoZSBwYWdlIGJvZHkpLiBTaG91bGQgdGhpcyBoYXBwZW4sIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgdGFnIHRvIHJlYXNzaWduIGl0OjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e0VyaWR1IGFjdGlvbj0nYXNzaWduJ308L3ByZT48L3A+DQogICAgPHA+Tm90ZSB0aGF0IHlvdSBtYXkgYWxzbyB1c2U8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntFcmlkdSBhY3Rpb249J2F1dG9fcmVkaXJlY3QnfTwvcHJlPjwvcD4NCiAgICA8cD5hdCB0aGUgYmVnaW5uaW5nIG9mIHlvdXIgdGVtcGxhdGUgaWYsIGZvciBzb21lIHJlYXNvbiwgcmVkaXJlY3Rpb24gZG9lcyBub3Qgb2NjdXIgKEkgZG9uJ3Qgc2VlIHdoeSB0aGlzIHNob3VsZCBoYXBwZW4gdGhvdWdoKS48L3A+DQogICAgDQogICAgPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQogICAgICANCiAgICAgIDxwPlRoZSBNb2R1bGUgaXMgY3VycmVudGx5IGJlaW5nIGRldmVsb3BlZCBieSA8c3Ryb25nPkZlcm5hbmRvIE1vcmdhZG8gKEpvIE1vcmcpPC9zdHJvbmc+DQogICAgICA8YnIgLz4NCiAgICAgIFdlYjogPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vd3d3LnNtLWFydC1sYWIuY29tIiByZWw9ImV4dGVybmFsIj53d3cuc20tYXJ0LWxhYi5jb208L2E+DQogICAgICA8YnIgLz4NCiAgICAgIEVtYWlsOiA8YSBocmVmPSJtYWlsdG86am9tb3JnQHNtLWFydC1sYWIuY29tIj5qb21vcmdAc20tYXJ0LWxhYi5jb208L2E+DQogICAgICA8L3A+DQogICAgICAgICAgICANCiAgICAgIDxwPkJhYmVsIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiAocGxnZXIpLCBiYXNlZCBvbiBhbiBhcHByb2FjaCBieSBNYXJjb3MgQ3J1eiwgYW5kIHJlbGVhc2VkIHVuZGVyIHRoZSBHTlUgUHVibGljIExpY2Vuc2UuPC9wPg0KICAgICAgPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDE2IC0gMjAxNyAuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjxiciAvPjwvcD4NCiAgICAgIA0KICAgICAgPHA+PHN0cm9uZz5FcmlkdTwvc3Ryb25nPiBpcyBmcmVlIHNvZnR3YXJlOzxiciAvPiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhcyBwdWJsaXNoZWQgYnkgdGhlIDxzdHJvbmc+RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uPC9zdHJvbmc+OzxiciAvPiBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCiAgICAgIDxwPjxzdHJvbmc+RXJpZHU8L3N0cm9uZz4gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IDxzdHJvbmc+V0lUSE9VVCBBTlkgV0FSUkFOVFk8L3N0cm9uZz47PGJyIC8+IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiA8c3Ryb25nPk1FUkNIQU5UQUJJTElUWTwvc3Ryb25nPiBvciA8c3Ryb25nPkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFPC9zdHJvbmc+LjwvcD4NCiAgICAgIDxwPlNlZSB0aGVHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLjwvcD4NCiAgICAgIDxwPllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIDxzdHJvbmc+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L3N0cm9uZz4gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07PGJyIC8+IGlmIG5vdCwgd3JpdGUgdG8gdGhlIDxzdHJvbmc+RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQTwvc3Ryb25nPiBvciA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5yZWFkIGl0IG9ubGluZTwvYT4uPC9wPg0KICAgICAgPHA+PHN0cm9uZz5Zb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIDxzdHJvbmc+RXJpZHU8L3N0cm9uZz4uPC9zdHJvbmc+PC9wPiAgICAgIA0KICAgICAgDQogICAgICA8aDQ+Q29udHJpYnV0b3JzPC9oND4NCiAgICAgIDxwPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3Lm1hdHRob3Juc2J5LmNhIiByZWw9ImV4dGVybmFsIj5NYXR0IEhvbXNieSAoRElHSTMpPC9hPiAtIHNwb25zb3JzaGlwLjwvcD4gDQogICAgDQogIDwvZGl2Pg0KICANCjwvZGl2PjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSJkZWZhdWx0IiAtIFBvc3NpYmxlIGFjdGlvbnM6ICdkZWZhdWx0JyAoZm9yIHRyYW5zbGF0aW9ucykgb3IgJ21lbnUnLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvdz0iIiAtIEZvciB0aGUgbWVudSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBsYW5ndWFnZXMgdG8gc2hvdyBpbiB0aGUgbWVudSAodXNlIGxhbmd1YWdlIGNvZGUgYW5kIHNlcGFyYXRlIHdpdGggYSBjb21tYSkuIEZvciB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgaG9sZHMgdGhlIGtleSB0byB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGF0ZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBldmFsPSIiIC0gLS0gTWlzc2luZyBMYW5ndWFnZXN0cmluZzogcGhlbHBfZXZhbCAtLTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGVtcGxhdGU9IiIgLSBUZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSBtZW51LjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYXNzaWduPSIiIC0gSW5zdGVhZCBvZiBkaXNwbGF5aW5nIHRoZSByZXN1bHQgaW1tZWRpYXRlbHksIHlvdSBjYW4gYXNzaWduIGl0IHRvIGEgc21hcnR5IHZhcmlhYmxlIHNwZWNpZmllZCB3aXRoIHRoZSAnYXNzaWduJyBwYXJhbWV0ZXIuPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKbyBNb3JnIChGZXJuYW5kbyBNb3JnYWRvKSAmbHQ7am9tb3JnQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMS5iZXRhLjU8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48aDQ+VmVyc2lvbiAxLjA8L2g0Pgo8dWw+CiAgPGxpPjFzdCBwdWJsaWMgcmVsZWFzZS48L2xpPgo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[Manage frontend languages and multilingual behaviors.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.alter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KJG5ld3BhcmFtcyA9IGlzc2V0KCRwYXJhbXNbJ2xldmVsbmFtZSddKSA/IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAkcGFyYW1zWydsZXZlbG5hbWUnXSkgOiBhcnJheSgpOw0KDQppZiAoIWlzc2V0KCRwYXJhbXNbJ21vdmUnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2xhbmdfaWQnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2N1cnJlbnRvcmRlciddKSApDQp7DQogICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRuZXdwYXJhbXMpOw0KfQ0KDQokZGIgPSBjbXNtcygpLT5HZXREYigpOw0KJGRidGFibGUgPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmd1YWdlcyc7DQokY3VycmVudG9yZGVyID0gJHBhcmFtc1snY3VycmVudG9yZGVyJ107DQokbGFuZ19pZCA9ICRwYXJhbXNbJ2xhbmdfaWQnXTsNCg0Kc3dpdGNoKCRwYXJhbXNbJ21vdmUnXSkNCnsNCgkNCgljYXNlICdkZWxldGUnOg0KCQkkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9sYW5nZW50cmllcyBXSEVSRSBpZD0/JzsNCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdfaWQpKTsNCgkJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICRkYnRhYmxlIFdIRVJFIGxhbmdjb2RlID0gPyBMSU1JVCAxJzsNCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdfaWQpKTsNCg0KCQkvLyBVUERBVEUgVEhFIE9SREVSIE9GIFRIRSBJVEVNUw0KCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyLTEpIFdIRVJFIGl0ZW1fb3JkZXIgPiA/ICI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXIpKTsNCgkJDQoJCSRuZXdwYXJhbXNbIm1vZHVsZV9tZXNzYWdlIl0gPSAkdGhpcy0+bGFuZygibWVzc2FnZV9kZWxldGVkIik7DQoJCWJyZWFrOwkNCg0KCWNhc2UgInVwIjoNCgkJaWYgKCRjdXJyZW50b3JkZXIgIT0gMSl7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIGl0ZW1fb3JkZXIgPSA/IExJTUlUIDE7IjsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXItMSkpOw0KCQkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlci0xKSBXSEVSRSBsYW5nY29kZSA9ID8gTElNSVQgMTsiOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdjb2RlKSk7DQoJCX0NCgkJYnJlYWs7DQoJCQ0KCWNhc2UgImRvd24iOg0KCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyLTEpIFdIRVJFIGl0ZW1fb3JkZXIgPSA/IExJTUlUIDE7IjsNCgkJaWYoICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXIrMSkpICl7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIGxhbmdjb2RlID0gPyBMSU1JVCAxOyI7DQoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbGFuZ2NvZGUpKTsNCgkJfQ0KCQlicmVhazsNCn0NCg0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCk7DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.assign.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpDQp7DQogICRzbWFydHktPmFzc2lnbigncGFnZV9sYW5nJywgJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpOw0KICAkc21hcnR5LT5hc3NpZ24oJ3BhZ2VfbGFuZ19pbmZvJywgJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UpOw0KfQ0KZWxzZQ0Kew0KICAkdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOw0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.auto_redirect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoISR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKSAkdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOw0KDQokdGhpcy0+YXV0b19yZWRpcmVjdCgpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.changesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KJG1vZHByZWZzID0gJHRoaXMtPmdldF9tb2RwcmVmcygpOw0KDQpmb3JlYWNoKCRtb2RwcmVmcyBhcyAkcHJlZikNCnsNCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoICRwcmVmWzBdLCBpc3NldCgkcGFyYW1zWyRwcmVmWzBdXSkpOyANCn0NCg0KJHRoaXMtPlJlZGlyZWN0KA0KICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgImRlZmF1bHRhZG1pbiIsDQogICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsIGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFjdGl2ZV90YWIiID0+ICJzZXR0aW5ncyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9tZXNzYWdlIiA9PiAkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCiMgaGFjayB0byBoYXZvaWQgaW50ZXJmZXJpbmcgd2l0aCB1c2VyIHNlbGVjdGlvbiBvZiBsYW5nDQppZiggaXNzZXQoJF9HRVRbJ2xhbmcnXSkgfHwgaXNzZXQoJF9HRVRbJ2NpZCddKSApIHJldHVybjsNCg0KJGV2YWwgPSBpc3NldCgkcGFyYW1zWydldmFsJ10pID8gKGJvb2wpJHBhcmFtc1snZXZhbCddIDogRkFMU0U7DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ3Nob3cnXSkpDQp7DQogICRvdXRwdXQgPSAkdGhpcy0+cmV0cmlldmVfdHJhbnNsYXRpb24oJHBhcmFtc1snc2hvdyddKTsNCiAgDQogIGlmKCAhaXNfYXJyYXkoJG91dHB1dCkgKSAkb3V0cHV0ID0gYXJyYXkoJG91dHB1dCk7DQogIA0KICBpZihpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgJiYgJHBhcmFtc1snYXNzaWduJ10gIT0gJycpDQogIHsNCiAgICAka2V5cyA9IGV4cGxvZGUoJywnLCAkcGFyYW1zWydhc3NpZ24nXSk7DQogICAgDQogICAgaWYoY291bnQoJGtleXMpICE9IGNvdW50KCRvdXRwdXQpKQ0KICAgIHsNCiAgICAgICMgbWF5YmUgYW4gZXhjZXB0aW9uIGhlcmU/Pz8NCiAgICAgIGVjaG8gJy0tIEVyaWR1IGZhaWxlZCB0byBhc3NpZ246IHZhciBjb3VudCBkb2VzIG5vdCBtYXRjaCAtLSc7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkaSA9IDA7DQogICAgICAgICAgICANCiAgICAgIHdoaWxlKCBpc3NldCgkb3V0cHV0WyRpXSkgKQ0KICAgICAgew0KICAgICAgICAjIGV2YWwgaWYgcmVxdWVzdGVkDQogICAgICAgICR0eHQgPSAkZXZhbCA/ICRzbWFydHktPmZldGNoKCAnZXZhbDonIC4gJG91dHB1dFskaV0pIDogJG91dHB1dFskaV07DQogICAgICAgICRzbWFydHktPmFzc2lnbigka2V5c1skaV0sICR0eHQpOw0KICAgICAgICAkaSsrOw0KICAgICAgfQ0KICAgIH0NCiAgfQ0KICBlbHNlDQogIHsNCiAgICAjIGV2YWwgaWYgcmVxdWVzdGVkDQogICAgJHR4dCA9ICRldmFsID8gJHNtYXJ0eS0+ZmV0Y2goICdldmFsOicgLiBpbXBsb2RlKCRvdXRwdXQpICkgOiBpbXBsb2RlKCRvdXRwdXQpOw0KICAgIGVjaG8gJHR4dDsNCiAgfQ0KfQ0KZWxzZQ0Kew0KICAjZGVmYXVsdCBpbml0aXRhbGl6YXRpb24gb24gdG9wIG9mIHRoZSB0ZW1wbGF0ZQ0KICAkdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOw0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KJGFkbWludGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsNCg0KJGFjdGl2ZV90YWIgPSBpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pID8gJHBhcmFtc1snYWN0aXZlX3RhYiddIDogJ2xhbmd1YWdlcyc7DQoNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOw0KCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignbGFuZ3VhZ2VzJywgJHRoaXMtPkxhbmcoJ2xhbmd1YWdlcycpLCAnbGFuZ3VhZ2VzJyA9PSAkYWN0aXZlX3RhYiA/IHRydWUgOiBmYWxzZSk7DQoJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCd0ZW1wbGF0ZXMnLCAkdGhpcy0+TGFuZygndGVtcGxhdGVzJyksICd0ZW1wbGF0ZXMnID09ICRhY3RpdmVfdGFiID8gdHJ1ZSA6IGZhbHNlKTsNCgllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NldHRpbmdzJywgICR0aGlzLT5MYW5nKCdzZXR0aW5ncycpLCAgJ3NldHRpbmdzJyAgPT0gJGFjdGl2ZV90YWIgPyB0cnVlIDogZmFsc2UpOw0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOw0KDQplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsNCg0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdsYW5ndWFnZXMnKTsNCiAgICAjIHRvIGJlIHJldmlzaXRlZC4uLiAoSk0pDQogICAgJGltYWdlID0gJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAnJywgJycsICcnLCAnc3lzdGVtaWNvbicpOw0KCQkkc21hcnR5LT5hc3NpZ24oDQogICAgICAgICAgICAgICAgICAgICAgJ2FkZG5ldycsIA0KICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0bGFuZycsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbWFnZSAuICcgJyAuICR0aGlzLT5MYW5nKCdhZGRfbGFuZ3VhZ2UnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgKTsNCgkJDQoJCSRpdGVtbGlzdCA9ICR0aGlzLT5hZG1pbl9yZXRyaWV2ZV9sYW5ndWFnZXMoJGlkLCAkcmV0dXJuaWQpOw0KICAgIA0KCQkkc21hcnR5LT5hc3NpZ24oJ2l0ZW1saXN0JywgJGl0ZW1saXN0KTsNCg0KCQkkYWRtaW5zaG93ID0gYXJyYXkoDQoJCQkgICAgICAgICAgICAgICAgICBhcnJheSgkdGhpcy0+TGFuZygnbGFuZ2NvZGUnKSwgICdjb2RlbGluaycpLA0KCQkJICAgICAgICAgICAgICAgICAgYXJyYXkoJHRoaXMtPkxhbmcoJ25hbWUnKSwgICAgICAnbmFtZWxpbmsnKSwNCgkJCSAgICAgICAgICAgICAgICAgIGFycmF5KCR0aGlzLT5MYW5nKCdhY3RpdmUnKSwgICAgJ3RvZ2dsZWFjdGl2ZScpLA0KCQkJICAgICAgICAgICAgICAgICAgYXJyYXkoJHRoaXMtPkxhbmcoJ2lzZGVmYXVsdCcpLCAndG9nZ2xlZGVmYXVsdCcpLA0KCQkJICAgICAgICAgICAgICAgICAgYXJyYXkoJHRoaXMtPkxhbmcoJ3Jlb3JkZXInKSwgICAnbW92ZWxpbmtzJyksDQoJCQkgICAgICAgICAgICAgICAgICBhcnJheSgkdGhpcy0+TGFuZygnYWN0aW9ucycpLCAgICdhY3Rpb25zJykJCQ0KCQkJICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgDQoJCSRzbWFydHktPmFzc2lnbignYWRtaW5zaG93JywgJGFkbWluc2hvdyk7DQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5wYW5lbC50cGwnKTsNCg0KCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KDQoNCgllY2hvICR0aGlzLT5TdGFydFRhYigndGVtcGxhdGVzJyk7DQoJDQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZSddKSkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHR0ZW1wbGF0ZScsICRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZSddKTsNCiAgICAgICAgDQoJCWVjaG8gJzxmaWVsZHNldCBzdHlsZT1cJ3dpZHRoOiA2MDBweDtcJz48bGVnZW5kPjxiPicgLiAkdGhpcy0+TGFuZygnZGVmYXVsdHRlbXBsYXRlJykgLiAnPC9iPjwvbGVnZW5kPic7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOw0KCQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdhY3RpdmVfdGFiJywgJ3RlbXBsYXRlcycpOw0KCQkkdGVtcGxhdGVsaXN0ID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoICR0aGlzLT5HZXROYW1lKCkgKTsNCgkJJGRlZnRwbCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0dGVtcGxhdGUnKTsNCgkJJHRwbG9wdGlvbnMgPSBhcnJheSgpOw0KCQkkaXRlbWxpc3QgPSBhcnJheSgpOw0KICAgICAgICANCgkJZm9yZWFjaCgkdGVtcGxhdGVsaXN0IGFzICRvbmV0cGwpDQogICAgew0KCQkgICAkdHBsb3B0aW9uc1skb25ldHBsXSA9ICRvbmV0cGw7DQoJCSAgICR0cGwgPSBuZXcgc3RkQ2xhc3MoKTsNCgkJICAgJHRwbC0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdFRlbXBsYXRlJywgJHJldHVybmlkLCAkb25ldHBsLCBhcnJheSgndHBsbmFtZScgPT4gJG9uZXRwbCkgKTsNCgkJICAgJHRwbC0+ZGVsZXRlbGluayA9ICgkb25ldHBsID09ICRkZWZ0cGwpID8gJycgOiAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZGVsZXRldHBsJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgndHBsbmFtZSc9PiRvbmV0cGwpICk7DQoJCSAgIGFycmF5X3B1c2goJGl0ZW1saXN0LCAkdHBsKTsNCgkJfQ0KICAgICAgICANCgkJZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij48cCBjbGFzcz0icGFnZWlucHV0Ij4nDQogICAgICAgIC4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZGVmYXVsdHRlbXBsYXRlJywgJHRwbG9wdGlvbnMsIC0xLCAkZGVmdHBsKQ0KICAgICAgICAuICc8YnIvPicNCiAgICAgICAgLiAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoICRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpICkNCiAgICAgICAgLiAnPC9wPjwvZGl2Pic7DQogICAgICAgIA0KCQllY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7DQoJCWVjaG8gJzwvZmllbGRzZXQ+PGJyLz48YnIvPic7DQoJCQ0KCQkkc21hcnR5LT5hc3NpZ24oJ2l0ZW1saXN0JywgJGl0ZW1saXN0KTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdhZGRuZXcnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0VGVtcGxhdGUnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJycsJycsJycsJ3N5c3RlbWljb24nKS4nICcuJHRoaXMtPkxhbmcoJ2FkZHRlbXBsYXRlJykpKTsNCgkJJGFkbWluc2hvdyA9IGFycmF5KAlhcnJheSgkdGhpcy0+TGFuZygndGVtcGxhdGUnKSwgJ2VkaXRsaW5rJyksIGFycmF5KCR0aGlzLT5MYW5nKCdhY3Rpb25zJyksICdkZWxldGVsaW5rJykJKTsNCgkJJHNtYXJ0eS0+YXNzaWduKCdhZG1pbnNob3cnLCAkYWRtaW5zaG93KTsNCgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbnBhbmVsLnRwbCcpOw0KCQkNCgllY2hvICR0aGlzLT5FbmRUYWIoKTsNCg0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzZXR0aW5ncycpOw0KDQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdjaGFuZ2VzZXR0aW5ncycsICRyZXR1cm5pZCk7DQoNCgkJJG1vZHByZWZzID0gJHRoaXMtPmdldF9tb2RwcmVmcygpOw0KICAgIA0KCQlmb3JlYWNoKCRtb2RwcmVmcyBhcyAkb25lcHJlZikNCiAgICB7DQoJCQkkdGhlcHJlZiA9ICRvbmVwcmVmWzBdOw0KCQkJZWNobyAnDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAkdGhlcHJlZiwgdHJ1ZSwgKGJvb2wpJHRoaXMtPkdldFByZWZlcmVuY2UoJHRoZXByZWYsIGZhbHNlKSkgLiAnICcgLiAkdGhpcy0+TGFuZygncHJlZl8nIC4gJHRoZXByZWYpIC4gJzwvcD4NCgk8L2Rpdj4nOw0KCQl9DQogICAgDQoJCWVjaG8gJzxici8+PHA+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpLic8L3A+JzsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KDQplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deleteEntry.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJhZG1pbl9lcmlkdSIpKSByZXR1cm4gZmFsc2U7DQoNCiRlbnRyeSA9IChpc3NldCgkcGFyYW1zWydlbnRyeV9pZCddKSAmJiAkcGFyYW1zWydlbnRyeV9pZCddICE9ICcnKSA/ICRwYXJhbXNbJ2VudHJ5X2lkJ10gOiBmYWxzZTsNCg0KaWYoJGVudHJ5KQ0Kew0KICAkZGIgPSBjbXNtcygpLT5HZXREYigpOw0KICAkcXVlcnkgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgV0hFUkUgc3RyaW5naWQ9PyI7DQogICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSkpOw0KICAkcXVlcnkgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfZXJpZHVfbGFuZ2tleXMgV0hFUkUgaWQ9PyI7DQogICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSkpOyAgICAgICAgICAgICAgICAgICAgDQogICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfbWVzc2FnZScgPT4gJHRoaXMtPkxhbmcoJ21lc3NhZ2VfZGVsZXRlZCcpKSk7DQp9DQplbHNlDQp7DQogICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOw0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.deletetpl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KJG5ld3BhcmFtcyA9IGFycmF5KCJhY3RpdmVfdGFiIj0+InRlbXBsYXRlcyIpOw0KDQppZihpc3NldCgkcGFyYW1zWyJ0cGxuYW1lIl0pICYmICR0aGlzLT5EZWxldGVUZW1wbGF0ZSgkcGFyYW1zWyJ0cGxuYW1lIl0pKSAgICAgICANCnsNCiAgJG5ld3BhcmFtc1sibW9kdWxlX21lc3NhZ2U+Il0gPSAkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpOw0KfQ0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.editentries.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ2FkbWluX2VyaWR1JykpDQp7DQoJZWNobyAnPHA+Jy4kdGhpcy0+TGFuZygnZXJyb3JfZGVuaWVkJykuJzwvcD4nOw0KCXJldHVybiBmYWxzZTsNCn0NCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSB8fCAhaXNzZXQoJHBhcmFtc1snbGFuZ2lkJ10pIHx8ICEkdGhpcy0+bGFuZ19leGlzdCgkcGFyYW1zWydsYW5naWQnXSkgKQkNCiR0aGlzLT5SZWRpcmVjdCggJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgpICk7DQoNCiRhZG1pbnRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7DQokd3lzaXd5ZyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd3eXNpd3lnJywgZmFsc2UpOw0KDQokbGFuZ3VhZ2UgPSBcRXJpZHVcbGFuZ3VhZ2VzOjpHZXRMYW5nRnJvbUlkKCRwYXJhbXNbJ2xhbmdpZCddKTsNCiMganVzdCBhIGhhY2sgdG8ga2VlcCBiYWNrd2FyZCBjb21wYXQuLi4gKEpNKQ0KJGxhbmd1YWdlID0gJGxhbmd1YWdlLT50b0FycmF5KCk7DQoNCi8vIHVnbHkgc3R1ZmYgbmVlZHMgcmV2aXNpdGluZyBhbmQgbW92aW5nIHRvIGEgdGVtcGxhdGUgKEpNKQ0KDQokbmV3ZW50cnlsaW5rID0gJzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsiPicNCiAgICAgICAgICAgICAgICAuICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0ZW50cnknLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N5c3RlbWljb24nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICR0aGlzLT5MYW5nKCdhZGRfZW50cnknKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIC4gJzwvZGl2Pic7DQogICAgICAgICAgICANCmVjaG8gJG5ld2VudHJ5bGluazsNCg0KZWNobyAnPGgxPicgLiAkbGFuZ3VhZ2VbJ25hbWUnXSAuICcgKCcgLiAkbGFuZ3VhZ2VbJ2xhbmdjb2RlJ10gLiAnKTwvaDE+PGJyLz4nOw0KDQovKioNCiogbmV4dCBzdHVmZiB3aWxsIGJlIG1vdmVkIHRvIGEgaGVscGVyIGNsYXNzDQoqLw0KDQokZGIgPSBjbXNtcygpLT5HZXREYigpOw0KJHF1ZXJ5ID0gJ1NFTEVDVCBsYW5na2V5cy5pZCBpZCwgbGFuZ2tleXMuY2FwdGlvbiBjYXB0aW9uLCBsYW5nZW50cmllcy52YWx1ZSBGUk9NICcNCiAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkNCiAgICAgICAgLiAnbW9kdWxlX2VyaWR1X2xhbmdrZXlzIGxhbmdrZXlzIExFRlQgSk9JTiAnDQogICAgICAgIC4gY21zX2RiX3ByZWZpeCgpDQogICAgICAgIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyBsYW5nZW50cmllcyBPTiBsYW5na2V5cy5pZCA9IGxhbmdlbnRyaWVzLnN0cmluZ2lkIFdIRVJFIGxhbmdlbnRyaWVzLmxhbmdpZD0/JzsNCiAgICAgICAgDQokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbGFuZ2lkJ10pICk7DQoNCiR2YWx1ZXMgPSBhcnJheSgpOw0KJGNhcHRpb25zID0gYXJyYXkoKTsNCg0Kd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpDQp7DQoJJGNhcHRpb25zWyRyb3dbJ2lkJ11dID0gJHJvd1snY2FwdGlvbiddOw0KCSR2YWx1ZXNbJHJvd1snaWQnXV0gPSAkcm93Wyd2YWx1ZSddOw0KfQ0KCQ0KaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pIHx8IGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pKQkNCnsNCgkkcXVlcnkgPSAnREVMRVRFIEZST00gJw0KICAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpDQogICAgICAgICAgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzIFdIRVJFIGxhbmdpZD0/JzsNCiAgICAgICAgICANCgkkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbGFuZ2lkJ10pICk7DQogIA0KCSR2YWx1ZXMgPSBhcnJheSgpOw0KCSRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnIA0KICAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpIA0KICAgICAgICAgIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyBTRVQgbGFuZ2lkPT8sIHN0cmluZ2lkPT8sIHZhbHVlPT8nOw0KCQ0KICBmb3JlYWNoKCRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUpDQogIHsNCgkJaWYoc3Vic3RyKCRrZXksIDAsIDYpID09ICdlbnRyeV8nICYmICR2YWx1ZSAhPSAnJykNCiAgICB7DQoJCQkkdmFsdWVzW3N1YnN0cigka2V5LDYpXSA9ICR2YWx1ZTsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2xhbmdpZCddLCBzdWJzdHIoJGtleSwgNiksICR2YWx1ZSkpOw0KCQl9DQoJfQ0KCWlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkNCiAgew0KCQkkdGhpcy0+UmVkaXJlY3QoDQogICAgICAgICAgICAgICAgICAgICAgJGlkLCANCiAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdGFkbWluJywgDQogICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLCANCiAgICAgICAgICAgICAgICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb2R1bGVfbWVzc2FnZScgPT4gJHRoaXMtPkxhbmcoJ21lc3NhZ2VfbW9kaWZpZWQnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICk7DQoJfQ0KICBlbHNlDQogIHsNCgkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoICR0aGlzLT5MYW5nKCdtZXNzYWdlX21vZGlmaWVkJykgKTsNCgl9DQp9CQ0KDQokYnV0dG9ucyA9ICc8cD4nLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdhcHBseScsIGxhbmcoJ2FwcGx5JykpLicgJy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpLic8L3A+JzsNCg0KZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRlbnRyaWVzJywgJHJldHVybmlkKTsNCmVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2xhbmdjb2RlJywgJHBhcmFtc1snbGFuZ2NvZGUnXSk7DQplY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdsYW5naWQnLCAkcGFyYW1zWydsYW5naWQnXSk7DQppZighJHd5c2l3eWcpCWVjaG8gJw0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KZnVuY3Rpb24gaW5zdGFudF90YWJsZV9zZWFyY2god2hhdCl7DQoJdmFyIGRlc3RpbmF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyaWR1X2xhbmd1YWdlX2VudHJpZXMiKTsNCglpZighZGVzdGluYXRpb24pIHJldHVybjsNCgl2YXIgdGhlcm93cyA9IGRlc3RpbmF0aW9uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ciIpOw0KCWZvcihpPTA7aTx0aGVyb3dzLmxlbmd0aDtpKyspew0KCQl2YXIgdGhlY29sdW1uID0gdGhlcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdOw0KCQlpZih0aGVjb2x1bW4gJiYgdGhlY29sdW1uLmlubmVySFRNTC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yod2hhdC50b0xvd2VyQ2FzZSgpKSA+PSAwKXsNCgkJCXRoZXJvd3NbaV0uc3R5bGUuZGlzcGxheSA9ICJ0YWJsZS1yb3ciOw0KCQl9ZWxzZXsNCgkJCXRoZXJvd3NbaV0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCgkJfQ0KCX0NCn0NCjwvc2NyaXB0Pg0KJzsNCmVjaG8gJGJ1dHRvbnM7DQplY2hvICc8dGFibGUgaWQ9ImVyaWR1X2xhbmd1YWdlX2VudHJpZXMiIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4NCic7DQppZighJHd5c2l3eWcpIGVjaG8gJw0KPHRoZWFkPg0KCTx0cj48dGg+JyAuICR0aGlzLT5MYW5nKCJzZWFyY2h0aGlzdGFibGUiKS4nPGlucHV0IHR5cGU9InRleHQiIG9ua2V5dXA9Imluc3RhbnRfdGFibGVfc2VhcmNoKHRoaXMudmFsdWUpOyIvPjwvdGg+PHRoPjwvdGg+PC90cj4NCjwvdGhlYWQ+DQonOw0KZWNobyAnPHRib2R5Pg0KCSc7DQogIA0KZm9yZWFjaCgkY2FwdGlvbnMgYXMgJGtleSA9PiAkbGFiZWwpDQp7DQoJZWNobyAnPHRyPg0KCQk8dGQ+JyAuICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImVkaXRlbnRyeSIsICRyZXR1cm5pZCwgJGxhYmVsLCBhcnJheSgiZW50cnlfaWQiPT4ka2V5KSkuJzwvdGQ+DQogICAgDQoJCTx0ZD4nLiR0aGlzLT5DcmVhdGVUZXh0QXJlYSgkd3lzaXd5ZywgJGlkLCAoaXNzZXQoJHZhbHVlc1ska2V5XSkgJiYgJHZhbHVlc1ska2V5XSkgPyAkdmFsdWVzWyRrZXldIDogJycsICdlbnRyeV8nIC4gJGtleSwgJycsICcnLCAnJywgJycsIDUwLCAxMCkuJzwvdGQ+DQoJPC90cj4NCgknOw0KfQ0KZWNobyAnDQo8L3Rib2R5Pg0KPC90YWJsZT4NCic7DQplY2hvICRidXR0b25zOw0KZWNobyAkbmV3ZW50cnlsaW5rOw0KZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.editentry.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ2FkbWluX2VyaWR1JykpDQp7DQoJZWNobyAnPHA+JyAuICR0aGlzLT5MYW5nKCdlcnJvcl9kZW5pZWQnKSAuICc8L3A+JzsNCglyZXR1cm4gRkFMU0U7DQp9DQoNCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKQ0Kew0KICAkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoKSApOw0KfQ0KDQokd3lzaXd5ZyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd3eXNpd3lnJywgRkFMU0UpOw0KJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiRsYW5ndWFnZXMgPSAkdGhpcy0+Z2V0bGFuZ3VhZ2VzKHRydWUpOw0KJGVudHJ5ID0gaXNzZXQoJHBhcmFtc1snZW50cnlrZXknXSkgPyAkcGFyYW1zWydlbnRyeWtleSddIDogRkFMU0U7DQokZW50cnlfaWQgPSBpc3NldCgkcGFyYW1zWydlbnRyeV9pZCddKSA/ICRwYXJhbXNbJ2VudHJ5X2lkJ10gOiAtMTsNCiRjYXB0aW9uID0gaXNzZXQoJHBhcmFtc1snY2FwdGlvbiddKSA/ICRwYXJhbXNbJ2NhcHRpb24nXSA6ICcnOw0KJHZhbHVlcyA9IGFycmF5KCk7DQokbGFuZ3NfYnlfaWQgPSBhcnJheSgpOw0KDQpmb3JlYWNoKCRsYW5ndWFnZXMgYXMgJG9uZSkNCnsNCiAgJGxhbmdzX2J5X2lkWyRvbmUtPmdldF9pZCgpXSA9ICRvbmUtPmdldF9sYW5nY29kZSgpOw0KfQ0KDQppZiggJGNhcHRpb24gIT0gJycgJiYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseSddKSApICkNCnsNCiAgIyBub3cgYWxsb3dzIGZvciBhbHBoYW51bWVyaWMgYW5kIC0gYW5kIF8NCiAgJGNhcHRpb24gPSBwcmVnX3JlcGxhY2UoJy9bXmEtel9cLTAtOV0vaScsICcnLCAkY2FwdGlvbik7DQogICAgDQogIGlmKCRlbnRyeV9pZCA+IDApDQogIHsNCgkJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgDQogICAgLiBjbXNfZGJfcHJlZml4KCkgDQogICAgLy8uICdtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgV0hFUkUgc3RyaW5naWQ9Pyc7DQogICAgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzIFdIRVJFIGlkPT8nOw0KICAgIA0KICAgIHRyeQ0KICAgIHsgICAgDQoJCSAgJHIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJGVudHJ5X2lkKSApOw0KICAgICAgaWYoISRyKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbigkZGItPkVyck1zZygpIC4gJzogJyAuICRxdWVyeSk7DQogICAgfQ0KICAgIGNhdGNoKFxFeGNlcHRpb24gJGUpDQogICAgew0KICAgICAgZWNobyAkZS0+Z2V0TWVzc2FnZSgpOw0KICAgIH0NCgl9DQogIGVsc2UNCiAgew0KCQkvLyRlbnRyeSA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllc19zZXEnKTsNCgkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdrZXlzIFNFVCBzdHJpbmdpZD0/LCBjYXB0aW9uPT8nOw0KICAgICAgICANCiAgICB0cnkNCiAgICB7DQogICAgICAkciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSgtMSwgJGNhcHRpb24pICk7DQogICAgICANCiAgICAgIGlmKCEkcikgdGhyb3cgbmV3IFxFeGNlcHRpb24oJGRiLT5FcnJNc2coKSAuICc6ICcgLiAkcXVlcnkpOw0KICAgICAgDQogICAgICAkZW50cnlfaWQgPSAkZGItPkluc2VydF9JRCgpOw0KICAgIH0NCiAgICBjYXRjaChcRXhjZXB0aW9uICRlKQ0KICAgIHsNCiAgICAgIGVjaG8gJGUtPmdldE1lc3NhZ2UoKTsNCiAgICB9DQoJCQ0KCX0gIA0KDQogICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyBTRVQgc3RyaW5naWQ9PywgbGFuZ2lkPT8sIGxhbmdjb2RlPT8sIHZhbHVlPT8nOw0KICANCiAgZm9yZWFjaCgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlKQ0KICB7DQogICAgJGlkeCA9IHN1YnN0cigka2V5LCA2KTsNCiAgICANCiAgICBpZihzdWJzdHIoJGtleSwgMCwgNikgPT0gJ2VudHJ5XycgJiYgJHZhbHVlICE9ICcnKQ0KICAgIHsNCiAgICAgICR2YWx1ZXNbJGlkeF0gPSAkdmFsdWU7DQogICAgICANCiAgICAgIHRyeQ0KICAgICAgew0KICAgICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeV9pZCwgJGlkeCwgJGxhbmdzX2J5X2lkWyRpZHhdLCAkdmFsdWUpKTsNCiAgICAgICAgaWYoISRyKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbigkZGItPkVyck1zZygpIC4gJzogJyAuICRxdWVyeSk7DQogICAgICB9DQogICAgICBjYXRjaChcRXhjZXB0aW9uICRlKQ0KICAgICAgew0KICAgICAgICBlY2hvICRlLT5nZXRNZXNzYWdlKCk7DQogICAgICB9DQogICAgICAgIA0KICAgIH0NCiAgfSAgICANCiAgDQogIGlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkNCiAgew0KICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsICdlZGl0ZW50cmllcycsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9tZXNzYWdlJz0+JHRoaXMtPkxhbmcoJ21lc3NhZ2VfbW9kaWZpZWQnKSkpOw0KCQkjJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9tZXNzYWdlJz0+JHRoaXMtPkxhbmcoJ21lc3NhZ2VfbW9kaWZpZWQnKSkpOw0KCX0NCiAgZWxzZQ0KICB7DQoJCWVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdtZXNzYWdlX21vZGlmaWVkJykpOw0KCX0NCgkNCn0NCmVsc2VpZigkZW50cnlfaWQgPiAwKQ0Kew0KCSRxdWVyeSA9ICdTRUxFQ1QgaWQsIGNhcHRpb24gRlJPTSAnDQogICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkNCiAgICAgICAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ2tleXMgV0hFUkUgaWQ9PyBMSU1JVCAxJzsNCiAgICAgICAgICANCgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoJGVudHJ5X2lkKSApOw0KCQ0KICBpZigkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkNCiAgew0KICAgICRlbnRyeSA9ICRyb3dbJ2lkJ107DQoJCSRlbnRyeV9pZCA9ICRyb3dbJ2lkJ107DQoJCSRjYXB0aW9uID0gJHJvd1snY2FwdGlvbiddOw0KCQkkcXVlcnkgPSAiU0VMRUNUIGxhbmdpZCwgdmFsdWUgRlJPTSAiDQogICAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKSANCiAgICAgICAgICAgIC4gIm1vZHVsZV9lcmlkdV9sYW5nZW50cmllcyBXSEVSRSBzdHJpbmdpZD0/IjsNCiAgICAgICAgICAgIA0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZW50cnlfaWQpKTsNCiAgICANCgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpDQogICAgew0KCQkJJHZhbHVlc1skcm93WyJsYW5naWQiXV0gPSAkcm93WyJ2YWx1ZSJdOw0KCQl9DQoJfQ0KfQ0KDQojIG1vdmUgYWxsIHRoaXMgaW50byBhIHRlbXBsYXRlPz8/IChKTSkNCg0KJGJ1dHRvbnMgPSAnPHA+Jw0KICAgICAgICAgIC4gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKQ0KICAgICAgICAgIC4gJyAnDQogICAgICAgICAgLiAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnYXBwbHknLCBsYW5nKCdhcHBseScpKQ0KICAgICAgICAgIC4gJyAnDQogICAgICAgICAgLiAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpDQogICAgICAgICAgLiAnPC9wPic7DQoNCmVjaG8gJzxoMT4nIC4gJHRoaXMtPkxhbmcoJ2VudHJ5JykgLiAnPC9oMT4nOw0KDQplY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZWRpdGVudHJ5JywgJHJldHVybmlkKTsNCg0KZWNobyAkYnV0dG9uczsNCg0KaWYoJGVudHJ5IHx8ICRlbnRyeV9pZCA+IDApDQp7DQoJZWNobyAnPHA+JyAuICR0aGlzLT5MYW5nKCdlbnRyeW5hbWUnKSAuICcgOiAnIC4gJGNhcHRpb24gLiAnPC9wPic7DQogIGVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImVudHJ5a2V5IiwgJGVudHJ5KTsNCgllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJlbnRyeWlkIiwgJGVudHJ5X2lkKTsNCgllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJjYXB0aW9uIiwgJGNhcHRpb24pOw0KCWVjaG8gJzxwPicgLiAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWxldGVFbnRyeScsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoImRlbGV0ZV9lbnRyeSIpLCBhcnJheSgnZW50cnlfaWQnID0+ICRlbnRyeV9pZCksICR0aGlzLT5MYW5nKCdwcm9tcHRfZGVsZXRlZW50cnknKSkuJzwvcD4nOw0KfQ0KZWxzZQ0Kew0KCWVjaG8gJzxwPicgLiAkdGhpcy0+TGFuZygnZW50cnluYW1lJykgLiAnKiA6ICcgLiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2NhcHRpb24nLCAkcmV0dXJuaWQsICcnLCA2NCwgNjQpIC4gJzwvcD4nOw0KfQ0KZWNobyAnPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4nOw0KDQoNCmZvcmVhY2goJGxhbmd1YWdlcyBhcyAkbGFuZykNCnsNCiAgJG9uZWxhbmcgPSAkbGFuZy0+dG9BcnJheSgpOw0KCWVjaG8gJw0KCTx0cj4NCgkJPHRkPicgDQogICAgLiAkdGhpcy0+Q3JlYXRlTGluaygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXRlbnRyaWVzJywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5pZCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICRvbmVsYW5nWyduYW1lJ10NCiAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnICgnIC4gJG9uZWxhbmdbJ2xhbmdjb2RlJ10gLiAnKScsIGFycmF5KCdsYW5naWQnID0+ICRvbmVsYW5nWydpZCddKQ0KICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgIC4gJzwvdGQ+DQoJCTx0ZD4nDQogICAgLiAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHd5c2l3eWcsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNzZXQoJHZhbHVlc1skb25lbGFuZ1snaWQnXV0pICYmICR2YWx1ZXNbJG9uZWxhbmdbJ2lkJ11dKSA/ICR2YWx1ZXNbJG9uZWxhbmdbJ2lkJ11dIDogJycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VudHJ5XycgLiAkb25lbGFuZ1snaWQnXSkgLiAnPC90ZD4NCgk8L3RyPic7DQp9DQplY2hvICcNCjwvdGJvZHk+DQo8L3RhYmxlPg0KJzsNCmVjaG8gJGJ1dHRvbnM7DQplY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.editlang.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdhZG1pbl9lcmlkdScpICkNCnsNCgllY2hvICc8cD4nIC4gJHRoaXMtPkxhbmcoJ2Vycm9yX2RlbmllZCcpIC4gJzwvcD4nOw0KCXJldHVybiBmYWxzZTsNCn0NCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCQ0Kew0KICAkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoKSApOw0KfQ0KDQokbGFuZ19pZCA9IGlzc2V0KCRwYXJhbXNbJ2xhbmdpZCddKSA/ICRwYXJhbXNbJ2xhbmdpZCddIDogLTE7DQoNCmlmKCAkbGFuZ19pZCA+IDApDQp7DQogICMgd2UgYXJlIGVkaXRpbmcNCiAgJGxhbmcgPSBcRXJpZHVcbGFuZ3VhZ2VzOjpHZXRMYW5nRnJvbUlkKCRsYW5nX2lkKTsNCn0NCmVsc2UNCnsNCiAgIyBuZXcgZW50cnkNCiAgJGxhbmcgPSBuZXcgXEVyaWR1XGxhbmd1YWdlKCk7DQp9DQoNCiMganVzdCBhIGhhY2sgdG8ga2VlcCBiYWNrd2FyZCBjb21wYXQuLi4gKEpNKQ0KIyBhcnJheSB0byBzdGRjbGFzcw0KJGl0ZW0gPSAob2JqZWN0KSRsYW5nLT50b0FycmF5KCk7DQoNCmlmKCAhaXNzZXQoJGl0ZW0tPmRvbWFpbikgKSAkaXRlbS0+ZG9tYWluID0gJyc7DQokYWRtaW50aGVtZSA9IGNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddOw0KJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCg0KaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pIHx8IGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pICkJDQp7DQoJDQoJaWYoISRwYXJhbXNbJ3Jvb3RfaWQnXSB8fCAkcGFyYW1zWydsYW5nY29kZSddID09ICcnIHx8ICRwYXJhbXNbJ25hbWUnXSA9PSAnJykNCiAgew0KCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCAkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2dpbnZhbHVlJykgKTsNCgl9DQogIGVsc2UNCiAgew0KICAgICRpdGVtLT5pZCA9ICRsYW5nX2lkOw0KICAgICRpdGVtLT5sYW5nY29kZSA9ICR0aGlzLT5wbGNyZWF0ZWFsaWFzKGlzc2V0KCRwYXJhbXNbJ2xhbmdjb2RlJ10pID8gJHBhcmFtc1snbGFuZ2NvZGUnXSA6ICcnKTsNCiAgICAkaXRlbS0+cm9vdF9pZCA9IGlzc2V0KCRwYXJhbXNbJ3Jvb3RfaWQnXSkgPyAkcGFyYW1zWydyb290X2lkJ10gOiBGQUxTRTsNCiAgICAkaXRlbS0+ZGVmYXVsdF9pZCA9IGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHRfaWQnXSkgPyAkcGFyYW1zWydkZWZhdWx0X2lkJ10gOiAnJzsNCiAgICAkaXRlbS0+bmFtZSA9IGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkgPyAkcGFyYW1zWyduYW1lJ10gOiAnJzsNCiAgICAkaXRlbS0+bWVudV9uYW1lID0gaXNzZXQoJHBhcmFtc1snbWVudV9uYW1lJ10pID8gJHBhcmFtc1snbWVudV9uYW1lJ10gOiAnJzsNCiAgICAkaXRlbS0+YWN0aXZlID0gaXNzZXQoJHBhcmFtc1snYWN0aXZlJ10pID8gJHBhcmFtc1snYWN0aXZlJ10gOiAxOw0KICAgICRpdGVtLT5pdGVtX29yZGVyID0gIWVtcHR5KCRwYXJhbXNbJ2l0ZW1fb3JkZXInXSkgPyAkcGFyYW1zWydpdGVtX29yZGVyJ10gOiBcRXJpZHVcbGFuZ19vcHM6OmNvdW50X2Zyb21fZGIoJ2xhbmd1YWdlcycsICdsYW5nY29kZScpICsgMTsNCiAgICAkaXRlbS0+ZG9tYWluID0gaXNzZXQoJHBhcmFtc1snZG9tYWluJ10pID8gJHBhcmFtc1snZG9tYWluJ10gOiAnJzsNCiAgICAkaXRlbS0+aXNvXzYzOV8xID0gaXNzZXQoJHBhcmFtc1snaXNvXzYzOV8xJ10pID8gJHBhcmFtc1snaXNvXzYzOV8xJ10gOiAnJzsNCiAgICAkaXRlbS0+aXNvXzMxNjZfMV9hbHBoYV8yID0gaXNzZXQoJHBhcmFtc1snaXNvXzMxNjZfMV9hbHBoYV8yJ10pID8gJHBhcmFtc1snaXNvXzMxNjZfMV9hbHBoYV8yJ10gOiAnJzsNCiAgICANCiAgICAjIHNhdmUNCiAgICAkbGFuZy0+ZnJvbUFycmF5KCAoYXJyYXkpJGl0ZW0gKTsNCiAgICAkbGFuZy0+U2F2ZSgpOw0KICAgICAgDQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2FwcGx5J10pKQ0KICAgIHsNCgkJCWVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdtZXNzYWdlX21vZGlmaWVkJykpOw0KCQl9DQogICAgZWxzZQ0KICAgIHsNCgkJCSR0aGlzLT5SZWRpcmVjdCggJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSggJ21vZHVsZV9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnbWVzc2FnZV9tb2RpZmllZCcpICkgKTsJDQoJCX0NCgl9DQp9DQoNCi8qKg0KKiBzbWFydHkgc3R1ZmYNCiovDQoNCiRoaWRkZW4gPSAnJzsNCg0KLy8gcHJlcGFyZSByb290IHBhZ2VzIGNvbWJvDQokbGFuZ3VhZ2VzID0gJHRoaXMtPmdldGxhbmd1YWdlcygpOw0KJGxhbmd1YWdlc19yb290aWRzID0gYXJyYXkoKTsNCiRsYW5ndWFnZXNfY29kZXMgPSBhcnJheSgpOw0KDQpmb3JlYWNoKCRsYW5ndWFnZXMgYXMgJGFsYW5nKQ0Kew0KICAkb25lbGFuZyA9ICRhbGFuZy0+dG9BcnJheSgpOw0KCSRsYW5ndWFnZXNfcm9vdGlkc1tdID0gJG9uZWxhbmdbJ3Jvb3RfaWQnXTsNCgkkbGFuZ3VhZ2VzX2NvZGVzW10gPSAkb25lbGFuZ1snbGFuZ2NvZGUnXTsNCn0NCg0KJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgY29udGVudF9pZCwgY29udGVudF9uYW1lIEZST00gYCcgLiBjbXNfZGJfcHJlZml4KCkgLiAnY29udGVudGAgV0hFUkUgcGFyZW50X2lkIDwgMScpOw0KJG9wdGlvbnMgPSBhcnJheSgpOw0KDQp3aGlsZSggJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkgKQ0Kew0KCWlmKCAhaW5fYXJyYXkoJHJvd1snY29udGVudF9pZCddLCAkbGFuZ3VhZ2VzX3Jvb3RpZHMpIHx8IChpc3NldCgkaXRlbS0+cm9vdF9pZCkgJiYgJHJvd1snY29udGVudF9pZCddID09ICRpdGVtLT5yb290X2lkKSApCQ0KICB7DQogICAgJG9wdGlvbnNbJHJvd1snY29udGVudF9uYW1lJ11dID0gJHJvd1snY29udGVudF9pZCddOw0KICB9DQp9DQoNCiRzbWFydHktPmFzc2lnbigNCiAgICAgICAgICAgICAgICAgICdyb290X2lkX2lucHV0JywgDQogICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdyb290X2lkJywgJG9wdGlvbnMsIC0xLCBpc3NldCgkaXRlbS0+cm9vdF9pZCkgPyAkaXRlbS0+cm9vdF9pZCA6IDApIA0KICAgICAgICAgICAgICAgICk7DQoNCi8vIHByZXBhcmUgZGVmYXVsdCBwYWdlcyBjb21ibw0KJGNudG9wZXJhdGlvbnMgPSBjbXNtcygpLT5nZXRDb250ZW50T3BlcmF0aW9ucygpOw0KJHNtYXJ0eS0+YXNzaWduKA0KICAgICAgICAgICAgICAgICAgJ2RlZmF1bHRfaWRfaW5wdXQnLCANCiAgICAgICAgICAgICAgICAgICRjbnRvcGVyYXRpb25zLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywgaXNzZXQoJGl0ZW0tPmRlZmF1bHRfaWQpID8gJGl0ZW0tPmRlZmF1bHRfaWQgOiAnLTEnLCAkaWQgLiAnZGVmYXVsdF9pZCcpDQogICAgICAgICAgICAgICAgKTsNCg0KaWYoJGxhbmdfaWQgPCAxKQ0Kew0KICAkbGFuZ2xpc3QgPSBcRXJpZHVcdXRpbHM6OkdldFJlZ0JjcDQ3Q29kZXNMaXN0KCk7DQogIA0KCSRwb3NzaWJsZWxhbmdzID0gYXJyYXkoJy0nID0+ICcvJyk7DQoJLy9hc29ydCgkbGFuZ2xpc3QpOw0KICANCglmb3JlYWNoICgkbGFuZ2xpc3QgYXMgJGtleSA9PiAkdmFsKSANCiAgew0KCQkkbG5hbWUgPSBleHBsb2RlKCcoJywgJHZhbCk7DQoJCQ0KICAgIGlmKGNvdW50KCRsbmFtZSkgPT0gMSkNCiAgICB7DQoJCQkkbG5hbWUgPSAkdmFsOw0KCQl9DQogICAgZWxzZQ0KICAgIHsNCgkJCSRsbmFtZSA9IHRyaW0oIHRyaW0oJGxuYW1lWzFdLCAnKScpICk7DQoJCX0NCiAgICANCiAgICAjIHdlIHdpbGwgb3BlcmF0ZSBvbiB0aGlzIHNvb24gYW5kICRuZXdfa2V5IHdpbGwgYmUgZGlmZmVyZW50IHRoYW4gJGtleQ0KICAgICRuZXdfa2V5ID0gJGtleTsNCiAgICANCgkJaWYoICFpbl9hcnJheSgkbmV3X2tleSwgJGxhbmd1YWdlc19jb2RlcykgKQkNCiAgICB7DQogICAgICAkcG9zc2libGVsYW5nc1skbmV3X2tleSAuICcgLyAnIC4gJHZhbF0gPSAkbmV3X2tleSAuICcvJyAuICRsbmFtZTsNCiAgICB9DQoJfQ0KICANCgkkbGFuZ3NlbGVjdCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnbGFuZ3NlbGVjdCcsICRwb3NzaWJsZWxhbmdzKTsNCgkkbGFuZ2NvZGVfaW5wdXQgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnbGFuZ2NvZGUnLCAnJywgMTUsIDgpOw0KfQ0KZWxzZQ0Kew0KCSRsYW5nY29kZV9pbnB1dCA9ICRpdGVtLT5sYW5nY29kZTsNCgkkbGFuZ3NlbGVjdCA9IGZhbHNlOw0KfQ0KDQokaGlkZGVuICAgPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbGFuZ2lkJywgJGxhbmdfaWQpOw0KJGhpZGRlbiAgLj0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXRlbV9vcmRlcicsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc3NldCgkaXRlbSkgPyAkaXRlbS0+aXRlbV9vcmRlciA6IFxFcmlkdVxsYW5nX29wczo6Y291bnRfZnJvbV9kYignbGFuZ3VhZ2VzJywgJ2xhbmdjb2RlJykgKyAxDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KJGhpZGRlbiAgLj0gJGxhbmdfaWQgPiAwID8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2xhbmdjb2RlJywgJGl0ZW0tPmxhbmdjb2RlKSA6ICcnOw0KDQokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsICRoaWRkZW4pOw0KJHNtYXJ0eS0+YXNzaWduKCdsYW5nc2VsZWN0JywgJGxhbmdzZWxlY3QpOw0KJHNtYXJ0eS0+YXNzaWduKCdsYW5nY29kZV9pbnB1dCcsICRsYW5nY29kZV9pbnB1dCk7DQoNCiRpdGVtLT5uYW1lX2xhYmVsID0gJHRoaXMtPkxhbmcoJ25hbWUnKTsNCiRpdGVtLT5tZW51X25hbWVfbGFiZWwgPSAkdGhpcy0+TGFuZygnbWVudV9uYW1lJyk7DQokaXRlbS0+cm9vdF9pZF9sYWJlbCA9ICR0aGlzLT5MYW5nKCdyb290X2lkJyk7DQokaXRlbS0+ZGVmYXVsdF9pZF9sYWJlbCA9ICR0aGlzLT5MYW5nKCdkZWZhdWx0X2lkJyk7DQokaXRlbS0+bGFuZ2NvZGVfbGFiZWwgPSAkdGhpcy0+TGFuZygnbGFuZ2NvZGVfcHJvbXB0Jyk7DQokaXRlbS0+bGFuZ3NlbGVjdF9sYWJlbCA9ICR0aGlzLT5MYW5nKCdsYW5nc2VsZWN0Jyk7DQokaXRlbS0+aXNvXzYzOV8xX2xhYmVsID0gJHRoaXMtPkxhbmcoJ2lzb182MzlfMScpOw0KJGl0ZW0tPmlzb18zMTY2XzFfYWxwaGFfMl9sYWJlbCA9ICR0aGlzLT5MYW5nKCdpc29fMzE2Nl8xX2FscGhhXzInKTsNCiRpdGVtLT5kb21haW5fbGFiZWwgPSAkdGhpcy0+TGFuZygnZG9tYWluJyk7DQoNCiRzbWFydHktPmFzc2lnbignaXRlbScsICRpdGVtKTsNCg0KJHNtYXJ0eS0+YXNzaWduKA0KICAgICAgICAgICAgICAgICAgJ25hbWVfaW5wdXQnLCANCiAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsIGlzc2V0KCRpdGVtKSA/ICRpdGVtLT5uYW1lIDogJycsIDUwLCA2NCkgDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICANCiRzbWFydHktPmFzc2lnbigNCiAgICAgICAgICAgICAgICAgICdtZW51X25hbWVfaW5wdXQnLCANCiAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbWVudV9uYW1lJywgaXNzZXQoJGl0ZW0pID8gJGl0ZW0tPm1lbnVfbmFtZSA6ICcnLCA1MCwgNjQpDQogICAgICAgICAgICAgICAgKTsNCg0KLy8gcHJlcGFyaW5nIGxhYmVscw0KIy0tIGRlcHJlY2F0ZWQgKEpNKSBhbmQgd2lsbCBiZSByZW1vdmVkDQokc21hcnR5LT5hc3NpZ24oJ25hbWVfbGFiZWwnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsNCiRzbWFydHktPmFzc2lnbignbWVudV9uYW1lX2xhYmVsJywgJHRoaXMtPkxhbmcoJ21lbnVfbmFtZScpKTsNCiRzbWFydHktPmFzc2lnbigncm9vdF9pZF9sYWJlbCcsICR0aGlzLT5MYW5nKCdyb290X2lkJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdkZWZhdWx0X2lkX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2RlZmF1bHRfaWQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2xhbmdjb2RlX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2xhbmdjb2RlX3Byb21wdCcpKTsNCiRzbWFydHktPmFzc2lnbignbGFuZ3NlbGVjdF9sYWJlbCcsICR0aGlzLT5MYW5nKCdsYW5nc2VsZWN0JykpOw0KJHNtYXJ0eS0+YXNzaWduKCdwbGlkJywgJGlkKTsgLy8gdGJyIChKTSkgbm8gaWRlYSB3aHkgaXQgd2FzIGV2ZW4gaGVyZSBpbiB0aGUgMXN0IHBsYWNlDQojLS0NCg0KJHNtYXJ0eS0+YXNzaWduKCdlZGl0dGl0bGUnLCAoJGxhbmdfaWQgPCAxKSA/ICR0aGlzLT5MYW5nKCdhZGRfbGFuZ3VhZ2UnKSA6ICR0aGlzLT5MYW5nKCdlZGl0X2xhbmd1YWdlJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsNCiRzbWFydHktPmFzc2lnbignYXBwbHknLCAoaXNzZXQoJGl0ZW0pICYmIGlzc2V0KCRpdGVtLT5pZCkpPyR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdhcHBseScsIGxhbmcoJ2FwcGx5JykpOicnKTsNCiRzbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1fc3RhcnQnLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRsYW5nJywgJHJldHVybmlkKSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGxhbmcudHBsJyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.editTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJz0+J3RlbXBsYXRlcycpICk7DQoNCiR0cGxjb250ZW50ID0gJyc7DQppZiggKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgKSAmJiBpc3NldCgkcGFyYW1zWyd0cGxuYW1lJ10pICl7DQoJJHRwbGNvbnRlbnQgPSAkcGFyYW1zWyd0cGxjb250ZW50J107DQoJaWYoJHBhcmFtc1sndHBsbmFtZSddICE9ICcnKXsNCgkJaWYoaXNzZXQoJHBhcmFtc1snaXNuZXcnXSkpCSRwYXJhbXNbJ3RwbG5hbWUnXSA9IG11bmdlX3N0cmluZ190b191cmwoJHBhcmFtc1sndHBsbmFtZSddLCBmYWxzZSk7DQoJCWlmKCR0aGlzLT5TZXRUZW1wbGF0ZSgkcGFyYW1zWyd0cGxuYW1lJ10sJHBhcmFtc1sndHBsY29udGVudCddLCR0aGlzLT5HZXROYW1lKCkpKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKXsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCJtb2R1bGVfbWVzc2FnZSIgPT4gJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSwgJ2FjdGl2ZV90YWInPT4ndGVtcGxhdGVzJykgKTsNCgkJfWVsc2V7DQoJCQllY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpKTsNCgkJfQ0KCX1lbHNlew0KCQllY2hvICc8ZGl2IGNsYXNzPSJwYWdlZXJyb3Jjb250YWluZXIiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NnaW52YWx1ZScpLic8L2Rpdj4nOw0KCX0NCn1lbHNlaWYoIGlzc2V0KCRwYXJhbXNbJ3RwbG5hbWUnXSkgKXsNCgkkdHBsY29udGVudCA9ICR0aGlzLT5HZXRUZW1wbGF0ZSggJHBhcmFtc1sndHBsbmFtZSddLCAkdGhpcy0+R2V0TmFtZSgpICk7DQp9DQoNCmVjaG8gJzxoMT4nLiR0aGlzLT5MYW5nKCJlZGl0dGVtcGxhdGUiKS4nPC9oMT4nOw0KZWNobyAnPGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyI+Jy4kdGhpcy0+TGFuZygidGVtcGxhdGVoZWxwIikuJzwvZGl2Pic7DQplY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiZWRpdFRlbXBsYXRlIiwgJHJldHVybmlkKTsNCmVjaG8gJwk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPkxhbmcoJ25hbWUnKS4nIDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPic7DQppZihpc3NldCgkcGFyYW1zWyd0cGxuYW1lJ10pICYmICRwYXJhbXNbJ3RwbG5hbWUnXSAhPSAnJyl7DQoJZWNobyAkcGFyYW1zWyd0cGxuYW1lJ10uJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgInRwbG5hbWUiLCAkcGFyYW1zWyd0cGxuYW1lJ10pOw0KfWVsc2V7DQoJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwndHBsbmFtZScsJycsMzAsNjQpOw0KfQ0KZWNobyAnPC9wPg0KCTwvZGl2Pg0KJzsNCmVjaG8gJwk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPkxhbmcoJ3RlbXBsYXRlJykuJyA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsJHRwbGNvbnRlbnQsJ3RwbGNvbnRlbnQnKS4nPC9wPg0KCTwvZGl2Pg0KJzsNCmVjaG8gJzxwPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKS4nICcuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImFwcGx5IiwgbGFuZygiYXBwbHkiKSkuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJjYW5jZWwiLCBsYW5nKCJjYW5jZWwiKSkuJzwvcD4nOw0KaWYoIWlzc2V0KCRwYXJhbXNbInRwbG5hbWUiXSkgfHwgJHBhcmFtc1sidHBsbmFtZSJdID09ICcnKQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJpc25ldyIsIDEpOw0KZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.menu.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCmlmKCEkdGhpcy0+Y3VycmVudF9sYW5nY29kZSkJJHRoaXMtPmFzc2lnbl9wYWdlX2xhbmcoKTsNCg0KLy8gaWYgbm8gcGFnZSBsYW5nIGlzIGFzc2lnbmVkLi4uIG1heWJlIHdlIGFyZW4ndCBpbiBhIHBhZ2UgdGhhdCBoYXMgYSBwYXJ0aWN1bGFyIGxhbmd1YWdlPw0KaWYoISR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKSAgcmV0dXJuIEZBTFNFOw0KDQokY3VycmVudF9sYW5ndWFnZSA9ICR0aGlzLT5jdXJyZW50X2xhbmdjb2RlOw0KJHNob3duID0gKGlzc2V0KCRwYXJhbXNbJ3Nob3cnXSkgJiYgJHBhcmFtc1snc2hvdyddICE9ICcnKSA/IGV4cGxvZGUoJywnLCAkcGFyYW1zWydzaG93J10pIDogRkFMU0U7DQokcmVkaXJlY3RfdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJ2NudG50MDEnLCAncmVkaXJlY3QnLCAtMSwgYXJyYXkoKSwgRkFMU0UsIEZBTFNFLCAnbGFuZycpOw0KDQokdXNlX2Nvb2tpZXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29va2llc19hdXRvcmVkaXJlY3RfYWxsJywgRkFMU0UpIHx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjb29raWVzX2F1dG9yZWRpcmVjdF9ob21lJywgRkFMU0UpOw0KJGRlZmF1bHRfaGlkZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2hpZGUnLCBGQUxTRSk7DQokdXNlX3BhZ2VfdGl0bGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlX3BhZ2VfdGl0bGUnLCBGQUxTRSk7DQokbGFuZ3VhZ2VzID0gJHRoaXMtPmdldGxhbmd1YWdlcygpOw0KJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KDQokbGlua3MgPSAkdGhpcy0+Z2V0X3VybHMoKTsNCg0KJGl0ZW1saXN0ID0gYXJyYXkoKTsNCiRzaG93X2N1cnJlbnQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3VycmVudF9saW5rJywgRkFMU0UpOw0KJGRlZmF1bHRfaWQgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0UGFnZUlEKCk7DQoNCmZvcmVhY2goJGxhbmd1YWdlcyBhcyAkbGFuZ3VhZ2UpDQp7DQogICMgdGhpcyB3b24ndCBiZSBuZWVkZWQgYW55IGxvbmdlcj8NCiAgJGlzX2hvbWVwYWdlID0gJGxhbmd1YWdlLT5nZXRfZGVmYXVsdF9pZCgpID09ICRkZWZhdWx0X2lkOw0KICAkcGFnZV9leHQgPSAkaXNfaG9tZXBhZ2UgPyAnJyA6ICRjb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ107DQogICMjIyMNCiAgDQoJaWYoICggISRzaG93biB8fCBpbl9hcnJheSgkbGFuZ3VhZ2UtPmdldF9sYW5nY29kZSgpLCAkc2hvd24pICkgDQogICAgJiYgKCRzaG93X2N1cnJlbnQgfHwgJGxhbmd1YWdlLT5nZXRfbGFuZ2NvZGUoKSAhPSAkY3VycmVudF9sYW5ndWFnZSkgKQ0KICB7DQoJCSRpdGVtID0gbmV3IFN0ZENsYXNzKCk7DQoJCSRpdGVtLT5jb2RlID0gJGxhbmd1YWdlLT5nZXRfbGFuZ2NvZGUoKTsNCgkJJGl0ZW0tPm5hbWUgPSAkbGFuZ3VhZ2UtPmdldF9uYW1lKCk7DQoJCSRpdGVtLT5tZW51X25hbWUgPSAkbGFuZ3VhZ2UtPmdldF9tZW51X25hbWUoKTsNCgkJJGl0ZW0tPmlzX2N1cnJlbnQgPSAoJGl0ZW0tPmNvZGUgPT0gJGN1cnJlbnRfbGFuZ3VhZ2UpOw0KCQkkaXRlbS0+cGFnZV9tZW51X3RleHQgPSBpc3NldCgkbGlua3NbJGl0ZW0tPmNvZGVdKSA/ICRsaW5rc1skaXRlbS0+Y29kZV1bJ21lbnVfdGV4dCddIDogJyc7DQoJCSRpdGVtLT5wYWdlX25hbWUgPSBpc3NldCgkbGlua3NbJGl0ZW0tPmNvZGVdKSA/ICRsaW5rc1skaXRlbS0+Y29kZV1bJ25hbWUnXSA6ICcnOw0KCQkkaXRlbS0+dXJsID0gKGlzc2V0KCRsaW5rc1skaXRlbS0+Y29kZV0pICYmICRsaW5rc1skaXRlbS0+Y29kZV0pIA0KICAgICAgICAgICAgICAgID8gKCRyZWRpcmVjdF91cmwgLiAnPycgLiAnY2lkPScgLiAkbGlua3NbJGl0ZW0tPmNvZGVdWydjaWQnXSAuICcmYW1wO2xhbmc9JyAuICRpdGVtLT5jb2RlKSANCiAgICAgICAgICAgICAgICA6IEZBTFNFOw0KDQoJCWlmKCRpdGVtLT51cmwgfHwgISRkZWZhdWx0X2hpZGUgfHwgJGl0ZW0tPmlzX2N1cnJlbnQpCWFycmF5X3B1c2goJGl0ZW1saXN0LCAkaXRlbSk7DQoJfQ0KfQ0KDQokc21hcnR5LT5hc3NpZ24oJ2xhbmd1YWdlcycsICRpdGVtbGlzdCk7DQokc21hcnR5LT5hc3NpZ24oJ3NldF9sYW5nX3VybCcsICcnKTsNCg0KaWYoaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlJ10pICApDQp7DQogIHRyeQ0KICB7DQogICAgJGxheW91dF90ZW1wbGF0ZV9vYmogPSBDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZCgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsNCiAgfQ0KICBjYXRjaChDbXNFeGNlcHRpb24gJGUpDQogIHsNCiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdObyBtZW51IHRlbXBsYXRlIGZvdW5kIHdpdGggdGhlIG5hbWU6ICcgLiAkcGFyYW1zWyd0ZW1wbGF0ZSddKTsNCiAgICByZXR1cm47DQogIH0NCn0NCmVsc2UNCnsNCiAgdHJ5DQogIHsNCiAgICAkbGF5b3V0X3RlbXBsYXRlX29iaiA9IENtc0xheW91dFRlbXBsYXRlOjpsb2FkX2RmbHRfYnlfdHlwZSgnRXJpZHU6OmVyaWR1X2xhbmdfc2VsZWN0b3JfbWVudScpOw0KICB9DQogIGNhdGNoKENtc0V4Y2VwdGlvbiAkZSkNCiAgew0KICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCdObyBkZWZhdWx0IG1lbnUgdGVtcGxhdGUgZm91bmQnKTsNCiAgICByZXR1cm47DQogIH0NCiAgDQogIGlmKCAhaXNfb2JqZWN0KCRsYXlvdXRfdGVtcGxhdGVfb2JqKSApDQogIHsNCiAgICBhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwnTm8gbWVudSB0ZW1wbGF0ZSBmb3VuZCcpOw0KICAgIHJldHVybjsNCiAgfQ0KfQ0KDQokdGVtcGxhdGVfbmFtZSA9ICRsYXlvdXRfdGVtcGxhdGVfb2JqLT5nZXRfbmFtZSgpOw0KDQokY2FjaGVfaWQgPSAnfHhsOHInLiBtZDUoc2VyaWFsaXplKCRwYXJhbXMpKTsNCiR0ZW1wbGF0ZV9vYmplY3QgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldFRlbXBsYXRlUmVzb3VyY2UoJHRlbXBsYXRlX25hbWUpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FjaGVfaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzbWFydHkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQoNCiR0ZW1wbGF0ZV9vYmplY3QtPmRpc3BsYXkoKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.movesomething.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMQ0KIyBBIGZvcmsgb2YgQmFiZWwNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIEJhYmVsIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIHVzaW5nIENUTE1vZHVsZU1ha2VyIGFuZCByZWxlYXNlZCB1bmRlciBHTlUNCiMgQ1RMTW9kdWxlTWFrZXIgd2FzIGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIGFuZCByZWxlYXNlZCB1bmRlciBHTlUNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIEVyaWR1IGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQkVHSU5fTElDRU5TRQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgRXJpZHUNCiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIEVyaWR1IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBFTkRfTElDRU5TRQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7DQoNCiRuZXdwYXJhbXMgPSBpc3NldCgkcGFyYW1zWyJsZXZlbG5hbWUiXSk/YXJyYXkoImFjdGl2ZV90YWIiPT4kcGFyYW1zWyJsZXZlbG5hbWUiXSk6YXJyYXkoKTsNCg0KaWYgKCFpc3NldCgkcGFyYW1zWyJtb3ZlIl0pIHx8ICFpc3NldCgkcGFyYW1zWyJsYW5nY29kZSJdKSB8fCAhaXNzZXQoJHBhcmFtc1siY3VycmVudG9yZGVyIl0pICkNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRuZXdwYXJhbXMpOw0KDQokZGIgPSYgY21zbXMoKS0+R2V0RGIoKTsNCiRkYnRhYmxlID0gY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZXJpZHVfbGFuZ3VhZ2VzIjsNCiRjdXJyZW50b3JkZXIgPSAkcGFyYW1zWyJjdXJyZW50b3JkZXIiXTsNCiRsYW5nY29kZSA9ICRwYXJhbXNbImxhbmdjb2RlIl07DQoNCnN3aXRjaCgkcGFyYW1zWyJtb3ZlIl0pew0KCQ0KCWNhc2UgImRlbGV0ZSI6DQoJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2xhbmdlbnRyaWVzIFdIRVJFIGxhbmdjb2RlPT8iOw0KCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbGFuZ2NvZGUpKTsNCgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICRkYnRhYmxlIFdIRVJFIGxhbmdjb2RlID0gPyBMSU1JVCAxIjsNCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdjb2RlKSk7DQoNCgkJLy8gVVBEQVRFIFRIRSBPUkRFUiBPRiBUSEUgSVRFTVMNCgkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlci0xKSBXSEVSRSBpdGVtX29yZGVyID4gPyAiOw0KCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY3VycmVudG9yZGVyKSk7DQoJCQ0KCQkkbmV3cGFyYW1zWyJtb2R1bGVfbWVzc2FnZSJdID0gJHRoaXMtPmxhbmcoIm1lc3NhZ2VfZGVsZXRlZCIpOw0KCQlicmVhazsJDQoNCgljYXNlICJ1cCI6DQoJCWlmICgkY3VycmVudG9yZGVyICE9IDEpew0KCQkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlcisxKSBXSEVSRSBpdGVtX29yZGVyID0gPyBMSU1JVCAxOyI7DQoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY3VycmVudG9yZGVyLTEpKTsNCgkJCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgbGFuZ2NvZGUgPSA/IExJTUlUIDE7IjsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsYW5nY29kZSkpOw0KCQl9DQoJCWJyZWFrOw0KCQkNCgljYXNlICJkb3duIjoNCgkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlci0xKSBXSEVSRSBpdGVtX29yZGVyID0gPyBMSU1JVCAxOyI7DQoJCWlmKCAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY3VycmVudG9yZGVyKzEpKSApew0KCQkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlcisxKSBXSEVSRSBsYW5nY29kZSA9ID8gTElNSVQgMTsiOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdjb2RlKSk7DQoJCX0NCgkJYnJlYWs7DQp9DQoNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.redirect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7DQokaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7DQpmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQ0KJGxhbmcgPSBpc3NldCgkX0dFVFsnbGFuZyddKSA/ICRfR0VUWydsYW5nJ10gOiBGQUxTRTsNCiRjaWQgPSBpc3NldCgkX0dFVFsnY2lkJ10pID8gKGludCkkX0dFVFsnY2lkJ10gOiAtMTsNCiR1cmwgPSBGQUxTRTsNCiRyZWRpcmVjdF91cmwgPSAkdGhpcy0+UGFydGlhbFVybFRvQ29va2llKCk7DQokY29uZmlnID0gIFxFcmlkdVxjb25maWc6OkdldEluc3RhbmNlKCk7DQpzZXRjb29raWUoJGNvbmZpZ1snY29va2llX25hbWUnXSwgJGxhbmcsIHRpbWUoKSArIDg2NDAwICogMzAsICcvJyk7DQoNCmlmKCRjaWQgPiAwKQ0Kew0KICAkbGFuZ3VhZ2VzID0gJHRoaXMtPmdldGxhbmd1YWdlcygpOyANCiAgICANCiAgJG5ld19sYW5nID0gJGxhbmd1YWdlc1skbGFuZ107DQogICR1cmwgPSBcRXJpZHVcdXRpbHM6OmNvbmZvcm1fdXJsKCAkbmV3X2xhbmctPmdldF9kb21haW4oKSAuICcvJyAuICR0aGlzLT5HZXRMaW5rVG9QYWdlKCRjaWQpICk7DQogICAgDQogICRkb21haW5zX3NldF9jb29raWUgPSBhcnJheSgpOw0KICBmb3JlYWNoKCRsYW5ndWFnZXMgYXMgJGxhbmd1YWdlKQ0KICB7DQogICAgJHNldF9jb29raWVfdXJsID0gXEVyaWR1XHV0aWxzOjpjb25mb3JtX3VybCgkbGFuZ3VhZ2UtPmdldF9kb21haW4oKSAuICcvJyAuICRyZWRpcmVjdF91cmwgLiAnP2xhbmc9JyAuICRsYW5nKTsNCiAgIA0KICAgICMgYXZvaWQgZHVwbGljYXRlcw0KICAgIGlmKCAhaW5fYXJyYXkoJHNldF9jb29raWVfdXJsLCAkZG9tYWluc19zZXRfY29va2llKSApIA0KICAgIHsNCiAgICAgICRkb21haW5zX3NldF9jb29raWVbXSAgPSAnPGltZyBzcmM9IicgLiAkc2V0X2Nvb2tpZV91cmwgLiAnIiBzdHlsZT0iZGlzcGxheTpub25lOyIgLz4nOw0KICAgIH0NCiAgfQ0KICAjIHRoaXMgc2VlbXMgdG8gYmUgYSBiaXQgZmFzdGVyIHRoYW4gcGFyc2luZyBieSBzbWFydHkuLi4uDQogICR0ZW1wbGF0ZSA9ICc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHkgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNkZGQ7IiBvbmxvYWQ9ImRvY3VtZW50LmxvY2F0aW9uLmFzc2lnbihcJycgLiAkdXJsIC4gJ1wnKSI+PHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjxpbWcgYWx0PSJQbGVhc2Ugd2FpdC4uLiIgc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBek1pQXpNaUlnZDJsa2RHZzlJalkwSWlCb1pXbG5hSFE5SWpZMElpQm1hV3hzUFNKM2FHbDBaU0krQ2lBZ1BHTnBjbU5zWlNCamVEMGlNVFlpSUdONVBTSXpJaUJ5UFNJd0lqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbklpSUhaaGJIVmxjejBpTURzek96QTdNQ0lnWkhWeVBTSXhjeUlnY21Wd1pXRjBRMjkxYm5ROUltbHVaR1ZtYVc1cGRHVWlJR0psWjJsdVBTSXdJaUJyWlhsVGNHeHBibVZ6UFNJd0xqSWdNQzR5SURBdU5DQXdMamc3TUM0eUlEQXVNaUF3TGpRZ01DNDRPekF1TWlBd0xqSWdNQzQwSURBdU9DSWdZMkZzWTAxdlpHVTlJbk53YkdsdVpTSWdMejRLSUNBOEwyTnBjbU5zWlQ0S0lDQThZMmx5WTJ4bElIUnlZVzV6Wm05eWJUMGljbTkwWVhSbEtEUTFJREUySURFMktTSWdZM2c5SWpFMklpQmplVDBpTXlJZ2NqMGlNQ0krQ2lBZ0lDQThZVzVwYldGMFpTQmhkSFJ5YVdKMWRHVk9ZVzFsUFNKeUlpQjJZV3gxWlhNOUlqQTdNenN3T3pBaUlHUjFjajBpTVhNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlCaVpXZHBiajBpTUM0eE1qVnpJaUJyWlhsVGNHeHBibVZ6UFNJd0xqSWdNQzR5SURBdU5DQXdMamc3TUM0eUlEQXVNaUF3TGpRZ01DNDRPekF1TWlBd0xqSWdNQzQwSURBdU9DSWdZMkZzWTAxdlpHVTlJbk53YkdsdVpTSWdMejRLSUNBOEwyTnBjbU5zWlQ0S0lDQThZMmx5WTJ4bElIUnlZVzV6Wm05eWJUMGljbTkwWVhSbEtEa3dJREUySURFMktTSWdZM2c5SWpFMklpQmplVDBpTXlJZ2NqMGlNQ0krQ2lBZ0lDQThZVzVwYldGMFpTQmhkSFJ5YVdKMWRHVk9ZVzFsUFNKeUlpQjJZV3gxWlhNOUlqQTdNenN3T3pBaUlHUjFjajBpTVhNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlCaVpXZHBiajBpTUM0eU5YTWlJR3RsZVZOd2JHbHVaWE05SWpBdU1pQXdMaklnTUM0MElEQXVPRHN3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NElpQmpZV3hqVFc5a1pUMGljM0JzYVc1bElpQXZQZ29nSUR3dlkybHlZMnhsUGdvZ0lEeGphWEpqYkdVZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb01UTTFJREUySURFMktTSWdZM2c5SWpFMklpQmplVDBpTXlJZ2NqMGlNQ0krQ2lBZ0lDQThZVzVwYldGMFpTQmhkSFJ5YVdKMWRHVk9ZVzFsUFNKeUlpQjJZV3gxWlhNOUlqQTdNenN3T3pBaUlHUjFjajBpTVhNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlCaVpXZHBiajBpTUM0ek56VnpJaUJyWlhsVGNHeHBibVZ6UFNJd0xqSWdNQzR5SURBdU5DQXdMamc3TUM0eUlEQXVNaUF3TGpRZ01DNDRPekF1TWlBd0xqSWdNQzQwSURBdU9DSWdZMkZzWTAxdlpHVTlJbk53YkdsdVpTSWdMejRLSUNBOEwyTnBjbU5zWlQ0S0lDQThZMmx5WTJ4bElIUnlZVzV6Wm05eWJUMGljbTkwWVhSbEtERTRNQ0F4TmlBeE5pa2lJR040UFNJeE5pSWdZM2s5SWpNaUlISTlJakFpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaWNpSWdkbUZzZFdWelBTSXdPek03TURzd0lpQmtkWEk5SWpGeklpQnlaWEJsWVhSRGIzVnVkRDBpYVc1a1pXWnBibWwwWlNJZ1ltVm5hVzQ5SWpBdU5YTWlJR3RsZVZOd2JHbHVaWE05SWpBdU1pQXdMaklnTUM0MElEQXVPRHN3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NElpQmpZV3hqVFc5a1pUMGljM0JzYVc1bElpQXZQZ29nSUR3dlkybHlZMnhsUGdvZ0lEeGphWEpqYkdVZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb01qSTFJREUySURFMktTSWdZM2c5SWpFMklpQmplVDBpTXlJZ2NqMGlNQ0krQ2lBZ0lDQThZVzVwYldGMFpTQmhkSFJ5YVdKMWRHVk9ZVzFsUFNKeUlpQjJZV3gxWlhNOUlqQTdNenN3T3pBaUlHUjFjajBpTVhNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlCaVpXZHBiajBpTUM0Mk1qVnpJaUJyWlhsVGNHeHBibVZ6UFNJd0xqSWdNQzR5SURBdU5DQXdMamc3TUM0eUlEQXVNaUF3TGpRZ01DNDRPekF1TWlBd0xqSWdNQzQwSURBdU9DSWdZMkZzWTAxdlpHVTlJbk53YkdsdVpTSWdMejRLSUNBOEwyTnBjbU5zWlQ0S0lDQThZMmx5WTJ4bElIUnlZVzV6Wm05eWJUMGljbTkwWVhSbEtESTNNQ0F4TmlBeE5pa2lJR040UFNJeE5pSWdZM2s5SWpNaUlISTlJakFpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaWNpSWdkbUZzZFdWelBTSXdPek03TURzd0lpQmtkWEk5SWpGeklpQnlaWEJsWVhSRGIzVnVkRDBpYVc1a1pXWnBibWwwWlNJZ1ltVm5hVzQ5SWpBdU56VnpJaUJyWlhsVGNHeHBibVZ6UFNJd0xqSWdNQzR5SURBdU5DQXdMamc3TUM0eUlEQXVNaUF3TGpRZ01DNDRPekF1TWlBd0xqSWdNQzQwSURBdU9DSWdZMkZzWTAxdlpHVTlJbk53YkdsdVpTSWdMejRLSUNBOEwyTnBjbU5zWlQ0S0lDQThZMmx5WTJ4bElIUnlZVzV6Wm05eWJUMGljbTkwWVhSbEtETXhOU0F4TmlBeE5pa2lJR040UFNJeE5pSWdZM2s5SWpNaUlISTlJakFpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaWNpSWdkbUZzZFdWelBTSXdPek03TURzd0lpQmtkWEk5SWpGeklpQnlaWEJsWVhSRGIzVnVkRDBpYVc1a1pXWnBibWwwWlNJZ1ltVm5hVzQ5SWpBdU9EYzFjeUlnYTJWNVUzQnNhVzVsY3owaU1DNHlJREF1TWlBd0xqUWdNQzQ0T3pBdU1pQXdMaklnTUM0MElEQXVPRHN3TGpJZ01DNHlJREF1TkNBd0xqZ2lJR05oYkdOTmIyUmxQU0p6Y0d4cGJtVWlJQzgrQ2lBZ1BDOWphWEpqYkdVK0NpQWdQR05wY21Oc1pTQjBjbUZ1YzJadmNtMDlJbkp2ZEdGMFpTZ3hPREFnTVRZZ01UWXBJaUJqZUQwaU1UWWlJR041UFNJeklpQnlQU0l3SWo0S0lDQWdJRHhoYm1sdFlYUmxJR0YwZEhKcFluVjBaVTVoYldVOUluSWlJSFpoYkhWbGN6MGlNRHN6T3pBN01DSWdaSFZ5UFNJeGN5SWdjbVZ3WldGMFEyOTFiblE5SW1sdVpHVm1hVzVwZEdVaUlHSmxaMmx1UFNJd0xqVnpJaUJyWlhsVGNHeHBibVZ6UFNJd0xqSWdNQzR5SURBdU5DQXdMamc3TUM0eUlEQXVNaUF3TGpRZ01DNDRPekF1TWlBd0xqSWdNQzQwSURBdU9DSWdZMkZzWTAxdlpHVTlJbk53YkdsdVpTSWdMejRLSUNBOEwyTnBjbU5zWlQ0S1BDOXpkbWMrQ2c9PSIgc3R5bGU9Im1hcmdpbjogMCBhdXRvOyIgLz48L3A+PHA+JyAuIGltcGxvZGUoJycgLCAkZG9tYWluc19zZXRfY29va2llKSAuICc8L3A+PC9ib2R5PjwvaHRtbD4nOw0KICANCiAgDQogIA0KICAkc21hcnR5LT5hc3NpZ24oJ2RvbWFpbnNfY29va2llc19zZXQnLCAgaW1wbG9kZSgnJyAsICRkb21haW5zX3NldF9jb29raWUpICk7DQogICRzbWFydHktPmFzc2lnbigncmVkaXJlY3RfdXJsJywgJHVybCk7DQogIC8vZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdyZWRpcmVjdC50cGwnKTsNCiAgJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlRnJvbUZpbGUoJ3JlZGlyZWN0LnRwbCcpOw0KICAkb3V0cHV0ID0gJHNtYXJ0eS0+ZmV0Y2goJ3N0cmluZzonIC4gJHRlbXBsYXRlKTsNCiAgZWNobyAkb3V0cHV0Ow0KICAvL2VjaG8gJHRlbXBsYXRlOw0KfQ0KDQpleGl0Ow0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.sitemap.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KICAgIGlmKCEkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSkgcmV0dXJuIGZhbHNlOw0KICAgICRoaWVyTWFuYWdlciA9IGNtc21zKCktPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsNCiAgICAkaGllcmFyY2h5ID0gJGhpZXJNYW5hZ2VyLT5nZXROb2RlQnlJZCgkdGhpcy0+Y3VycmVudF9sYW5ndWFnZVsncm9vdF9pZCddKTsNCg0KICAgIGlmICgkaGllcmFyY2h5ICYmICRoaWVyYXJjaHktPmhhc0NoaWxkcmVuKCkpDQogICAgew0KICAgICAgICBlY2hvICc8dWwgY2xhc3M9InNpdGVtYXAiPic7DQogICAgICAgICRwYWdlbGlzdCA9IGFycmF5KCk7DQogICAgICAgIGZvcmVhY2ggKCRoaWVyYXJjaHktPmdldENoaWxkcmVuKCkgYXMgJG5vZGUpICAgICR0aGlzLT5lY2hvX2xpbmUoJG5vZGUpOw0KICAgICAgICBlY2hvICc8L3VsPic7DQogICAgfSAgICANCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.toggleactive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoIGlzc2V0KCRwYXJhbXNbJ2xhbmdfaWQnXSkgKQ0KeyAgDQogICRhY3RpdmUgPSBpc3NldCgkcGFyYW1zWydhY3RpdmUnXSkgPyAkcGFyYW1zWydhY3RpdmUnXSA6IDA7DQogICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmd1YWdlcyBTRVQgYWN0aXZlPT8gV0hFUkUgaWQ9PyBMSU1JVCAxJzsNCiAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGFjdGl2ZSwgJHBhcmFtc1snbGFuZ19pZCddKSk7DQp9DQoNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.toggledefault.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KaWYoaXNzZXQoJHBhcmFtc1snbGFuZ19pZCddKSkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2xhbmd1YWdlJywgJHBhcmFtc1snbGFuZ19pZCddKTsNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/data/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/data/cfg.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogQWR2YW5jZWQgQ29uZmlndXJhdGlvbiBGb3IgRXJpZHUgTW9kdWxlDQogKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKg0KICogVGhpcyBpcyBhbiBhZHZhbmNlZCBjb25maWd1cmF0aW9uIGZpbGUNCiAqIERvbid0IG1lc3Mgd2l0aCB0aGlzIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcNCiAqIG9yIGV4cGxpY2l0bHkgdG9sZCB0byBkbyBzbyBieSBhIGRldmVsb3Blcg0KICovDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCi8qKg0KICogY29va2llIG5hbWUgaXMgYW4gYWR2YW5jZWQgc2V0dGluZw0KICogbW9zdCBvZiB0aGUgdGltZSBzaG91bGRuJ3QgYmUgbmVlZGVkIHRvIGNoYW5nZQ0KICovDQokY2ZnWydjb29raWVfbmFtZSddID0gJ3VzZXJsYW5nJzsNCg0KLyoqDQogKiBTdWItZG9tYWluIHByZWZpeCBsaXN0DQogKiB0aGUgbW9kdWxlIHVzZXMgdGhpcyBsaXN0IHRvIGRldGVybWluZQ0KICogd2hldGhlciB0aGUgcmVxdWVzdCBoYXMgYmVlbiBtYWRlIHZpYSBhIEZ1bGx5IFF1YWxpZmllZCBEb21haW4gTmFtZQ0KICogY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgdmFsdWVzDQogKi8NCiRjZmdbJ3N1Yl9wcmVmaXhlcyddID0gJ3d3dyx3dzEsd3cyLHd3Myx3d3cxLHd3dzIsd3d3Myc7DQoNCg0KLyoqDQogKiBsb2NhbCBkb21haW5zIGxpc3QNCiAqIHRoZSBtb2R1bGUgdXNlcyB0aGlzIGxpc3QgdG8gZGV0ZXJtaW5lDQogKiB3aGV0aGVyIHRoZSByZXF1ZXN0IGhhcyBiZWVuIG1hZGUgdmlhIGEgbG9jYWxob3N0IGFkZHJlc3MNCiAqIFRoZXNlIHdpbGwgYmUgaGFuZGxlZCBhcyBub3QgaGF2aW5nIGEgdGxkDQogKiB1bmxlc3MgYSB0bGQgaGFzIGJlZW4gY29uZmlndXJlZCBsb2NhbGx5DQogKiBleDoNCiAqICAgICAgaHR0cDovL2xvY2FsaG9zdCBpcyBhIG5vbiB0bGQgbG9jYWwgZG9tYWluIGFuZCBzaG91bGQgYmUgaW5jbHVkZWQgaWYgdXNlZA0KICogICAgICBodHRwOi8vbG9jYWxob3N0LnRsZCB3aWxsIHN0aWxsIGJlIGhhbmRsZWQgYXMgYSB0bGQgZG9tYWluIGV2ZW4gaWYgaW5jbHVkZWQgaW4gdGhlIGxpc3QNCiAqDQogKiAgICAgIGJvdGggY2FuIGNvZXhpc3QgYnV0IGxvY2FsaG9zdCBNVVNUIGJlIG9uIHRoZSBsaXN0DQogKiAgICAgIG90aGVyd2lzZSBhIHJlcXVlc3QgbGlrZSBodHRwOi8vbG9jYWxob3N0IHdpbGwgdGhyb3cgYW4gZXJyb3INCiAqLw0KJGNmZ1snbG9jYWxfZG9tYWlucyddID0gJ2xvY2FsaG9zdCxpbnRyYW5ldCc7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/data/country-ISO-3166-2.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[TmFtZSxDb2RlCkFmZ2hhbmlzdGFuLEFGCsOFbGFuZCBJc2xhbmRzLEFYCkFsYmFuaWEsQUwKQWxnZXJpYSxEWgpBbWVyaWNhbiBTYW1vYSxBUwpBbmRvcnJhLEFECkFuZ29sYSxBTwpBbmd1aWxsYSxBSQpBbnRhcmN0aWNhLEFRCkFudGlndWEgYW5kIEJhcmJ1ZGEsQUcKQXJnZW50aW5hLEFSCkFybWVuaWEsQU0KQXJ1YmEsQVcKQXVzdHJhbGlhLEFVCkF1c3RyaWEsQVQKQXplcmJhaWphbixBWgpCYWhhbWFzLEJTCkJhaHJhaW4sQkgKQmFuZ2xhZGVzaCxCRApCYXJiYWRvcyxCQgpCZWxhcnVzLEJZCkJlbGdpdW0sQkUKQmVsaXplLEJaCkJlbmluLEJKCkJlcm11ZGEsQk0KQmh1dGFuLEJUCiJCb2xpdmlhLCBQbHVyaW5hdGlvbmFsIFN0YXRlIG9mIixCTwoiQm9uYWlyZSwgU2ludCBFdXN0YXRpdXMgYW5kIFNhYmEiLEJRCkJvc25pYSBhbmQgSGVyemVnb3ZpbmEsQkEKQm90c3dhbmEsQlcKQm91dmV0IElzbGFuZCxCVgpCcmF6aWwsQlIKQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5LElPCkJydW5laSBEYXJ1c3NhbGFtLEJOCkJ1bGdhcmlhLEJHCkJ1cmtpbmEgRmFzbyxCRgpCdXJ1bmRpLEJJCkNhbWJvZGlhLEtICkNhbWVyb29uLENNCkNhbmFkYSxDQQpDYXBlIFZlcmRlLENWCkNheW1hbiBJc2xhbmRzLEtZCkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyxDRgpDaGFkLFRECkNoaWxlLENMCkNoaW5hLENOCkNocmlzdG1hcyBJc2xhbmQsQ1gKQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMsQ0MKQ29sb21iaWEsQ08KQ29tb3JvcyxLTQpDb25nbyxDRwoiQ29uZ28sIHRoZSBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSIsQ0QKQ29vayBJc2xhbmRzLENLCkNvc3RhIFJpY2EsQ1IKQ8O0dGUgZCdJdm9pcmUsQ0kKQ3JvYXRpYSxIUgpDdWJhLENVCkN1cmHDp2FvLENXCkN5cHJ1cyxDWQpDemVjaCBSZXB1YmxpYyxDWgpEZW5tYXJrLERLCkRqaWJvdXRpLERKCkRvbWluaWNhLERNCkRvbWluaWNhbiBSZXB1YmxpYyxETwpFY3VhZG9yLEVDCkVneXB0LEVHCkVsIFNhbHZhZG9yLFNWCkVxdWF0b3JpYWwgR3VpbmVhLEdRCkVyaXRyZWEsRVIKRXN0b25pYSxFRQpFdGhpb3BpYSxFVApGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyksRksKRmFyb2UgSXNsYW5kcyxGTwpGaWppLEZKCkZpbmxhbmQsRkkKRnJhbmNlLEZSCkZyZW5jaCBHdWlhbmEsR0YKRnJlbmNoIFBvbHluZXNpYSxQRgpGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMsVEYKR2Fib24sR0EKR2FtYmlhLEdNCkdlb3JnaWEsR0UKR2VybWFueSxERQpHaGFuYSxHSApHaWJyYWx0YXIsR0kKR3JlZWNlLEdSCkdyZWVubGFuZCxHTApHcmVuYWRhLEdECkd1YWRlbG91cGUsR1AKR3VhbSxHVQpHdWF0ZW1hbGEsR1QKR3Vlcm5zZXksR0cKR3VpbmVhLEdOCkd1aW5lYS1CaXNzYXUsR1cKR3V5YW5hLEdZCkhhaXRpLEhUCkhlYXJkIElzbGFuZCBhbmQgTWNEb25hbGQgSXNsYW5kcyxITQpIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKSxWQQpIb25kdXJhcyxITgpIb25nIEtvbmcsSEsKSHVuZ2FyeSxIVQpJY2VsYW5kLElTCkluZGlhLElOCkluZG9uZXNpYSxJRAoiSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBvZiIsSVIKSXJhcSxJUQpJcmVsYW5kLElFCklzbGUgb2YgTWFuLElNCklzcmFlbCxJTApJdGFseSxJVApKYW1haWNhLEpNCkphcGFuLEpQCkplcnNleSxKRQpKb3JkYW4sSk8KS2F6YWtoc3RhbixLWgpLZW55YSxLRQpLaXJpYmF0aSxLSQoiS29yZWEsIERlbW9jcmF0aWMgUGVvcGxlJ3MgUmVwdWJsaWMgb2YiLEtQCiJLb3JlYSwgUmVwdWJsaWMgb2YiLEtSCkt1d2FpdCxLVwpLeXJneXpzdGFuLEtHCkxhbyBQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljLExBCkxhdHZpYSxMVgpMZWJhbm9uLExCCkxlc290aG8sTFMKTGliZXJpYSxMUgpMaWJ5YSxMWQpMaWVjaHRlbnN0ZWluLExJCkxpdGh1YW5pYSxMVApMdXhlbWJvdXJnLExVCk1hY2FvLE1PCiJNYWNlZG9uaWEsIHRoZSBGb3JtZXIgWXVnb3NsYXYgUmVwdWJsaWMgb2YiLE1LCk1hZGFnYXNjYXIsTUcKTWFsYXdpLE1XCk1hbGF5c2lhLE1ZCk1hbGRpdmVzLE1WCk1hbGksTUwKTWFsdGEsTVQKTWFyc2hhbGwgSXNsYW5kcyxNSApNYXJ0aW5pcXVlLE1RCk1hdXJpdGFuaWEsTVIKTWF1cml0aXVzLE1VCk1heW90dGUsWVQKTWV4aWNvLE1YCiJNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mIixGTQoiTW9sZG92YSwgUmVwdWJsaWMgb2YiLE1ECk1vbmFjbyxNQwpNb25nb2xpYSxNTgpNb250ZW5lZ3JvLE1FCk1vbnRzZXJyYXQsTVMKTW9yb2NjbyxNQQpNb3phbWJpcXVlLE1aCk15YW5tYXIsTU0KTmFtaWJpYSxOQQpOYXVydSxOUgpOZXBhbCxOUApOZXRoZXJsYW5kcyxOTApOZXcgQ2FsZWRvbmlhLE5DCk5ldyBaZWFsYW5kLE5aCk5pY2FyYWd1YSxOSQpOaWdlcixORQpOaWdlcmlhLE5HCk5pdWUsTlUKTm9yZm9sayBJc2xhbmQsTkYKTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzLE1QCk5vcndheSxOTwpPbWFuLE9NClBha2lzdGFuLFBLClBhbGF1LFBXCiJQYWxlc3RpbmUsIFN0YXRlIG9mIixQUwpQYW5hbWEsUEEKUGFwdWEgTmV3IEd1aW5lYSxQRwpQYXJhZ3VheSxQWQpQZXJ1LFBFClBoaWxpcHBpbmVzLFBIClBpdGNhaXJuLFBOClBvbGFuZCxQTApQb3J0dWdhbCxQVApQdWVydG8gUmljbyxQUgpRYXRhcixRQQpSw6l1bmlvbixSRQpSb21hbmlhLFJPClJ1c3NpYW4gRmVkZXJhdGlvbixSVQpSd2FuZGEsUlcKU2FpbnQgQmFydGjDqWxlbXksQkwKIlNhaW50IEhlbGVuYSwgQXNjZW5zaW9uIGFuZCBUcmlzdGFuIGRhIEN1bmhhIixTSApTYWludCBLaXR0cyBhbmQgTmV2aXMsS04KU2FpbnQgTHVjaWEsTEMKU2FpbnQgTWFydGluIChGcmVuY2ggcGFydCksTUYKU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbixQTQpTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcyxWQwpTYW1vYSxXUwpTYW4gTWFyaW5vLFNNClNhbyBUb21lIGFuZCBQcmluY2lwZSxTVApTYXVkaSBBcmFiaWEsU0EKU2VuZWdhbCxTTgpTZXJiaWEsUlMKU2V5Y2hlbGxlcyxTQwpTaWVycmEgTGVvbmUsU0wKU2luZ2Fwb3JlLFNHClNpbnQgTWFhcnRlbiAoRHV0Y2ggcGFydCksU1gKU2xvdmFraWEsU0sKU2xvdmVuaWEsU0kKU29sb21vbiBJc2xhbmRzLFNCClNvbWFsaWEsU08KU291dGggQWZyaWNhLFpBClNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzLEdTClNvdXRoIFN1ZGFuLFNTClNwYWluLEVTClNyaSBMYW5rYSxMSwpTdWRhbixTRApTdXJpbmFtZSxTUgpTdmFsYmFyZCBhbmQgSmFuIE1heWVuLFNKClN3YXppbGFuZCxTWgpTd2VkZW4sU0UKU3dpdHplcmxhbmQsQ0gKU3lyaWFuIEFyYWIgUmVwdWJsaWMsU1kKIlRhaXdhbiwgUHJvdmluY2Ugb2YgQ2hpbmEiLFRXClRhamlraXN0YW4sVEoKIlRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YiLFRaClRoYWlsYW5kLFRIClRpbW9yLUxlc3RlLFRMClRvZ28sVEcKVG9rZWxhdSxUSwpUb25nYSxUTwpUcmluaWRhZCBhbmQgVG9iYWdvLFRUClR1bmlzaWEsVE4KVHVya2V5LFRSClR1cmttZW5pc3RhbixUTQpUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMsVEMKVHV2YWx1LFRWClVnYW5kYSxVRwpVa3JhaW5lLFVBClVuaXRlZCBBcmFiIEVtaXJhdGVzLEFFClVuaXRlZCBLaW5nZG9tLEdCClVuaXRlZCBTdGF0ZXMsVVMKVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzLFVNClVydWd1YXksVVkKVXpiZWtpc3RhbixVWgpWYW51YXR1LFZVCiJWZW5lenVlbGEsIEJvbGl2YXJpYW4gUmVwdWJsaWMgb2YiLFZFClZpZXQgTmFtLFZOCiJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCIsVkcKIlZpcmdpbiBJc2xhbmRzLCBVLlMuIixWSQpXYWxsaXMgYW5kIEZ1dHVuYSxXRgpXZXN0ZXJuIFNhaGFyYSxFSApZZW1lbixZRQpaYW1iaWEsWk0KWmltYmFid2UsWlcK]]></data>
	</file>
	<file>
	  <filename>/data/lang-ISO-639-1.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ImFscGhhMiIsIkVuZ2xpc2giCiJhYSIsIkFmYXIiCiJhYiIsIkFia2hhemlhbiIKImFlIiwiQXZlc3RhbiIKImFmIiwiQWZyaWthYW5zIgoiYWsiLCJBa2FuIgoiYW0iLCJBbWhhcmljIgoiYW4iLCJBcmFnb25lc2UiCiJhciIsIkFyYWJpYyIKImFzIiwiQXNzYW1lc2UiCiJhdiIsIkF2YXJpYyIKImF5IiwiQXltYXJhIgoiYXoiLCJBemVyYmFpamFuaSIKImJhIiwiQmFzaGtpciIKImJlIiwiQmVsYXJ1c2lhbiIKImJnIiwiQnVsZ2FyaWFuIgoiYmgiLCJCaWhhcmkgbGFuZ3VhZ2VzIgoiYmkiLCJCaXNsYW1hIgoiYm0iLCJCYW1iYXJhIgoiYm4iLCJCZW5nYWxpIgoiYm8iLCJUaWJldGFuIgoiYnIiLCJCcmV0b24iCiJicyIsIkJvc25pYW4iCiJjYSIsIkNhdGFsYW47IFZhbGVuY2lhbiIKImNlIiwiQ2hlY2hlbiIKImNoIiwiQ2hhbW9ycm8iCiJjbyIsIkNvcnNpY2FuIgoiY3IiLCJDcmVlIgoiY3MiLCJDemVjaCIKImN1IiwiQ2h1cmNoIFNsYXZpYzsgT2xkIFNsYXZvbmljOyBDaHVyY2ggU2xhdm9uaWM7IE9sZCBCdWxnYXJpYW47IE9sZCBDaHVyY2ggU2xhdm9uaWMiCiJjdiIsIkNodXZhc2giCiJjeSIsIldlbHNoIgoiZGEiLCJEYW5pc2giCiJkZSIsIkdlcm1hbiIKImR2IiwiRGl2ZWhpOyBEaGl2ZWhpOyBNYWxkaXZpYW4iCiJkeiIsIkR6b25na2hhIgoiZWUiLCJFd2UiCiJlbCIsIkdyZWVrLCBNb2Rlcm4gKDE0NTMtKSIKImVuIiwiRW5nbGlzaCIKImVvIiwiRXNwZXJhbnRvIgoiZXMiLCJTcGFuaXNoOyBDYXN0aWxpYW4iCiJldCIsIkVzdG9uaWFuIgoiZXUiLCJCYXNxdWUiCiJmYSIsIlBlcnNpYW4iCiJmZiIsIkZ1bGFoIgoiZmkiLCJGaW5uaXNoIgoiZmoiLCJGaWppYW4iCiJmbyIsIkZhcm9lc2UiCiJmciIsIkZyZW5jaCIKImZ5IiwiV2VzdGVybiBGcmlzaWFuIgoiZ2EiLCJJcmlzaCIKImdkIiwiR2FlbGljOyBTY290dGlzaCBHYWVsaWMiCiJnbCIsIkdhbGljaWFuIgoiZ24iLCJHdWFyYW5pIgoiZ3UiLCJHdWphcmF0aSIKImd2IiwiTWFueCIKImhhIiwiSGF1c2EiCiJoZSIsIkhlYnJldyIKImhpIiwiSGluZGkiCiJobyIsIkhpcmkgTW90dSIKImhyIiwiQ3JvYXRpYW4iCiJodCIsIkhhaXRpYW47IEhhaXRpYW4gQ3Jlb2xlIgoiaHUiLCJIdW5nYXJpYW4iCiJoeSIsIkFybWVuaWFuIgoiaHoiLCJIZXJlcm8iCiJpYSIsIkludGVybGluZ3VhIChJbnRlcm5hdGlvbmFsIEF1eGlsaWFyeSBMYW5ndWFnZSBBc3NvY2lhdGlvbikiCiJpZCIsIkluZG9uZXNpYW4iCiJpZSIsIkludGVybGluZ3VlOyBPY2NpZGVudGFsIgoiaWciLCJJZ2JvIgoiaWkiLCJTaWNodWFuIFlpOyBOdW9zdSIKImlrIiwiSW51cGlhcSIKImlvIiwiSWRvIgoiaXMiLCJJY2VsYW5kaWMiCiJpdCIsIkl0YWxpYW4iCiJpdSIsIkludWt0aXR1dCIKImphIiwiSmFwYW5lc2UiCiJqdiIsIkphdmFuZXNlIgoia2EiLCJHZW9yZ2lhbiIKImtnIiwiS29uZ28iCiJraSIsIktpa3V5dTsgR2lrdXl1Igoia2oiLCJLdWFueWFtYTsgS3dhbnlhbWEiCiJrayIsIkthemFraCIKImtsIiwiS2FsYWFsbGlzdXQ7IEdyZWVubGFuZGljIgoia20iLCJDZW50cmFsIEtobWVyIgoia24iLCJLYW5uYWRhIgoia28iLCJLb3JlYW4iCiJrciIsIkthbnVyaSIKImtzIiwiS2FzaG1pcmkiCiJrdSIsIkt1cmRpc2giCiJrdiIsIktvbWkiCiJrdyIsIkNvcm5pc2giCiJreSIsIktpcmdoaXo7IEt5cmd5eiIKImxhIiwiTGF0aW4iCiJsYiIsIkx1eGVtYm91cmdpc2g7IExldHplYnVyZ2VzY2giCiJsZyIsIkdhbmRhIgoibGkiLCJMaW1idXJnYW47IExpbWJ1cmdlcjsgTGltYnVyZ2lzaCIKImxuIiwiTGluZ2FsYSIKImxvIiwiTGFvIgoibHQiLCJMaXRodWFuaWFuIgoibHUiLCJMdWJhLUthdGFuZ2EiCiJsdiIsIkxhdHZpYW4iCiJtZyIsIk1hbGFnYXN5IgoibWgiLCJNYXJzaGFsbGVzZSIKIm1pIiwiTWFvcmkiCiJtayIsIk1hY2Vkb25pYW4iCiJtbCIsIk1hbGF5YWxhbSIKIm1uIiwiTW9uZ29saWFuIgoibXIiLCJNYXJhdGhpIgoibXMiLCJNYWxheSIKIm10IiwiTWFsdGVzZSIKIm15IiwiQnVybWVzZSIKIm5hIiwiTmF1cnUiCiJuYiIsIkJva23DpWwsIE5vcndlZ2lhbjsgTm9yd2VnaWFuIEJva23DpWwiCiJuZCIsIk5kZWJlbGUsIE5vcnRoOyBOb3J0aCBOZGViZWxlIgoibmUiLCJOZXBhbGkiCiJuZyIsIk5kb25nYSIKIm5sIiwiRHV0Y2g7IEZsZW1pc2giCiJubiIsIk5vcndlZ2lhbiBOeW5vcnNrOyBOeW5vcnNrLCBOb3J3ZWdpYW4iCiJubyIsIk5vcndlZ2lhbiIKIm5yIiwiTmRlYmVsZSwgU291dGg7IFNvdXRoIE5kZWJlbGUiCiJudiIsIk5hdmFqbzsgTmF2YWhvIgoibnkiLCJDaGljaGV3YTsgQ2hld2E7IE55YW5qYSIKIm9jIiwiT2NjaXRhbiAocG9zdCAxNTAwKTsgUHJvdmVuw6dhbCIKIm9qIiwiT2ppYndhIgoib20iLCJPcm9tbyIKIm9yIiwiT3JpeWEiCiJvcyIsIk9zc2V0aWFuOyBPc3NldGljIgoicGEiLCJQYW5qYWJpOyBQdW5qYWJpIgoicGkiLCJQYWxpIgoicGwiLCJQb2xpc2giCiJwcyIsIlB1c2h0bzsgUGFzaHRvIgoicHQiLCJQb3J0dWd1ZXNlIgoicXUiLCJRdWVjaHVhIgoicm0iLCJSb21hbnNoIgoicm4iLCJSdW5kaSIKInJvIiwiUm9tYW5pYW47IE1vbGRhdmlhbjsgTW9sZG92YW4iCiJydSIsIlJ1c3NpYW4iCiJydyIsIktpbnlhcndhbmRhIgoic2EiLCJTYW5za3JpdCIKInNjIiwiU2FyZGluaWFuIgoic2QiLCJTaW5kaGkiCiJzZSIsIk5vcnRoZXJuIFNhbWkiCiJzZyIsIlNhbmdvIgoic2kiLCJTaW5oYWxhOyBTaW5oYWxlc2UiCiJzayIsIlNsb3ZhayIKInNsIiwiU2xvdmVuaWFuIgoic20iLCJTYW1vYW4iCiJzbiIsIlNob25hIgoic28iLCJTb21hbGkiCiJzcSIsIkFsYmFuaWFuIgoic3IiLCJTZXJiaWFuIgoic3MiLCJTd2F0aSIKInN0IiwiU290aG8sIFNvdXRoZXJuIgoic3UiLCJTdW5kYW5lc2UiCiJzdiIsIlN3ZWRpc2giCiJzdyIsIlN3YWhpbGkiCiJ0YSIsIlRhbWlsIgoidGUiLCJUZWx1Z3UiCiJ0ZyIsIlRhamlrIgoidGgiLCJUaGFpIgoidGkiLCJUaWdyaW55YSIKInRrIiwiVHVya21lbiIKInRsIiwiVGFnYWxvZyIKInRuIiwiVHN3YW5hIgoidG8iLCJUb25nYSAoVG9uZ2EgSXNsYW5kcykiCiJ0ciIsIlR1cmtpc2giCiJ0cyIsIlRzb25nYSIKInR0IiwiVGF0YXIiCiJ0dyIsIlR3aSIKInR5IiwiVGFoaXRpYW4iCiJ1ZyIsIlVpZ2h1cjsgVXlnaHVyIgoidWsiLCJVa3JhaW5pYW4iCiJ1ciIsIlVyZHUiCiJ1eiIsIlV6YmVrIgoidmUiLCJWZW5kYSIKInZpIiwiVmlldG5hbWVzZSIKInZvIiwiVm9sYXDDvGsiCiJ3YSIsIldhbGxvb24iCiJ3byIsIldvbG9mIgoieGgiLCJYaG9zYSIKInlpIiwiWWlkZGlzaCIKInlvIiwiWW9ydWJhIgoiemEiLCJaaHVhbmc7IENodWFuZyIKInpoIiwiQ2hpbmVzZSIKInp1IiwiWnVsdSIK]]></data>
	</file>
	<file>
	  <filename>/data/registered-BCP-47.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[J2FmX1pBJywiQWZyaWthYW5zIChBZnJpY2FhbnMpIgoiYXJfQVIiLCLYp9mE2LnYsdio2YrYqSAoQXJhYmljKSIKImJnX0JHIiwi0JHRitC70LPQsNGA0YHQutC4IChCdWxnYXJpYW4pIgoiY2FfRVMiLCJDYXRhbMOgIChDYXRhbGFuKSIKImNzX0NaIiwixIxlc2t5IChDemVjaCkiCiJkYV9ESyIsIkRhbnNrIChEYW5pc2gpIgoiZGVfREUiLCJEZXV0c2NoIChHZXJtYW4pIgoiZWxfR1IiLCLOlc67zrvOt869zrnOus6xIChHcmVlaykiCiJlbl9DWSIsIldhbGVzIChXZWxzaCkiCiJlbl9VUyIsIkVuZ2xpc2ggKEVuZ2xpc2gpIgoiZXNfRVMiLCJFc3Bhw7FvbCAoU3BhbmlzaCkiCiJldF9FRSIsIkVlc3RpIChFc3RvbmlhbikiCiJldV9FUyIsIkV1c2thcmEgKEJhc3F1ZSkiCiJmYV9JUiIsItmB2KfYsdiz24wgKEZhcnNpKSIKImZpX0ZJIiwiU3VvbWkgKEZpbm5pc2gpIgoiZnJfRlIiLCJGcmFuw6dhaXMgKEZyZW5jaCkiCiJocl9IUiIsIkhydmF0c2tpIChDcm9hdGlhbikiCiJodV9IVSIsIk1hZ3lhciAoSHVuZ2FyaWFuKSIKImlkX0lEIiwiQmFoYXNhIEluZG9uZXNpYSAoSW5kb25lc2lhbikiCiJpc19JUyIsIsONc2xlbnNrYSAoSWNlbGFuZGljKSIKIml0X0lUIiwiSXRhbGlhbm8gKEl0YWxpYW4pIgoiamFfSlAiLCLml6XmnKzoqp4gKEphcGFuZXNlKSIKImt6X0taIiwiS2F6YWtoIChLYXpha2gpIgoibHRfTFQiLCJMaWV0dXZpxbMgKExpdGh1YW5pYW4pIgoibmJfTk8iLCJOb3JzayBib2ttw6VsIChOb3J3ZWdpYW4gYm9rbcOlbCkiCiJubF9OTCIsIk5lZGVybGFuZHMgKER1dGNoKSIKInBsX1BMIiwiUG9sc2tpIChQb2xpc2gpIgoicHRfQlIiLCJQb3J0dWd1w6pzIGRvIEJyYXNpbCAoQnJhemlsaWFuIFBvcnR1Z3Vlc2UpIgoicHRfUFQiLCJQb3J0dWd1w6pzIGRlIFBvcnR1Z2FsIChQb3J0dWd1ZXNlKSIKInJvX1JPIiwiUm9tw6JuxIMgKFJvbWFuaWFuKSIKInJ1X1JVIiwi0KDRg9GB0YHQutC40LkgKFJ1c3NpYW4pIgoic2tfU0siLCJTbG92ZW7EjWluYSAoU2xvdmFrKSIKInNsX1NJIiwiU2xvdmVuc2tvIChTbG92ZW5pYW4pIgoic3JfWVUiLCJTcnBza2kgKFNlcmJpYW4pIgoic3ZfU0UiLCJTdmVuc2thIChTd2VkaXNoKSIKInRyX1RSIiwiVMO8cmvDp2UgKFR1cmtpc2gpIgoiemhfQ04iLCLnroDkvZPkuK3mlocgKFNpbXBsaWZpZWQgQ2hpbmVzZSkiCiJ6aF9UVyIsIue5gemrlOS4reaWhyAoVHJhZGl0aW9uYWwgQ2hpbmVzZSki]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQ0KICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDMsIDI5IEp1bmUgMjAwNw0KDQogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPg0KIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcw0KIG9mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNoYW5naW5nIGl0IGlzIG5vdCBhbGxvd2VkLg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUNCg0KICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcg0Kc29mdHdhcmUgYW5kIG90aGVyIGtpbmRzIG9mIHdvcmtzLg0KDQogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZA0KdG8gdGFrZSBhd2F5IHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIHRoZSB3b3Jrcy4gIEJ5IGNvbnRyYXN0LA0KdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8NCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQ0Kc29mdHdhcmUgZm9yIGFsbCBpdHMgdXNlcnMuICBXZSwgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgdXNlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vc3Qgb2Ygb3VyIHNvZnR3YXJlOyBpdCBhcHBsaWVzIGFsc28gdG8NCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bw0KeW91ciBwcm9ncmFtcywgdG9vLg0KDQogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QNCnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UNCmhhdmUgdGhlIGZyZWVkb20gdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb2YgZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJnZSBmb3INCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91DQp3YW50IGl0LCB0aGF0IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBvciB1c2UgcGllY2VzIG9mIGl0IGluIG5ldw0KZnJlZSBwcm9ncmFtcywgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuDQoNCiAgVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBwcmV2ZW50IG90aGVycyBmcm9tIGRlbnlpbmcgeW91DQp0aGVzZSByaWdodHMgb3IgYXNraW5nIHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4gIFRoZXJlZm9yZSwgeW91IGhhdmUNCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZg0KeW91IG1vZGlmeSBpdDogcmVzcG9uc2liaWxpdGllcyB0byByZXNwZWN0IHRoZSBmcmVlZG9tIG9mIG90aGVycy4NCg0KICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyDQpncmF0aXMgb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBwYXNzIG9uIHRvIHRoZSByZWNpcGllbnRzIHRoZSBzYW1lDQpmcmVlZG9tcyB0aGF0IHlvdSByZWNlaXZlZC4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZQ0Kb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkNCmtub3cgdGhlaXIgcmlnaHRzLg0KDQogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoNCigxKSBhc3NlcnQgY29weXJpZ2h0IG9uIHRoZSBzb2Z0d2FyZSwgYW5kICgyKSBvZmZlciB5b3UgdGhpcyBMaWNlbnNlDQpnaXZpbmcgeW91IGxlZ2FsIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IGl0Lg0KDQogIEZvciB0aGUgZGV2ZWxvcGVycycgYW5kIGF1dGhvcnMnIHByb3RlY3Rpb24sIHRoZSBHUEwgY2xlYXJseSBleHBsYWlucw0KdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlIHNvZnR3YXJlLiAgRm9yIGJvdGggdXNlcnMnIGFuZA0KYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcw0KY2hhbmdlZCwgc28gdGhhdCB0aGVpciBwcm9ibGVtcyB3aWxsIG5vdCBiZSBhdHRyaWJ1dGVkIGVycm9uZW91c2x5IHRvDQphdXRob3JzIG9mIHByZXZpb3VzIHZlcnNpb25zLg0KDQogIFNvbWUgZGV2aWNlcyBhcmUgZGVzaWduZWQgdG8gZGVueSB1c2VycyBhY2Nlc3MgdG8gaW5zdGFsbCBvciBydW4NCm1vZGlmaWVkIHZlcnNpb25zIG9mIHRoZSBzb2Z0d2FyZSBpbnNpZGUgdGhlbSwgYWx0aG91Z2ggdGhlIG1hbnVmYWN0dXJlcg0KY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YNCnByb3RlY3RpbmcgdXNlcnMnIGZyZWVkb20gdG8gY2hhbmdlIHRoZSBzb2Z0d2FyZS4gIFRoZSBzeXN0ZW1hdGljDQpwYXR0ZXJuIG9mIHN1Y2ggYWJ1c2Ugb2NjdXJzIGluIHRoZSBhcmVhIG9mIHByb2R1Y3RzIGZvciBpbmRpdmlkdWFscyB0bw0KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlDQpoYXZlIGRlc2lnbmVkIHRoaXMgdmVyc2lvbiBvZiB0aGUgR1BMIHRvIHByb2hpYml0IHRoZSBwcmFjdGljZSBmb3IgdGhvc2UNCnByb2R1Y3RzLiAgSWYgc3VjaCBwcm9ibGVtcyBhcmlzZSBzdWJzdGFudGlhbGx5IGluIG90aGVyIGRvbWFpbnMsIHdlDQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMNCm9mIHRoZSBHUEwsIGFzIG5lZWRlZCB0byBwcm90ZWN0IHRoZSBmcmVlZG9tIG9mIHVzZXJzLg0KDQogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuDQpTdGF0ZXMgc2hvdWxkIG5vdCBhbGxvdyBwYXRlbnRzIHRvIHJlc3RyaWN0IGRldmVsb3BtZW50IGFuZCB1c2Ugb2YNCnNvZnR3YXJlIG9uIGdlbmVyYWwtcHVycG9zZSBjb21wdXRlcnMsIGJ1dCBpbiB0aG9zZSB0aGF0IGRvLCB3ZSB3aXNoIHRvDQphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQNCm1ha2UgaXQgZWZmZWN0aXZlbHkgcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHRoZSBHUEwgYXNzdXJlcyB0aGF0DQpwYXRlbnRzIGNhbm5vdCBiZSB1c2VkIHRvIHJlbmRlciB0aGUgcHJvZ3JhbSBub24tZnJlZS4NCg0KICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZA0KbW9kaWZpY2F0aW9uIGZvbGxvdy4NCg0KICAgICAgICAgICAgICAgICAgICAgICBURVJNUyBBTkQgQ09ORElUSU9OUw0KDQogIDAuIERlZmluaXRpb25zLg0KDQogICJUaGlzIExpY2Vuc2UiIHJlZmVycyB0byB2ZXJzaW9uIDMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLg0KDQogICJDb3B5cmlnaHQiIGFsc28gbWVhbnMgY29weXJpZ2h0LWxpa2UgbGF3cyB0aGF0IGFwcGx5IHRvIG90aGVyIGtpbmRzIG9mDQp3b3Jrcywgc3VjaCBhcyBzZW1pY29uZHVjdG9yIG1hc2tzLg0KDQogICJUaGUgUHJvZ3JhbSIgcmVmZXJzIHRvIGFueSBjb3B5cmlnaHRhYmxlIHdvcmsgbGljZW5zZWQgdW5kZXIgdGhpcw0KTGljZW5zZS4gIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLiAgIkxpY2Vuc2VlcyIgYW5kDQoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuDQoNCiAgVG8gIm1vZGlmeSIgYSB3b3JrIG1lYW5zIHRvIGNvcHkgZnJvbSBvciBhZGFwdCBhbGwgb3IgcGFydCBvZiB0aGUgd29yaw0KaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuDQpleGFjdCBjb3B5LiAgVGhlIHJlc3VsdGluZyB3b3JrIGlzIGNhbGxlZCBhICJtb2RpZmllZCB2ZXJzaW9uIiBvZiB0aGUNCmVhcmxpZXIgd29yayBvciBhIHdvcmsgImJhc2VkIG9uIiB0aGUgZWFybGllciB3b3JrLg0KDQogIEEgImNvdmVyZWQgd29yayIgbWVhbnMgZWl0aGVyIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0gb3IgYSB3b3JrIGJhc2VkDQpvbiB0aGUgUHJvZ3JhbS4NCg0KICBUbyAicHJvcGFnYXRlIiBhIHdvcmsgbWVhbnMgdG8gZG8gYW55dGhpbmcgd2l0aCBpdCB0aGF0LCB3aXRob3V0DQpwZXJtaXNzaW9uLCB3b3VsZCBtYWtlIHlvdSBkaXJlY3RseSBvciBzZWNvbmRhcmlseSBsaWFibGUgZm9yDQppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGENCmNvbXB1dGVyIG9yIG1vZGlmeWluZyBhIHByaXZhdGUgY29weS4gIFByb3BhZ2F0aW9uIGluY2x1ZGVzIGNvcHlpbmcsDQpkaXN0cmlidXRpb24gKHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24pLCBtYWtpbmcgYXZhaWxhYmxlIHRvIHRoZQ0KcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLg0KDQogIFRvICJjb252ZXkiIGEgd29yayBtZWFucyBhbnkga2luZCBvZiBwcm9wYWdhdGlvbiB0aGF0IGVuYWJsZXMgb3RoZXINCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaA0KYSBjb21wdXRlciBuZXR3b3JrLCB3aXRoIG5vIHRyYW5zZmVyIG9mIGEgY29weSwgaXMgbm90IGNvbnZleWluZy4NCg0KICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyINCnRvIHRoZSBleHRlbnQgdGhhdCBpdCBpbmNsdWRlcyBhIGNvbnZlbmllbnQgYW5kIHByb21pbmVudGx5IHZpc2libGUNCmZlYXR1cmUgdGhhdCAoMSkgZGlzcGxheXMgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSwgYW5kICgyKQ0KdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUNCmV4dGVudCB0aGF0IHdhcnJhbnRpZXMgYXJlIHByb3ZpZGVkKSwgdGhhdCBsaWNlbnNlZXMgbWF5IGNvbnZleSB0aGUNCndvcmsgdW5kZXIgdGhpcyBMaWNlbnNlLCBhbmQgaG93IHRvIHZpZXcgYSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gIElmDQp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQ0KbWVudSwgYSBwcm9taW5lbnQgaXRlbSBpbiB0aGUgbGlzdCBtZWV0cyB0aGlzIGNyaXRlcmlvbi4NCg0KICAxLiBTb3VyY2UgQ29kZS4NCg0KICBUaGUgInNvdXJjZSBjb2RlIiBmb3IgYSB3b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yaw0KZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQ0KZm9ybSBvZiBhIHdvcmsuDQoNCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwNCnN0YW5kYXJkIGRlZmluZWQgYnkgYSByZWNvZ25pemVkIHN0YW5kYXJkcyBib2R5LCBvciwgaW4gdGhlIGNhc2Ugb2YNCmludGVyZmFjZXMgc3BlY2lmaWVkIGZvciBhIHBhcnRpY3VsYXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIG9uZSB0aGF0DQppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4NCg0KICBUaGUgIlN5c3RlbSBMaWJyYXJpZXMiIG9mIGFuIGV4ZWN1dGFibGUgd29yayBpbmNsdWRlIGFueXRoaW5nLCBvdGhlcg0KdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YNCnBhY2thZ2luZyBhIE1ham9yIENvbXBvbmVudCwgYnV0IHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoYXQgTWFqb3INCkNvbXBvbmVudCwgYW5kIChiKSBzZXJ2ZXMgb25seSB0byBlbmFibGUgdXNlIG9mIHRoZSB3b3JrIHdpdGggdGhhdA0KTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuDQppbXBsZW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbiBzb3VyY2UgY29kZSBmb3JtLiAgQQ0KIk1ham9yIENvbXBvbmVudCIsIGluIHRoaXMgY29udGV4dCwgbWVhbnMgYSBtYWpvciBlc3NlbnRpYWwgY29tcG9uZW50DQooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtDQooaWYgYW55KSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSB3b3JrIHJ1bnMsIG9yIGEgY29tcGlsZXIgdXNlZCB0bw0KcHJvZHVjZSB0aGUgd29yaywgb3IgYW4gb2JqZWN0IGNvZGUgaW50ZXJwcmV0ZXIgdXNlZCB0byBydW4gaXQuDQoNCiAgVGhlICJDb3JyZXNwb25kaW5nIFNvdXJjZSIgZm9yIGEgd29yayBpbiBvYmplY3QgY29kZSBmb3JtIG1lYW5zIGFsbA0KdGhlIHNvdXJjZSBjb2RlIG5lZWRlZCB0byBnZW5lcmF0ZSwgaW5zdGFsbCwgYW5kIChmb3IgYW4gZXhlY3V0YWJsZQ0Kd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bw0KY29udHJvbCB0aG9zZSBhY3Rpdml0aWVzLiAgSG93ZXZlciwgaXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgd29yaydzDQpTeXN0ZW0gTGlicmFyaWVzLCBvciBnZW5lcmFsLXB1cnBvc2UgdG9vbHMgb3IgZ2VuZXJhbGx5IGF2YWlsYWJsZSBmcmVlDQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQNCndoaWNoIGFyZSBub3QgcGFydCBvZiB0aGUgd29yay4gIEZvciBleGFtcGxlLCBDb3JyZXNwb25kaW5nIFNvdXJjZQ0KaW5jbHVkZXMgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHNvdXJjZSBmaWxlcyBmb3INCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQ0KbGlua2VkIHN1YnByb2dyYW1zIHRoYXQgdGhlIHdvcmsgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIHJlcXVpcmUsDQpzdWNoIGFzIGJ5IGludGltYXRlIGRhdGEgY29tbXVuaWNhdGlvbiBvciBjb250cm9sIGZsb3cgYmV0d2VlbiB0aG9zZQ0Kc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLg0KDQogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBuZWVkIG5vdCBpbmNsdWRlIGFueXRoaW5nIHRoYXQgdXNlcnMNCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZw0KU291cmNlLg0KDQogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdA0Kc2FtZSB3b3JrLg0KDQogIDIuIEJhc2ljIFBlcm1pc3Npb25zLg0KDQogIEFsbCByaWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UgYXJlIGdyYW50ZWQgZm9yIHRoZSB0ZXJtIG9mDQpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZA0KY29uZGl0aW9ucyBhcmUgbWV0LiAgVGhpcyBMaWNlbnNlIGV4cGxpY2l0bHkgYWZmaXJtcyB5b3VyIHVubGltaXRlZA0KcGVybWlzc2lvbiB0byBydW4gdGhlIHVubW9kaWZpZWQgUHJvZ3JhbS4gIFRoZSBvdXRwdXQgZnJvbSBydW5uaW5nIGENCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cw0KY29udGVudCwgY29uc3RpdHV0ZXMgYSBjb3ZlcmVkIHdvcmsuICBUaGlzIExpY2Vuc2UgYWNrbm93bGVkZ2VzIHlvdXINCnJpZ2h0cyBvZiBmYWlyIHVzZSBvciBvdGhlciBlcXVpdmFsZW50LCBhcyBwcm92aWRlZCBieSBjb3B5cmlnaHQgbGF3Lg0KDQogIFlvdSBtYXkgbWFrZSwgcnVuIGFuZCBwcm9wYWdhdGUgY292ZXJlZCB3b3JrcyB0aGF0IHlvdSBkbyBub3QNCmNvbnZleSwgd2l0aG91dCBjb25kaXRpb25zIHNvIGxvbmcgYXMgeW91ciBsaWNlbnNlIG90aGVyd2lzZSByZW1haW5zDQppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlDQpvZiBoYXZpbmcgdGhlbSBtYWtlIG1vZGlmaWNhdGlvbnMgZXhjbHVzaXZlbHkgZm9yIHlvdSwgb3IgcHJvdmlkZSB5b3UNCndpdGggZmFjaWxpdGllcyBmb3IgcnVubmluZyB0aG9zZSB3b3JrcywgcHJvdmlkZWQgdGhhdCB5b3UgY29tcGx5IHdpdGgNCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvDQpub3QgY29udHJvbCBjb3B5cmlnaHQuICBUaG9zZSB0aHVzIG1ha2luZyBvciBydW5uaW5nIHRoZSBjb3ZlcmVkIHdvcmtzDQpmb3IgeW91IG11c3QgZG8gc28gZXhjbHVzaXZlbHkgb24geW91ciBiZWhhbGYsIHVuZGVyIHlvdXIgZGlyZWN0aW9uDQphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YNCnlvdXIgY29weXJpZ2h0ZWQgbWF0ZXJpYWwgb3V0c2lkZSB0aGVpciByZWxhdGlvbnNoaXAgd2l0aCB5b3UuDQoNCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXINCnRoZSBjb25kaXRpb25zIHN0YXRlZCBiZWxvdy4gIFN1YmxpY2Vuc2luZyBpcyBub3QgYWxsb3dlZDsgc2VjdGlvbiAxMA0KbWFrZXMgaXQgdW5uZWNlc3NhcnkuDQoNCiAgMy4gUHJvdGVjdGluZyBVc2VycycgTGVnYWwgUmlnaHRzIEZyb20gQW50aS1DaXJjdW12ZW50aW9uIExhdy4NCg0KICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwNCm1lYXN1cmUgdW5kZXIgYW55IGFwcGxpY2FibGUgbGF3IGZ1bGZpbGxpbmcgb2JsaWdhdGlvbnMgdW5kZXIgYXJ0aWNsZQ0KMTEgb2YgdGhlIFdJUE8gY29weXJpZ2h0IHRyZWF0eSBhZG9wdGVkIG9uIDIwIERlY2VtYmVyIDE5OTYsIG9yDQpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoDQptZWFzdXJlcy4NCg0KICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkDQpjaXJjdW12ZW50aW9uIG9mIHRlY2hub2xvZ2ljYWwgbWVhc3VyZXMgdG8gdGhlIGV4dGVudCBzdWNoIGNpcmN1bXZlbnRpb24NCmlzIGVmZmVjdGVkIGJ5IGV4ZXJjaXNpbmcgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZSB3aXRoIHJlc3BlY3QgdG8NCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3INCm1vZGlmaWNhdGlvbiBvZiB0aGUgd29yayBhcyBhIG1lYW5zIG9mIGVuZm9yY2luZywgYWdhaW5zdCB0aGUgd29yaydzDQp1c2VycywgeW91ciBvciB0aGlyZCBwYXJ0aWVzJyBsZWdhbCByaWdodHMgdG8gZm9yYmlkIGNpcmN1bXZlbnRpb24gb2YNCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuDQoNCiAgNC4gQ29udmV5aW5nIFZlcmJhdGltIENvcGllcy4NCg0KICBZb3UgbWF5IGNvbnZleSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncyBzb3VyY2UgY29kZSBhcyB5b3UNCnJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91IGNvbnNwaWN1b3VzbHkgYW5kDQphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7DQprZWVwIGludGFjdCBhbGwgbm90aWNlcyBzdGF0aW5nIHRoYXQgdGhpcyBMaWNlbnNlIGFuZCBhbnkNCm5vbi1wZXJtaXNzaXZlIHRlcm1zIGFkZGVkIGluIGFjY29yZCB3aXRoIHNlY3Rpb24gNyBhcHBseSB0byB0aGUgY29kZTsNCmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsDQpyZWNpcGllbnRzIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4NCg0KICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksDQphbmQgeW91IG1heSBvZmZlciBzdXBwb3J0IG9yIHdhcnJhbnR5IHByb3RlY3Rpb24gZm9yIGEgZmVlLg0KDQogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuDQoNCiAgWW91IG1heSBjb252ZXkgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBvciB0aGUgbW9kaWZpY2F0aW9ucyB0bw0KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUNCnRlcm1zIG9mIHNlY3Rpb24gNCwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOg0KDQogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkDQogICAgaXQsIGFuZCBnaXZpbmcgYSByZWxldmFudCBkYXRlLg0KDQogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMNCiAgICByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UgYW5kIGFueSBjb25kaXRpb25zIGFkZGVkIHVuZGVyIHNlY3Rpb24NCiAgICA3LiAgVGhpcyByZXF1aXJlbWVudCBtb2RpZmllcyB0aGUgcmVxdWlyZW1lbnQgaW4gc2VjdGlvbiA0IHRvDQogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4NCg0KICAgIGMpIFlvdSBtdXN0IGxpY2Vuc2UgdGhlIGVudGlyZSB3b3JrLCBhcyBhIHdob2xlLCB1bmRlciB0aGlzDQogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzDQogICAgTGljZW5zZSB3aWxsIHRoZXJlZm9yZSBhcHBseSwgYWxvbmcgd2l0aCBhbnkgYXBwbGljYWJsZSBzZWN0aW9uIDcNCiAgICBhZGRpdGlvbmFsIHRlcm1zLCB0byB0aGUgd2hvbGUgb2YgdGhlIHdvcmssIGFuZCBhbGwgaXRzIHBhcnRzLA0KICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vDQogICAgcGVybWlzc2lvbiB0byBsaWNlbnNlIHRoZSB3b3JrIGluIGFueSBvdGhlciB3YXksIGJ1dCBpdCBkb2VzIG5vdA0KICAgIGludmFsaWRhdGUgc3VjaCBwZXJtaXNzaW9uIGlmIHlvdSBoYXZlIHNlcGFyYXRlbHkgcmVjZWl2ZWQgaXQuDQoNCiAgICBkKSBJZiB0aGUgd29yayBoYXMgaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2VzLCBlYWNoIG11c3QgZGlzcGxheQ0KICAgIEFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXM7IGhvd2V2ZXIsIGlmIHRoZSBQcm9ncmFtIGhhcyBpbnRlcmFjdGl2ZQ0KICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyDQogICAgd29yayBuZWVkIG5vdCBtYWtlIHRoZW0gZG8gc28uDQoNCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudA0Kd29ya3MsIHdoaWNoIGFyZSBub3QgYnkgdGhlaXIgbmF0dXJlIGV4dGVuc2lvbnMgb2YgdGhlIGNvdmVyZWQgd29yaywNCmFuZCB3aGljaCBhcmUgbm90IGNvbWJpbmVkIHdpdGggaXQgc3VjaCBhcyB0byBmb3JtIGEgbGFyZ2VyIHByb2dyYW0sDQppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuDQoiYWdncmVnYXRlIiBpZiB0aGUgY29tcGlsYXRpb24gYW5kIGl0cyByZXN1bHRpbmcgY29weXJpZ2h0IGFyZSBub3QNCnVzZWQgdG8gbGltaXQgdGhlIGFjY2VzcyBvciBsZWdhbCByaWdodHMgb2YgdGhlIGNvbXBpbGF0aW9uJ3MgdXNlcnMNCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yaw0KaW4gYW4gYWdncmVnYXRlIGRvZXMgbm90IGNhdXNlIHRoaXMgTGljZW5zZSB0byBhcHBseSB0byB0aGUgb3RoZXINCnBhcnRzIG9mIHRoZSBhZ2dyZWdhdGUuDQoNCiAgNi4gQ29udmV5aW5nIE5vbi1Tb3VyY2UgRm9ybXMuDQoNCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMNCm9mIHNlY3Rpb25zIDQgYW5kIDUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gY29udmV5IHRoZQ0KbWFjaGluZS1yZWFkYWJsZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLA0KaW4gb25lIG9mIHRoZXNlIHdheXM6DQoNCiAgICBhKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0DQogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUNCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmaXhlZCBvbiBhIGR1cmFibGUgcGh5c2ljYWwgbWVkaXVtDQogICAgY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UuDQoNCiAgICBiKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0DQogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSBhDQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMNCiAgICBsb25nIGFzIHlvdSBvZmZlciBzcGFyZSBwYXJ0cyBvciBjdXN0b21lciBzdXBwb3J0IGZvciB0aGF0IHByb2R1Y3QNCiAgICBtb2RlbCwgdG8gZ2l2ZSBhbnlvbmUgd2hvIHBvc3Nlc3NlcyB0aGUgb2JqZWN0IGNvZGUgZWl0aGVyICgxKSBhDQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlDQogICAgcHJvZHVjdCB0aGF0IGlzIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLCBvbiBhIGR1cmFibGUgcGh5c2ljYWwNCiAgICBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UsIGZvciBhIHByaWNlIG5vDQogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzDQogICAgY29udmV5aW5nIG9mIHNvdXJjZSwgb3IgKDIpIGFjY2VzcyB0byBjb3B5IHRoZQ0KICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZyb20gYSBuZXR3b3JrIHNlcnZlciBhdCBubyBjaGFyZ2UuDQoNCiAgICBjKSBDb252ZXkgaW5kaXZpZHVhbCBjb3BpZXMgb2YgdGhlIG9iamVjdCBjb2RlIHdpdGggYSBjb3B5IG9mIHRoZQ0KICAgIHdyaXR0ZW4gb2ZmZXIgdG8gcHJvdmlkZSB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBUaGlzDQogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQNCiAgICBvbmx5IGlmIHlvdSByZWNlaXZlZCB0aGUgb2JqZWN0IGNvZGUgd2l0aCBzdWNoIGFuIG9mZmVyLCBpbiBhY2NvcmQNCiAgICB3aXRoIHN1YnNlY3Rpb24gNmIuDQoNCiAgICBkKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGJ5IG9mZmVyaW5nIGFjY2VzcyBmcm9tIGEgZGVzaWduYXRlZA0KICAgIHBsYWNlIChncmF0aXMgb3IgZm9yIGEgY2hhcmdlKSwgYW5kIG9mZmVyIGVxdWl2YWxlbnQgYWNjZXNzIHRvIHRoZQ0KICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vDQogICAgZnVydGhlciBjaGFyZ2UuICBZb3UgbmVlZCBub3QgcmVxdWlyZSByZWNpcGllbnRzIHRvIGNvcHkgdGhlDQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuICBJZiB0aGUgcGxhY2UgdG8NCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UNCiAgICBtYXkgYmUgb24gYSBkaWZmZXJlbnQgc2VydmVyIChvcGVyYXRlZCBieSB5b3Ugb3IgYSB0aGlyZCBwYXJ0eSkNCiAgICB0aGF0IHN1cHBvcnRzIGVxdWl2YWxlbnQgY29weWluZyBmYWNpbGl0aWVzLCBwcm92aWRlZCB5b3UgbWFpbnRhaW4NCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQ0KICAgIENvcnJlc3BvbmRpbmcgU291cmNlLiAgUmVnYXJkbGVzcyBvZiB3aGF0IHNlcnZlciBob3N0cyB0aGUNCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSwgeW91IHJlbWFpbiBvYmxpZ2F0ZWQgdG8gZW5zdXJlIHRoYXQgaXQgaXMNCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLg0KDQogICAgZSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uLCBwcm92aWRlZA0KICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nDQogICAgU291cmNlIG9mIHRoZSB3b3JrIGFyZSBiZWluZyBvZmZlcmVkIHRvIHRoZSBnZW5lcmFsIHB1YmxpYyBhdCBubw0KICAgIGNoYXJnZSB1bmRlciBzdWJzZWN0aW9uIDZkLg0KDQogIEEgc2VwYXJhYmxlIHBvcnRpb24gb2YgdGhlIG9iamVjdCBjb2RlLCB3aG9zZSBzb3VyY2UgY29kZSBpcyBleGNsdWRlZA0KZnJvbSB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgYXMgYSBTeXN0ZW0gTGlicmFyeSwgbmVlZCBub3QgYmUNCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4NCg0KICBBICJVc2VyIFByb2R1Y3QiIGlzIGVpdGhlciAoMSkgYSAiY29uc3VtZXIgcHJvZHVjdCIsIHdoaWNoIG1lYW5zIGFueQ0KdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwNCm9yIGhvdXNlaG9sZCBwdXJwb3Nlcywgb3IgKDIpIGFueXRoaW5nIGRlc2lnbmVkIG9yIHNvbGQgZm9yIGluY29ycG9yYXRpb24NCmludG8gYSBkd2VsbGluZy4gIEluIGRldGVybWluaW5nIHdoZXRoZXIgYSBwcm9kdWN0IGlzIGEgY29uc3VtZXIgcHJvZHVjdCwNCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcg0KcHJvZHVjdCByZWNlaXZlZCBieSBhIHBhcnRpY3VsYXIgdXNlciwgIm5vcm1hbGx5IHVzZWQiIHJlZmVycyB0byBhDQp0eXBpY2FsIG9yIGNvbW1vbiB1c2Ugb2YgdGhhdCBjbGFzcyBvZiBwcm9kdWN0LCByZWdhcmRsZXNzIG9mIHRoZSBzdGF0dXMNCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyDQphY3R1YWxseSB1c2VzLCBvciBleHBlY3RzIG9yIGlzIGV4cGVjdGVkIHRvIHVzZSwgdGhlIHByb2R1Y3QuICBBIHByb2R1Y3QNCmlzIGEgY29uc3VtZXIgcHJvZHVjdCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHByb2R1Y3QgaGFzIHN1YnN0YW50aWFsDQpjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudA0KdGhlIG9ubHkgc2lnbmlmaWNhbnQgbW9kZSBvZiB1c2Ugb2YgdGhlIHByb2R1Y3QuDQoNCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLA0KcHJvY2VkdXJlcywgYXV0aG9yaXphdGlvbiBrZXlzLCBvciBvdGhlciBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBpbnN0YWxsDQphbmQgZXhlY3V0ZSBtb2RpZmllZCB2ZXJzaW9ucyBvZiBhIGNvdmVyZWQgd29yayBpbiB0aGF0IFVzZXIgUHJvZHVjdCBmcm9tDQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QNCnN1ZmZpY2UgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbnRpbnVlZCBmdW5jdGlvbmluZyBvZiB0aGUgbW9kaWZpZWQgb2JqZWN0DQpjb2RlIGlzIGluIG5vIGNhc2UgcHJldmVudGVkIG9yIGludGVyZmVyZWQgd2l0aCBzb2xlbHkgYmVjYXVzZQ0KbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuDQoNCiAgSWYgeW91IGNvbnZleSBhbiBvYmplY3QgY29kZSB3b3JrIHVuZGVyIHRoaXMgc2VjdGlvbiBpbiwgb3Igd2l0aCwgb3INCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzDQpwYXJ0IG9mIGEgdHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIHJpZ2h0IG9mIHBvc3Nlc3Npb24gYW5kIHVzZSBvZiB0aGUNClVzZXIgUHJvZHVjdCBpcyB0cmFuc2ZlcnJlZCB0byB0aGUgcmVjaXBpZW50IGluIHBlcnBldHVpdHkgb3IgZm9yIGENCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlDQpDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCB1bmRlciB0aGlzIHNlY3Rpb24gbXVzdCBiZSBhY2NvbXBhbmllZA0KYnkgdGhlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbi4gIEJ1dCB0aGlzIHJlcXVpcmVtZW50IGRvZXMgbm90IGFwcGx5DQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbA0KbW9kaWZpZWQgb2JqZWN0IGNvZGUgb24gdGhlIFVzZXIgUHJvZHVjdCAoZm9yIGV4YW1wbGUsIHRoZSB3b3JrIGhhcw0KYmVlbiBpbnN0YWxsZWQgaW4gUk9NKS4NCg0KICBUaGUgcmVxdWlyZW1lbnQgdG8gcHJvdmlkZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gZG9lcyBub3QgaW5jbHVkZSBhDQpyZXF1aXJlbWVudCB0byBjb250aW51ZSB0byBwcm92aWRlIHN1cHBvcnQgc2VydmljZSwgd2FycmFudHksIG9yIHVwZGF0ZXMNCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yDQp0aGUgVXNlciBQcm9kdWN0IGluIHdoaWNoIGl0IGhhcyBiZWVuIG1vZGlmaWVkIG9yIGluc3RhbGxlZC4gIEFjY2VzcyB0byBhDQpuZXR3b3JrIG1heSBiZSBkZW5pZWQgd2hlbiB0aGUgbW9kaWZpY2F0aW9uIGl0c2VsZiBtYXRlcmlhbGx5IGFuZA0KYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kDQpwcm90b2NvbHMgZm9yIGNvbW11bmljYXRpb24gYWNyb3NzIHRoZSBuZXR3b3JrLg0KDQogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLA0KaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uIG11c3QgYmUgaW4gYSBmb3JtYXQgdGhhdCBpcyBwdWJsaWNseQ0KZG9jdW1lbnRlZCAoYW5kIHdpdGggYW4gaW1wbGVtZW50YXRpb24gYXZhaWxhYmxlIHRvIHRoZSBwdWJsaWMgaW4NCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcg0KdW5wYWNraW5nLCByZWFkaW5nIG9yIGNvcHlpbmcuDQoNCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4NCg0KICAiQWRkaXRpb25hbCBwZXJtaXNzaW9ucyIgYXJlIHRlcm1zIHRoYXQgc3VwcGxlbWVudCB0aGUgdGVybXMgb2YgdGhpcw0KTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLg0KQWRkaXRpb25hbCBwZXJtaXNzaW9ucyB0aGF0IGFyZSBhcHBsaWNhYmxlIHRvIHRoZSBlbnRpcmUgUHJvZ3JhbSBzaGFsbA0KYmUgdHJlYXRlZCBhcyB0aG91Z2ggdGhleSB3ZXJlIGluY2x1ZGVkIGluIHRoaXMgTGljZW5zZSwgdG8gdGhlIGV4dGVudA0KdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMNCmFwcGx5IG9ubHkgdG8gcGFydCBvZiB0aGUgUHJvZ3JhbSwgdGhhdCBwYXJ0IG1heSBiZSB1c2VkIHNlcGFyYXRlbHkNCnVuZGVyIHRob3NlIHBlcm1pc3Npb25zLCBidXQgdGhlIGVudGlyZSBQcm9ncmFtIHJlbWFpbnMgZ292ZXJuZWQgYnkNCnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4NCg0KICBXaGVuIHlvdSBjb252ZXkgYSBjb3B5IG9mIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IGF0IHlvdXIgb3B0aW9uDQpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YNCml0LiAgKEFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbWF5IGJlIHdyaXR0ZW4gdG8gcmVxdWlyZSB0aGVpciBvd24NCnJlbW92YWwgaW4gY2VydGFpbiBjYXNlcyB3aGVuIHlvdSBtb2RpZnkgdGhlIHdvcmsuKSAgWW91IG1heSBwbGFjZQ0KYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLA0KZm9yIHdoaWNoIHlvdSBoYXZlIG9yIGNhbiBnaXZlIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBwZXJtaXNzaW9uLg0KDQogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQ0KYWRkIHRvIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IChpZiBhdXRob3JpemVkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVycyBvZg0KdGhhdCBtYXRlcmlhbCkgc3VwcGxlbWVudCB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIHdpdGggdGVybXM6DQoNCiAgICBhKSBEaXNjbGFpbWluZyB3YXJyYW50eSBvciBsaW1pdGluZyBsaWFiaWxpdHkgZGlmZmVyZW50bHkgZnJvbSB0aGUNCiAgICB0ZXJtcyBvZiBzZWN0aW9ucyAxNSBhbmQgMTYgb2YgdGhpcyBMaWNlbnNlOyBvcg0KDQogICAgYikgUmVxdWlyaW5nIHByZXNlcnZhdGlvbiBvZiBzcGVjaWZpZWQgcmVhc29uYWJsZSBsZWdhbCBub3RpY2VzIG9yDQogICAgYXV0aG9yIGF0dHJpYnV0aW9ucyBpbiB0aGF0IG1hdGVyaWFsIG9yIGluIHRoZSBBcHByb3ByaWF0ZSBMZWdhbA0KICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yDQoNCiAgICBjKSBQcm9oaWJpdGluZyBtaXNyZXByZXNlbnRhdGlvbiBvZiB0aGUgb3JpZ2luIG9mIHRoYXQgbWF0ZXJpYWwsIG9yDQogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4NCiAgICByZWFzb25hYmxlIHdheXMgYXMgZGlmZmVyZW50IGZyb20gdGhlIG9yaWdpbmFsIHZlcnNpb247IG9yDQoNCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yDQogICAgYXV0aG9ycyBvZiB0aGUgbWF0ZXJpYWw7IG9yDQoNCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lDQogICAgdHJhZGUgbmFtZXMsIHRyYWRlbWFya3MsIG9yIHNlcnZpY2UgbWFya3M7IG9yDQoNCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0DQogICAgbWF0ZXJpYWwgYnkgYW55b25lIHdobyBjb252ZXlzIHRoZSBtYXRlcmlhbCAob3IgbW9kaWZpZWQgdmVyc2lvbnMgb2YNCiAgICBpdCkgd2l0aCBjb250cmFjdHVhbCBhc3N1bXB0aW9ucyBvZiBsaWFiaWxpdHkgdG8gdGhlIHJlY2lwaWVudCwgZm9yDQogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbg0KICAgIHRob3NlIGxpY2Vuc29ycyBhbmQgYXV0aG9ycy4NCg0KICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcg0KcmVzdHJpY3Rpb25zIiB3aXRoaW4gdGhlIG1lYW5pbmcgb2Ygc2VjdGlvbiAxMC4gIElmIHRoZSBQcm9ncmFtIGFzIHlvdQ0KcmVjZWl2ZWQgaXQsIG9yIGFueSBwYXJ0IG9mIGl0LCBjb250YWlucyBhIG5vdGljZSBzdGF0aW5nIHRoYXQgaXQgaXMNCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcg0KcmVzdHJpY3Rpb24sIHlvdSBtYXkgcmVtb3ZlIHRoYXQgdGVybS4gIElmIGEgbGljZW5zZSBkb2N1bWVudCBjb250YWlucw0KYSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGJ1dCBwZXJtaXRzIHJlbGljZW5zaW5nIG9yIGNvbnZleWluZyB1bmRlciB0aGlzDQpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMNCm9mIHRoYXQgbGljZW5zZSBkb2N1bWVudCwgcHJvdmlkZWQgdGhhdCB0aGUgZnVydGhlciByZXN0cmljdGlvbiBkb2VzDQpub3Qgc3Vydml2ZSBzdWNoIHJlbGljZW5zaW5nIG9yIGNvbnZleWluZy4NCg0KICBJZiB5b3UgYWRkIHRlcm1zIHRvIGEgY292ZXJlZCB3b3JrIGluIGFjY29yZCB3aXRoIHRoaXMgc2VjdGlvbiwgeW91DQptdXN0IHBsYWNlLCBpbiB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzLCBhIHN0YXRlbWVudCBvZiB0aGUNCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZw0Kd2hlcmUgdG8gZmluZCB0aGUgYXBwbGljYWJsZSB0ZXJtcy4NCg0KICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQ0KZm9ybSBvZiBhIHNlcGFyYXRlbHkgd3JpdHRlbiBsaWNlbnNlLCBvciBzdGF0ZWQgYXMgZXhjZXB0aW9uczsNCnRoZSBhYm92ZSByZXF1aXJlbWVudHMgYXBwbHkgZWl0aGVyIHdheS4NCg0KICA4LiBUZXJtaW5hdGlvbi4NCg0KICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkNCnByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0IG90aGVyd2lzZSB0byBwcm9wYWdhdGUgb3INCm1vZGlmeSBpdCBpcyB2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlcg0KdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZA0KcGFyYWdyYXBoIG9mIHNlY3Rpb24gMTEpLg0KDQogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyDQpsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMgcmVpbnN0YXRlZCAoYSkNCnByb3Zpc2lvbmFsbHksIHVubGVzcyBhbmQgdW50aWwgdGhlIGNvcHlyaWdodCBob2xkZXIgZXhwbGljaXRseSBhbmQNCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQNCmhvbGRlciBmYWlscyB0byBub3RpZnkgeW91IG9mIHRoZSB2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zDQpwcmlvciB0byA2MCBkYXlzIGFmdGVyIHRoZSBjZXNzYXRpb24uDQoNCiAgTW9yZW92ZXIsIHlvdXIgbGljZW5zZSBmcm9tIGEgcGFydGljdWxhciBjb3B5cmlnaHQgaG9sZGVyIGlzDQpyZWluc3RhdGVkIHBlcm1hbmVudGx5IGlmIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vdGlmaWVzIHlvdSBvZiB0aGUNCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUNCnJlY2VpdmVkIG5vdGljZSBvZiB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNlIChmb3IgYW55IHdvcmspIGZyb20gdGhhdA0KY29weXJpZ2h0IGhvbGRlciwgYW5kIHlvdSBjdXJlIHRoZSB2aW9sYXRpb24gcHJpb3IgdG8gMzAgZGF5cyBhZnRlcg0KeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuDQoNCiAgVGVybWluYXRpb24gb2YgeW91ciByaWdodHMgdW5kZXIgdGhpcyBzZWN0aW9uIGRvZXMgbm90IHRlcm1pbmF0ZSB0aGUNCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcg0KdGhpcyBMaWNlbnNlLiAgSWYgeW91ciByaWdodHMgaGF2ZSBiZWVuIHRlcm1pbmF0ZWQgYW5kIG5vdCBwZXJtYW5lbnRseQ0KcmVpbnN0YXRlZCwgeW91IGRvIG5vdCBxdWFsaWZ5IHRvIHJlY2VpdmUgbmV3IGxpY2Vuc2VzIGZvciB0aGUgc2FtZQ0KbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4NCg0KICA5LiBBY2NlcHRhbmNlIE5vdCBSZXF1aXJlZCBmb3IgSGF2aW5nIENvcGllcy4NCg0KICBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlIGluIG9yZGVyIHRvIHJlY2VpdmUgb3INCnJ1biBhIGNvcHkgb2YgdGhlIFByb2dyYW0uICBBbmNpbGxhcnkgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkIHdvcmsNCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uDQp0byByZWNlaXZlIGEgY29weSBsaWtld2lzZSBkb2VzIG5vdCByZXF1aXJlIGFjY2VwdGFuY2UuICBIb3dldmVyLA0Kbm90aGluZyBvdGhlciB0aGFuIHRoaXMgTGljZW5zZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gcHJvcGFnYXRlIG9yDQptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbw0Kbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5IG1vZGlmeWluZyBvciBwcm9wYWdhdGluZyBhDQpjb3ZlcmVkIHdvcmssIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLg0KDQogIDEwLiBBdXRvbWF0aWMgTGljZW5zaW5nIG9mIERvd25zdHJlYW0gUmVjaXBpZW50cy4NCg0KICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5DQpyZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUgb3JpZ2luYWwgbGljZW5zb3JzLCB0byBydW4sIG1vZGlmeSBhbmQNCnByb3BhZ2F0ZSB0aGF0IHdvcmssIHN1YmplY3QgdG8gdGhpcyBMaWNlbnNlLiAgWW91IGFyZSBub3QgcmVzcG9uc2libGUNCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLg0KDQogIEFuICJlbnRpdHkgdHJhbnNhY3Rpb24iIGlzIGEgdHJhbnNhY3Rpb24gdHJhbnNmZXJyaW5nIGNvbnRyb2wgb2YgYW4NCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4NCm9yZ2FuaXphdGlvbiwgb3IgbWVyZ2luZyBvcmdhbml6YXRpb25zLiAgSWYgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkDQp3b3JrIHJlc3VsdHMgZnJvbSBhbiBlbnRpdHkgdHJhbnNhY3Rpb24sIGVhY2ggcGFydHkgdG8gdGhhdA0KdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyDQpsaWNlbnNlcyB0byB0aGUgd29yayB0aGUgcGFydHkncyBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCBoYWQgb3IgY291bGQNCmdpdmUgdW5kZXIgdGhlIHByZXZpb3VzIHBhcmFncmFwaCwgcGx1cyBhIHJpZ2h0IHRvIHBvc3Nlc3Npb24gb2YgdGhlDQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYNCnRoZSBwcmVkZWNlc3NvciBoYXMgaXQgb3IgY2FuIGdldCBpdCB3aXRoIHJlYXNvbmFibGUgZWZmb3J0cy4NCg0KICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUNCnJpZ2h0cyBncmFudGVkIG9yIGFmZmlybWVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEZvciBleGFtcGxlLCB5b3UgbWF5DQpub3QgaW1wb3NlIGEgbGljZW5zZSBmZWUsIHJveWFsdHksIG9yIG90aGVyIGNoYXJnZSBmb3IgZXhlcmNpc2Ugb2YNCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24NCihpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0DQphbnkgcGF0ZW50IGNsYWltIGlzIGluZnJpbmdlZCBieSBtYWtpbmcsIHVzaW5nLCBzZWxsaW5nLCBvZmZlcmluZyBmb3INCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4NCg0KICAxMS4gUGF0ZW50cy4NCg0KICBBICJjb250cmlidXRvciIgaXMgYSBjb3B5cmlnaHQgaG9sZGVyIHdobyBhdXRob3JpemVzIHVzZSB1bmRlciB0aGlzDQpMaWNlbnNlIG9mIHRoZSBQcm9ncmFtIG9yIGEgd29yayBvbiB3aGljaCB0aGUgUHJvZ3JhbSBpcyBiYXNlZC4gIFRoZQ0Kd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuDQoNCiAgQSBjb250cmlidXRvcidzICJlc3NlbnRpYWwgcGF0ZW50IGNsYWltcyIgYXJlIGFsbCBwYXRlbnQgY2xhaW1zDQpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yDQpoZXJlYWZ0ZXIgYWNxdWlyZWQsIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIGJ5IHNvbWUgbWFubmVyLCBwZXJtaXR0ZWQNCmJ5IHRoaXMgTGljZW5zZSwgb2YgbWFraW5nLCB1c2luZywgb3Igc2VsbGluZyBpdHMgY29udHJpYnV0b3IgdmVyc2lvbiwNCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhDQpjb25zZXF1ZW5jZSBvZiBmdXJ0aGVyIG1vZGlmaWNhdGlvbiBvZiB0aGUgY29udHJpYnV0b3IgdmVyc2lvbi4gIEZvcg0KcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAiY29udHJvbCIgaW5jbHVkZXMgdGhlIHJpZ2h0IHRvIGdyYW50DQpwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YNCnRoaXMgTGljZW5zZS4NCg0KICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQ0KcGF0ZW50IGxpY2Vuc2UgdW5kZXIgdGhlIGNvbnRyaWJ1dG9yJ3MgZXNzZW50aWFsIHBhdGVudCBjbGFpbXMsIHRvDQptYWtlLCB1c2UsIHNlbGwsIG9mZmVyIGZvciBzYWxlLCBpbXBvcnQgYW5kIG90aGVyd2lzZSBydW4sIG1vZGlmeSBhbmQNCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uDQoNCiAgSW4gdGhlIGZvbGxvd2luZyB0aHJlZSBwYXJhZ3JhcGhzLCBhICJwYXRlbnQgbGljZW5zZSIgaXMgYW55IGV4cHJlc3MNCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudA0KKHN1Y2ggYXMgYW4gZXhwcmVzcyBwZXJtaXNzaW9uIHRvIHByYWN0aWNlIGEgcGF0ZW50IG9yIGNvdmVuYW50IG5vdCB0bw0Kc3VlIGZvciBwYXRlbnQgaW5mcmluZ2VtZW50KS4gIFRvICJncmFudCIgc3VjaCBhIHBhdGVudCBsaWNlbnNlIHRvIGENCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhDQpwYXRlbnQgYWdhaW5zdCB0aGUgcGFydHkuDQoNCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwNCmFuZCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdvcmsgaXMgbm90IGF2YWlsYWJsZSBmb3IgYW55b25lDQp0byBjb3B5LCBmcmVlIG9mIGNoYXJnZSBhbmQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwgdGhyb3VnaCBhDQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLA0KdGhlbiB5b3UgbXVzdCBlaXRoZXIgKDEpIGNhdXNlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB0byBiZSBzbw0KYXZhaWxhYmxlLCBvciAoMikgYXJyYW5nZSB0byBkZXByaXZlIHlvdXJzZWxmIG9mIHRoZSBiZW5lZml0IG9mIHRoZQ0KcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXINCmNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgTGljZW5zZSwgdG8gZXh0ZW5kIHRoZSBwYXRlbnQNCmxpY2Vuc2UgdG8gZG93bnN0cmVhbSByZWNpcGllbnRzLiAgIktub3dpbmdseSByZWx5aW5nIiBtZWFucyB5b3UgaGF2ZQ0KYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlDQpjb3ZlcmVkIHdvcmsgaW4gYSBjb3VudHJ5LCBvciB5b3VyIHJlY2lwaWVudCdzIHVzZSBvZiB0aGUgY292ZXJlZCB3b3JrDQppbiBhIGNvdW50cnksIHdvdWxkIGluZnJpbmdlIG9uZSBvciBtb3JlIGlkZW50aWZpYWJsZSBwYXRlbnRzIGluIHRoYXQNCmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuDQoNCiAgSWYsIHB1cnN1YW50IHRvIG9yIGluIGNvbm5lY3Rpb24gd2l0aCBhIHNpbmdsZSB0cmFuc2FjdGlvbiBvcg0KYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQ0KY292ZXJlZCB3b3JrLCBhbmQgZ3JhbnQgYSBwYXRlbnQgbGljZW5zZSB0byBzb21lIG9mIHRoZSBwYXJ0aWVzDQpyZWNlaXZpbmcgdGhlIGNvdmVyZWQgd29yayBhdXRob3JpemluZyB0aGVtIHRvIHVzZSwgcHJvcGFnYXRlLCBtb2RpZnkNCm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UNCnlvdSBncmFudCBpcyBhdXRvbWF0aWNhbGx5IGV4dGVuZGVkIHRvIGFsbCByZWNpcGllbnRzIG9mIHRoZSBjb3ZlcmVkDQp3b3JrIGFuZCB3b3JrcyBiYXNlZCBvbiBpdC4NCg0KICBBIHBhdGVudCBsaWNlbnNlIGlzICJkaXNjcmltaW5hdG9yeSIgaWYgaXQgZG9lcyBub3QgaW5jbHVkZSB3aXRoaW4NCnRoZSBzY29wZSBvZiBpdHMgY292ZXJhZ2UsIHByb2hpYml0cyB0aGUgZXhlcmNpc2Ugb2YsIG9yIGlzDQpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUNCnNwZWNpZmljYWxseSBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIFlvdSBtYXkgbm90IGNvbnZleSBhIGNvdmVyZWQNCndvcmsgaWYgeW91IGFyZSBhIHBhcnR5IHRvIGFuIGFycmFuZ2VtZW50IHdpdGggYSB0aGlyZCBwYXJ0eSB0aGF0IGlzDQppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50DQp0byB0aGUgdGhpcmQgcGFydHkgYmFzZWQgb24gdGhlIGV4dGVudCBvZiB5b3VyIGFjdGl2aXR5IG9mIGNvbnZleWluZw0KdGhlIHdvcmssIGFuZCB1bmRlciB3aGljaCB0aGUgdGhpcmQgcGFydHkgZ3JhbnRzLCB0byBhbnkgb2YgdGhlDQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkNCnBhdGVudCBsaWNlbnNlIChhKSBpbiBjb25uZWN0aW9uIHdpdGggY29waWVzIG9mIHRoZSBjb3ZlcmVkIHdvcmsNCmNvbnZleWVkIGJ5IHlvdSAob3IgY29waWVzIG1hZGUgZnJvbSB0aG9zZSBjb3BpZXMpLCBvciAoYikgcHJpbWFyaWx5DQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdA0KY29udGFpbiB0aGUgY292ZXJlZCB3b3JrLCB1bmxlc3MgeW91IGVudGVyZWQgaW50byB0aGF0IGFycmFuZ2VtZW50LA0Kb3IgdGhhdCBwYXRlbnQgbGljZW5zZSB3YXMgZ3JhbnRlZCwgcHJpb3IgdG8gMjggTWFyY2ggMjAwNy4NCg0KICBOb3RoaW5nIGluIHRoaXMgTGljZW5zZSBzaGFsbCBiZSBjb25zdHJ1ZWQgYXMgZXhjbHVkaW5nIG9yIGxpbWl0aW5nDQphbnkgaW1wbGllZCBsaWNlbnNlIG9yIG90aGVyIGRlZmVuc2VzIHRvIGluZnJpbmdlbWVudCB0aGF0IG1heQ0Kb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3Lg0KDQogIDEyLiBObyBTdXJyZW5kZXIgb2YgT3RoZXJzJyBGcmVlZG9tLg0KDQogIElmIGNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3INCm90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QNCmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhDQpjb3ZlcmVkIHdvcmsgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMNCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UgbWF5DQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UNCnRvIGNvbGxlY3QgYSByb3lhbHR5IGZvciBmdXJ0aGVyIGNvbnZleWluZyBmcm9tIHRob3NlIHRvIHdob20geW91IGNvbnZleQ0KdGhlIFByb2dyYW0sIHRoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNmeSBib3RoIHRob3NlIHRlcm1zIGFuZCB0aGlzDQpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uDQoNCiAgMTMuIFVzZSB3aXRoIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuDQoNCiAgTm90d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlLCB5b3UgaGF2ZQ0KcGVybWlzc2lvbiB0byBsaW5rIG9yIGNvbWJpbmUgYW55IGNvdmVyZWQgd29yayB3aXRoIGEgd29yayBsaWNlbnNlZA0KdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQ0KY29tYmluZWQgd29yaywgYW5kIHRvIGNvbnZleSB0aGUgcmVzdWx0aW5nIHdvcmsuICBUaGUgdGVybXMgb2YgdGhpcw0KTGljZW5zZSB3aWxsIGNvbnRpbnVlIHRvIGFwcGx5IHRvIHRoZSBwYXJ0IHdoaWNoIGlzIHRoZSBjb3ZlcmVkIHdvcmssDQpidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsDQpzZWN0aW9uIDEzLCBjb25jZXJuaW5nIGludGVyYWN0aW9uIHRocm91Z2ggYSBuZXR3b3JrIHdpbGwgYXBwbHkgdG8gdGhlDQpjb21iaW5hdGlvbiBhcyBzdWNoLg0KDQogIDE0LiBSZXZpc2VkIFZlcnNpb25zIG9mIHRoaXMgTGljZW5zZS4NCg0KICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZg0KdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcgdmVyc2lvbnMgd2lsbA0KYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvDQphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4NCg0KICBFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZQ0KUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwNClB1YmxpYyBMaWNlbnNlICJvciBhbnkgbGF0ZXIgdmVyc2lvbiIgYXBwbGllcyB0byBpdCwgeW91IGhhdmUgdGhlDQpvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCBudW1iZXJlZA0KdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQNCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQoNCiAgSWYgdGhlIFByb2dyYW0gc3BlY2lmaWVzIHRoYXQgYSBwcm94eSBjYW4gZGVjaWRlIHdoaWNoIGZ1dHVyZQ0KdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MNCnB1YmxpYyBzdGF0ZW1lbnQgb2YgYWNjZXB0YW5jZSBvZiBhIHZlcnNpb24gcGVybWFuZW50bHkgYXV0aG9yaXplcyB5b3UNCnRvIGNob29zZSB0aGF0IHZlcnNpb24gZm9yIHRoZSBQcm9ncmFtLg0KDQogIExhdGVyIGxpY2Vuc2UgdmVyc2lvbnMgbWF5IGdpdmUgeW91IGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50DQpwZXJtaXNzaW9ucy4gIEhvd2V2ZXIsIG5vIGFkZGl0aW9uYWwgb2JsaWdhdGlvbnMgYXJlIGltcG9zZWQgb24gYW55DQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhDQpsYXRlciB2ZXJzaW9uLg0KDQogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5Lg0KDQogIFRIRVJFIElTIE5PIFdBUlJBTlRZIEZPUiBUSEUgUFJPR1JBTSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkNCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQNCkhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkNCk9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VEIE9SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUg0KUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0NCklTIFdJVEggWU9VLiAgU0hPVUxEIFRIRSBQUk9HUkFNIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRSBUSEUgQ09TVCBPRg0KQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLg0KDQogIDE2LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4NCg0KICBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcNCldJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTU9ESUZJRVMgQU5EL09SIENPTlZFWVMNClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQ0KR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFDQpVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgUFJPR1JBTSAoSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBMT1NTIE9GDQpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRA0KUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBQUk9HUkFNUyksDQpFVkVOIElGIFNVQ0ggSE9MREVSIE9SIE9USEVSIFBBUlRZIEhBUyBCRUVOIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQpTVUNIIERBTUFHRVMuDQoNCiAgMTcuIEludGVycHJldGF0aW9uIG9mIFNlY3Rpb25zIDE1IGFuZCAxNi4NCg0KICBJZiB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50eSBhbmQgbGltaXRhdGlvbiBvZiBsaWFiaWxpdHkgcHJvdmlkZWQNCmFib3ZlIGNhbm5vdCBiZSBnaXZlbiBsb2NhbCBsZWdhbCBlZmZlY3QgYWNjb3JkaW5nIHRvIHRoZWlyIHRlcm1zLA0KcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzDQphbiBhYnNvbHV0ZSB3YWl2ZXIgb2YgYWxsIGNpdmlsIGxpYWJpbGl0eSBpbiBjb25uZWN0aW9uIHdpdGggdGhlDQpQcm9ncmFtLCB1bmxlc3MgYSB3YXJyYW50eSBvciBhc3N1bXB0aW9uIG9mIGxpYWJpbGl0eSBhY2NvbXBhbmllcyBhDQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuDQoNCiAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUw0KDQogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMNCg0KICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0DQpwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0DQpmcmVlIHNvZnR3YXJlIHdoaWNoIGV2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5nZSB1bmRlciB0aGVzZSB0ZXJtcy4NCg0KICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdA0KdG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9zdCBlZmZlY3RpdmVseQ0Kc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdA0KdGhlICJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuDQoNCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPg0KICAgIENvcHlyaWdodCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+DQoNCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KDQogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCg0KICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQoNCkFsc28gYWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJvbmljIGFuZCBwYXBlciBtYWlsLg0KDQogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQNCm5vdGljZSBsaWtlIHRoaXMgd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToNCg0KICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4NCiAgICBUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZOyBmb3IgZGV0YWlscyB0eXBlIGBzaG93IHcnLg0KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQNCiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuDQoNClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQ0KcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzDQptaWdodCBiZSBkaWZmZXJlbnQ7IGZvciBhIEdVSSBpbnRlcmZhY2UsIHlvdSB3b3VsZCB1c2UgYW4gImFib3V0IGJveCIuDQoNCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwNCmlmIGFueSwgdG8gc2lnbiBhICJjb3B5cmlnaHQgZGlzY2xhaW1lciIgZm9yIHRoZSBwcm9ncmFtLCBpZiBuZWNlc3NhcnkuDQpGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzLCBhbmQgaG93IHRvIGFwcGx5IGFuZCBmb2xsb3cgdGhlIEdOVSBHUEwsIHNlZQ0KPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KDQogIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBkb2VzIG5vdCBwZXJtaXQgaW5jb3Jwb3JhdGluZyB5b3VyIHByb2dyYW0NCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQ0KbWF5IGNvbnNpZGVyIGl0IG1vcmUgdXNlZnVsIHRvIHBlcm1pdCBsaW5raW5nIHByb3ByaWV0YXJ5IGFwcGxpY2F0aW9ucyB3aXRoDQp0aGUgbGlicmFyeS4gIElmIHRoaXMgaXMgd2hhdCB5b3Ugd2FudCB0byBkbywgdXNlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwNClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZA0KPGh0dHA6Ly93d3cuZ251Lm9yZy9waGlsb3NvcGh5L3doeS1ub3QtbGdwbC5odG1sPi4NCg==]]></data>
	</file>
	<file>
	  <filename>/docs/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/Eridu.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY2xhc3MgRXJpZHUgZXh0ZW5kcyBDTVNNb2R1bGUNCnsNCiAgdmFyICRhdmFpbGFibGVfbGFuZ3VhZ2VzICA9IEZBTFNFOw0KICB2YXIgJGFsbF9sYW5ndWFnZXMgICAgICAgID0gRkFMU0U7DQogIHZhciAkY3VycmVudF9sYW5ndWFnZSAgICAgPSBGQUxTRTsNCiAgdmFyICRjdXJyZW50X2xhbmdjb2RlICAgICA9IEZBTFNFOw0KICB2YXIgJGN1cnJlbnRfbGFuZ2VudHJpZXMgID0gRkFMU0U7DQoNCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkNCiAgew0KICAgIHNwbF9hdXRvbG9hZF9yZWdpc3RlciggYXJyYXkoJHRoaXMsICdfYXV0b2xvYWRlcicpICk7DQogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOw0KICAgICRzbWFydHktPnJlZ2lzdGVyQ2xhc3MoJ3hsOHInLCAnXEVyaWR1XHNtYXJ0eV94bDhyJyk7DQogICAgXEVyaWR1XHNtYXJ0eV91dGlsczo6cmVnaXN0ZXIoKTsNCiAgICANCiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQogICAgDQogICAgJGNvbnRlbnRzX3R5cGVzID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXJpZHVfbWxfcGFnZScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXJpZHVfcGFnZV9hbGlhcycNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICRjb250ZW50b3BzID0gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOw0KICAgIA0KICAgIGZvcmVhY2goJGNvbnRlbnRzX3R5cGVzIGFzICRvbmUpDQogICAgew0KICAgICAgJGZuID0gY21zX2pvaW5fcGF0aCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0TW9kdWxlUGF0aCgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaWInLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcy4nIC4gJG9uZSAuICcucGhwJw0KICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgDQogICAgICAkb2JqID0gbmV3IENtc0NvbnRlbnRUeXBlUGxhY2Vob2xkZXIoKTsNCiAgICAgICRvYmotPmNsYXNzID0gJG9uZTsNCiAgICAgICRvYmotPnR5cGUgID0gc3RydG9sb3dlcigkb2JqLT5jbGFzcyk7DQogICAgICAkb2JqLT5maWxlbmFtZSA9ICRmbjsNCiAgICAgICRvYmotPmxvYWRlZCA9IGZhbHNlOw0KICAgICAgJG9iai0+ZnJpZW5kbHluYW1lID0gJHRoaXMtPkxhbmcoJG9uZSk7DQogICAgICAkY29udGVudG9wcy0+cmVnaXN0ZXJfY29udGVudF90eXBlKCRvYmopOw0KICAgIH0NCiAgICANCiAgfQ0KDQogIHByaXZhdGUgZmluYWwgZnVuY3Rpb24gX2F1dG9sb2FkZXIoJGNsYXNzbmFtZSkNCiAgew0KICAgICMgY2F0Y2ggYWxsIGluY2x1ZGluZyBuZXN0ZWQgbmFtZXNwYWNlcw0KICAgICRwYXJ0cyA9IGV4cGxvZGUoJ1xcJywgJGNsYXNzbmFtZSk7DQogICAgJGNsYXNzbmFtZSA9IGVuZCgkcGFydHMpOw0KDQogICAgJGZuID0gY21zX2pvaW5fcGF0aCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldE1vZHVsZVBhdGgoKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpYicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcy4nIC4gJGNsYXNzbmFtZSAuICcucGhwJw0KICAgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KICAgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkNCiAgICB7DQogICAgICByZXF1aXJlX29uY2UoJGZuKTsNCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBHZXROYW1lKCkNCiAgew0KICAgIHJldHVybiAnRXJpZHUnOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkNCiAgew0KICAgIHJldHVybiAnMS4xLmJldGEuNSc7DQogIH0NCg0KICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQ0KICB7DQogICAgcmV0dXJuIGFycmF5KCk7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRIZWxwKCkNCiAgew0KICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsNCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdyb290X3VybCcsICRjb25maWdbJ3Jvb3RfdXJsJ10pOw0KICAgICRzbWFydHktPmFzc2lnbignbW9kJywgJHRoaXMpOw0KICAgIHJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdoZWxwLnRwbCcpOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0QXV0aG9yKCkNCiAgew0KICAgIHJldHVybiAnSm8gTW9yZyAoRmVybmFuZG8gTW9yZ2FkbyknOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQ0KICB7DQogICAgcmV0dXJuICdqb21vcmdAY21zbWFkZXNpbXBsZS5vcmcnOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdjaGFuZ2Vsb2cudHBsJyk7DQogIH0NCg0KICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpDQogIHsNCiAgICByZXR1cm4gVFJVRTsNCiAgfQ0KDQogIGZ1bmN0aW9uIEhhc0FkbWluKCkNCiAgew0KICAgIHJldHVybiBUUlVFOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkNCiAgew0KICAgIHJldHVybiAnY29udGVudCc7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+TGFuZygnYWRtaW5kZXNjcmlwdGlvbicpOw0KICB9DQoNCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdhZG1pbl9lcmlkdScpOw0KICB9DQoNCiAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpDQogIHsNCiAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsNCiAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7DQoNCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYWN0aW9uJywgICAgIENMRUFOX1NUUklORyk7DQogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21vZHVsZScsICAgICBDTEVBTl9TVFJJTkcpOw0KICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd0ZW1wbGF0ZScsICAgQ0xFQU5fU1RSSU5HKTsNCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2hvdycsICAgICAgIENMRUFOX1NUUklORyk7DQogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2V2YWwnLCAgICAgICBDTEVBTl9TVFJJTkcpOw0KICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhc3NpZ24nLCAgICAgQ0xFQU5fU1RSSU5HKTsNCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbmV3bGFuZycsICAgIENMRUFOX1NUUklORyk7DQogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25ld3VybCcsICAgICBDTEVBTl9TVFJJTkcpOw0KICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCAnL2xhbmckLycsIGFycmF5KCdhY3Rpb24nID0+ICdyZWRpcmVjdCcpICk7DQogIH0NCg0KICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkNCiAgew0KICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FjdGlvbicsICAgICdkZWZhdWx0JywgICR0aGlzLT5MYW5nKCdwaGVscF9hY3Rpb24nKSk7DQogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2hvdycsICAgICAgJycsICAgICAgICAgJHRoaXMtPkxhbmcoJ3BoZWxwX3Nob3cnKSk7DQogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZXZhbCcsICAgICAgJycsICAgICAgICAgJHRoaXMtPkxhbmcoJ3BoZWxwX2V2YWwnKSk7DQogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGVtcGxhdGUnLCAgJycsICAgICAgICAgJHRoaXMtPkxhbmcoJ3BoZWxwX3RlbXBsYXRlJykpOw0KICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2Fzc2lnbicsICAgICcnLCAgICAgICAgICR0aGlzLT5MYW5nKCdwaGVscF9hc3NpZ24nKSk7DQogIH0NCg0KICBmdW5jdGlvbiBIYW5kbGVzRXZlbnRzKCkNCiAgew0KICAgIHJldHVybiBUUlVFOw0KICB9DQoNCiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsNCiAgfQ0KICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7DQogIH0NCg0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCk5PVCBQQVJUIE9GIFRIRSBOT1JNQUwgTU9EVUxFIEFQSQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoNCg0KICBmdW5jdGlvbiBnZXRfbW9kcHJlZnMoKQ0KICB7DQogICAgLy8gYXJyYXkoJ3ByZWZlcmVuY2VfbmFtZScsIGRlZmF1bHQpOw0KICAgIHJldHVybiBhcnJheSgNCiAgICAgICAgICAgICAgICAgIGFycmF5KCdhdXRvcmVkaXJlY3RfaG9tZScsICAgICAgICAgIFRSVUUpLA0KICAgICAgICAgICAgICAgICAgYXJyYXkoJ2F1dG9yZWRpcmVjdF9hbGwnLCAgICAgICAgICAgRkFMU0UpLA0KICAgICAgICAgICAgICAgICAgYXJyYXkoJ2Nvb2tpZXNfYXV0b3JlZGlyZWN0X2hvbWUnLCAgVFJVRSksDQogICAgICAgICAgICAgICAgICBhcnJheSgnY29va2llc19hdXRvcmVkaXJlY3RfYWxsJywgICBGQUxTRSksDQogICAgICAgICAgICAgICAgICBhcnJheSgnaGllcmFyY2h5X3JlZGlyZWN0JywgICAgICAgICBUUlVFKSwNCiAgICAgICAgICAgICAgICAgIGFycmF5KCdjdXJyZW50X2xpbmsnLCAgICAgICAgICAgICAgIEZBTFNFKSwNCiAgICAgICAgICAgICAgICAgIGFycmF5KCdkZWZhdWx0X2hpZGUnLCAgICAgICAgICAgICAgIFRSVUUpLA0KICAgICAgICAgICAgICAgICAgYXJyYXkoJ2RlZmF1bHRfdHJhbnNsYXRlJywgICAgICAgICAgVFJVRSksDQogICAgICAgICAgICAgICAgICBhcnJheSgnaGlkZV9taXNzaW5nZW50cmllcycsICAgICAgICBGQUxTRSksDQogICAgICAgICAgICAgICAgICBhcnJheSgnd3lzaXd5ZycsICAgICAgICAgICAgICAgICAgICBGQUxTRSkNCiAgICAgICAgICAgICAgICApOw0KICB9DQoNCg0KICAgIC8qKg0KICAgICogQGRlcHJlY2F0ZWQNCiAgICAqIEBwYXJhbSBtaXhlZCAkbmFtZQ0KICAgICogQHJldHVybiBzdHJpbmcNCiAgICAqLw0KICAgIGZ1bmN0aW9uIHBsY3JlYXRlYWxpYXMoJG5hbWUpDQogICAgew0KICAgICAgcmV0dXJuIFxFcmlkdVxsYW5nX29wczo6cGxjcmVhdGVhbGlhcygkbmFtZSk7DQogICAgfQ0KDQogIC8qKg0KICAqIHJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIHRhYmxlDQogICogQGRlcHJlY2F0ZWQNCiAgKiBAcGFyYW0gbWl4ZWQgJHRhYmxlbmFtZQ0KICAqIEBwYXJhbSBtaXhlZCAkd2hhdA0KICAqIEBwYXJhbSBtaXhlZCAkd2hlcmUNCiAgKi8NCiAgZnVuY3Rpb24gY291bnRzb21ldGhpbmcoICR0YWJsZW5hbWUsICR3aGF0ID0gJ2lkJywgJHdoZXJlID0gYXJyYXkoKSApDQogIHsNCiAgICByZXR1cm4gXEVyaWR1XGxhbmdfb3BzOjpjb3VudF9mcm9tX2RiKCR0YWJsZW5hbWUsICR3aGF0LCAkd2hlcmUpOw0KICB9DQoNCiAgLyoqDQogICogQGRlcHJlY2F0ZWQNCiAgKg0KICAqIEBwYXJhbSBtaXhlZCAkZmlsZW5hbWUNCiAgKi8NCiAgZnVuY3Rpb24gZ2V0RmlsZUNvbnRlbnQoJGZpbGVuYW1lKQ0KICB7DQogICAgcmV0dXJuIFxFcmlkdVx1dGlsczo6Z2V0RmlsZUNvbnRlbnQoJGZpbGVuYW1lKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIHJldHJpZXZlX3BhZ2VfbGFuZygpDQogIHsNCiAgICAkdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOw0KICAgIC8vIHJldHJpZXZlIHJvb3QgaWQNCi8vICAgICRyb290X2lkID0gXEVyaWR1XHV0aWxzOjpnZXRfcm9vdF9pZCgpOw0KLy8gICAgDQovLyAgICBlY2hvKCc8YnIvPjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojxici8+Jyk7ICANCi8vICAgIGRlYnVnX2Rpc3BsYXkoJHJvb3RfaWQpOw0KLy8gICAgZWNobygnPGJyLz4nIC4gX19GSUxFX18gLiAnIDogKCcgLiBfX0NMQVNTX18gLiAnIDo6ICcgLiBfX0ZVTkNUSU9OX18gLiAnKSA6ICcgLiBfX0xJTkVfXyAuICc8YnIvPicpOw0KLy8gICAgZGllKCc8YnIvPlJJUCE8YnIvPicpOw0KLy8NCi8vICAgIGlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykgICR0aGlzLT5yZXRyaWV2ZV9sYW5ndWFnZXMoKTsNCi8vICAgIGlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykgIHJldHVybiBGQUxTRTsNCi8vICAgIA0KLy8gICAgZm9yZWFjaCgkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcyBhcyAkbGFuZykNCi8vICAgIHsNCi8vICAgICAgJG9uZWxhbmcgPSAkbGFuZy0+dG9TdHJpbmcoKTsNCi8vICAgICAgDQovLyAgICAgIGlmKCRvbmVsYW5nWydyb290X2lkJ10gPT0gJHJvb3RfaWQpDQovLyAgICAgIHsNCi8vICAgICAgICAkdGhpcy0+Y3VycmVudF9sYW5nY29kZSA9ICRvbmVsYW5nWydsYW5nY29kZSddOw0KLy8gICAgICAgICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlID0gJG9uZWxhbmc7DQovLyAgICAgIH0NCi8vICAgIH0NCi8vDQovLyAgICBlY2hvKCc8YnIvPjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojxici8+Jyk7ICANCi8vICAgIGRlYnVnX2Rpc3BsYXkoJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUsICckdGhpcy0+Y3VycmVudF9sYW5nY29kZScpOw0KLy8gICAgZGVidWdfZGlzcGxheSgkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSwgJyR0aGlzLT5jdXJyZW50X2xhbmd1YWdlJyk7DQovLyAgICBlY2hvKCc8YnIvPicgLiBfX0ZJTEVfXyAuICcgOiAoJyAuIF9fQ0xBU1NfXyAuICcgOjogJyAuIF9fRlVOQ1RJT05fXyAuICcpIDogJyAuIF9fTElORV9fIC4gJzxici8+Jyk7DQovLyAgICBkaWUoJzxici8+UklQITxici8+Jyk7DQovLyAgICANCi8vICAgICRzbWFydHkgPSAkdGhpcy0+R2V0QWN0aW9uVGVtcGxhdGVPYmplY3QoKTsNCi8vDQovLyAgICAkc21hcnR5LT5hc3NpZ25HbG9iYWwoJ3BhZ2VfbGFuZycsICR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKTsNCi8vICAgICRzbWFydHktPmFzc2lnbkdsb2JhbCgnY3VycmVudF9sYW5ndWFnZScsICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlKTsNCiAgfQ0KDQogIC8qKg0KICAqIEBkZXByZWNhdGVkDQogICoNCiAgKiBAcGFyYW0gbWl4ZWQgJGluYWN0aXZlDQogICovDQogIGZ1bmN0aW9uIGdldGxhbmd1YWdlcyggJGluYWN0aXZlID0gRkFMU0UpDQogIHsNCiAgICBpZigkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcyA9PSBGQUxTRSkgICR0aGlzLT5yZXRyaWV2ZV9sYW5ndWFnZXMoKTsNCiAgICByZXR1cm4gICRpbmFjdGl2ZSA/ICR0aGlzLT5hbGxfbGFuZ3VhZ2VzIDogJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXM7DQogIH0NCg0KICAvKioNCiAgKiByZXRyaWV2ZXMgbGFuZ3VhZ2VzIGZyb20gdGhlIGRhdGFiYXNlIGFuZCBzdG9yZSB0aGVtIGluIHRoZSBtb2R1bGUgb2JqZWN0DQogICogdG8gYXZvaWQgbXVsdGlwbGUgcmV0cmlldmFsLCB1c2UgZ2V0bGFuZ3VhZ2VzKCk7DQogICoNCiAgKiBAZGVwcmVjYXRlZA0KICAqLw0KICBmdW5jdGlvbiByZXRyaWV2ZV9sYW5ndWFnZXMoKQ0KICB7DQogICAgJHRoaXMtPmFsbF9sYW5ndWFnZXMgPSBcRXJpZHVcbGFuZ3VhZ2VzOjpnZXRsYW5ndWFnZXMoVFJVRSk7DQogICAgJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMgPSBcRXJpZHVcbGFuZ3VhZ2VzOjpnZXRsYW5ndWFnZXMoKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIGFkbWluX3JldHJpZXZlX2xhbmd1YWdlcygkaWQsICRyZXR1cm5pZCkNCiAgew0KICAgICRnQ21zID0gY21zbXMoKTsNCg0KICAgICRhZG1pbnRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7DQoNCiAgICAkZGVmYXVsdGxhbmcgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9sYW5ndWFnZScsIEZBTFNFKTsNCiAgICAkbGFuZ3MgPSBcRXJpZHVcbGFuZ3VhZ2VzOjpHZXRGb3JFZGl0aW5nKCk7DQogICAgJGNudCA9IGNvdW50KCRsYW5ncyk7DQogICAgJG91dHB1dCA9IGFycmF5KCk7DQoNCiAgICBmb3JlYWNoKCRsYW5ncyBhcyAkbGFuZykNCiAgICB7DQogICAgICAjIGp1c3QgYSBoYWNrIHRvIGtlZXAgYmFja3dhcmQgY29tcGF0Li4uIChKTSkNCiAgICAgICMgYXJyYXkgdG8gc3RkY2xhc3MNCiAgICAgICRpdGVtID0gKG9iamVjdCkkbGFuZy0+dG9BcnJheSgpOw0KICAgICAgDQogICAgICAkaXRlbS0+bmFtZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdGxhbmcnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtLT5uYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnbGFuZ2lkJyA9PiAkaXRlbS0+aWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KDQogICAgICAkaXRlbS0+Y29kZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdGxhbmcnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtLT5sYW5nY29kZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ2xhbmdpZCcgPT4gJGl0ZW0tPmlkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KICAgICAgJGl0ZW0tPmVkaXRlbnRyaWVzID0gJHRoaXMtPkNyZWF0ZUxpbmsoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0ZW50cmllcycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdlZGl0X2VudHJpZXMnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnbGFuZ2lkJyA9PiAkaXRlbS0+aWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQoNCiAgICAgICRpbWFnZSA9ICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgbGFuZygnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKTsNCg0KICAgICAgJG1vdmVwYXJhbXMgPSBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFuZ19pZCcgICAgICAgPT4gJGl0ZW0tPmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50b3JkZXInICA9PiAkaXRlbS0+aXRlbV9vcmRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KDQogICAgICAkZGVsZXRlcGFyYW1zID0gYXJyYXlfbWVyZ2UoYXJyYXkoJ21vdmUnID0+ICdkZWxldGUnKSwgJG1vdmVwYXJhbXMpOw0KICAgICAgJHNhZmVfaXRlbV9uYW1lID0gc3RyX3JlcGxhY2UoIiciLCAiXCciLCAkaXRlbS0+bmFtZSk7DQoNCiAgICAgICRpdGVtLT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbHRlcicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJldHVybmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbWFnZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGVsZXRlcGFyYW1zLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdwcm9tcHRfZGVsZXRlbGFuZ3VhZ2UnLCAkc2FmZV9pdGVtX25hbWUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQoNCiAgICAgICRpdGVtLT5hY3Rpb25zID0gJGl0ZW0tPmVkaXRlbnRyaWVzIC4gJyAnIC4gJGl0ZW0tPmRlbGV0ZWxpbms7DQoNCg0KDQogICAgICBpZigkaXRlbS0+aXRlbV9vcmRlciAhPSAkY250KQ0KICAgICAgew0KICAgICAgICAkaW1hZ2UgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctdS5naWYnLCBsYW5nKCd1cCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyk7DQogICAgICAgICRtb3ZldXBwYXJhbXMgPSBhcnJheV9tZXJnZShhcnJheSgnbW92ZScgPT4gJ3VwJyksICRtb3ZlcGFyYW1zKTsNCg0KICAgICAgICAkaXRlbS0+bW92ZXVwbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FsdGVyJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbWFnZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb3ZldXBwYXJhbXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkaXRlbS0+bW92ZXVwbGluayA9ICcnOw0KICAgICAgfQ0KDQogICAgICBpZigkaXRlbS0+aXRlbV9vcmRlciAhPSAxKQ0KICAgICAgew0KICAgICAgICAkaW1hZ2UgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCBsYW5nKCdkb3duJyksICcnLCAnJywgJ3N5c3RlbWljb24nKTsNCg0KICAgICAgICAkbW92ZWRvd25wYXJhbXMgPSBhcnJheV9tZXJnZShhcnJheSgnbW92ZScgPT4gJ2Rvd24nKSwgJG1vdmVwYXJhbXMpOw0KDQogICAgICAgICRpdGVtLT5tb3ZlZG93bmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWx0ZXInLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV0dXJuaWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbWFnZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vdmVkb3ducGFyYW1zDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkaXRlbS0+bW92ZWRvd25saW5rID0gJyc7DQogICAgICB9DQoNCg0KICAgICAgJGl0ZW0tPm1vdmVsaW5rcyA9ICRpdGVtLT5tb3ZldXBsaW5rIC4gJyAnIC4gJGl0ZW0tPm1vdmVkb3dubGluazsNCg0KICAgICAgaWYoJGRlZmF1bHRsYW5nID09ICRpdGVtLT5pZCkNCiAgICAgIHsNCiAgICAgICAgJGl0ZW0tPnRvZ2dsZWRlZmF1bHQgPSAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCAndHJ1ZScsICcnLCAnJywgJ3N5c3RlbWljb24nKTsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJGl0ZW0tPnRvZ2dsZWRlZmF1bHQgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICd0b2dnbGVkZWZhdWx0JywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywgbGFuZygnc2V0dHJ1ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdsYW5nX2lkJyA9PiAkaXRlbS0+aWQpKTsNCiAgICAgIH0NCg0KICAgICAgaWYoJGl0ZW0tPmFjdGl2ZSkNCiAgICAgIHsNCiAgICAgICAgJGl0ZW0tPnRvZ2dsZWFjdGl2ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ3RvZ2dsZWFjdGl2ZScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgbGFuZygnc2V0ZmFsc2UnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnbGFuZ19pZCcgPT4gJGl0ZW0tPmlkLCAnYWN0aXZlJyA9PiAnMCcpKTsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJGl0ZW0tPnRvZ2dsZWFjdGl2ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ3RvZ2dsZWFjdGl2ZScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsIGxhbmcoJ3NldHRydWUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnbGFuZ19pZCcgPT4gJGl0ZW0tPmlkLCAnYWN0aXZlJyA9PiAnMScpKTsNCiAgICAgIH0NCg0KICAgICAgJG91dHB1dFtdID0gJGl0ZW07DQogICAgfQ0KDQogICAgcmV0dXJuICRvdXRwdXQ7DQogIH0NCg0KICAvKioNCiAgKiBAZGVwcmVjYXRlZA0KICAqDQogICogQHBhcmFtIG1peGVkICRsYW5nY29kZQ0KICAqIEByZXR1cm4gU3RkQ2xhc3MNCiAgKi8NCiAgZnVuY3Rpb24gZ2V0X2xhbmd1YWdlX2RldGFpbHMoJGxhbmdjb2RlKQ0KICB7DQogICAgcmV0dXJuIFxFcmlkdVxsYW5nX29wczo6Z2V0X2xhbmd1YWdlX2RldGFpbHMoJGxhbmdjb2RlKTsNCiAgfQ0KDQogIC8qKg0KICAqIHJldHJpZXZlcyB0aGUgbGFuZ3VhZ2UgZW50cmllcyBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UNCiAgKiANCiAgKiBAZGVwcmVjYXRlZA0KICAqLw0KICBmdW5jdGlvbiByZXRyaWV2ZV9sYW5nZW50cmllcygpDQogIHsNCiAgICBpZighJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UpICAkdGhpcy0+cmV0cmlldmVfcGFnZV9sYW5nKCk7DQogICAgaWYoISR0aGlzLT5jdXJyZW50X2xhbmd1YWdlKSAgcmV0dXJuIEZBTFNFOw0KDQogICAgJGRlZmxhbmcgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9sYW5ndWFnZScsIEZBTFNFKTsNCiAgICAkcGFydGlhbF9pbXBvcnQgPSBGQUxTRTsNCg0KICAgIGlmKCRkZWZsYW5nICYmICRkZWZsYW5nICE9ICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3RyYW5zbGF0ZScsIEZBTFNFKSkNCiAgICB7DQogICAgICAvLyB3aGVuIHRoZSBlbnRyeSBkb2Vzbid0IGV4aXN0IGluIHRoZSBjdXJyZW50IGxhbmd1YWdlLCB3ZSB1c2UgdGhlIG9uZSBmcm9tIHRoZSBkZWZhdWx0IGxhbmd1YWdlLA0KICAgICAgLy8gc28gd2UgbG9hZCB0aGlzIG9uZSBmaXJzdA0KICAgICAgJHBhcnRpYWxfaW1wb3J0ID0gVFJVRTsNCiAgICAgICR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzID0gJHRoaXMtPmxvYWRfbGFuZ2VudHJpZXMoJGRlZmxhbmcpOw0KICAgIH0NCg0KICAgICRjdXJyZW50X2VudHJpZXMgPSAkdGhpcy0+bG9hZF9sYW5nZW50cmllcygkdGhpcy0+Y3VycmVudF9sYW5ndWFnZS0+Z2V0X2lkKCkpOw0KDQogICAgaWYoJHBhcnRpYWxfaW1wb3J0KQ0KICAgIHsNCiAgICAgIC8vIHdlJ3ZlIGFscmVhZHkgbG9hZGVkIHRoZSBkZWZhdWx0IGVudHJpZXMsIHNvIHdlIGFkZC9yZXBsYWNlIHRoZSBvbmVzIGZvciB0aGUgY3VycmVudCBsYW5ndWFnZQ0KICAgICAgZm9yZWFjaCgkY3VycmVudF9lbnRyaWVzIGFzICRrZXkgPT4gJHZhbHVlKQ0KICAgICAgew0KICAgICAgICBpZigkdmFsdWUgJiYgJHZhbHVlICE9ICcnKSAgJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXNbJGtleV0gPSAkdmFsdWU7DQogICAgICB9DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAvLyBubyBuZWVkIGZvciBkZWZhdWx0IGVudHJpZXMNCiAgICAgICR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzID0gJGN1cnJlbnRfZW50cmllczsNCiAgICB9DQogIH0NCg0KICAvKioNCiAgKiByZXRyaWV2ZXMgbGFuZ3VhZ2UgZW50cmllcyBmb3IgYW55IGxhbmd1YWdlDQogICoNCiAgKiBAcGFyYW0gbWl4ZWQgJGxhbmcNCiAgKi8NCiAgZnVuY3Rpb24gbG9hZF9sYW5nZW50cmllcygkbGFuZykNCiAgew0KICAgIGlmKCEkdGhpcy0+aXNfbGFuZ3VhZ2UoJGxhbmcpKSByZXR1cm4gRkFMU0U7DQogICAgcmV0dXJuIFxFcmlkdVxsYW5nX29wczo6bG9hZF9sYW5nZW50cmllcygkbGFuZyk7DQogIH0NCg0KICAvKioNCiAgKiBDaGVja3Mgd2hldGhlciBhIGxhbmd1YWdlIGV4aXN0cyBieSBjb2RlIG9yIGlkDQogICogQHBhcmFtIG1peGVkICRjb2RlDQogICogQHJldHVybnMgYm9vbA0KICAqLw0KICBmdW5jdGlvbiBpc19sYW5ndWFnZSgkbGFuZyA9IE5VTEwpDQogIHsNCiAgICBpZiggZW1wdHkoJGxhbmcpICkgcmV0dXJuIEZBTFNFOw0KICAgIGlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykgICR0aGlzLT5yZXRyaWV2ZV9sYW5ndWFnZXMoKTsNCiAgICBpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpICByZXR1cm4gRkFMU0U7DQogICAgICAgIA0KICAgIGZvcmVhY2goJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMgYXMgJG9uZSkNCiAgICB7DQogICAgICBpZigkb25lLT5nZXRfbGFuZ2NvZGUoKSA9PSAkbGFuZykgcmV0dXJuIFRSVUU7DQogICAgICBpZigkb25lLT5nZXRfaWQoKSA9PSAkbGFuZykgcmV0dXJuIFRSVUU7DQogICAgfSANCiAgICANCiAgICByZXR1cm4gRkFMU0U7IA0KICB9DQogIA0KICAvKioNCiAgKiBDaGVja3Mgd2hldGhlciBhIGxhbmd1YWdlIGV4aXN0cyBieSBpZA0KICAqIEBwYXJhbSBtaXhlZCAkaWQNCiAgKiBAcmV0dXJucyBib29sDQogICovDQogIGZ1bmN0aW9uIGxhbmdfZXhpc3QoJGlkID0gLTEpDQogIHsNCiAgICBpZigkaWQgPCAxKSByZXR1cm4gRkFMU0U7DQogICAgaWYoISR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzKSAgJHRoaXMtPnJldHJpZXZlX2xhbmd1YWdlcygpOw0KICAgIGlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykgIHJldHVybiBGQUxTRTsNCiAgICANCiAgICBmb3JlYWNoKCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzIGFzICRvbmUpDQogICAgew0KICAgICAgaWYoJG9uZS0+Z2V0X2lkKCkgPT0gJGlkKSByZXR1cm4gVFJVRTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIEZBTFNFOyAgDQogIH0NCg0KICAvKioNCiAgKiByZXR1cm5zIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvICRrZXkgaW4gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UNCiAgKg0KICAqIEBwYXJhbSBtaXhlZCAka2V5DQogICovDQogIGZ1bmN0aW9uIHJldHJpZXZlX3RyYW5zbGF0aW9uKCRrZXkpDQogIHsNCiAgICBpZighJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXMpICAkdGhpcy0+cmV0cmlldmVfbGFuZ2VudHJpZXMoKTsNCiAgICBpZighJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXMpICByZXR1cm4gRkFMU0U7DQoNCiAgICAka2V5cyA9IGV4cGxvZGUoJywnLCAka2V5KTsNCiAgICAkb3V0cHV0ID0gYXJyYXkoKTsNCg0KICAgIGZvcmVhY2goJGtleXMgYXMgJGtleSkNCiAgICB7DQogICAgICBpZihpc3NldCgkdGhpcy0+Y3VycmVudF9sYW5nZW50cmllc1ska2V5XSkgJiYgICR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzWyRrZXldICE9ICcnKQ0KICAgICAgew0KICAgICAgICBhcnJheV9wdXNoKCRvdXRwdXQsICR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzWyRrZXldKTsNCiAgICAgIH0NCiAgICAgIGVsc2VpZighJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfbWlzc2luZ2VudHJpZXMnLCBGQUxTRSkpDQogICAgICB7DQogICAgICAgIGFycmF5X3B1c2goJG91dHB1dCwgJ0FkZCBtZTogJyAuICRrZXkgLiAnICgnIC4gJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2VbJ2xhbmdjb2RlJ10gLiAnKScpOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICBhcnJheV9wdXNoKCRvdXRwdXQsICcnKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBpZihjb3VudCgkb3V0cHV0KSA9PSAxKSAgcmV0dXJuICRvdXRwdXRbMF07DQoNCiAgICByZXR1cm4gJG91dHB1dDsNCiAgfQ0KDQogIC8qKg0KICAqIGRldGVjdHMgY3VycmVudCBsYW5ndWFnZSBiYXNlZCBvbiBoaWVyYXJjaHkgYW5kIGFzc2lnbiBpdCB0byBzbWFydHkNCiAgKiBAZGVwcmVjYXRlZA0KICAqLw0KICBmdW5jdGlvbiBhc3NpZ25fcGFnZV9sYW5nKCkNCiAgew0KICAgICRsYW5ndWFnZXMgPSAkdGhpcy0+Z2V0bGFuZ3VhZ2VzKCk7IA0KICAgICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlID0gXEVyaWR1XGxhbmd1YWdlczo6R2V0Q3VycmVudExhbmcoKTsNCiAgICAkdGhpcy0+Y3VycmVudF9sYW5nY29kZSA9ICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlLT5nZXRfbGFuZ2NvZGUoKTsNCiAgICAkdGVzdCA9ICR0aGlzLT5oaWVyYXJjaHlfZ2V0X2xpbmtzKCR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKTsNCiAgICAkcGFnZWlkID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+Z2V0Q29udGVudE9iamVjdCgpLT5JZCgpOw0KICANCiAgICAkY29udGVudHNfdHlwZXMgPSBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlcmlkdV9tbF9wYWdlJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlcmlkdV9wYWdlX2FsaWFzJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgDQogICAgaWYoJHBhZ2VpZCAhPSAkdGVzdFskdGhpcy0+Y3VycmVudF9sYW5nY29kZV1bJ2NpZCddKQ0KICAgIHsNCiAgICAgIGlmKCAhaW5fYXJyYXkoXEVyaWR1XHV0aWxzOjpnZXRfb2JqX3R5cGUoKSwgJGNvbnRlbnRzX3R5cGVzKSApDQogICAgICB7DQogICAgICAgIGlmKCAhZW1wdHkoJHRlc3RbJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGVdWydhbGlhcyddKSApDQogICAgICAgIHsNCiAgICAgICAgICByZWRpcmVjdF90b19hbGlhcygkdGVzdFskdGhpcy0+Y3VycmVudF9sYW5nY29kZV1bJ2FsaWFzJ10pOw0KICAgICAgICB9DQogICAgICB9DQogICAgICANCiAgICAgICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlID0gIFxFcmlkdVxsYW5ndWFnZXM6OkdldFJlcXVlc3RMYW5nKCk7DQogICAgICBcRXJpZHVcbGFuZ3VhZ2VzOjpTZXRDdXJyZW50TGFuZygkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSk7DQogICAgICAkdGhpcy0+Y3VycmVudF9sYW5nY29kZSA9ICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlLT5nZXRfbGFuZ2NvZGUoKTsNCiAgICB9DQogICAgDQogICAgJHRoaXMtPmF1dG9fcmVkaXJlY3QoKTsgICANCiAgICANCiAgICAjIHNtYXJ0eSBzdHVmZg0KICAgICRzbWFydHkgPSAkdGhpcy0+R2V0QWN0aW9uVGVtcGxhdGVPYmplY3QoKTsNCg0KICAgIGlmKCAhaXNfb2JqZWN0KCRzbWFydHkpICkNCiAgICB7DQogICAgICAkc21hcnR5ID0gY21zbXMoKS0+Z2V0U21hcnR5KCk7DQogICAgfQ0KDQogICAgLyoqDQogICAgKiB0aGVzZSBhcmUgbm93IGRlcHJlY2F0ZWQNCiAgICAqIHdpbGwgYmUga2VwdCBmb3Igc29tZSB0aW1lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHB1cnBvc2VzDQogICAgKi8NCiAgICAkc21hcnR5LT5hc3NpZ25HbG9iYWwoJ3BhZ2VfbGFuZycsICR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKTsNCiAgICAkc21hcnR5LT5hc3NpZ25HbG9iYWwoICdjdXJyZW50X2xhbmd1YWdlJywgJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UtPnRvQXJyYXkoKSApOw0KICB9DQoNCiAgLyoqDQogICogcmVkaXJlY3RzIHRvIHRoZSB1c2VyIGxhbmd1YWdlIHdoZW4gYSB1cmwgaXMgcmVxdWVzdGVkDQogICogDQogICogQGRlcHJlY2F0ZWQNCiAgKi8NCiAgZnVuY3Rpb24gYXV0b19yZWRpcmVjdCgpDQogIHsNCiAgICBpZighJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UpICByZXR1cm4gRkFMU0U7DQoNCiAgICAkcHJlZl9icm93c2VyX2hvbWUgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9yZWRpcmVjdF9ob21lJyk7DQogICAgJHByZWZfYnJvd3Nlcl9hbGwgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvcmVkaXJlY3RfYWxsJyk7DQogICAgJHByZWZfY29va2llX2hvbWUgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjb29raWVzX2F1dG9yZWRpcmVjdF9ob21lJyk7DQogICAgJHByZWZfY29va2llX2FsbCAgICA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjb29raWVzX2F1dG9yZWRpcmVjdF9hbGwnKTsNCg0KICAgIGlmKCEkcHJlZl9jb29raWVfaG9tZSAmJiAhJHByZWZfY29va2llX2FsbCAmJiAhJHByZWZfYnJvd3Nlcl9ob21lICYmICEkcHJlZl9icm93c2VyX2FsbCkgIHJldHVybiBGQUxTRTsNCiAgICANCiAgICAkcGFnZWlkID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+Z2V0Q29udGVudE9iamVjdCgpLT5JZCgpOw0KICAgIA0KICAgICRsYW5ndWFnZXMgPSAkdGhpcy0+Z2V0bGFuZ3VhZ2VzKCk7DQogICAgJGlzX2hvbWVwYWdlID0gRkFMU0U7DQogICAgJGxhbmdjb2RlcyA9IGFycmF5KCk7DQogICAgJHRydW5jYXRlZCA9IGFycmF5KCk7DQoNCiAgICBmb3JlYWNoKCRsYW5ndWFnZXMgYXMgJGxhbmcpDQogICAgew0KICAgICAgJGxhbmd1YWdlID0gJGxhbmctPnRvQXJyYXkoKTsNCiAgICAgIGFycmF5X3B1c2goJGxhbmdjb2RlcywkbGFuZ3VhZ2VbJ2xhbmdjb2RlJ10pOw0KICAgICAgJHRydW5jYXRlZFtzdWJzdHIoJGxhbmd1YWdlWydsYW5nY29kZSddLCAwLCAyKV0gPSAkbGFuZ3VhZ2VbJ2xhbmdjb2RlJ107DQogICAgICBpZigkbGFuZ3VhZ2VbJ2RlZmF1bHRfaWQnXSA9PSAkcGFnZWlkKSAgJGlzX2hvbWVwYWdlID0gVFJVRTsNCiAgICB9DQoNCiAgICAkY29va2llID0gKCRpc19ob21lcGFnZSAmJiAkcHJlZl9jb29raWVfaG9tZSkgfHwgJHByZWZfY29va2llX2FsbDsNCiAgICAkYnJvd3NlciA9ICgkaXNfaG9tZXBhZ2UgJiYgJHByZWZfYnJvd3Nlcl9ob21lKSB8fCAkcHJlZl9icm93c2VyX2FsbDsNCg0KICAgIGlmKCEkY29va2llICYmICEkYnJvd3NlcikgIHJldHVybiBGQUxTRTsNCg0KICAgIC8vIHJldHJpZXZlIHVzZXIgbGFuZ3VhZ2UgOg0KICAgICR1c3JsYW5nID0gRkFMU0U7DQoNCiAgICBpZihpc3NldCgkX0NPT0tJRVsndXNybGFuZyddKSAmJiAkY29va2llICYmIGluX2FycmF5KCRfQ09PS0lFWyd1c3JsYW5nJ10sICRsYW5nY29kZXMpKQ0KICAgIHsNCiAgICAgICR1c3JsYW5nID0gJF9DT09LSUVbJ3VzcmxhbmcnXTsNCiAgICB9DQogICAgZWxzZWlmKCRicm93c2VyKQ0KICAgIHsNCiAgICAgICRsYW5ndWFnZXMgPSBzdHJ0b2xvd2VyKCAkX1NFUlZFUlsnSFRUUF9BQ0NFUFRfTEFOR1VBR0UnXSApOw0KICAgICAgJGxhbmd1YWdlcyA9IHN0cl9yZXBsYWNlKCAnICcsICcnLCAkbGFuZ3VhZ2VzICk7DQogICAgICAkbGFuZ3VhZ2VzID0gZXhwbG9kZSggJywnLCAkbGFuZ3VhZ2VzICk7DQogICAgICAkbGFuZ3VhZ2UgPSBzdWJzdHIoICRsYW5ndWFnZXNbMF0sIDAsIDIgKTsNCg0KICAgICAgaWYoaXNzZXQoJHRydW5jYXRlZFskbGFuZ3VhZ2VdKSkgICR1c3JsYW5nID0gJHRydW5jYXRlZFskbGFuZ3VhZ2VdOw0KICAgIH0NCg0KICAgIGlmKCR1c3JsYW5nICYmICgkcHJlZl9jb29raWVfYWxsIHx8ICRwcmVmX2Nvb2tpZV9ob21lKSApICBzZXRjb29raWUoJ3VzcmxhbmcnLCAkdXNybGFuZywgdGltZSgpICsgODY0MDAgKiAzNjUsICcvJyk7DQogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KDQogICAgaWYoJHVzcmxhbmcgJiYgJHVzcmxhbmcgIT0gJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpDQogICAgew0KICAgICAgJGRlc3RwYWdlID0gJHRoaXMtPmdldF91cmxzKCR1c3JsYW5nKTsNCiAgICAgIGlmKGlzc2V0KCRkZXN0cGFnZVskdXNybGFuZ10pKSAgaGVhZGVyKCJsb2NhdGlvbjogIiAuICRkZXN0cGFnZVskdXNybGFuZ11bJ3VybCddIC4gJGNvbmZpZ1sncGFnZV9leHRlbnNpb24nXSk7DQogICAgfQ0KICB9DQoNCiAgZnVuY3Rpb24gZ2V0X3VybHMoJGRlc2lyZWRfbGFuZyA9IEZBTFNFKQ0KICB7DQogICAgaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZXJhcmNoeV9yZWRpcmVjdCcsIFRSVUUpKQ0KICAgIHsNCiAgICAgIHJldHVybiAkdGhpcy0+aGllcmFyY2h5X2dldF9saW5rcygkZGVzaXJlZF9sYW5nKTsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgIHJldHVybiAkdGhpcy0+bWFudWFsX2dldF9saW5rcygkZGVzaXJlZF9sYW5nKTsNCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBjbGVhbkhpZXIoJHZhbHVlKQ0KICB7DQogICAgJHBhcnRzID0gZXhwbG9kZSgnLicsICR2YWx1ZSk7DQogICAgJGkgPSAwOw0KDQogICAgd2hpbGUoaXNzZXQoJHBhcnRzWyRpXSkpDQogICAgew0KICAgICAgJHBhcnRzWyRpXSA9IHN0cl9wYWQoJHBhcnRzWyRpXSwgNSwgJzAnLCBTVFJfUEFEX0xFRlQpOw0KICAgICAgJGkrKzsNCiAgICB9DQoNCiAgICByZXR1cm4gaW1wbG9kZSgnLicsICRwYXJ0cyk7DQogIH0NCiAgDQogIGZ1bmN0aW9uIFBhcnRpYWxVcmxUb0Nvb2tpZSgpDQogIHsNCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQogICAgJHByb3RvY29sID0gZW1wdHkoJF9TRVJWRVJbJ0hUVFBTJ10pID8gJ2h0dHAnIDogJ2h0dHBzJzsNCiAgICAkcmVtb3ZlID0gJHByb3RvY29sIC4nOi8vJyAuICRfU0VSVkVSWydIVFRQX0hPU1QnXSAuICcvJzsNCiAgICByZXR1cm4gdHJpbSggc3RyX3JlcGxhY2UoJHJlbW92ZSwgJycsICR0aGlzLT5jcmVhdGVfdXJsKCdjbnRudDAxJywgJ3JlZGlyZWN0JywgLTEsIGFycmF5KCksIEZBTFNFLCBGQUxTRSwgJ2xhbmcnKSApLCAnLycgKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIEdldExpbmtUb1BhZ2UoJGlkKQ0KICB7DQogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQogICAgJHByb3RvY29sID0gZW1wdHkoJF9TRVJWRVJbJ0hUVFBTJ10pID8gJ2h0dHAnIDogJ2h0dHBzJzsNCiAgICAkcmVtb3ZlID0gJHByb3RvY29sIC4nOi8vJyAuICRfU0VSVkVSWydIVFRQX0hPU1QnXSAuICcvJzsNCiAgICAkYmFzZXVybCA9IHRyaW0oIHN0cl9yZXBsYWNlKCRyZW1vdmUsICcnLCAkdGhpcy0+Z2V0X2Jhc2VfdXJsKCkgKSwnLycgKTsNCiAgICAvLyRwYWdlX2V4dCA9ICRpc19ob21lcGFnZSA/ICcnIDogJGNvbmZpZ1sncGFnZV9leHRlbnNpb24nXTsNCiAgICAkcGFnZV9leHQgPSAkY29uZmlnWydwYWdlX2V4dGVuc2lvbiddOw0KDQogICAgJHJlZGlyZWN0aW9uID0gJHRoaXMtPmdldF91cmx0eXBlKCk7DQoNCiAgICBpZigkcmVkaXJlY3Rpb24gPT0gJ21vZF9yZXdyaXRlJykNCiAgICB7DQogICAgICAkYmFzZXVybCAuPSAnLyc7DQogICAgfQ0KICAgIGVsc2VpZigkcmVkaXJlY3Rpb24gPT0gJ2ludGVybmFsJykNCiAgICB7DQogICAgICAkYmFzZXVybCAuPSAnL2luZGV4LnBocC8nOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJGJhc2V1cmwgLj0gJy9pbmRleC5waHA/JyAuICRjb25maWdbJ3F1ZXJ5X3ZhciddIC4gJz0nOw0KICAgIH0gIA0KICAgIA0KICAgICRxdWVyeSA9ICdTRUxFQ1QgaGllcmFyY2h5X3BhdGgsZGVmYXVsdF9jb250ZW50IEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdjb250ZW50IFdIRVJFIGNvbnRlbnRfaWQ9JyAuICRpZDsNCiAgICANCiAgICAkZGJyZXN1bHQgPSAkZGItPkdldFJvdygkcXVlcnkpOw0KICAgIA0KICAgICRyZXQgPSBGQUxTRTsNCiAgICANCiAgICBpZigkZGJyZXN1bHQpDQogICAgew0KICAgICAgJHJldCA9ICRiYXNldXJsIC4gKCRkYnJlc3VsdFsnZGVmYXVsdF9jb250ZW50J10gPyAnJyA6ICRkYnJlc3VsdFsnaGllcmFyY2h5X3BhdGgnXSAuICRwYWdlX2V4dCk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KICANCiAgLyoqDQogICogcmV0cmlldmVzIHRoZSB1cmwgdG8gdGhlIHBhZ2UgaW4gdGhlIGRlc2lyZWQgbGFuZ3VhZ2UocykgZXF1aXZhbGVudCB0byB0aGUgY3VycmVudCBwYWdlLA0KICAqIGJhc2VkIG9uIGhpZXJhcmNoeQ0KICAqIGlmICRkZXNpcmVkX2xhbmcgaXMgZmFsc2UsIGxpbmtzIGZvciBhbGwgYWN0aXZlIGxhbmd1YWdlcyB3aWxsIGJlIHJldHVybmVkDQogICovDQogIGZ1bmN0aW9uIGhpZXJhcmNoeV9nZXRfbGlua3MoJGRlc2lyZWRfbGFuZyA9IEZBTFNFKQ0KICB7DQogICAgaWYoISR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzIHx8IGNvdW50KCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzKSA9PSAwKSAgcmV0dXJuIEZBTFNFOw0KICAgIA0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogICAgJGJhc2VfdXJsID0gJHRoaXMtPmdldF9iYXNlX3VybCgpOw0KICAgICRkZWZhdWx0X2hpZGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9oaWRlJywgRkFMU0UpOw0KICAgIA0KICAgIGlmKCRkZXNpcmVkX2xhbmcgJiYgaXNzZXQoICR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzWyRkZXNpcmVkX2xhbmddKSApDQogICAgew0KICAgICAgJGxhbmdzID0gYXJyYXkoJGRlc2lyZWRfbGFuZyA9PiAkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlc1skZGVzaXJlZF9sYW5nXSk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkbGFuZ3MgPSAkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlczsNCiAgICB9DQoNCiAgICAkbW9kdWxlX2xpbmtzID0gJHRoaXMtPm1vZHVsZV9nZXRfdXJsKCk7DQoNCiAgICAjIG1vZHVsZV9nZXRfdXJsIGp1c3QgcmV0dXJucyBhbiBlbXB0eSBhcnJheSBmb3Igbm93IHNvIHRoaXMgaXMgcmVhbGx5IGJ5cGFzc2VkISEhIA0KICAgIGlmKCBjb3VudCgkbW9kdWxlX2xpbmtzKSA9PSBjb3VudCgkbGFuZ3MpICYmIGlzc2V0KCRtb2R1bGVfbGlua3NbJGxhbmdbMF1bJ2xhbmdjb2RlJ11dKSApIHJldHVybiAkbW9kdWxlX2xpbmtzOw0KDQogICAgJGN1cnJlbnRfcG9zaXRpb24gPSBleHBsb2RlKCAnLicsIGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCktPmdldENvbnRlbnRPYmplY3QoKS0+SGllcmFyY2h5KCkgKTsNCiAgICANCiAgICAkb3V0cHV0ID0gYXJyYXkoKTsNCiAgICAkcm9vdGlkcyA9IGFycmF5KCk7DQogICAgJGhpZXJhcmNoaWVzID0gYXJyYXkoKTsNCiAgICAkd2hlcmUgPSAnJzsNCiAgICAkcXVlcnlfdmFsdWVzID0gYXJyYXkoKTsNCiAgICAkZGVmYXVsdF9wYXRocyA9IGFycmF5KCk7DQoNCiAgICBmb3JlYWNoKCRsYW5ncyBhcyAkb25lKQ0KICAgIHsNCiAgICAgICRvbmVsYW5nID0gJG9uZS0+dG9BcnJheSgpOw0KICAgICAgDQogICAgICAkb3V0cHV0WyRvbmVsYW5nWydsYW5nY29kZSddXSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW51X3RleHQnID0+ICcnLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgICAgICA9PiAnJywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VybCcgICAgICAgPT4gJycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FsaWFzJyAgICAgPT4gJycNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICRyb290aWRzWyRvbmVsYW5nWydyb290X2lkJ11dID0gJG9uZWxhbmdbJ2xhbmdjb2RlJ107DQogICAgICAkd2hlcmUgLj0gKCR3aGVyZSA9PSAnJyA/ICcnIDogJyBPUiAnKSAuICdjb250ZW50X2lkPT8nOw0KICAgICAgYXJyYXlfcHVzaCgkcXVlcnlfdmFsdWVzLCAkb25lbGFuZ1sncm9vdF9pZCddKTsNCiAgICB9DQogICAgDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBjb250ZW50X25hbWUsIG1lbnVfdGV4dCwgY29udGVudF9pZCwgY29udGVudF9hbGlhcywgIGhpZXJhcmNoeSwgaGllcmFyY2h5X3BhdGggRlJPTSAnIA0KICAgICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkgDQogICAgICAgICAgICAuICdjb250ZW50IFdIRVJFICgnIC4gJHdoZXJlIC4gJyknOw0KICAgICAgICAgICAgDQogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHF1ZXJ5X3ZhbHVlcyk7DQogICAgJHF1ZXJ5X3ZhbHVlcyA9IGFycmF5KCk7DQogICAgJHdoZXJlID0gJyc7DQogICAgJG5ld3BhdGhzID0gYXJyYXkoKTsNCg0KICAgIHdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQ0KICAgIHsNCiAgICAgICRwb3NpdGlvbiA9IGV4cGxvZGUoJy4nLCAkcm93WydoaWVyYXJjaHknXSk7DQogICAgICAkbmV3cG9zaXRpb24gPSAkY3VycmVudF9wb3NpdGlvbjsNCiAgICAgICRuZXdwb3NpdGlvblswXSA9ICRwb3NpdGlvblswXTsNCiAgICAgICRuZXdfaGllcmFyY2h5ID0gJHRoaXMtPmNsZWFuSGllcihpbXBsb2RlKCcuJywgJG5ld3Bvc2l0aW9uKSk7DQogICAgICAkaGllcmFyY2hpZXNbJHJvb3RpZHNbJHJvd1snY29udGVudF9pZCddXV0gPSAkbmV3X2hpZXJhcmNoeTsNCiAgICAgIGFycmF5X3B1c2goJHF1ZXJ5X3ZhbHVlcywkbmV3X2hpZXJhcmNoeSk7DQogICAgICAkbmV3cGF0aHNbJG5ld19oaWVyYXJjaHldID0gJHJvb3RpZHNbJHJvd1snY29udGVudF9pZCddXTsNCiAgICAgICRkZWZhdWx0X3BhdGhzWyRyb290aWRzWyRyb3dbJ2NvbnRlbnRfaWQnXV1dID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2lkJyAgICAgICA9PiAkcm93Wydjb250ZW50X2lkJ10sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXJsJyAgICAgICA9PiAkYmFzZV91cmwgLiAkcm93WydoaWVyYXJjaHlfcGF0aCddLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJyAgICAgID0+ICRyb3dbJ2NvbnRlbnRfbmFtZSddLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbGlhcycgICAgID0+ICRyb3dbJ2NvbnRlbnRfYWxpYXMnXSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVudV90ZXh0JyA9PiAkcm93WydtZW51X3RleHQnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAkd2hlcmUgLj0gKCR3aGVyZSA9PSAnJz8nJzonIE9SICcpLidoaWVyYXJjaHk9Pyc7DQogICAgfQ0KDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBjb250ZW50X2lkLCBjb250ZW50X2FsaWFzLCBjb250ZW50X25hbWUsIG1lbnVfdGV4dCwgaGllcmFyY2h5LCBoaWVyYXJjaHlfcGF0aCBGUk9NICcgDQogICAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKSANCiAgICAgICAgICAgIC4gJ2NvbnRlbnQgV0hFUkUgKCcgLiAkd2hlcmUgLiAnKSc7DQogICAgICAgICAgICANCiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcXVlcnlfdmFsdWVzKTsNCg0KICAgICRyZWRpcmVjdGlvbiA9ICR0aGlzLT5nZXRfdXJsdHlwZSgpOw0KDQogICAgJGRlZmF1bHRfcGFnZV9pZCA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCktPkdldERlZmF1bHRQYWdlSUQoKTsNCg0KICAgIHdoaWxlKCAkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSApDQogICAgew0KICAgICAgaWYoJHJlZGlyZWN0aW9uID09ICdpbnRlcm5hbCcgfHwgJHJlZGlyZWN0aW9uID09ICdtb2RfcmV3cml0ZScpDQogICAgICB7DQogICAgICAgICR1cmwgPSAkYmFzZV91cmw7DQogICAgICAgIGlmKCRyb3dbJ2NvbnRlbnRfaWQnXSAhPSAkZGVmYXVsdF9wYWdlX2lkKQ0KICAgICAgICB7DQogICAgICAgICAgJHVybCAuPSAgJHJvd1snaGllcmFyY2h5X3BhdGgnXTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICAkcGF0aHBhcnRzID0gZXhwbG9kZSgnLycsICRyb3dbJ2hpZXJhcmNoeV9wYXRoJ10pOw0KICAgICAgICAkdXJsID0gJGJhc2VfdXJsIC4gJHBhdGhwYXJ0c1tjb3VudCgkcGF0aHBhcnRzKSAtIDFdOw0KICAgICAgfQ0KDQogICAgICAkb3V0cHV0WyRuZXdwYXRoc1skcm93WydoaWVyYXJjaHknXV1dID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2lkJyAgICAgICA9PiAkcm93Wydjb250ZW50X2lkJ10sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VybCcgICAgICAgPT4gJHVybCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgICAgICA9PiAkcm93Wydjb250ZW50X25hbWUnXSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVudV90ZXh0JyA9PiAkcm93WydtZW51X3RleHQnXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbGlhcycgICAgID0+ICRyb3dbJ2NvbnRlbnRfYWxpYXMnXSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgIH0NCg0KICAgICRmaW5hbCA9IGFycmF5KCk7DQoNCiAgICBmb3JlYWNoKCRvdXRwdXQgYXMgJGxhbmcgPT4gJHZhbHVlKQ0KICAgIHsNCiAgICAgIGlmKGlzc2V0KCRtb2R1bGVfbGlua3NbJGxhbmddKSkNCiAgICAgIHsNCiAgICAgICAgJHZhbHVlWyd1cmwnXSA9ICRtb2R1bGVfbGlua3NbJGxhbmddWyd1cmwnXTsNCiAgICAgICAgJHZhbHVlWyduYW1lJ10gPSAkbW9kdWxlX2xpbmtzWyRsYW5nXVsnbmFtZSddOw0KICAgICAgfQ0KDQogICAgICBpZigkdmFsdWVbJ3VybCddID09ICcnICYmICRkZWZhdWx0X2hpZGUpDQogICAgICB7DQogICAgICB9DQogICAgICBlbHNlaWYoJHZhbHVlWyd1cmwnXSA9PSAnJykNCiAgICAgIHsNCiAgICAgICAgJGZpbmFsWyRsYW5nXSA9ICRkZWZhdWx0X3BhdGhzWyRsYW5nXTsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJGZpbmFsWyRsYW5nXSA9ICR2YWx1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuICRmaW5hbDsNCiAgfQ0KDQogIC8vIHJldHJpZXZlcyB0aGUgdXJsIHRvIHRoZSBwYWdlIGluIHRoZSBkZXNpcmVkIGxhbmd1YWdlKHMpIGVxdWl2YWxlbnQgdG8gdGhlIGN1cnJlbnQgcGFnZSwNCiAgLy8gYmFzZWQgb24gTWFyY29zIENydXogbWFudWFsIHByb2NlZHVyZSAoc2VlIGhlbHApDQogIC8vIGlmICRkZXNpcmVkX2xhbmcgaXMgRkFMU0UsIGxpbmtzIGZvciBhbGwgYWN0aXZlIGxhbmd1YWdlcyB3aWxsIGJlIHJldHVybmVkDQogIGZ1bmN0aW9uIG1hbnVhbF9nZXRfbGlua3MoJGRlc2lyZWRfbGFuZyA9IEZBTFNFKQ0KICB7DQoNCiAgICBpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMgfHwgY291bnQoJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpID09IDApICByZXR1cm4gRkFMU0U7DQoNCiAgICAkZ0NtcyA9IGNtc21zKCk7DQogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOw0KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7DQogICAgJGJhc2VfdXJsID0gJHRoaXMtPmdldF9iYXNlX3VybCgpOw0KDQogICAgaWYoJGRlc2lyZWRfbGFuZyAmJiBpc3NldCgkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlc1skZGVzaXJlZF9sYW5nXSkpDQogICAgew0KICAgICAgJGxhbmdzID0gYXJyYXkoJGRlc2lyZWRfbGFuZz0+JHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXNbJGRlc2lyZWRfbGFuZ10pOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgJGxhbmdzID0gJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXM7DQogICAgfQ0KDQogICAgJG1vZHVsZV9saW5rcyA9ICR0aGlzLT5tb2R1bGVfZ2V0X3VybCgpOw0KICAgIGlmKGNvdW50KCRtb2R1bGVfbGlua3MpID09IGNvdW50KCRsYW5ncykgJiYgaXNzZXQoJG1vZHVsZV9saW5rc1skbGFuZ1swXVsnbGFuZ2NvZGUnXV0pKSAgcmV0dXJuICRtb2R1bGVfbGlua3M7DQogICAgJG91dHB1dCA9IGFycmF5KCk7DQoNCiAgICBmb3JlYWNoKCRsYW5ncyBhcyAkb25lbGFuZykNCiAgICB7DQogICAgICAkb3V0cHV0WyRvbmVsYW5nWydsYW5nY29kZSddXSA9IEZBTFNFOw0KICAgIH0NCg0KICAgICRidG5fdGV4dCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VfcGFnZV90aXRsZScsIEZBTFNFKSA/ICcnIDogJG5ld2xhbmdbJ21lbnVfbmFtZSddOw0KDQogICAgLy8gd2UgcmV0cmlldmUgdGhlIGFsdGVybmF0aXZlcyBmcm9tIHRoZSBjb250ZW50IGJsb2NrDQogICAgJG90aGVyX2xhbmd1YWdlcyA9ICRzbWFydHktPmdldF90ZW1wbGF0ZV92YXJzKCdvdGhlcl9sYW5ndWFnZXMnKTsNCiAgICAkYWx0ZXJuYXRpdmVzID0gYXJyYXkoKTsNCiAgICAkd2hlcmV2YWx1ZXMgPSBhcnJheSgpOw0KICAgICR3aGVyZSA9ICIiOw0KDQogICAgZm9yZWFjaCAoIGV4cGxvZGUoJzsnLCAkb3RoZXJfbGFuZ3VhZ2VzKSBhcyAkb25lbGFuZyApDQogICAgew0KICAgICAgJHBhcnRzID0gZXhwbG9kZSgnPScsICRvbmVsYW5nKTsNCiAgICAgIA0KICAgICAgaWYoY291bnQoJHBhcnRzKSA9PSAyKQ0KICAgICAgew0KICAgICAgICAkd2hlcmUgLj0gKCR3aGVyZSA9PSAnJyA/ICcnIDogJyBPUiAnKSAuICdjb250ZW50X2FsaWFzPT8nOw0KICAgICAgICAkYWx0ZXJuYXRpdmVzWyRwYXJ0c1sxXV0gPSAkcGFydHNbMF07DQogICAgICAgIGFycmF5X3B1c2goJHdoZXJldmFsdWVzLCAkcGFydHNbMV0pOw0KICAgICAgfQ0KICAgIH0NCg0KICAgICRxdWVyeSA9ICdTRUxFQ1QgbWVudV90ZXh0LCBjb250ZW50X25hbWUsIGNvbnRlbnRfYWxpYXMsIGhpZXJhcmNoeV9wYXRoIEZST00gJw0KICAgICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkNCiAgICAgICAgICAgIC4gJ2NvbnRlbnQgV0hFUkUgKCcgLiAkd2hlcmUgLiAnKSc7DQogICAgICAgICAgICANCiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkd2hlcmV2YWx1ZXMpOw0KDQogICAgd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpDQogICAgew0KICAgICAgJG91dHB1dFskYWx0ZXJuYXRpdmVzWyRyb3dbJ2NvbnRlbnRfYWxpYXMnXV1dID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgID0+ICRiYXNlX3VybCAuICRyb3dbJ2hpZXJhcmNoeV9wYXRoJ10sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgICAgICA9PiAkcm93Wydjb250ZW50X25hbWUnXSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW51X3RleHQnID0+ICRyb3dbJ21lbnVfdGV4dCddDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgIH0NCg0KICAgIGlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2hpZGUnLCBGQUxTRSkpICByZXR1cm4gJG91dHB1dDsNCg0KICAgIC8vIHdlIGNoZWNrIGZvciBkZWZhdWx0IGFsdGVybmF0aXZlcw0KICAgICR3aGVyZSA9ICcnOw0KICAgICR3aGVyZXZhbHVlcyA9IGFycmF5KCk7DQogICAgJGlkdG9sYW5nID0gYXJyYXkoKTsNCg0KICAgIGZvcmVhY2goJG91dHB1dCBhcyAkbGFuZyA9PiAkcGF0aCkNCiAgICB7DQogICAgICBpZighJHBhdGgpDQogICAgICB7DQogICAgICAgICR3aGVyZSAuPSAoJHdoZXJlID09ICcnID8gJycgOiAnIE9SICcpIC4gJ2NvbnRlbnRfaWQ9Pyc7DQogICAgICAgIGFycmF5X3B1c2goJHdoZXJldmFsdWVzLCAkbGFuZ3NbJGxhbmddWydkZWZhdWx0X2lkJ10pOw0KICAgICAgICAkaWR0b2xhbmdbJGxhbmdzWyRsYW5nXVsnZGVmYXVsdF9pZCddXSA9ICRsYW5nOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIGlmKCR3aGVyZSA9PSAnJykgIHJldHVybiAkb3V0cHV0Ow0KDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBtZW51X3RleHQsIGNvbnRlbnRfbmFtZSwgY29udGVudF9pZCwgaGllcmFyY2h5LCBoaWVyYXJjaHlfcGF0aCBGUk9NICcgDQogICAgICAgICAgICAuIGNtc19kYl9wcmVmaXgoKSANCiAgICAgICAgICAgIC4gJ2NvbnRlbnQgV0hFUkUgKCcgLiAkd2hlcmUgLiAnKSc7DQogICAgICAgICAgICANCiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkd2hlcmV2YWx1ZXMpOw0KDQogICAgd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpDQogICAgew0KICAgICAgJG91dHB1dFskaWR0b2xhbmdbJHJvd1snY29udGVudF9pZCddXV0gPSBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgID0+ICRiYXNlX3VybCAuICRyb3dbJ2hpZXJhcmNoeV9wYXRoJ10sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgPT4gJHJvd1snY29udGVudF9uYW1lJ10sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21lbnVfdGV4dCcgPT4gJHJvd1snbWVudV90ZXh0J10NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJG91dHB1dDsNCiAgfQ0KICANCiAgZnVuY3Rpb24gZ2V0X3VybHR5cGUoKQ0KICB7DQogICAgJGdDbXMgPSBjbXNtcygpOw0KICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCg0KICAgICRyZWRpcmVjdGlvbiA9IEZBTFNFOw0KDQoNCiAgICBpZihpc3NldCgkY29uZmlnWyd1cmxfcmV3cml0aW5nJ10pKQ0KICAgIHsNCg0KICAgICAgJHJlZGlyZWN0aW9uID0gJGNvbmZpZ1sndXJsX3Jld3JpdGluZyddOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KDQogICAgJHJlZGlyZWN0aW9uID0gJ2ludGVybmFsJzsNCiAgICB9DQoNCiAgICByZXR1cm4gJHJlZGlyZWN0aW9uOw0KICB9DQoNCiAgLyoqDQogICogcmV0dXJucyBhIHZhbGlkIGJhc2UgdXJsDQogICovDQogIGZ1bmN0aW9uIGdldF9iYXNlX3VybCgpDQogIHsNCiAgICAkZ0NtcyA9IGNtc21zKCk7DQogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KICAgICRyZWRpcmVjdGlvbiA9ICR0aGlzLT5nZXRfdXJsdHlwZSgpOw0KICAgICRiYXNldXJsID0gJGNvbmZpZ1sncm9vdF91cmwnXTsNCg0KICAgIGlmKCRyZWRpcmVjdGlvbiA9PSAnbW9kX3Jld3JpdGUnKQ0KICAgIHsNCiAgICAgICRiYXNldXJsIC49ICcvJzsNCiAgICB9DQogICAgZWxzZWlmKCRyZWRpcmVjdGlvbiA9PSAnaW50ZXJuYWwnKQ0KICAgIHsNCiAgICAgICRiYXNldXJsIC49ICcvaW5kZXgucGhwLyc7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkYmFzZXVybCAuPSAnL2luZGV4LnBocD8nIC4gJGNvbmZpZ1sncXVlcnlfdmFyJ10gLiAnPSc7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkYmFzZXVybDsNCiAgfQ0KDQogIGZ1bmN0aW9uIG1vZHVsZV9nZXRfdXJsKCkNCiAgew0KICAgIHJldHVybiBhcnJheSgpOw0KICAgIC8vIGV2ZW50dWFsbHksIHNvbWUgY3VzdG9tIGNvZGUgaGVyZSBjYW4gY2hlY2sgaWYgd2UgYXJlIGluIGEgbW9kdWxlIGFjdGlvbg0KICAgIC8vIGFuZCByZXRyaWV2ZSBsYW5ndWFnZSBsaW5rcyBmcm9tIHRoZSBtb2R1bGUNCiAgfQ0KICANCiAgDQogICNETSBzdXBwb3J0Iw0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0ZW1wbGF0ZV9oZWxwX2NhbGxiYWNrKCRzdHIpDQogIHsNCiAgICBpZih0cmltKCRzdHIpID09ICdlcmlkdV9sYW5nX3NlbGVjdG9yX21lbnUnKQ0KICAgIHsNCiAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0VyaWR1Jyk7DQogICAgICByZXR1cm4gJG1vZC0+TGFuZygidGVtcGxhdGVoZWxwIik7DQogICAgfQ0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRlbXBsYXRlX2xhbmdfY2FsbGJhY2soJHN0cikNCiAgew0KICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0VyaWR1Jyk7DQogICAgaWYoIGlzX29iamVjdCgkbW9kKSApIHJldHVybiAkbW9kLT5MYW5nKCd0eXBlXycuJHN0cik7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVzZXRfdGVtcGxhdGVfZGVmYXVsdChDbXNMYXlvdXRUZW1wbGF0ZVR5cGUgJHR5cGUpDQogIHsNCiAgICBpZiggJHR5cGUtPmdldF9vcmlnaW5hdG9yKCkgIT0gJ0VyaWR1JyApDQogICAgICB0aHJvdyBuZXcgQ21zTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCByZXNldCBjb250ZW50cyBmb3IgdGhpcyB0ZW1wbGF0ZSB0eXBlJyk7DQogIA0KICAgICRkZWZhdWx0X3RwbCA9IE5VTEw7DQogIA0KICAgIGlmKCAkdHlwZS0+Z2V0X25hbWUoKSA9PSAnZXJpZHVfbGFuZ19zZWxlY3Rvcl9tZW51JykNCiAgICB7DQogICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKS0+R2V0TW9kdWxlUGF0aCgpLCAndGVtcGxhdGVzJywgJ2RlZmF1bHRfbWVudV90bXBsdC50cGwnKTsNCiAgDQogICAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkNCiAgICAgIHsNCiAgICAgICAgJGRlZmF1bHRfdHBsID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRkZWZhdWx0X3RwbCA9ICc8IS0tIEVycm9yIGR1cmluZyBFcmlkdSBpbnN0YWxsYXRpb24gLS0+JzsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuICRkZWZhdWx0X3RwbDsNCiAgfQ0KICAjRE0gc3VwcG9ydCBlbmQjDQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.core.ContentPreCompile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7DQokdGhpcy0+YXNzaWduX3BhZ2VfbGFuZygpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/icon.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/images/pp_button.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></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[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0VyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudCc7DQokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBbGxvd3MgdGhlIG1hbmFnZW1lbnQgb2YgKGFuZCBuYXZpZ2F0aW9uIHRocm91Z2gpIG11bHRpcGxlIGxhbmd1YWdlcyBmb3IgdGhlIGZyb250ZW5kLic7DQokbGFuZ1snYWRtaW5kZXNjcmlwdGlvbiddID0gJ01hbmFnZSBmcm9udGVuZCBsYW5ndWFnZXMgYW5kIG11bHRpbGluZ3VhbCBiZWhhdmlvcnMuJzsNCg0KJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGl2ZSc7DQoNCiRsYW5nWydsYW5ndWFnZSddID0gJ0xhbmd1YWdlJzsNCiRsYW5nWydsYW5ndWFnZXMnXSA9ICdMYW5ndWFnZXMnOw0KJGxhbmdbJ2FkZF9sYW5ndWFnZSddID0gJ0FkZCBsYW5ndWFnZSc7DQokbGFuZ1snYWRkX2VudHJ5J10gPSAnQWRkIGEgbmV3IGxhbmd1YWdlIGVudHJ5JzsNCiRsYW5nWydlbnRyeSddID0gJ0xhbmd1YWdlIGVudHJ5JzsNCiRsYW5nWydlZGl0X2xhbmd1YWdlJ10gPSAnRWRpdCBsYW5ndWFnZSc7DQokbGFuZ1snbmFtZSddID0gJ05hbWUnOw0KJGxhbmdbJ2VudHJ5bmFtZSddID0gJ0VudHJ5IG5hbWUgKHVzZWQgdG8gY2FsbCB0aGlzIGxhbmd1YWdlIGVudHJ5KSc7DQokbGFuZ1snbWVudV9uYW1lJ10gPSAnTWVudSBuYW1lJzsNCiRsYW5nWydpc29fNjM5XzEnXSA9ICdJU08gNjM5LTEgQ29kZSc7DQokbGFuZ1snaXNvXzMxNjZfMV9hbHBoYV8yJ10gPSAnSVNPIDMxNjYtMS1hbHBoYS0yIGNvZGUnOw0KJGxhbmdbJ2RvbWFpbiddID0gJ0RvbWFpbic7DQokbGFuZ1snbGFuZ2NvZGUnXSA9ICdMYW5ndWFnZSBjb2RlJzsNCiRsYW5nWydsYW5nY29kZV9wcm9tcHQnXSA9ICdMYW5ndWFnZSBjb2RlIChlZzogZW5fVVMgKSc7DQokbGFuZ1sncm9vdF9pZCddID0gJ1Jvb3QgcGFnZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxhbmd1YWdlJzsNCiRsYW5nWydkZWZhdWx0X2lkJ10gPSAnRGVmYXVsdCBwYWdlIGZvciByZWRpcmVjdGlvbiB0byB0aGlzIGxhbmd1YWdlJzsNCiRsYW5nWydsYW5nc2VsZWN0J10gPSAnKG9wdGlvbmFsKSBBdXRvLWZpbGwgZm9yIHRoZSBmb2xsb3dpbmcgbGFuZ3VhZ2U6JzsNCiRsYW5nWydpc2RlZmF1bHQnXSA9ICdEZWZhdWx0Pyc7DQokbGFuZ1snYWN0aW9ucyddID0gJ0FjdGlvbnMnOw0KJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGl2ZSc7DQokbGFuZ1sncHJvbXB0X2RlbGV0ZWxhbmd1YWdlJ10gPSAnUmVhbGx5IGRlbGV0ZSB0aGlzIGxhbmd1YWdlICglcyk/JzsNCiRsYW5nWydwcm9tcHRfZGVsZXRlZW50cnknXSA9ICdSZWFsbHkgZGVsZXRlIHRoaXMgZW50cnk/JzsNCiRsYW5nWydkZWxldGVfZW50cnknXSA9ICdEZWxldGUgdGhpcyBlbnRyeSc7DQoNCiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOw0KJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7DQokbGFuZ1snYXBwbHknXSA9ICdBcHBseSc7DQoNCiRsYW5nWydlZGl0X2VudHJpZXMnXSA9ICdFZGl0IGxhbmd1YWdlIGVudHJpZXMnOw0KDQoNCg0KDQokbGFuZ1sndGVtcGxhdGVoZWxwJ10gPSAnPHVsPg0KPGxpPiRsYW5ndWFnZXMgKGFycmF5IG9mICRsYW5ndWFnZSk8L2xpPg0KPGxpPiRsYW5ndWFnZS0mZ3Q7bmFtZTwvbGk+DQo8bGk+JGxhbmd1YWdlLSZndDtjb2RlPC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O21lbnVfbmFtZTwvbGk+DQo8bGk+JGxhbmd1YWdlLSZndDtwYWdlX25hbWU8L2xpPg0KPGxpPiRsYW5ndWFnZS0mZ3Q7cGFnZV9tZW51X3RleHQ8L2xpPg0KPGxpPiRsYW5ndWFnZS0mZ3Q7dXJsPC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O2lzX2N1cnJlbnQ8L2xpPg0KPC91bD4nOw0KCQ0KLy8gR0VORVJBTA0KJGxhbmdbJ2FjdGl2YXRlJ10gPSAnQWN0aXZhdGUnOw0KJGxhbmdbJ3VuYWN0aXZhdGUnXSA9ICdUdXJuIG9mZic7DQokbGFuZ1snc2VhcmNodGhpc3RhYmxlJ10gPSAnU2VhcmNoIHRoaXMgdGFibGUgZm9yOic7DQokbGFuZ1snWWVzJ10gPSAnWWVzJzsNCiRsYW5nWydObyddID0gJ05vJzsNCiRsYW5nWydBY3Rpb25zJ10gPSAnQWN0aW9ucyc7DQokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXInOw0KJGxhbmdbJ2xpc3R0ZW1wbGF0ZSddID0gJ0xpc3QgdGVtcGxhdGUgZm9yJzsNCiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdNZW51IHRlbXBsYXRlcyc7DQokbGFuZ1sndGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSc7DQokbGFuZ1snZGVmYXVsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCB0ZW1wbGF0ZSc7DQokbGFuZ1sndGVtcGxhdGV2YXJzJ10gPSAnVGVtcGxhdGUgdmFyaWFibGVzJzsNCiRsYW5nWydlZGl0dGVtcGxhdGUnXSA9ICdFZGl0IHRlbXBsYXRlJzsNCiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ0FkZCB0ZW1wbGF0ZSc7DQokbGFuZ1snZmlsdGVyYnknXSA9ICdGaWx0ZXIgYnknOw0KJGxhbmdbJ3Nob3dhbGwnXSA9ICdTaG93IGFsbCAobm8gZmlsdGVyKSc7DQokbGFuZ1snbWVzc2FnZV9kZWxldGVkJ10gPSAnRWxlbWVudCBkZWxldGVkJzsNCiRsYW5nWydtZXNzYWdlX21vZGlmaWVkJ10gPSAnTW9kaWZpY2F0aW9uIHNhdmVkJzsNCiRsYW5nWydlcnJvcl9taXNzZ2ludmFsdWUnXSA9ICdPbmUgb3IgbW9yZSBuZWNlc3NhcnkgdmFsdWVzIGhhdmUgbm90IGJlZW4gZW50ZXJlZC4nOw0KJGxhbmdbJ2Vycm9yX2FscmVhZHlleGlzdHMnXSA9ICdUaGVyZSBpcyBhbHJlYWR5IGFuIGVsZW1lbnQgYmVhcmluZyB0aGF0IG5hbWUuJzsNCiRsYW5nWydlcnJvcl9ub3BhcmVudCddID0gJ05vIHBhcmVudCBpcyBkZWZpbmVkISc7DQokbGFuZ1snZXJyb3Jfbm90Zm91bmQnXSA9ICdUaGUgaXRlbSBjb3VsZCBub3QgYmUgZm91bmQuJzsNCiRsYW5nWydlcnJvcl9ub2l0ZW1mb3VuZCddID0gJ05vIGl0ZW0gZm91bmQuJzsNCiRsYW5nWydlcnJvcl9kZW5pZWQnXSA9ICdQZXJtaXNzaW9uIGRlbmllZCc7DQokbGFuZ1snZ2l2ZW5lcnJvciddID0gJ0Vycm9yOiAnOw0KJGxhbmdbJ3Byb21wdF9nZW5lcmFsZGVsZXRlJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzPyc7DQokbGFuZ1sncmVzdWx0cyddID0gJ1Jlc3VsdHMnOw0KDQovLyBETQ0KJGxhbmdbJ3R5cGVfRXJpZHUnXSA9ICdFcmlkdSc7DQokbGFuZ1sndHlwZV9lcmlkdV9sYW5nX3NlbGVjdG9yX21lbnUnXSA9ICdMYW5nIFNlbGVjdG9yIE1lbnUnOw0KDQovLyBNT0RVTEUgSU5URVJBQ1RJT04NCiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBzdWNjZXNzZnVsbHkgYWRkZWQuJzsNCiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWxlIHN1Y2Nlc3NmdWxseSByZW1vdmVkLic7DQokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ0FsbCBvZiB0aGlzIG1vZHVsZVwncyBjb250ZW50IHdpbGwgYmUgbG9zdC4gQ29udGludWU/JzsNCiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOw0KJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOw0KDQovL1NFVFRJTkdTDQokbGFuZ1snc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7DQokbGFuZ1sncHJlZl9hdXRvcmVkaXJlY3RfaG9tZSddID0gJ0F1dG8tcmVkaXJlY3Qgb24gaG9tZSBwYWdlIGJhc2VkIG9uIHJlcXVlc3QgKGJyb3dzZXIpIGxhbmd1YWdlPyo8YnIvPldoZW4gdGhlIHVzZXIgZ2V0cyBvbiBhIGhvbWUgcGFnZSAoYSBwYWdlIGRlZmluZWQgYXMgZGVmYXVsdCBwYWdlIGZvciBhIGxhbmd1YWdlKSwgaWYgaGlzIGJyb3dzZXIgbGFuZ3VhZ2UgaXMgZGlmZmVyZW50IGZyb20gdGhlIHBhZ2UgbGFuZ3VhZ2UgaGUgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSBhcHByb3ByaWF0ZSBwYWdlLic7DQokbGFuZ1sncHJlZl9hdXRvcmVkaXJlY3RfYWxsJ10gPSAnQXV0by1yZWRpcmVjdCBvbiBhbGwgcGFnZXMgYmFzZWQgb24gcmVxdWVzdCBsYW5ndWFnZT8qPGJyLz4oc2FtZSBhcyBhYm92ZSwgYnV0IGZvciBhbGwgcGFnZXMpJzsNCiRsYW5nWydwcmVmX2Nvb2tpZXNfYXV0b3JlZGlyZWN0X2hvbWUnXSA9ICdBdXRvLXJlZGlyZWN0IG9uIGhvbWUgcGFnZSBiYXNlZCBvbiBsYW5ndWFnZSBzdG9yZWQgaW4gY29va2llcz88YnIvPklmIHRoZSB1c2VyIGhhcyBwcmV2aW91c2x5IG5hdmlnYXRlZCB0aGUgc2l0ZSBpbiBhIHNlbGVjdGVkIGxhbmd1YWdlIGJlZm9yZSwgaGUgd2lsbCBiZSBmb3dhcmRlZCB0byB0aGlzIGxhbmd1YWdlIHVwb24gdmlzaXRpbmcgYW55IGhvbWUgcGFnZSAoYW55IHBhZ2UgdGhhdCBoYXMgYmVlbiBzZXQgYXMgZGVmYXVsdCBwYWdlIGZvciBhIGxhbmd1YWdlKS4nOw0KJGxhbmdbJ3ByZWZfY29va2llc19hdXRvcmVkaXJlY3RfYWxsJ10gPSAnQXV0by1yZWRpcmVjdCBvbiBhbGwgcGFnZXMgYmFzZWQgb24gY29va2llcz88YnIvPihzYW1lIGFzIGFib3ZlLCBidXQgZm9yIGFsbCBwYWdlcyknOw0KJGxhbmdbJ3ByZWZfaGllcmFyY2h5X3JlZGlyZWN0J10gPSAnVXNlIGhpZXJhcmNoeSBmb3IgcmVkaXJlY3Rpb24/IChzZWUgaGVscCBmb3IgbW9yZSBpbmZvKTxici8+VGhpcyBtZWFucyB0aGF0IHRoZSBwYWdlIHN0cnVjdHVyZSBtdXN0IGJlIGV4YWN0bHkgdGhlIHNhbWUgZm9yIGFsbCBsYW5ndWFnZXMuIElmIHlvdSBkb25cJ3QgdXNlIHRoZSBoaWVyYXJjaHksIHlvdSB3aWxsIGhhdmUgdG8gc3BlY2lmeSB0aGUgcGFnZXMgbWFudWFsbHkuJzsNCiRsYW5nWydwcmVmX2RlZmF1bHRfaGlkZSddID0gJ0hpZGUgbWVudSBsaW5rIHdoZW4gdGhlIGFjY29yZGluZyBwYWdlIGRvZXMgbm90IGV4aXN0Pzxici8+SWYgdGhlIGxhbmd1YWdlIGxpbmsgc2hvdWxkIGxlYWQgdG8gYSBwYWdlIHRoYXQgZG9lcyBub3QgZXhpc3QsIGhpZGUgdGhlIGxpbmsgKG90aGVyd2lzZSwgdGhlIGxpbmsgd2lsbCBsZWFkIHRvIHRoZSBsYW5ndWFnZVwncyBkZWZhdWx0IHBhZ2UpLic7DQokbGFuZ1sncHJlZl9kZWZhdWx0X3RyYW5zbGF0ZSddID0gJ1VzZSBkZWZhdWx0IGxhbmd1YWdlIHdoZXJlIGxhbmd1YWdlLXNwZWNpZmljIGVudHJpZXMgaGF2ZW5cJ3QgYmVlbiBzdXBwbGllZC4nOw0KJGxhbmdbJ3ByZWZfaGlkZV9taXNzaW5nZW50cmllcyddID0gJ0hpZGUgZXJyb3IgbWVzc2FnZSBmb3IgdW5rbm93biBsYW5ndWFnZSBlbnRyaWVzLic7DQokbGFuZ1sncHJlZl93eXNpd3lnJ10gPSAnRW5hYmxlIHd5c2l3eWcgaW4gbGFuZ3VhZ2UgZW50cmllcy4nOw0KJGxhbmdbJ3ByZWZfdXNlX3BhZ2VfdGl0bGUnXSA9ICdVc2UgcGFnZSB0aXRsZSBpbiBsYW5ndWFnZSBsaW5rcyAoaW5zdGVhZCBvZiBsYW5ndWFnZSBuYW1lKS4nOw0KJGxhbmdbJ3ByZWZfY3VycmVudF9saW5rJ10gPSAnSW4gdGhlIGxhbmd1YWdlIG1lbnUsIHNob3cgbGluayBmb3IgY3VycmVudCBwYWdlICh0aGF0IGlzLCBjdXJyZW50IGxhbmd1YWdlKSB0b28uJzsNCiRsYW5nWydoZWxwX3JlZGlyZWN0aW9uJ10gPSAnKk5vdGU6IElmIHlvdSB1c2UgcmVkaXJlY3Rpb24gYmFzZWQgb24gcmVxdWVzdCAoYnJvd3NlcikgbGFuZ3VhZ2UsIG1ha2Ugc3VyZSB0byBhY3RpdmF0ZSB0aGUgY29ycmVzcG9uZGluZyBjb29raWUgcmVkaXJlY3Rpb24sIG90aGVyd2lzZSB0aGUgdXNlcnMgd2lsbCBiZSA8Yj5mb3JjZWQ8L2I+IHRvIHZpZXcgdGhlIHBhZ2UgaW4gdGhlaXIgYnJvd3NlciBsYW5ndWFnZS4nOw0KDQoNCi8vUEFSQU1FVEVSUw0KJGxhbmdbJ3BoZWxwX2FjdGlvbiddID0gJ1Bvc3NpYmxlIGFjdGlvbnM6IFwnZGVmYXVsdFwnIChmb3IgdHJhbnNsYXRpb25zKSBvciBcJ21lbnVcJy4nOw0KJGxhbmdbJ3BoZWxwX3Nob3cnXSA9ICdGb3IgdGhlIG1lbnUgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggbGFuZ3VhZ2VzIHRvIHNob3cgaW4gdGhlIG1lbnUgKHVzZSBsYW5ndWFnZSBjb2RlIGFuZCBzZXBhcmF0ZSB3aXRoIGEgY29tbWEpLiBGb3IgdGhlIGRlZmF1bHQgYWN0aW9uLCB0aGlzIGhvbGRzIHRoZSBrZXkgdG8gdGhlIHN0cmluZyB0byBiZSB0cmFuc2xhdGVkLic7DQokbGFuZ1sncGhlbHBfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSBtZW51Lic7DQokbGFuZ1sncGhlbHBfYXNzaWduJ10gPSAnSW5zdGVhZCBvZiBkaXNwbGF5aW5nIHRoZSByZXN1bHQgaW1tZWRpYXRlbHksIHlvdSBjYW4gYXNzaWduIGl0IHRvIGEgc21hcnR5IHZhcmlhYmxlIHNwZWNpZmllZCB3aXRoIHRoZSBcJ2Fzc2lnblwnIHBhcmFtZXRlci4nOw0KDQoNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KKiBFcmlkdSBjb25maWcgY2xhc3MNCiogQSBjb252ZW5pZW5jZSBjbGFzcyB0byBjZW50cmFsaXplDQoqIGFsbCBDb25maWcgdmFsdWVzIGluIG9uZSBBcnJheUFjY2VzcyB0eXBlIG9iamVjdA0KKiANCiogQGF1dGhvciBKbyBNb3JnIChGZXJuYW5kbyBNb3JnYWRvKQ0KKiBAdmVyc2lvbiAxLjANCiovDQpuYW1lc3BhY2UgRXJpZHU7DQoNCmNsYXNzIGNvbmZpZyBpbXBsZW1lbnRzIFxBcnJheUFjY2Vzcw0Kew0KICANCiAgLyoqDQogICogQGFjY2VzcyBwcml2YXRlDQogICovDQogIHByaXZhdGUgc3RhdGljICRfZGF0YSA9IGFycmF5KCk7DQogICANCiAgLyoqDQogICogVGhlIGluc3RhbmNlDQogICogQGFjY2VzcyBwcml2YXRlDQogICovDQogIHByaXZhdGUgc3RhdGljICRfaW5zdGFuY2U7DQogIA0KICAvKioNCiAgKiBDTVNNUyBvd24gY29uZmlnDQogICogQGFjY2VzcyBwcml2YXRlDQogICovDQogIHByaXZhdGUgc3RhdGljICRfQ01TTVNfQ0ZHID0gTlVMTDsNCiAgDQogIC8qKg0KICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpdCBiZWluZyBjcmVhdGVkIGRpcmVjdGx5DQogICogQGFjY2VzcyBwcml2YXRlDQogICovDQogIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXt9DQogICAgDQogIC8qKg0KICAqIEdldEluc3RhbmNlIG1ldGhvZCB1c2VkIHRvIGFjY2VzcyB0aGUgb2JqZWN0DQogICogQGFjY2VzcyBwdWJsaWMNCiAgKiBAcmV0dXJuIA0KICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldEluc3RhbmNlKCkNCiAgew0KICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9pbnN0YW5jZSkgKQ0KICAgIHsNCiAgICAgIHNlbGY6OiRfaW5zdGFuY2UgPSBuZXcgc2VsZjsNCiAgICAgIHNlbGY6OiRfQ01TTVNfQ0ZHID0gXGNtc21zKCktPkdldENvbmZpZygpOw0KICAgICAgJG1vZHVsZV9wYXRoID0gZGlybmFtZSggZGlybmFtZShfX0ZJTEVfXykgKTsNCiAgICAgICRmaWxlID0gY21zX2pvaW5fcGF0aCgkbW9kdWxlX3BhdGgsICdkYXRhJywgJ2NmZy5pbmMnKTsNCiAgICAgIA0KICAgICAgaWYoIGZpbGVfZXhpc3RzKCRmaWxlKSApDQogICAgICB7DQogICAgICAgIGluY2x1ZGUoJGZpbGUpOyANCiAgICAgICAgc2VsZjo6JF9kYXRhID0gaXNzZXQoJGNmZykgPyAkY2ZnIDogYXJyYXkoKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgc2VsZjo6JF9kYXRhWydtb2R1bGVfcGF0aCddID0gJG1vZHVsZV9wYXRoOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gc2VsZjo6JF9pbnN0YW5jZTsNCiAgfQ0KICANCiAgLyoqDQogICogcHJldmVudCBjbG9uaW5nIG9mIHRoZSBvYmplY3Q6IGlzc3VlcyBhbiBFX1VTRVJfRVJST1IgaWYgdGhpcyBpcyBhdHRlbXB0ZWQNCiAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIF9fY2xvbmUoKQ0KICB7DQogICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ0Nsb25pbmcgdGhlIENvbmZpZyBpcyBub3QgcGVybWl0dGVkJyk7DQogIH0NCiAgDQogIC8qKg0KICAqIEdldCBhIGRhdGEgYnkga2V5DQogICoNCiAgKiBAcGFyYW0gc3RyaW5nIFRoZSBrZXkgZGF0YSB0byByZXRyaWV2ZQ0KICAqIEBhY2Nlc3MgcHVibGljDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiAmX19nZXQgKCRrZXkpIA0KICB7DQogICAgaWYoc2VsZjo6JF9DTVNNU19DRkctPm9mZnNldEV4aXN0cygka2V5KSkgcmV0dXJuIHNlbGY6OiRfQ01TTVNfQ0ZHWyRrZXldOw0KICAgIHJldHVybiBzZWxmOjokX2RhdGFbJGtleV07DQogIH0NCg0KICAvKioNCiAgKiBBc3NpZ25zIGEgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBkYXRhDQogICoNCiAgKiBAcGFyYW0gc3RyaW5nIFRoZSBkYXRhIGtleSB0byBhc3NpZ24gdGhlIHZhbHVlIHRvDQogICogQHBhcmFtIG1peGVkICBUaGUgdmFsdWUgdG8gc2V0DQogICogQGFjY2VzcyBwdWJsaWMNCiAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrZXksICR2YWx1ZSkgDQogIHsNCiAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignUmVhZCBPbmx5Jyk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRFeGlzdHMoJGtleSkgDQogIHsNCiAgICByZXR1cm4gKCBpc3NldChzZWxmOjokX2RhdGFbJGtleV0pIHx8IHNlbGY6OiRfQ01TTVNfQ0ZHLT5vZmZzZXRFeGlzdHMoJGtleSkgKTsNCiAgfQ0KDQogICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0R2V0KCRrZXkpIA0KICAgew0KICAgICBpZihzZWxmOjokX0NNU01TX0NGRy0+b2Zmc2V0RXhpc3RzKCRrZXkpKSByZXR1cm4gc2VsZjo6JF9DTVNNU19DRkdbJGtleV07DQogICAgIA0KICAgICAgaWYoaXNzZXQoc2VsZjo6JF9kYXRhWyRrZXldKSkgDQogICAgICB7DQogICAgICAgICByZXR1cm4gc2VsZjo6JF9kYXRhWyRrZXldOw0KICAgICAgfQ0KDQogICAgICByZXR1cm4gbnVsbDsNCiAgIH0NCg0KICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFNldCgka2V5LCAkdmFsdWUpIA0KICAgew0KICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignUmVhZCBPbmx5Jyk7DQogICB9DQoNCiAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgka2V5KSANCiAgIHsNCiAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ1JlYWQgT25seScpOw0KICAgfQ0KICAgDQogICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldCgka2V5KQ0KICB7DQogICAgaWYoc2VsZjo6JF9DTVNNU19DRkctPm9mZnNldEV4aXN0cygka2V5KSkgcmV0dXJuIHNlbGY6OiRfQ01TTVNfQ0ZHWyRrZXldOw0KICAgIA0KICAgIGlmKCBzZWxmOjpleGlzdHMoJGtleSkgKQ0KICAgIHsNCiAgICAgIHJldHVybiBzZWxmOjokX2RhdGFbJGtleV07DQogICAgfQ0KICB9DQoNCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXQoJGtleSwgJHZhbHVlKQ0KICB7DQogICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ1JlYWQgT25seScpOw0KICB9DQoNCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBlcmFzZSgka2V5KQ0KICB7DQogICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ1JlYWQgT25seScpOw0KICB9DQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.EriduHelperFunctions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMQ0KIyBBIGZvcmsgb2YgQmFiZWwNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIEJhYmVsIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIHVzaW5nIENUTE1vZHVsZU1ha2VyIGFuZCByZWxlYXNlZCB1bmRlciBHTlUNCiMgQ1RMTW9kdWxlTWFrZXIgd2FzIGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIGFuZCByZWxlYXNlZCB1bmRlciBHTlUNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIEVyaWR1IGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQkVHSU5fTElDRU5TRQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgRXJpZHUNCiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIEVyaWR1IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBFTkRfTElDRU5TRQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8qKg0KKiBkZXByZWNhdGVkOiB3aWxsIGJlIHJlbW92ZWQuLi4uDQoqLw0KY2xhc3MgRXJpZHVIZWxwZXJGdW5jdGlvbnMNCnsNCiAgIyBtb3ZlZCB0byBsYW5nX29wcw0KICBzdGF0aWMgZnVuY3Rpb24gcGxjcmVhdGVhbGlhcygkbmFtZSkNCiAgew0KICAgIC8vIGZpbHRlciBrZXlzIGZvciBsYW5ndWFnZSBlbnRyaWVzDQogICAgLy8gYXMgYSBzdWdnZXN0aW9uIGZyb20gQU1ULCB0aGUgZmlyc3QgcGFydCBkZWFscyB3aXRoIHNtYXJ0IHF1b3Rlcw0KICAgICAkc2VhcmNoID0gYXJyYXkoY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OTgpLA0KICAgICAgICAgICAgICAgICAgICAgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDk5KSwNCiAgICAgICAgICAgICAgICAgICAgICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5YyksDQogICAgICAgICAgICAgICAgICAgICAgY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OWQpLA0KICAgICAgICAgICAgICAgICAgICAgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDkzKSwNCiAgICAgICAgICAgICAgICAgICAgICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5NCkpOw0KICAgICAkbmFtZSA9IHN0cl9yZXBsYWNlKCRzZWFyY2gsICIiLCAkbmFtZSk7DQogICAgIC8vIHRoZSBzZWNvbmQgcGFydCB1c2VzIHRoZSBjbXMgdmVyc2lvbg0KICAgICAkYWxpYXMgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lLCBmYWxzZSk7DQogICAgIHJldHVybiAkYWxpYXM7DQogIH0NCiAgDQogICMgbW92ZWQgdG8gdXRpbHMNCi8vICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9yb290X2lkKCRjdXJyZW50X2lkID0gTlVMTCkNCi8vICB7DQovLyAgICAkZ0NtcyA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCk7DQovLyAgICAkaG0gPSAkZ0Ntcy0+R2V0SGllcmFyY2h5TWFuYWdlcigpOw0KLy8gICAgDQovLyAgICBpZiggIWlzc2V0KCRjdXJyZW50X2lkKSApIA0KLy8gICAgew0KLy8gICAgICAkY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7DQovLyAgICAgICRjdXJyZW50X2lkID0gJGNvbnRlbnRvcHMtPmdldENvbnRlbnRPYmplY3QoKS0+SWQoKTsNCi8vICAgICAgaWYoTlVMTCA9PT0gJGN1cnJlbnRfaWQpIHJldHVybiAkY3VycmVudF9pZDsNCi8vICAgIH0gDQovLw0KLy8gICAgJHN0YWNrID0gYXJyYXkoKTsNCi8vICAgICRub2RlID0gJGhtLT5maW5kX2J5X3RhZygnaWQnLCAkY3VycmVudF9pZCk7DQovLyAgICANCi8vICAgIHdoaWxlKCAkbm9kZSAmJiAkbm9kZS0+Z2V0X3RhZygnaWQnKSA+IDAgKQ0KLy8gICAgew0KLy8gICAgICAkc3RhY2tbXSA9ICRub2RlOw0KLy8gICAgICAkbm9kZSA9ICRub2RlLT5nZXRQYXJlbnQoKTsNCi8vICAgIH0NCi8vICAgIA0KLy8gICAgaWYoIGNvdW50KCRzdGFjaykgPT0gMCApIHJldHVybjsNCi8vDQovLyAgICAkaWQgPSAkc3RhY2tbY291bnQoJHN0YWNrKS0xXS0+Z2V0X3RhZygnaWQnKTsNCi8vDQovLyAgICByZXR1cm4gJGlkOw0KLy8gIH0gDQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.eridu_ml_page.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmNsYXNzIGVyaWR1X21sX3BhZ2UgZXh0ZW5kcyBDb250ZW50DQp7DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gRnJpZW5kbHlOYW1lKCkNCiAgew0KICAgIHJldHVybiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0VyaWR1JyktPkxhbmcoZ2V0X2NsYXNzKCkpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gTmFtZSgpDQogIHsNCiAgICAkb3V0cHV0ID0gcGFyZW50OjpOYW1lKCk7DQogICAgDQogICAgaWYoIFxjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkgKQ0KICAgIHsNCiAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdFcmlkdScpOw0KICAgICAgJG1vZC0+YXNzaWduX3BhZ2VfbGFuZygpOw0KICAgICAgJG91dHB1dCA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdfXycgLiAkbW9kLT5jdXJyZW50X2xhbmdjb2RlICAuICdfdGl0bGVfXycpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJG91dHB1dDsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIE1lbnVUZXh0KCkNCiAgew0KICANCiAgICAkb3V0cHV0ID0gcGFyZW50OjpNZW51VGV4dCgpOw0KICANCiAgICBpZiggXGNtc21zKCktPmlzX2Zyb250ZW5kX3JlcXVlc3QoKSApDQogICAgew0KICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0VyaWR1Jyk7DQogICAgICAkbW9kLT5jdXJyZW50X2xhbmd1YWdlID0gIFxFcmlkdVxsYW5ndWFnZXM6OkdldFJlcXVlc3RMYW5nKCk7DQogICAgICBcRXJpZHVcbGFuZ3VhZ2VzOjpTZXRDdXJyZW50TGFuZygkbW9kLT5jdXJyZW50X2xhbmd1YWdlKTsNCiAgICAgICRtb2QtPmN1cnJlbnRfbGFuZ2NvZGUgPSAkbW9kLT5jdXJyZW50X2xhbmd1YWdlLT5nZXRfbGFuZ2NvZGUoKTsNCiAgICAgICRvdXRwdXQgPSAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnX18nIC4gJG1vZC0+Y3VycmVudF9sYW5nY29kZSAgLiAnX21lbnV0ZXh0X18nKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuICRvdXRwdXQ7DQogIH0NCiAgDQogIA0KICBwdWJsaWMgZnVuY3Rpb24gTWV0YWRhdGEoKQ0KICB7DQogICAgJG91dHB1dCA9IHBhcmVudDo6TWV0YWRhdGEoKTsNCiAgDQogICAgaWYoIFxjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkgKQ0KICAgIHsNCiAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdFcmlkdScpOw0KICAgICAgLy8kbW9kLT5hc3NpZ25fcGFnZV9sYW5nKCk7DQogICAgICAkb3V0cHV0ID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ19fJyAuICRtb2QtPmN1cnJlbnRfbGFuZ2NvZGUgIC4gJ19tZXRhZGF0YV9fJyk7DQogICAgfQ0KICANCiAgICByZXR1cm4gJG91dHB1dDsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIFRpdGxlQXR0cmlidXRlKCkNCiAgew0KICAgICRvdXRwdXQgPSBwYXJlbnQ6OlRpdGxlQXR0cmlidXRlKCk7DQogIA0KICAgIGlmKCBcY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkNCiAgICB7DQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsNCiAgICAgIC8vJG1vZC0+YXNzaWduX3BhZ2VfbGFuZygpOw0KICAgICAgJG91dHB1dCA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdfXycgLiAkbW9kLT5jdXJyZW50X2xhbmdjb2RlICAuICdfdGl0bGVhdHRyaWJ1dGVfXycpOw0KICAgIH0NCiAgDQogICAgcmV0dXJuICRvdXRwdXQ7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRNb2RpZmllZERhdGUoKQ0KICB7DQogICAgLy8gdGhpcyB3aWxsIGZvcmNlIHRoZSB0ZW1wbGF0ZSB0byBiZSByZWNvbXBpbGVkIG9uIGZyb250ZW5kIHJlcXVlc3RzDQogICAgaWYoIGNtc21zKCktPmlzX2Zyb250ZW5kX3JlcXVlc3QoKSApIHJldHVybiB0aW1lKCk7DQogICAgcmV0dXJuIHBhcmVudDo6R2V0TW9kaWZpZWREYXRlKCk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBHZXRUYWJOYW1lcygpDQogIHsNCiAgICAkb3V0ID0gcGFyZW50OjpHZXRUYWJOYW1lcygpOw0KICAgICRsYW5ncyA9IFxFcmlkdVxsYW5ndWFnZXM6OmdldGxhbmd1YWdlcyhUUlVFKTsNCiAgICANCiAgICBmb3JlYWNoKCRsYW5ncyBhcyAkbGFuZykNCiAgICB7DQogICAgICAvLyBjaGVjayBwZXJtaXNzaW9uLi4uDQogICAgICBpZiggIWNoZWNrX3Blcm1pc3Npb24oZ2V0X3VzZXJpZCgpLCdNYW5hZ2UgQWxsIENvbnRlbnQnKSApDQogICAgICB7DQogICAgICAgIHVuc2V0KCRvdXRbJ2NjXycgLiAkbGFuZy0+Z2V0X2xhbmdjb2RlKCldKTsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgaWYoIGlzc2V0KCRvdXRbJ2NjXycgLiAkbGFuZy0+Z2V0X2xhbmdjb2RlKCldKSApDQogICAgICAgIHsNCiAgICAgICAgICAkb3V0WydjY18nIC4gJGxhbmctPmdldF9sYW5nY29kZSgpXSA9ICRsYW5nLT5nZXRfbmFtZSgpOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkb3V0Ow0KICB9DQogIA0KICANCiAgcHVibGljIGZ1bmN0aW9uIFNldFByb3BlcnRpZXMoKQ0KICB7DQogICAgcGFyZW50OjpTZXRQcm9wZXJ0aWVzKCk7DQogICAgDQogICAgIyB0byBiZSByZXZpc2l0ZWQuLi4NCiAgICAkdGhpcy0+UmVtb3ZlUHJvcGVydHkoJ2NhY2hhYmxlJyxmYWxzZSk7DQogIA0KICAgICRyZXBsYWNlID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJywNCiAgICAgICAgICAgICAgICAgICAgICAnY29udGVudCcsDQogICAgICAgICAgICAgICAgICAgICAgJ21lbnV0ZXh0JywNCiAgICAgICAgICAgICAgICAgICAgICAndGl0bGVhdHRyaWJ1dGUnLA0KICAgICAgICAgICAgICAgICAgICAgICdwYWdlbWV0YWRhdGEnDQogICAgICAgICAgICAgICAgICAgICk7DQogIA0KICAgICRsYW5ncyA9IFxFcmlkdVxsYW5ndWFnZXM6OmdldGxhbmd1YWdlcyhUUlVFKTsNCiAgDQogICAgZm9yZWFjaCgkbGFuZ3MgYXMgJGxhbmcpDQogICAgew0KICAgICAgJGkgPSAwOw0KICAgICAgZm9yZWFjaCgkcmVwbGFjZSBhcyAkb25lKQ0KICAgICAgew0KICAgICAgICAkcHJvcGVydHlfbmFtZSA9ICdfXycgLiAkbGFuZy0+Z2V0X2xhbmdjb2RlKCkgLiAnXycgLiAkb25lIC4gJ19fJzsNCiAgICAgICAgJHRoaXMtPkFkZFByb3BlcnR5KCRwcm9wZXJ0eV9uYW1lLCArKyRpLCdjY18nIC4gJGxhbmctPmdldF9sYW5nY29kZSgpKTsNCiAgICAgIH0NCiAgICB9DQogICAgDQogIH0NCiAgDQogIA0KICBwcm90ZWN0ZWQgZnVuY3Rpb24gZGlzcGxheV9zaW5nbGVfZWxlbWVudCgkb25lLCAkYWRkaW5nKQ0KICB7DQogICAgJGxhbmdzID0gXEVyaWR1XGxhbmd1YWdlczo6Z2V0bGFuZ3VhZ2VzKFRSVUUpOw0KICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdFcmlkdScpOw0KICAgIA0KICAgICRwcm9wcyA9IGFycmF5KCk7DQogICAgDQogICAgJHJlbW92ZSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICdjb250ZW50X2VuJywNCiAgICAgICAgICAgICAgICAgICAgICAnbWVudXRleHQnLA0KICAgICAgICAgICAgICAgICAgICAgICd0aXRsZWF0dHJpYnV0ZScsDQogICAgICAgICAgICAgICAgICAgICAgJ3BhZ2VtZXRhZGF0YScNCiAgICAgICAgICAgICAgICAgICAgKTsNCiAgDQogICAgaWYoIGluX2FycmF5KCAkb25lLCAkcmVtb3ZlICkgKQ0KICAgIHsNCiAgICAgIHJldHVybiBhcnJheSgnJywgJycpOw0KICAgIH0NCiAgICANCiAgICBpZigkb25lID09ICd0aXRsZScpDQogICAgew0KICAgICAgcmV0dXJuIGFycmF5KCcnLCAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGl0bGUiIHZhbHVlPSInIC4gY21zX2h0bWxlbnRpdGllcygkdGhpcy0+bU5hbWUpIC4gJyIgLz4nKTsNCiAgICB9DQogIA0KICAgICRyZXBsYWNlID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQnLA0KICAgICAgICAgICAgICAgICAgICAgICdtZW51dGV4dCcsDQogICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJywNCiAgICAgICAgICAgICAgICAgICAgICAndGl0bGVhdHRyaWJ1dGUnLA0KICAgICAgICAgICAgICAgICAgICAgICdwYWdlbWV0YWRhdGEnDQogICAgICAgICAgICAgICAgICAgICk7DQogICAgDQogICAgZm9yZWFjaCgkbGFuZ3MgYXMgJGxhbmcpDQogICAgew0KICAgICAgZm9yZWFjaCgkcmVwbGFjZSBhcyAkcHJvcCkNCiAgICAgIHsNCiAgICAgICAgJHByb3BlcnR5X25hbWUgPSAnX18nIC4gJGxhbmctPmdldF9sYW5nY29kZSgpIC4gJ18nIC4gJHByb3AgLiAnX18nOw0KICAgICAgICANCiAgICAgICAgc3dpdGNoICgkcHJvcCkNCiAgICAgICAgew0KICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJvcHNbJHByb3BlcnR5X25hbWVdWydsYW5nY29kZSddID0gJGxhbmctPmdldF9sYW5nY29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJvcHNbJHByb3BlcnR5X25hbWVdWydsYWJlbCddID0gJzxsYWJlbCBmb3I9IicNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJHByb3BlcnR5X25hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyI+Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkbW9kLT5MYW5nKCdjb250ZW50XycgLiAkcHJvcCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJzo8L2xhYmVsPic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICRwcm9wc1skcHJvcGVydHlfbmFtZV1bJ2hlbHAnXSA9ICcmbmJzcDsnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gY21zX2FkbWluX3V0aWxzOjpnZXRfaGVscF90YWcoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFcmlkdScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX2NvbnRlbnRfJyAuICRwcm9wLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdoZWxwX3RpdGxlX2NvbnRlbnRfJyAuICRwcm9wKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJGlucHV0ID0gQ21zRm9ybVV0aWxzOjpjcmVhdGVfdGV4dGFyZWEoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnID0+ICRwcm9wZXJ0eV9uYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnID0+ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCRwcm9wZXJ0eV9uYW1lKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJyA9PiA4MCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcgPT4gMTAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnY2xhc3NuYW1lJyA9PiAncGFnZXNtYWxsdGV4dGFyZWEnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnID0+ICdpZF8nIC4gJHByb3BlcnR5X25hbWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZW5hYmxld3lzaXd5ZycgPT4gKGJvb2wpJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2Rpc2FibGVfd3lzaXd5ZycpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbmFibGV3eXNpd3lnJyA9PiAhKGJvb2wpJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2Rpc2FibGVfd3lzaXd5ZycpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICRwcm9wc1skcHJvcGVydHlfbmFtZV1bJ2lucHV0J10gPSAkaW5wdXQ7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICANCiAgICAgICAgICBjYXNlICdwYWdlbWV0YWRhdGEnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJvcHNbJHByb3BlcnR5X25hbWVdWydsYW5nY29kZSddID0gJGxhbmctPmdldF9sYW5nY29kZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJvcHNbJHByb3BlcnR5X25hbWVdWydsYWJlbCddID0gJzxsYWJlbCBmb3I9IicNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJHByb3BlcnR5X25hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyI+Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkbW9kLT5MYW5nKCdjb250ZW50XycgLiAkcHJvcCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJzo8L2xhYmVsPic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICRwcm9wc1skcHJvcGVydHlfbmFtZV1bJ2hlbHAnXSA9ICcmbmJzcDsnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gY21zX2FkbWluX3V0aWxzOjpnZXRfaGVscF90YWcoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFcmlkdScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX2NvbnRlbnRfJyAuICRwcm9wLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdoZWxwX3RpdGxlX2NvbnRlbnRfJyAuICRwcm9wKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJGlucHV0ID0gQ21zRm9ybVV0aWxzOjpjcmVhdGVfdGV4dGFyZWEoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnID0+ICRwcm9wZXJ0eV9uYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnID0+ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCRwcm9wZXJ0eV9uYW1lKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJyA9PiA4MCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcgPT4gMywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYXNzbmFtZScgPT4gJ3BhZ2VzbWFsbHRleHRhcmVhJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyA9PiAnaWRfJyAuICRwcm9wZXJ0eV9uYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICRwcm9wc1skcHJvcGVydHlfbmFtZV1bJ2lucHV0J10gPSAkaW5wdXQ7DQogICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICANCiAgICAgICAgICAjYWxsIHRoZSByZXN0IHNob3VsZCBiZSB0ZXh0IHR5cGUgaW5wdXRzDQogICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICRwcm9wc1skcHJvcGVydHlfbmFtZV1bJ2xhbmdjb2RlJ10gPSAkbGFuZy0+Z2V0X2xhbmdjb2RlKCk7DQogICAgICAgICAgICAkcHJvcHNbJHByb3BlcnR5X25hbWVdWydsYWJlbCddID0gJzxsYWJlbCBmb3I9IicNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRwcm9wZXJ0eV9uYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnIj4nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkbW9kLT5MYW5nKCdjb250ZW50XycgLiAkcHJvcCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICc6PC9sYWJlbD4nOw0KICAgICAgICAgICAgJHByb3BzWyRwcm9wZXJ0eV9uYW1lXVsnaGVscCddID0gJyZuYnNwOycNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gY21zX2FkbWluX3V0aWxzOjpnZXRfaGVscF90YWcoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRXJpZHUnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfY29udGVudF8nIC4gJHByb3AsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdoZWxwX3RpdGxlX2NvbnRlbnRfJyAuICRwcm9wKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAkcHJvcHNbJHByb3BlcnR5X25hbWVdWydpbnB1dCddID0gJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ2lkXycgLiAkcHJvcGVydHlfbmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyIgbmFtZT0iJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJHByb3BlcnR5X25hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICciIHZhbHVlPSInDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiBjbXNfaHRtbGVudGl0aWVzKCAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgkcHJvcGVydHlfbmFtZSkgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyIgLz4nOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgICBpZiggaW5fYXJyYXkoICRvbmUsIGFycmF5X2tleXMoJHByb3BzKSApICkNCiAgICB7DQogICAgICByZXR1cm4gYXJyYXkoJHByb3BzWyRvbmVdWydsYWJlbCddIC4gJyZuYnNwOycgLiAkcHJvcHNbJG9uZV1bJ2hlbHAnXSwgICRwcm9wc1skb25lXVsnaW5wdXQnXSk7DQogICAgfQ0KICANCiAgICByZXR1cm4gcGFyZW50OjpkaXNwbGF5X3NpbmdsZV9lbGVtZW50KCRvbmUsICRhZGRpbmcpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gRmlsbFBhcmFtcygkcGFyYW1zLCAkZWRpdGluZyA9IGZhbHNlKQ0KICB7DQogICAgDQogICAgaWYgKGlzc2V0KCRwYXJhbXMpKQ0KICAgIHsNCiAgICAgICRyZXBsYWNlID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAnY29udGVudCcsDQogICAgICAgICAgICAgICAgICAgICAgICAnbWVudXRleHQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJywNCiAgICAgICAgICAgICAgICAgICAgICAgICd0aXRsZWF0dHJpYnV0ZScsDQogICAgICAgICAgICAgICAgICAgICAgICAncGFnZW1ldGFkYXRhJw0KICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICANCiAgICAgICRwYXJhbWV0ZXJzID0gYXJyYXkoKTsNCiAgICAgICRsYW5ncyA9IFxFcmlkdVxsYW5ndWFnZXM6OmdldGxhbmd1YWdlcyhUUlVFKTsNCiAgDQogICAgICBmb3JlYWNoKCRsYW5ncyBhcyAkbGFuZykNCiAgICAgIHsNCiAgICAgICAgZm9yZWFjaCgkcmVwbGFjZSBhcyAkb25lKQ0KICAgICAgICB7DQogICAgICAgICAgJHBhcmFtZXRlcnNbXSA9ICdfXycgLiAkbGFuZy0+Z2V0X2xhbmdjb2RlKCkgLiAnXycgLiAkb25lIC4gJ19fJzsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgDQogICAgICBmb3JlYWNoICgkcGFyYW1ldGVycyBhcyAkb25lcGFyYW0pDQogICAgICB7DQogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWyRvbmVwYXJhbV0pKQ0KICAgICAgICB7DQogICAgICAgICAgJHRoaXMtPlNldFByb3BlcnR5VmFsdWUoJG9uZXBhcmFtLCAkcGFyYW1zWyRvbmVwYXJhbV0pOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICANCiAgICAkdGhpcy0+U2V0Q2FjaGFibGUoZmFsc2UpOw0KICAgIHBhcmVudDo6RmlsbFBhcmFtcygkcGFyYW1zKTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gU2hvdygkcGFyYW0gPSAnY29udGVudF9lbicpDQogIHsNCiAgICAkcmVwbGFjZSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICdjb250ZW50X2VuJywNCiAgICAgICAgICAgICAgICAgICAgICAncGFnZW1ldGFkYXRhJw0KICAgICAgICAgICAgICAgICAgICApOw0KICAgIA0KICAgIGlmKCBpbl9hcnJheSgkcGFyYW0sICRyZXBsYWNlKSApDQogICAgew0KICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0VyaWR1Jyk7DQogICAgICAkbW9kLT5hc3NpZ25fcGFnZV9sYW5nKCk7DQoNCiAgICAgIGlmKCRwYXJhbSA9PSAnY29udGVudF9lbicpDQogICAgICB7DQogICAgICAgICRwcm9wZXJ0eV9uYW1lID0gJ19fJyAuICRtb2QtPmN1cnJlbnRfbGFuZ2NvZGUgLiAnX2NvbnRlbnRfXyc7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICRwcm9wZXJ0eV9uYW1lID0gJ19fJyAuICRtb2QtPmN1cnJlbnRfbGFuZ2NvZGUgLiAnXycgLiAkcGFyYW0gLiAnX18nOw0KICAgICAgfQ0KICAgICAgDQogICAgICAkb3V0cHV0ID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJHByb3BlcnR5X25hbWUpOw0KICANCiAgICAgIHJldHVybiAkb3V0cHV0Ow0KICAgIH0NCg0KICAgIHJldHVybiBwYXJlbnQ6OlNob3coJHBhcmFtKTsNCiAgfQ0KfQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.eridu_page_alias.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmNsYXNzIGVyaWR1X3BhZ2VfYWxpYXMgZXh0ZW5kcyBDb250ZW50DQp7DQogIA0KICBwcml2YXRlIGZ1bmN0aW9uIF9yZXBsYWNlX3Jvb3QoJHJvb3QsICR0YXJnZXQpDQogIHsNCiAgICAkcm9vdCA9IGV4cGxvZGUoJy4nLCAkcm9vdCk7DQogICAgJHRhcmdldCA9IGV4cGxvZGUoJy4nLCAkdGFyZ2V0KTsNCiAgDQogICAgZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkcm9vdCk7ICRpKyspDQogICAgew0KICAgICAgJHRhcmdldFskaV0gPSAkcm9vdFskaV07DQogICAgfQ0KICAgIA0KICAgIHJldHVybiBpbXBsb2RlKCcuJywgJHRhcmdldCk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBGcmllbmRseU5hbWUoKQ0KICB7DQogICAgcmV0dXJuIGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKS0+TGFuZyhnZXRfY2xhc3MoKSk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBOYW1lKCkNCiAgew0KICAgIGlmKCBcY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkNCiAgICB7DQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsNCiAgICAgICRtb2QtPmFzc2lnbl9wYWdlX2xhbmcoKTsNCiAgICAgICRjb250ZW50b3BzID0gXENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsNCiAgICAgICRhc3NpZ25lZCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCggJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2FsaWFzX3RhcmdldCcpICktPkhpZXJhcmNoeSgpOw0KICAgICAgJHJvb3QgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UtPmdldF9yb290X2lkKCkgKS0+SGllcmFyY2h5KCk7DQogICAgICAkb3V0cHV0X3Bvc2l0aW9uID0gJHRoaXMtPl9yZXBsYWNlX3Jvb3QoJHJvb3QsICRhc3NpZ25lZCk7DQogICAgICAkb3V0cHV0X2lkID0gJGNvbnRlbnRvcHMtPkdldFBhZ2VJREZyb21IaWVyYXJjaHkoJG91dHB1dF9wb3NpdGlvbik7DQogICAgICAkb3V0cHV0ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCRvdXRwdXRfaWQpOw0KICAgICAgcmV0dXJuICRvdXRwdXQtPk5hbWUoKTsNCiAgICB9DQogIA0KICAgIHJldHVybiBwYXJlbnQ6Ok5hbWUoKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIE1lbnVUZXh0KCkNCiAgew0KICAgIGlmKCBcY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkNCiAgICB7DQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsNCiAgICAgICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UgPSAgXEVyaWR1XGxhbmd1YWdlczo6R2V0UmVxdWVzdExhbmcoKTsNCiAgICAgIFxFcmlkdVxsYW5ndWFnZXM6OlNldEN1cnJlbnRMYW5nKCRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UpOw0KICAgICAgJG1vZC0+Y3VycmVudF9sYW5nY29kZSA9ICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UtPmdldF9sYW5nY29kZSgpOw0KICAgICAgJGNvbnRlbnRvcHMgPSBcQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOw0KICAgICAgJGFzc2lnbmVkID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnYWxpYXNfdGFyZ2V0JykgKS0+SGllcmFyY2h5KCk7DQogICAgICAkcm9vdCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCggJG1vZC0+Y3VycmVudF9sYW5ndWFnZS0+Z2V0X3Jvb3RfaWQoKSApLT5IaWVyYXJjaHkoKTsNCiAgICAgICRvdXRwdXRfcG9zaXRpb24gPSAkdGhpcy0+X3JlcGxhY2Vfcm9vdCgkcm9vdCwgJGFzc2lnbmVkKTsNCiAgICAgICRvdXRwdXRfaWQgPSAkY29udGVudG9wcy0+R2V0UGFnZUlERnJvbUhpZXJhcmNoeSgkb3V0cHV0X3Bvc2l0aW9uKTsNCiAgICAgICRvdXRwdXQgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoJG91dHB1dF9pZCk7DQogICAgICByZXR1cm4gJG91dHB1dC0+TWVudVRleHQoKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHBhcmVudDo6TWVudVRleHQoKTsNCiAgfQ0KICANCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBNZXRhZGF0YSgpDQogIHsNCiAgICBpZiggXGNtc21zKCktPmlzX2Zyb250ZW5kX3JlcXVlc3QoKSApDQogICAgew0KICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0VyaWR1Jyk7DQogICAgICAkY29udGVudG9wcyA9IFxDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCk7DQogICAgICAkYXNzaWduZWQgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdhbGlhc190YXJnZXQnKSApLT5IaWVyYXJjaHkoKTsNCiAgICAgICRyb290ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCAkbW9kLT5jdXJyZW50X2xhbmd1YWdlLT5nZXRfcm9vdF9pZCgpICktPkhpZXJhcmNoeSgpOw0KICAgICAgJG91dHB1dF9wb3NpdGlvbiA9ICR0aGlzLT5fcmVwbGFjZV9yb290KCRyb290LCAkYXNzaWduZWQpOw0KICAgICAgJG91dHB1dF9pZCA9ICRjb250ZW50b3BzLT5HZXRQYWdlSURGcm9tSGllcmFyY2h5KCRvdXRwdXRfcG9zaXRpb24pOw0KICAgICAgJG91dHB1dCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkb3V0cHV0X2lkKTsNCiAgICAgIHJldHVybiAkb3V0cHV0LT5NZXRhZGF0YSgpOw0KICAgIH0NCiAgDQogICAgcmV0dXJuIHBhcmVudDo6TWV0YWRhdGEoKTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIFRpdGxlQXR0cmlidXRlKCkNCiAgew0KICAgIGlmKCBcY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkNCiAgICB7DQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsNCiAgICAgICRjb250ZW50b3BzID0gXENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsNCiAgICAgICRhc3NpZ25lZCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCggJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2FsaWFzX3RhcmdldCcpICktPkhpZXJhcmNoeSgpOw0KICAgICAgJHJvb3QgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UtPmdldF9yb290X2lkKCkgKS0+SGllcmFyY2h5KCk7DQogICAgICAkb3V0cHV0X3Bvc2l0aW9uID0gJHRoaXMtPl9yZXBsYWNlX3Jvb3QoJHJvb3QsICRhc3NpZ25lZCk7DQogICAgICAkb3V0cHV0X2lkID0gJGNvbnRlbnRvcHMtPkdldFBhZ2VJREZyb21IaWVyYXJjaHkoJG91dHB1dF9wb3NpdGlvbik7DQogICAgICAkb3V0cHV0ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCRvdXRwdXRfaWQpOw0KICAgICAgcmV0dXJuICRvdXRwdXQtPlRpdGxlQXR0cmlidXRlKCk7DQogICAgfQ0KICANCiAgICByZXR1cm4gcGFyZW50OjpUaXRsZUF0dHJpYnV0ZSgpOw0KICB9DQoJDQoJZnVuY3Rpb24gSXNEZWZhdWx0UG9zc2libGUoKQ0KCXsNCgkJcmV0dXJuIFRSVUU7DQoJfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIEdldE1vZGlmaWVkRGF0ZSgpDQogIHsNCiAgICAvLyB0aGlzIHdpbGwgZm9yY2UgdGhlIHRlbXBsYXRlIHRvIGJlIHJlY29tcGlsZWQgb24gZnJvbnRlbmQgcmVxdWVzdHMNCiAgICBpZiggY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkgcmV0dXJuIHRpbWUoKTsNCiAgICByZXR1cm4gcGFyZW50OjpHZXRNb2RpZmllZERhdGUoKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIFNldFByb3BlcnRpZXMoKQ0KICB7DQogICAgcGFyZW50OjpTZXRQcm9wZXJ0aWVzKCk7DQogICAgDQogICAgJHRoaXMtPkFkZFByb3BlcnR5KCdhbGlhc190YXJnZXQnLCAyLCBzZWxmOjpUQUJfTUFJTik7DQogICAgDQogICAgIyBsb2FkIGFuZCBzaG93IGNvbnRlbnQgYmxvY2tzPyAobWFpbiBvciBjdXN0b20pDQogICAgJHRoaXMtPmRvTG9hZENvbnRlbnRCbG9ja3MgPSBmYWxzZTsNCg0KCSAgI1R1cm4gb2ZmIGNhY2hpbmcNCgkgICR0aGlzLT5tQ2FjaGFibGUgPSBmYWxzZTsNCiAgfQ0KIA0KICBwcm90ZWN0ZWQgZnVuY3Rpb24gZGlzcGxheV9zaW5nbGVfZWxlbWVudCgkb25lLCAkYWRkaW5nKQ0KICB7DQogICAgJGNvbnRlbnRvcHMgPSBcY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsNCiAgICANCiAgICBzd2l0Y2ggKCRvbmUpIA0KICAgIHsNCiAgICAgIGNhc2UgJ2NvbnRlbnRfZW4nOg0KICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnJywgJycpOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAnYWxpYXNfdGFyZ2V0JzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGFyZyA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdhbGlhc190YXJnZXQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmllbGQgPSAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJHRoaXMtPm1JZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhcmcsICdhbGlhc190YXJnZXQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIGFycmF5KCBcbGFuZygndGFyZ2V0JykgLiAnOicgLCAkZmllbGQpOw0KICAgICAgYnJlYWs7DQoNCiAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudDo6ZGlzcGxheV9zaW5nbGVfZWxlbWVudCgkb25lLCAkYWRkaW5nKTsNCg0KICAgIH0NCiAgICANCiAgfQ0KDQogIHB1YmxpYyBmdW5jdGlvbiBGaWxsUGFyYW1zKCRwYXJhbXMsICRlZGl0aW5nID0gZmFsc2UpDQogIHsNCgkgIGlmIChpc3NldCgkcGFyYW1zKSkNCgkgIHsNCgkJICAkcGFyYW1ldGVycyA9IGFycmF5KCdhbGlhc190YXJnZXQnKTsNCiAgICAgIA0KCQkgIGZvcmVhY2ggKCRwYXJhbWV0ZXJzIGFzICRvbmVwYXJhbSkNCgkJICB7DQoJCQkgIA0KICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1skb25lcGFyYW1dKSkNCgkJCSAgew0KCQkJCSAgJHRoaXMtPlNldFByb3BlcnR5VmFsdWUoJG9uZXBhcmFtLCAkcGFyYW1zWyRvbmVwYXJhbV0pOw0KCQkJICB9DQogICAgICAgIA0KCQkgIH0NCgkgIH0NCiAgICANCgkgIHBhcmVudDo6RmlsbFBhcmFtcygkcGFyYW1zKTsNCiAgfQ0KICANCiAgZnVuY3Rpb24gU2hvdygkcGFyYW0gPSAnY29udGVudF9lbicpDQogIHsNCiAgICBpZiAoJHBhcmFtID09ICdjb250ZW50X2VuJykNCiAgICB7DQogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnRXJpZHUnKTsNCiAgICAgICRtb2QtPmFzc2lnbl9wYWdlX2xhbmcoKTsNCiAgICAgICRjb250ZW50b3BzID0gXENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsNCiAgICAgICRhc3NpZ25lZCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCggJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2FsaWFzX3RhcmdldCcpICktPkhpZXJhcmNoeSgpOw0KICAgICAgJHJvb3QgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoICRtb2QtPmN1cnJlbnRfbGFuZ3VhZ2UtPmdldF9yb290X2lkKCkgKS0+SGllcmFyY2h5KCk7DQogICAgICAkb3V0cHV0X3Bvc2l0aW9uID0gJHRoaXMtPl9yZXBsYWNlX3Jvb3QoJHJvb3QsICRhc3NpZ25lZCk7DQogICAgICAkb3V0cHV0X2lkID0gJGNvbnRlbnRvcHMtPkdldFBhZ2VJREZyb21IaWVyYXJjaHkoJG91dHB1dF9wb3NpdGlvbik7DQogICAgICAkb3V0cHV0ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCRvdXRwdXRfaWQpOw0KICAgICAgaWYoICFpc19vYmplY3QoJG91dHB1dCkgKQ0KICAgICAgew0KICAgICAgICAkb3V0cHV0ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnYWxpYXNfdGFyZ2V0JykgKTsNCiAgICAgIH0NCiAgICAgICRyZXQgPSAkb3V0cHV0LT5TaG93KCRwYXJhbSk7DQogICAgICByZXR1cm4gJHJldDsgIA0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgcmV0dXJuIHBhcmVudDo6U2hvdygkcGFyYW0pOw0KICAgIH0NCiAgfQ0KfQ0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.language.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCm5hbWVzcGFjZSBFcmlkdTsNCg0KY2xhc3MgbGFuZ3VhZ2UNCnsNCiAgcHJpdmF0ZSAkX2lkOw0KICBwcml2YXRlICRfbmFtZTsNCiAgcHJpdmF0ZSAkX21lbnVfbmFtZTsNCiAgcHJpdmF0ZSAkX2xhbmdjb2RlOw0KICBwcml2YXRlICRfaXNvXzYzOV8xOw0KICBwcml2YXRlICRfaXNvXzMxNjZfMV9hbHBoYV8yOw0KICBwcml2YXRlICRfcm9vdF9pZDsNCiAgcHJpdmF0ZSAkX2RlZmF1bHRfaWQ7DQogIHByaXZhdGUgJF9hY3RpdmU7DQogIHByaXZhdGUgJF9pdGVtX29yZGVyOw0KICBwcml2YXRlICRfYXNzb2NpYXRlZF9kYXRhID0gYXJyYXkoKTsNCiAgDQogIHByaXZhdGUgJF9tZW1iZXJzID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21lbnVfbmFtZScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFuZ2NvZGUnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzb182MzlfMScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNvXzMxNjZfMV9hbHBoYV8yJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb290X2lkJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0X2lkJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0ZW1fb3JkZXInLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Fzc29jaWF0ZWRfZGF0YScNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICANCiAgcHJpdmF0ZSBmdW5jdGlvbiBfYnVpbGRfZnJvbV9kYXRhKCRkYXRhKQ0KICB7DQogICAgICAgICAgICAgICAgDQogICAgZm9yZWFjaCgkdGhpcy0+X21lbWJlcnMgYXMgJG1lbWJlcikNCiAgICB7DQogICAgICAkbW5hbWUgPSAnXycgLiAkbWVtYmVyOw0KICAgICAgDQogICAgICBpZiggJG1lbWJlciA9PSAnYXNzb2NpYXRlZF9kYXRhJyAmJiBpc3NldCgkZGF0YVskbWVtYmVyXSkgKQ0KICAgICAgew0KDQogICAgICAgIGlmKCAhaXNfYXJyYXkoJGRhdGFbJG1lbWJlcl0pICkNCiAgICAgICAgew0KICAgICAgICAgICR0aGlzLT4kbW5hbWUgPSBhcnJheSgpOw0KICAgICAgICB9DQogICAgICAgIGVsc2UNCiAgICAgICAgew0KICAgICAgICAgICR0aGlzLT4kbW5hbWUgPSAkZGF0YVskbWVtYmVyXTsNCiAgICAgICAgfQ0KDQogICAgICAgIHVuc2V0KCRkYXRhWyRtZW1iZXJdKTsNCiAgICAgICAgY29udGludWU7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgIGlmKCBpc3NldCgkZGF0YVskbWVtYmVyXSkgKSAkdGhpcy0+JG1uYW1lID0gJGRhdGFbJG1lbWJlcl07DQogICAgICAgIHsNCiAgICAgICAgICB1bnNldCgkZGF0YVskbWVtYmVyXSk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgIyB3aGF0ZXZlciB3ZSBoYXZlIGxlZnQgaGFzIHRvIGJlICJhc3NvY2lhdGVkX2RhdGEiDQogICAgJHRoaXMtPl9hc3NvY2lhdGVkX2RhdGEgPSBhcnJheV9tZXJnZSgkdGhpcy0+X2Fzc29jaWF0ZWRfZGF0YSwgJGRhdGEpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoICRkYXRhID0gYXJyYXkoKSApDQogIHsNCiAgICBpZiggaXNfYXJyYXkoJGRhdGEpICYmICFlbXB0eSgkZGF0YSkgKQ0KICAgIHsNCiAgICAgICR0aGlzLT5fYnVpbGRfZnJvbV9kYXRhKCRkYXRhKTsNCiAgICB9DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBfX2NhbGwoJG5hbWUsICRhcmd1bWVudHMpDQogIHsNCiAgICBpZihzdGFydHN3aXRoKCRuYW1lLCAnZ2V0XycpKQ0KICAgIHsNCiAgICAgICRhZCA9IHN0cl9yZXBsYWNlKCdnZXRfJywgJycsICRuYW1lKTsgDQogICAgICBpZiggaXNzZXQoJHRoaXMtPl9hc3NvY2lhdGVkX2RhdGFbJGFkXSkgKSByZXR1cm4gJHRoaXMtPl9hc3NvY2lhdGVkX2RhdGFbJGFkXTsNCiAgICB9DQogICAgDQogICAgaWYoc3RhcnRzd2l0aCgkbmFtZSwgJ3NldF8nKSkNCiAgICB7DQogICAgICAkYWQgPSBzdHJfcmVwbGFjZSgnc2V0XycsICcnLCAkbmFtZSk7DQogICAgICAkdGhpcy0+X2Fzc29jaWF0ZWRfZGF0YVskYWRdID0gJGFyZ3VtZW50c1swXTsgIA0KICAgIH0NCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIF9fdG9TdHJpbmcoKQ0KICB7DQogICAgJHJldCA9IGFycmF5KCk7DQogICAgZm9yZWFjaCgkdGhpcy0+X21lbWJlcnMgYXMgJG1lbWJlcikNCiAgICB7DQogICAgICAkbW5hbWUgPSAnXycgLiAkbWVtYmVyOw0KICAgICAgDQogICAgICBpZigkbWVtYmVyID09ICdhc3NvY2lhdGVkX2RhdGEnKQ0KICAgICAgew0KICAgICAgICBmb3JlYWNoKCR0aGlzLT5fYXNzb2NpYXRlZF9kYXRhIGFzICRrID0+ICR2KQ0KICAgICAgICB7DQogICAgICAgICAgJHJldFtdPSAkayAuICc9JyAuICR2Ow0KICAgICAgICB9DQogICAgICAgIGNvbnRpbnVlOyAgIA0KICAgICAgfQ0KICAgICAgDQogICAgICAkcmV0W109ICRtZW1iZXIgLiAnPScgLiAkdGhpcy0+JG1uYW1lOyANCiAgICB9DQogICAgDQogICAgcmV0dXJuIGltcGxvZGUoJywnLCAkcmV0KTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIHRvQXJyYXkoKQ0KICB7DQogICAgJHRlcm1zID0gZXhwbG9kZSgnLCcsICR0aGlzLT5fX3RvU3RyaW5nKCkgKTsNCg0KICAgICRyZXQgPSBhcnJheSgpOw0KICAgIA0KICAgIGZvcmVhY2goJHRlcm1zIGFzICRvbmUpDQogICAgew0KICAgICAgJHRlcm0gPSBleHBsb2RlKCc9JywgJG9uZSk7DQogICAgICAkcmV0WyR0ZXJtWzBdXSA9ICR0ZXJtWzFdOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJHJldDsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIGZyb21BcnJheSggJGRhdGEgPSBhcnJheSgpICkNCiAgew0KICAgIGlmKCBpc19hcnJheSgkZGF0YSkgJiYgIWVtcHR5KCRkYXRhKSApDQogICAgew0KICAgICAgJHRoaXMtPl9idWlsZF9mcm9tX2RhdGEoJGRhdGEpOw0KICAgIH0NCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIHNldF9pZCgkdmFsdWUpDQogIHsNCiAgICAkdGhpcy0+X2lkID0gJHZhbHVlOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2lkKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X2lkOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gc2V0X25hbWUoJHZhbHVlKQ0KICB7DQogICAgJHRoaXMtPl9uYW1lID0gJHZhbHVlOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fbmFtZTsNCiAgfQ0KICAgIA0KICBwdWJsaWMgZnVuY3Rpb24gc2V0X21lbnVfbmFtZSgkdmFsdWUpDQogIHsNCiAgICAkdGhpcy0+X21lbnVfbmFtZSA9ICR2YWx1ZTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIGdldF9tZW51X25hbWUoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fbWVudV9uYW1lOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gc2V0X2xhbmdjb2RlKCR2YWx1ZSkNCiAgew0KICAgICR0aGlzLT5fbGFuZ2NvZGUgPSAkdmFsdWU7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGFuZ2NvZGUoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5fbGFuZ2NvZGU7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBzZXRfaXNvXzYzOV8xKCR2YWx1ZSkNCiAgew0KICAgICR0aGlzLT5fSVNPXzYzOV8xID0gc3RydG9sb3dlcigkdmFsdWUpOw0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2lzb182MzlfMSgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPl9pZDsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIHNldF9pc29fMzE2Nl8xX2FscGhhXzIoJHZhbHVlKQ0KICB7DQogICAgJHRoaXMtPl9pc29fMzE2Nl8xX2FscGhhXzIgPSBzdHJ0b3VwcGVyKCR2YWx1ZSk7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBnZXRfaXNvXzMxNjZfMV9hbHBoYV8yKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X2lzb18zMTY2XzFfYWxwaGFfMjsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIHNldF9kZWZhdWx0X2lkKCR2YWx1ZSkNCiAgew0KICAgICR0aGlzLT5fZGVmYXVsdF9pZCA9ICR2YWx1ZTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kZWZhdWx0X2lkKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X2RlZmF1bHRfaWQ7DQogIH0gIA0KICANCiAgcHVibGljIGZ1bmN0aW9uIHNldF9yb290X2lkKCR2YWx1ZSkNCiAgew0KICAgICR0aGlzLT5fcm9vdF9pZCA9ICR2YWx1ZTsNCiAgfQ0KICANCiAgcHVibGljIGZ1bmN0aW9uIGdldF9yb290X2lkKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+X3Jvb3RfaWQ7DQogIH0NCiAgDQogIHB1YmxpYyBmdW5jdGlvbiBnZXRfaHJlZmxhbmcoKQ0KICB7DQogICAgJHJldCA9IGlzc2V0KCR0aGlzLT5faXNvXzYzOV8xKSA/ICR0aGlzLT5faXNvXzYzOV8xIDogRkFMU0U7DQogICAgaWYoJHJldCkgJHJldCA9ICRyZXQgLiBpc3NldCgkdGhpcy0+X2lzb18zMTY2XzFfYWxwaGFfMikgPyAnLScgLiAkdGhpcy0+X2lzb18zMTY2XzFfYWxwaGFfMiA6ICcnOw0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2hyZWZsYW5nX2xvd2VyKCkNCiAgew0KICAgIHJldHVybiBzdHJ0b2xvd2VyKCAkdGhpcy0+Z2V0X2hyZWZsYW5nKCkgKTsNCiAgfSANCiAgIA0KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2hyZWZsYW5nX3VwcGVyKCkNCiAgew0KICAgIHJldHVybiBzdHJ0b3VwcGVyKCAkdGhpcy0+Z2V0X2hyZWZsYW5nKCkgKTsNCiAgfQ0KICANCiAgLyoqDQogICogc2F2ZXMgYSBsYW5ndWFnZSBpbnRvIHRoZSBkYg0KICAqIA0KICAqIG5vdGU6IGl0IGluc2VydHMgYSBuZXcgcmVjb3JkIGluIGNhc2UgaWQgPCAwDQogICogICAgICAgb3RoZXJ3aXNlIHVwZGF0ZXMNCiAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIFNhdmUoKQ0KICB7DQogICAgaWYoIGVtcHR5KCR0aGlzLT5fbGFuZ2NvZGUpIHx8IGVtcHR5KCR0aGlzLT5fbmFtZSkgICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ05vdCBlbm91Z2ggZGF0YScpOw0KICAgIA0KICAgICRjb2xzID0gJHRoaXMtPl9tZW1iZXJzOyAgDQogICAgJHRtcHZhbHMgPSAkdGhpcy0+dG9BcnJheSgpOw0KICAgIA0KICAgICNsb3NlIGlkDQogICAgYXJyYXlfc2hpZnQoJGNvbHMpOw0KICAgIA0KICAgICNidWlsZCBjb2xzIHBhcnQgb2YgcXVlcnkgYW5kIHZhbHVlcyBhcnJheSAgICANCiAgICAkdmFscyA9IGFycmF5KCk7DQogICAgDQogICAgZm9yZWFjaCgkY29scyBhcyAmJGNvbCkgDQogICAgew0KICAgICAgaWYoJGNvbCA9PSAnYXNzb2NpYXRlZF9kYXRhJykNCiAgICAgIHsNCiAgICAgICAgJHZhbHNbXSA9IHNlcmlhbGl6ZSgkdGhpcy0+eydfJyAuICRjb2x9KTsNCiAgICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgJHZhbHNbXSA9ICR0aGlzLT57J18nIC4gJGNvbH07DQogICAgICB9IA0KICAgICAgJGNvbCA9ICRjb2wgLiAnID0gPyc7ICAgICAgDQogICAgfSANCiAgICANCiAgICAkdGVybXMgPSBpbXBsb2RlKCcsICcsICRjb2xzKTsNCiAgICANCiAgICAgIA0KICAgIA0KICAgIGlmKCR0aGlzLT5faWQgPiAwKSAkdmFsc1tdID0gJHRoaXMtPl9pZDsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgJHF1ZXJ5ID0gKCR0aGlzLT5faWQgPCAxID8gJ0lOU0VSVCBJTlRPICcgOiAnVVBEQVRFICcpDQogICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkNCiAgICAgICAgICAuICdtb2R1bGVfZXJpZHVfbGFuZ3VhZ2VzIFNFVCAnIC4gJHRlcm1zIA0KICAgICAgICAgIC4gKCR0aGlzLT5faWQgPCAxID8gJycgOiAnIFdIRVJFIGlkPT8nKTsgDQogICAgDQogICAgJGRiID0gXGNtc21zKCktPkdldERiKCk7DQogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHZhbHMpOyANCiAgICBpZighJGRicmVzdWx0KSB0aHJvdyBuZXcgXEV4Y2VwdGlvbiggJGRiLT5FcnJvck1zZygpIC4gJyBRdWVyeTogJyAuICAkcXVlcnkpOw0KICB9DQogIA0KICAvKioNCiAgKiBsb2FkcyBhIGxhbmd1YWdlIGZyb20gdGhlIGRiDQogICogZ2l2ZW4gYW4gaWQNCiAgKiBhbiBhdHRlbXB0IHdpbGwgYmUgbWFkZSANCiAgKiB0byB1c2UgdGhlIGNsYXNzIG93biBpZCANCiAgKiBpZiB2YWxpZCBhbmQgbm8gJGlkIHBhcmFtZXRlciBwcm92aWRlZA0KICAqIG90aGVyd2lzZSByYWlzZXMgYW4gZXhjZXB0aW9uDQogICogDQogICogQHBhcmFtIG1peGVkICRpZA0KICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gTG9hZCgkaWQgPSAtMSkNCiAgew0KICAgIGlmKCRpZCA8IDEgJiYgJHRoaXMtPl9pZCA8IDEpIHRocm93IG5ldyBcRXhjZXB0aW9uKCdJZCBtaXNzaW5nIGZyb20gb3BlcmF0aW9uJyk7DQogICAgaWYoJHRoaXMtPl9pZCA+IDEgJiYgJGlkIDwgMSkgJGlkID0gJHRoaXMtPl9pZDsgDQogICAgDQogICAgJGRiID0gXGNtc21zKCktPkdldERiKCk7DQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ3VhZ2VzIFdIRVJFIGlkPT8nOw0KICAgICRkYnJlc3VsdCA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGlkKSApOw0KICAgIA0KICAgIGlmKEZBTFNFID09PSAkZGJyZXN1bHQpIHRocm93IG5ldyBcRXhjZXB0aW9uKHNlbGY6OiRfZGItPkVycm9yTXNnKCkgKTsNCiAgICBpZiggIWVtcHR5KCRkYnJlc3VsdFsnYXNzb2NpYXRlZF9kYXRhJ10pICkgJGRicmVzdWx0Wydhc3NvY2lhdGVkX2RhdGEnXSA9IHVuc2VyaWFsaXplKCRkYnJlc3VsdFsnYXNzb2NpYXRlZF9kYXRhJ10pOw0KICAgIA0KICAgICR0aGlzLT5fYnVpbGRfZnJvbV9kYXRhKCRkYnJlc3VsdCk7IA0KICB9DQogIA0KfSAgDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.languages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCm5hbWVzcGFjZSBFcmlkdTsNCmNsYXNzIGxhbmd1YWdlcw0Kew0KICBwcml2YXRlIHN0YXRpYyAkX2NtczsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9kYjsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9lcmlkdTsNCiAgc3RhdGljIHByaXZhdGUgJF9sYW5ndWFnZXMgPSBhcnJheSgpOw0KICBzdGF0aWMgcHJpdmF0ZSAkX2F2YWlsYWJsZV9sYW5ndWFnZXMgPSBhcnJheSgpOw0KICBzdGF0aWMgcHJpdmF0ZSAkX2N1cnJlbnRfbGFuZ3VhZ2UgPSBOVUxMOw0KICBzdGF0aWMgcHJpdmF0ZSAkX2N1cnJlbnRfcm9vdF9pZCA9IE5VTEw7DQogIHByaXZhdGUgc3RhdGljICRfaW5pdGl0YWxpemVkOw0KDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9pbml0aWFsaXplKCkNCiAgew0KICAgIGlmKCFzZWxmOjokX2luaXRpdGFsaXplZCkNCiAgICB7DQogICAgICBzZWxmOjokX2NtcyA9IFxjbXNtcygpOw0KICAgICAgc2VsZjo6JF9kYiA9IHNlbGY6OiRfY21zLT5HZXREYigpOw0KICAgICAgLy9zZWxmOjokX2VyaWR1ID0gXE1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdFcmlkdScsICcnLCBUUlVFKTsNCiAgICAgIHNlbGY6OiRfZXJpZHUgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdFcmlkdScpOw0KICAgICAgc2VsZjo6JF9pbml0aXRhbGl6ZWQgPSBUUlVFOw0KICAgIH0NCiAgfQ0KDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9mcm9tX2RiKCRpbmNsdWRlX2luYWN0aXZlID0gRkFMU0UpDQogIHsNCiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOw0KICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcNCiAgICAgICAgICAgIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5ndWFnZXMgJw0KICAgICAgICAgICAgLiggJGluY2x1ZGVfaW5hY3RpdmUgPyAnJyA6ICdXSEVSRSBhY3RpdmUgPSAxJykgLiAnIE9SREVSIEJZIGl0ZW1fb3JkZXInOw0KDQogICAgJGRicmVzdWx0ID0gc2VsZjo6JF9kYi0+R2V0QWxsKCRxdWVyeSk7DQogICAgaWYoRkFMU0UgPT09ICRkYnJlc3VsdCkgdGhyb3cgbmV3IFxFeGNlcHRpb24oc2VsZjo6JF9kYi0+RXJyb3JNc2coKSApOw0KICAgIA0KICAgIHJldHVybiAkZGJyZXN1bHQ7ICAgDQogIH0NCiAgDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9jYWxjdWxhdGVfY3VycmVudCgkcm9vdF9pZCkNCiAgeyAgICANCiAgICBpZiggIWlzc2V0KCRyb290X2lkKSB8fCAkcm9vdF9pZCA8IDEpIHJldHVybjsNCiAgICANCiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOw0KICAgICRsYW5ncyA9IHNlbGY6OmdldGxhbmd1YWdlcygpOw0KDQogICAgZm9yZWFjaCgkbGFuZ3MgYXMgJGxhbmd1YWdlKQ0KICAgIHsNCiAgICAgIGlmKCRsYW5ndWFnZS0+Z2V0X3Jvb3RfaWQoKSA9PSAkcm9vdF9pZCkNCiAgICAgIHsNCiAgICAgICAgc2VsZjo6JF9jdXJyZW50X2xhbmd1YWdlID0gJGxhbmd1YWdlOw0KICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgICB9ICAgICAgDQogDQogICAgcmV0dXJuIHNlbGY6OiRfY3VycmVudF9sYW5ndWFnZTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2J1aWxkX2RvbWFpbigpDQogIHsNCiAgICByZXR1cm4gaW1wbG9kZSggJy4nLCBhcnJheV9maWx0ZXIoIGZ1bmNfZ2V0X2FyZ3MoKSApICk7DQogIH0NCg0KICAvKioNCiAgICogQGRlcHJlY2F0ZWQNCiAgICogQHBhcmFtIG1peGVkICRsYW5nY29kZQ0KICAgKiBAcmV0dXJuIFN0ZENsYXNzDQogICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9sYW5ndWFnZV9kZXRhaWxzKCRsYW5nY29kZSkNCiAgew0KICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQoNCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5ndWFnZXMgV0hFUkUgbGFuZ2NvZGU9Pyc7DQogICAgJGRicmVzdWx0ID0gc2VsZjo6JF9kYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsYW5nY29kZSkgKTsNCg0KICAgIGlmKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkNCiAgICB7DQogICAgICAkaXRlbSA9IG5ldyBcU3RkQ2xhc3MoKTsNCg0KICAgICAgZm9yZWFjaCgkcm93IGFzICRrZXkgPT4gJHZhbHVlKQ0KICAgICAgew0KICAgICAgICAkaXRlbS0+JGtleSA9ICR2YWx1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICRpdGVtID0gRkFMU0U7DQogICAgfQ0KDQogICAgcmV0dXJuICRpdGVtOw0KICB9DQoNCiAgLyoqDQogICogcmV0dXJucyBhIGxhbmd1YWdlIG9iamVjdCBnaXZlbiBhbiBpZA0KICAqIA0KICAqIEBwYXJhbSBtaXhlZCAkdmFsdWUNCiAgKiBAcmV0dXJuIGxhbmd1YWdlDQogICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0TGFuZ0Zyb21JZCgkdmFsdWUpDQogIHsNCiAgICAkcmV0ID0gbmV3IFxFcmlkdVxsYW5ndWFnZSgpOw0KICAgIGlmKCR2YWx1ZSA+IDApICRyZXQtPkxvYWQoJHZhbHVlKTsgDQogICAgcmV0dXJuICRyZXQ7DQogIH0NCg0KICAvKioNCiAgICogcmV0cmlldmVzIGxhbmd1YWdlcyBmcm9tIHRoZSBkYXRhYmFzZQ0KICAgKiBAZGVwcmVjYXRlZA0KICAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXRyaWV2ZV9sYW5ndWFnZXMoJGFsbCA9IEZBTFNFKQ0KICB7DQogICAgcmV0dXJuIHNlbGY6Ol9mcm9tX2RiKCRhbGwpOw0KICB9DQoNCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRGb3JFZGl0aW5nKCkNCiAgew0KICAgIHJldHVybiBzZWxmOjpnZXRsYW5ndWFnZXMoVFJVRSk7DQogIH0NCg0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldGxhbmd1YWdlcygkaW5jbHVkZV9pbmFjdGl2ZSA9IEZBTFNFKQ0KICB7DQogICAgaWYoIGVtcHR5KHNlbGY6OiRfYXZhaWxhYmxlX2xhbmd1YWdlcykgKQ0KICAgIHsNCiAgICAgICRsYW5ncyA9IHNlbGY6Ol9mcm9tX2RiKFRSVUUpOw0KICAgICAgICAgICAgDQogICAgICBmb3JlYWNoKCRsYW5ncyBhcyAkbGFuZykNCiAgICAgIHsNCiAgICAgICAgJHRtcCA9IG5ldyBcRXJpZHVcbGFuZ3VhZ2UoKTsNCiAgICAgICAgJHRtcC0+TG9hZCgkbGFuZ1snaWQnXSk7DQogICAgICAgIGlmKCBlbXB0eSggJHRtcC0+Z2V0X2RvbWFpbigpICkgKSAkdG1wLT5zZXRfZG9tYWluKCBcRXJpZHVcdXRpbHM6OmdldF9jdXJyZW50X2hvc3QoKSApOw0KICAgICAgICBzZWxmOjokX2F2YWlsYWJsZV9sYW5ndWFnZXNbJGxhbmdbJ2xhbmdjb2RlJ11dID0gJHRtcDsNCiAgICAgIH0gICAgICANCiAgICB9DQogICAgDQogICAgaWYoIGVtcHR5KHNlbGY6OiRfbGFuZ3VhZ2VzKSApDQogICAgew0KICAgICAgJGxhbmdzID0gc2VsZjo6X2Zyb21fZGIoRkFMU0UpOw0KICAgICAgDQogICAgICBmb3JlYWNoKCRsYW5ncyBhcyAkbGFuZykNCiAgICAgIHsNCiAgICAgICAgJHRtcCA9IG5ldyBcRXJpZHVcbGFuZ3VhZ2UoKTsNCiAgICAgICAgJHRtcC0+TG9hZCgkbGFuZ1snaWQnXSk7ICAgDQogICAgICAgIGlmKCBlbXB0eSggJHRtcC0+Z2V0X2RvbWFpbigpICkgKSAkdG1wLT5zZXRfZG9tYWluKCBcRXJpZHVcdXRpbHM6OmdldF9jdXJyZW50X2hvc3QoKSApOyAgICAgDQogICAgICAgIHNlbGY6OiRfbGFuZ3VhZ2VzWyRsYW5nWydsYW5nY29kZSddXSA9ICR0bXA7DQogICAgICB9DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkaW5jbHVkZV9pbmFjdGl2ZSA/IHNlbGY6OiRfbGFuZ3VhZ2VzIDogc2VsZjo6JF9hdmFpbGFibGVfbGFuZ3VhZ2VzOw0KICB9DQoNCiAgLyoqDQogICogcmV0dXJucyB0aGUgbGFuZ3VhZ2UgY29tcHV0ZWQgZnJvbSBSZXF1ZXN0DQogICogb3IgZnJvbSB0aGUgcm9vdCBpZCBvZiB0aGUgaGllcmFyY2h5DQogICogd2lsbCBiZSByZXZpc2l0ZWQuLi4NCiAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRSZXF1ZXN0TGFuZygpDQogIHsNCiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOw0KICAgICRyZXQgPSBGQUxTRTsNCiAgICAkbGFuZ3MgPSBzZWxmOjpnZXRsYW5ndWFnZXMoKTsNCiAgICANCiAgICAjIGNhbiB3ZSB1c2UgaG9zdCBzZXQgZG9tYWluPw0KICAgICRob3N0ID0gXEVyaWR1XHV0aWxzOjpnZXRfY3VycmVudF9ob3N0KCk7DQogICAgJG5ha2VkX2RvbWFpbiA9IFxFcmlkdVx1dGlsczo6ZXh0cmFjdF9uYWtlZF9kb21haW4oJGhvc3QpOw0KICAgICR2YXJpYXRpb25zID0gXEVyaWR1XHV0aWxzOjpnZXRfZG9tYWluX3ZhcmlhdGlvbnMoJG5ha2VkX2RvbWFpbik7DQogICAgDQogICAgZm9yZWFjaCgkbGFuZ3MgYXMgJGxhbmcpDQogICAgew0KICAgICAgZm9yZWFjaCgkdmFyaWF0aW9ucyBhcyAkdmFyaWF0aW9uKQ0KICAgICAgew0KICAgICAgICAkZG9tYWluID0gc2VsZjo6X2J1aWxkX2RvbWFpbigNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWF0aW9uLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxFcmlkdVx1dGlsczo6ZXh0cmFjdF90bGQoJGhvc3QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgIA0KICAgICAgICBpZigkbGFuZy0+Z2V0X2RvbWFpbigpID09ICRkb21haW4pDQogICAgICAgIHsNCiAgICAgICAgICAkcmV0ID0gJGxhbmc7ICMgd2UndmUgZm91bmQgYSBsYW5nIGZyb20gY3VycmVudCBkb21haW4gLT4gcmV0dXJuIGl0IQ0KICAgICAgICAgIGJyZWFrIDI7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuICRyZXQ7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gQ29tcHV0ZUZyb21Sb290KCkNCiAgew0KICAgICRyb290X2lkID0gIFxFcmlkdVx1dGlsczo6Z2V0X3Jvb3RfaWQoKTsNCiAgICAkcm9vdF9sYW5nID0gc2VsZjo6X2NhbGN1bGF0ZV9jdXJyZW50KCRyb290X2lkKTsNCiAgICByZXR1cm4gaXNfb2JqZWN0KCRyb290X2xhbmcpID8gJHJvb3RfbGFuZyA6IEZBTFNFOw0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldEZyb21Db29raWUoJG5hbWUpDQogIHsNCiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOw0KICAgICRjb29raWVfbGFuZyA9IGlzc2V0KCRfQ09PS0lFWyRuYW1lXSkgPyAkX0NPT0tJRVskbmFtZV0gOiBGQUxTRTsNCiAgICAkbGFuZ3MgPSBzZWxmOjpnZXRsYW5ndWFnZXMoKTsNCiAgICANCiAgICBpZiggJGNvb2tpZV9sYW5nICYmIGlzc2V0KCRsYW5nc1skY29va2llX2xhbmddKSApDQogICAgew0KICAgICAgcmV0dXJuICRsYW5nc1skY29va2llX2xhbmddOw0KICAgIH0gDQogICAgICAgIA0KICAgIHJldHVybiAgRkFMU0U7DQogIH0NCg0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldEJyb3dzZXJMYW5nKCkNCiAgew0KICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgJGxhbmdzID0gc2VsZjo6Z2V0bGFuZ3VhZ2VzKCk7DQogICAgJGNvZGUgPSBcRXJpZHVcbGFuZ19vcHM6OkdldFByZWZlcnJlZEJyb3dzZXJMYW5nKCk7DQogICAgDQogICAgaWYoICFlbXB0eSgkY29kZSkgKQ0KICAgIHsNCiAgICAgIGZvcmVhY2goJGxhbmdzIGFzICRsYW5nKQ0KICAgICAgew0KICAgICAgICBpZigkbGFuZy0+Z2V0X2xhbmdjb2RlKCkgPT0gJGNvZGUpDQogICAgICAgIHsNCiAgICAgICAgICByZXR1cm4gJGxhbmc7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICMgc2ltaWxhciBhcyBhYm92ZSBidXQganVzdCB0byBtYWtlIHN1cmUgbm90aGluZyBoYXMgZmFpbGVkIGZvciBzb21lIHJlYXNvbg0KICAgICAgICAkdGVzdCA9ICRsYW5nLT5nZXRfaXNvXzYzOV8xKCkgLiAnLScgLiAkbGFuZy0+aXNvXzMxNjZfMV9hbHBoYV8yKCk7DQogICAgICAgIA0KICAgICAgICBpZigkdGVzdCA9PSAkY29kZSkNCiAgICAgICAgew0KICAgICAgICAgIHJldHVybiAkbGFuZzsNCiAgICAgICAgfSANCiAgICAgIH0NCiAgICAgIA0KICAgICAgIyB0aGUgYWJvdmUgc2hvdWxkIGhhdmUgYmVlbiBlbm91Z2ggdG8gcmV0dXJuIGEgcHJvcGVyIGxhbmd1YWdlDQogICAgICAjIGhvd2V2ZXIgaWYgdGhlIHVzZXIgZGlkbid0IGZvbGxvdyB0aGUgcnVsZXMgd2UgbWFrZSBhbm90aGVyIGF0ZW1wdCB0byBjb21wdXRlIHRoZSBsYW5ndWFnZQ0KICAgICAgDQogICAgICAkdG1wID0gZXhwbG9kZSgnLScsICRjb2RlKTsNCiAgICAgIGZvcmVhY2goJGxhbmdzIGFzICRsYW5nKQ0KICAgICAgew0KICAgICAgICAjIGJ5IHBhcnRpYWwgbGFuZyBjb2RlDQogICAgICAgIGlmKCRsYW5nLT5nZXRfbGFuZ2NvZGUoKSA9PSAkdG1wWzBdKQ0KICAgICAgICB7DQogICAgICAgICAgcmV0dXJuICRsYW5nOyANCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgIyBieSBpc28tNjM5LTEgbGFuZyBjb2RlDQogICAgICAgIGlmKCRsYW5nLT5nZXRfaXNvXzYzOV8xKCkgPT0gJHRtcFsxXSkNCiAgICAgICAgew0KICAgICAgICAgIHJldHVybiAkbGFuZzsgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICMgZmluYWx5IGJ5IGlzb18zMTY2LTEtYWxwaGEtMiBjb3VudHJ5IGNvZGUNCiAgICAgICAgaWYoJGxhbmctPmlzb18zMTY2XzFfYWxwaGFfMigpID09ICR0bXBbMF0pDQogICAgICAgIHsNCiAgICAgICAgICByZXR1cm4gJGxhbmc7IA0KICAgICAgICB9DQogICAgICB9DQogICAgICANCiAgICAgICMgYWxsIGZhaWxsaW5nIHdlIGp1c3QgcmV0dXJuIEZBTFNFDQogICAgICByZXR1cm4gRkFMU0U7ICANCiAgICB9DQogIH0NCiAgDQogIC8qKg0KICAqIGRldGVybWluZXMgd2hhdCBsYW5ndWFnZSB0byB1c2Ugb24gZWFjaCByZXF1ZXN0DQogICogDQogICogcHJpb3JpdGllcyBhcmUgKGhpZ2hlciB0byBsb3dlcik6DQogICogMS0gRkVVIChpZiBpbnN0YWxsZWQgYW5kIHByb3Blcmx5IHNldHVwKTsNCiAgKiAyLSBjb29raWUgKGlmIGV4aXN0cyk7DQogICogMy0gcmVxdWVzdGVkIGxhbmd1YWdlIChmcm9tIHVybCkgaWYgaXQgY291bGQgYmUgZGV0ZXJtaW5lZDsNCiAgKiA0LSBicm93c2VyIGxhbmcgaWYgaXQgaXMgYXZhaWxhYmxlIG9uIHRoZSBzZXQgbGFuZ3VhZ2VzIG9mIHRoZSBzaXRlDQogICogNS0gZnJvbSByb290IGlkIG9mIHRoZSBjdXJyZW50IHBhZ2UgYnJhbmNoIGlmIHRoZSBwYWdlIGV4aXN0cyAob3RoZXJ3aXNlIHJvb3QgY2FuJ3QgYmUgZGV0ZXJuaW5lZCkNCiAgKiA2LSBkZWZhdWx0IGxhbmd1YWdlOw0KICAqIA0KICAqIEByZXR1cm5zIGEgbGFuZyBvYmplY3QNCiAgKi8NCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2NvbXB1dGVfY3VycmVudF9sYW5nKCkNCiAgew0KICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgJGNvbXB1dGVkID0gYXJyYXkoKTsgICAgDQogICAgIyBnZXQgZGVmYXVsdCBsYW5nDQogICAgJGNvbXB1dGVkWydkZWZhdWx0X2xhbmcnXSAgID0gc2VsZjo6R2V0TGFuZ0Zyb21JZCggc2VsZjo6JF9lcmlkdS0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9sYW5ndWFnZScsIC0xKSApOw0KICAgICMgZ2V0IHJvb3QgbGFuZ3VhZ2UNCiAgICAkY29tcHV0ZWRbJ3Jvb3RfbGFuZyddICAgICAgPSBzZWxmOjpDb21wdXRlRnJvbVJvb3QoKTsNCiAgICAjIGdldCBicm93c2VyJ3MgbGFuZw0KICAgICRjb21wdXRlZFsnYnJvd3Nlcl9sYW5nJ10gICA9IHNlbGY6OkdldEJyb3dzZXJMYW5nKCk7DQogICAgIyBnZXQgcmVxdWVzdGVkIGxhbmcNCiAgICAkY29tcHV0ZWRbJ3JlcXVlc3RlZF9sYW5nJ10gPSBzZWxmOjpHZXRSZXF1ZXN0TGFuZygpOw0KICAgICMgZ2V0IGZyb20gY29va2llDQogICAgJGNvbmZpZyA9ICBcRXJpZHVcY29uZmlnOjpHZXRJbnN0YW5jZSgpOw0KICAgICRjb21wdXRlZFsnY29va2llX2xhbmcnXSAgICA9IHNlbGY6OkdldEZyb21Db29raWUoICRjb25maWdbJ2Nvb2tpZV9uYW1lJ10gKTsgDQogICAgIyBnZXQgZnJvbSBGRVUgbG9naWMgaGVyZSBuZXh0DQogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAgICAjIGZvciBub3cganVzdCBzZXQgdG8gRkFMU0UNCiAgICAkY29tcHV0ZWRbJ0ZFVV9sYW5nJ10gICAgICAgPSBGQUxTRTsNCiAgICANCiAgICAjIG5vdyBsZXRzIGNvbXB1dGUgYnkgcHJpb3JpdHkNCiAgICAkY29tcHV0ZWQgPSBhcnJheV9yZXZlcnNlKCRjb21wdXRlZCk7DQogICAgDQogICAgIyB3ZSByZXR1cm4gdGhlIGZpcnN0IGZvdW5kIGxhbmd1YWdlIG9iamVjdA0KICAgIGZvcmVhY2goJGNvbXB1dGVkIGFzICRrID0+ICRsYW5nKQ0KICAgIHsNCiAgICAgIGlmKCAkbGFuZyBpbnN0YW5jZW9mIFxFcmlkdVxsYW5ndWFnZSApDQogICAgICB7DQogICAgICAgIHJldHVybiAkbGFuZzsNCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgIyBzb21ldGhpbmcgaGFzIGdvbmUgZGVhZCB3cm9uZy4uLi4gICANCiAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignRXJyb3I6IGNvdWxkIG5vdCBkZXRlcm1pbmUgYSBsYW5ndWFnZSB0byBiZSB1c2VkIGZvciB0aGUgcmVxdWVzdCEnKTsNCiAgfSAgDQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIFNldEN1cnJlbnRMYW5nKFxFcmlkdVxsYW5ndWFnZSAkbGFuZ3VhZ2UpDQogIHsNCiAgICBzZWxmOjokX2N1cnJlbnRfbGFuZ3VhZ2UgPSAkbGFuZ3VhZ2U7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0Q3VycmVudExhbmcoKQ0KICB7DQogICAgc2VsZjo6JF9jdXJyZW50X2xhbmd1YWdlID0gc2VsZjo6X2NvbXB1dGVfY3VycmVudF9sYW5nKCk7DQogICAgcmV0dXJuIHNlbGY6OiRfY3VycmVudF9sYW5ndWFnZTsNCiAgfQ0KfQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.lang_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCm5hbWVzcGFjZSBFcmlkdTsNCmNsYXNzIGxhbmdfb3BzDQp7DQogIHByaXZhdGUgc3RhdGljICRfaW5pdGl0YWxpemVkID0gRkFMU0U7DQogIHByaXZhdGUgc3RhdGljICRfY21zOw0KICBwcml2YXRlIHN0YXRpYyAkX2RiOw0KICBwcml2YXRlIHN0YXRpYyAkX2xhbmdfb2JqOw0KICANCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2luaXRpYWxpemUoKQ0KICB7DQogICAgaWYoIXNlbGY6OiRfaW5pdGl0YWxpemVkKQ0KICAgIHsNCiAgICAgIHNlbGY6OiRfY21zID0gXGNtc21zKCk7DQogICAgICBzZWxmOjokX2RiID0gc2VsZjo6JF9jbXMtPkdldERiKCk7DQogICAgICBzZWxmOjokX2luaXRpdGFsaXplZCA9IFRSVUU7DQogICAgfSANCiAgfQ0KICANCiAgLyoqDQogICogZmlsdGVyIGtleXMgZm9yIGxhbmd1YWdlIGVudHJpZXMNCiAgKiANCiAgKiBAcGFyYW0gbWl4ZWQgJG5hbWUNCiAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBwbGNyZWF0ZWFsaWFzKCRuYW1lKQ0KICB7DQogICAgLy8gYXMgYSBzdWdnZXN0aW9uIGZyb20gQU1ULCB0aGUgZmlyc3QgcGFydCBkZWFscyB3aXRoIHNtYXJ0IHF1b3Rlcw0KICAgICAkc2VhcmNoID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICAgY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OTgpLA0KICAgICAgICAgICAgICAgICAgICAgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDk5KSwNCiAgICAgICAgICAgICAgICAgICAgICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5YyksDQogICAgICAgICAgICAgICAgICAgICAgY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OWQpLA0KICAgICAgICAgICAgICAgICAgICAgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDkzKSwNCiAgICAgICAgICAgICAgICAgICAgICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5NCkNCiAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICRuYW1lID0gc3RyX3JlcGxhY2UoJHNlYXJjaCwgJycsICRuYW1lKTsNCiAgICAgLy8gdGhlIHNlY29uZCBwYXJ0IHVzZXMgdGhlIGNtcyB2ZXJzaW9uDQogICAgICRhbGlhcyA9IG11bmdlX3N0cmluZ190b191cmwoIHRyaW0oJG5hbWUpLCBGQUxTRSk7DQogICAgIHJldHVybiAkYWxpYXM7DQogIH0NCiAgDQogIC8qKg0KICAqIHJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIHRhYmxlDQogICogDQogICogQHBhcmFtIG1peGVkICR0YWJsZW5hbWUNCiAgKiBAcGFyYW0gbWl4ZWQgJHdoYXQNCiAgKiBAcGFyYW0gbWl4ZWQgJHdoZXJlDQogICogQHJldHVybiBtaXhlZA0KICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNvdW50X2Zyb21fZGIoJHRhYmxlbmFtZSwgJHdoYXQgPSAnaWQnLCAkd2hlcmUgPSBhcnJheSgpICkNCiAgew0KICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgJHdoZXJlc3RyaW5nID0gJyc7DQogICAgJHdoZXJldmFsdWVzID0gYXJyYXkoKTsNCiAgICAgICAgDQogICAgZm9yZWFjaCgkd2hlcmUgYXMgJGtleSA9PiAkdmFsdWUpDQogICAgew0KICAgICAgJHdoZXJlc3RyaW5nIC49ICgkd2hlcmVzdHJpbmcgPT0gJycgPyAnIFdIRVJFICcgOiAnIEFORCAnKSAuICRrZXkgLiAnPT8nOw0KICAgICAgJHdoZXJldmFsdWVzW10gPSAkdmFsdWU7DQogICAgfQ0KICAgICAgICANCiAgICAkcXVlcnkgPSAiU0VMRUNUIENPVU5UKCR3aGF0KSBjb3VudCBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX2VyaWR1XyR0YWJsZW5hbWUiIC4gJHdoZXJlc3RyaW5nOw0KICAgICRkYnJlc3VsdCA9IHNlbGY6OiRfZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkd2hlcmV2YWx1ZXMpOw0KICAgICAgICANCiAgICBpZiAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpDQogICAgew0KICAgICAgcmV0dXJuICRyb3dbJ2NvdW50J107DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICByZXR1cm4gMDsNCiAgICB9DQogIH0NCiAgDQogIC8qKg0KICAqIA0KICAqIEBwYXJhbSBtaXhlZCAkbGFuZ2NvZGUNCiAgKiBAcmV0dXJuIG1peGVkDQogICovDQovLyAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRMYW5nT2JqZWN0KCRsYW5nY29kZSkNCi8vICB7DQovLyAgICByZXR1cm4gKG9iamVjdClzZWxmOjpnZXRfbGFuZ3VhZ2VfZGV0YWlscygkbGFuZ2NvZGUpOw0KLy8gIH0NCi8vICANCiAgLyoqDQogICogcmV0cmlldmVzIGxhbmd1YWdlIGVudHJpZXMgZm9yIGFueSBsYW5ndWFnZQ0KICAqICANCiAgKiBAcGFyYW0gbWl4ZWQgJGxhbmcNCiAgKi8NCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsb2FkX2xhbmdlbnRyaWVzKCRsYW5nKQ0KICB7ICAgIA0KICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgDQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBsYW5na2V5cy5jYXB0aW9uIGNhcHRpb24sIGxhbmdlbnRyaWVzLnZhbHVlIEZST00gJyANCiAgICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkgDQogICAgICAgICAgIC4gJ21vZHVsZV9lcmlkdV9sYW5na2V5cyBsYW5na2V5cyBMRUZUIEpPSU4gJyANCiAgICAgICAgICAgLiBjbXNfZGJfcHJlZml4KCkgDQogICAgICAgICAgIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcyBsYW5nZW50cmllcyAnDQogICAgICAgICAgIC4gJyBPTiBsYW5na2V5cy5pZCA9IGxhbmdlbnRyaWVzLnN0cmluZ2lkICcNCiAgICAgICAgICAgLiAnIFdIRVJFIGxhbmdlbnRyaWVzLmxhbmdpZD0/JzsNCiAgICAgICAgICAgDQogICAgJGRicmVzdWx0ID0gc2VsZjo6JF9kYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsYW5nKSk7DQogICAgJG91dHB1dCA9IGFycmF5KCk7DQogICAgICAgIA0KICAgIHdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQ0KICAgIHsNCiAgICAgICRvdXRwdXRbJHJvd1snY2FwdGlvbiddXSA9ICRyb3dbJ3ZhbHVlJ10gPyAkcm93Wyd2YWx1ZSddIDogJyc7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkb3V0cHV0Ow0KICB9DQogIC8qKg0KICAqIHBhcnNlICRfU0VSVkVSWyJIVFRQX0FDQ0VQVF9MQU5HVUFHRSJdDQogICogDQogICogYmFzZWQgb24gRGFycmluIFllYWdlcidzIGNvZGUNCiAgKiBDb3B5cmlnaHQgwqkgMjAwOCBEYXJyaW4gWWVhZ2VyDQogICogaHR0cHM6Ly93d3cuZHllYWdlci5vcmcvDQogICogTGljZW5zZWQgdW5kZXIgQlNEIGxpY2Vuc2UuDQogICogaHR0cHM6Ly93d3cuZHllYWdlci5vcmcvZG93bmxvYWRzL2xpY2Vuc2UtYnNkLnR4dCAgDQogICogDQogICogQHBhcmFtIG1peGVkICRhY2NlcHQgLSBob2xkcyAkX1NFUlZFUlsiSFRUUF9BQ0NFUFRfTEFOR1VBR0UiXSBjb250ZW50DQogICogQHJldHVybnMgc3RyaW5nIC0gdGhlIDFzdCBoaWdoZXN0IHEtdmFsdWUgbGFuZ3VhZ2UgDQogICovDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9wYXJzZV9odHRwX2FsKCRhY2NlcHQpDQogIHsNCiAgICAkZGVmbGFuZyA9IEZBTFNFOw0KICAgIA0KICAgIGlmKCAhZW1wdHkoJGFjY2VwdCkgJiYgc3RybGVuKCRhY2NlcHQpID4gMSkgIA0KICAgIHsNCiAgICAgICMgU3BsaXQgcG9zc2libGUgbGFuZ3VhZ2VzIGludG8gYXJyYXkgICAgICAgIA0KICAgICAgJHRtcF9sYW5ncyA9IGV4cGxvZGUoJywnLCAkYWNjZXB0KTsNCiAgICAgIA0KICAgICAgJGxhbmdzID0gYXJyYXkoKTsNCiAgICAgIGZvcmVhY2ggKCR0bXBfbGFuZ3MgYXMgJGxhbmcpIA0KICAgICAgew0KICAgICAgICAjIGNoZWNrIGZvciBxLXZhbHVlIGFuZCBjcmVhdGUgYXNzb2NpYXRpdmUgYXJyYXkuDQogICAgICAgIGlmKCBwcmVnX21hdGNoKCcvKC4qKTtxPShbMC0xXXswLDF9LlxkezAsNH0pL2knLCAkbGFuZywgJG1hdGNoZXMpICkNCiAgICAgICAgew0KICAgICAgICAgICRsYW5nc1skbWF0Y2hlc1sxXV0gPSAoZmxvYXQpJG1hdGNoZXNbMl07IA0KICAgICAgICB9DQogICAgICAgIGVsc2UNCiAgICAgICAgew0KICAgICAgICAgICMgTm8gcS12YWx1ZSBtZWFucyAxDQogICAgICAgICAgJGxhbmdzWyRsYW5nXSA9IDEuMDsNCiAgICAgICAgfQ0KICAgICAgfQ0KDQogICAgICAjcmV0dXJuIGRlZmF1bHQgbGFuZ3VhZ2UgKGhpZ2hlc3QgcS12YWx1ZSkNCiAgICAgICRxID0gMC4wOw0KICAgICAgZm9yZWFjaCgkbGFuZ3MgYXMgJGsgPT4gJHYpIA0KICAgICAgew0KICAgICAgICBpZigkdiA+ICRxKSANCiAgICAgICAgew0KICAgICAgICAgICRxID0gKGZsb2F0KSR2Ow0KICAgICAgICAgICRkZWZsYW5nID0gJGs7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgDQogICAgcmV0dXJuICRkZWZsYW5nOyAgICANCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBHZXRQcmVmZXJyZWRCcm93c2VyTGFuZygpDQogIHsNCiAgICAkYWNjZXB0ID0gaXNzZXQoJF9TRVJWRVJbIkhUVFBfQUNDRVBUX0xBTkdVQUdFIl0pID8gJF9TRVJWRVJbIkhUVFBfQUNDRVBUX0xBTkdVQUdFIl0gOiBOVUxMOw0KICAgIHJldHVybiBzZWxmOjpfcGFyc2VfaHR0cF9hbCgkYWNjZXB0KTsgDQogIH0NCg0KICANCiAgLy8gcmV0dXJucyBUUlVFIGlmICRjb2RlIGlzIGFuIGFjdGl2ZSBsYW5ndWFnZQ0KLy8gIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfbGFuZ3VhZ2UoJGNvZGUpDQovLyAgew0KLy8gICAgaWYoISR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzKSAgJHRoaXMtPnJldHJpZXZlX2xhbmd1YWdlcygpOw0KLy8gICAgaWYoISR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzKSAgcmV0dXJuIEZBTFNFOw0KLy8gICAgJHJlc3VsdCA9IGlzc2V0KCR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzWyRjb2RlXSk7DQovLyAgICBpZighJHJlc3VsdCkgZWNobyAkY29kZS4nIGlzIG5vdCBhIGxhbmd1YWdlJzsNCi8vICAgIHJldHVybiAkcmVzdWx0Ow0KLy8gIH0NCg0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCm5hbWVzcGFjZSBFcmlkdTsNCg0KY2xhc3Mgc21hcnR5X3V0aWxzDQp7DQogIHByaXZhdGUgc3RhdGljICRfaW5pdGl0YWxpemVkID0gRkFMU0U7DQogIHByaXZhdGUgc3RhdGljICRfaW5zdGFuY2U7DQogIHByaXZhdGUgc3RhdGljICRfZXJpZHU7DQogIHByaXZhdGUgc3RhdGljICRfY21zOw0KICBwcml2YXRlIHN0YXRpYyAkX3NtYXJ0eTsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9kYjsNCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVnaXN0ZXIoKQ0KICB7DQogICAgJGluc3RhbmNlID0gc2VsZjo6X2luc3RhbmNpYXRlKCk7DQogICAgc2VsZjo6JF9jbXMgPSBcY21zbXMoKTsNCiAgICBzZWxmOjokX3NtYXJ0eSA9IHNlbGY6OiRfY21zLT5HZXRTbWFydHkoKTsNCiAgICAjIGEgc21hbGwgaGFjayB0byBrZWVwIGFsbCBvbiB0aGlzIGNsYXNzDQogICAgc2VsZjo6JF9zbWFydHktPnJlZ2lzdGVyUGx1Z2luKCAnYmxvY2snLCAneGw4JywgYXJyYXkoIHNlbGY6OiRfaW5zdGFuY2UsICdfYmxvY2tfZG9fdHJhbnNsYXRpb24nKSApOw0KICAgIHNlbGY6OiRfc21hcnR5LT5yZWdpc3RlclBsdWdpbiggJ21vZGlmaWVyJywgJ3hsOCcsIGFycmF5KCBzZWxmOjokX2luc3RhbmNlLCAnX21vZGlmaWVyX2RvX3RyYW5zbGF0aW9uJykgKTsNCiAgfQ0KICANCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2luc3RhbmNpYXRlKCkNCiAgew0KICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9pbnN0YW5jZSkgICkgc2VsZjo6JF9pbnN0YW5jZSA9IG5ldyBzZWxmOw0KICB9DQogIA0KICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfaW5pdGlhbGl6ZSgpDQogIHsNCiAgICBpZighc2VsZjo6JF9pbml0aXRhbGl6ZWQpDQogICAgew0KICAgICAgc2VsZjo6JF9kYiA9IHNlbGY6OiRfY21zLT5HZXREYigpOw0KICAgICAgc2VsZjo6JF9lcmlkdSA9IHNlbGY6OiRfY21zLT5HZXRNb2R1bGVJbnN0YW5jZSgnRXJpZHUnKTsNCiAgICAgIHNlbGY6OiRfaW5pdGl0YWxpemVkID0gVFJVRTsNCiAgICB9DQogIH0NCiAgDQogIHN0YXRpYyBmdW5jdGlvbiBfYmxvY2tfZG9fdHJhbnNsYXRpb24oJHBhcmFtcywgJGNvbnRlbnQsICRzbWFydHksICYkcmVwZWF0KQ0KICB7DQogICAgc2VsZjo6X2luaXRpYWxpemUoKTsNCiAgICBpZiAoaXNzZXQoJGNvbnRlbnQpKSANCiAgICB7DQogICAgICAvLyBkbyBzb21lIHRyYW5zbGF0aW9uIHdpdGggJGNvbnRlbnQNCiAgICAgIGlmKCEkcmVwZWF0KQ0KICAgICAgew0KICAgICAgICByZXR1cm4gJ3xibG9jazogJyAuICRjb250ZW50IC4gJzogYmxvY2t8JzsNCiAgICAgIH0NCiAgICAgIGVsc2UgDQogICAgICB7DQogICAgICAgIHJldHVybiAnKmJsb2NrOiAnIC4gJGNvbnRlbnQgLiAnOiBibG9jayonOw0KICAgICAgfQ0KICAgIH0NCiAgfQ0KICANCiAgc3RhdGljIGZ1bmN0aW9uIF9tb2RpZmllcl9kb190cmFuc2xhdGlvbigkdmFsdWUsICRsYW5nID0gJycpDQogIHsNCiAgICBzZWxmOjpfaW5pdGlhbGl6ZSgpOw0KICAgIHJldHVybiAnbW9kaWZpZXInOw0KICB9DQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_xl8r.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCm5hbWVzcGFjZSBFcmlkdTsNCmNsYXNzIHNtYXJ0eV94bDhyDQp7DQoNCiAgLyoqDQogICogZm9yIHRlc3Rpbmc6IG1heSBiZSByZW1vdmVkIG9yIGNoYW5nZWQgd2l0aG91dCBub3RpY2UNCiAgKiANCiAgKiBAcGFyYW0gbWl4ZWQgJG5hbWUNCiAgKiBAcGFyYW0gbWl4ZWQgJGFyZ3VtZW50cw0KICAqLw0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIF9fY2FsbFN0YXRpYygkbmFtZSwgJGFyZ3VtZW50cykNCiAgew0KICAgICAgLy8gTm90ZTogdmFsdWUgb2YgJG5hbWUgaXMgY2FzZSBzZW5zaXRpdmUuDQogICAgICBlY2hvICJDYWxsaW5nIHN0YXRpYyBtZXRob2QgJyRuYW1lJyAiDQogICAgICAgICAgIC4gaW1wbG9kZSgnLCAnLCAkYXJndW1lbnRzKS4gIlxuIjsNCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBMYW5nKCkNCiAgew0KICAgIHJldHVybiBcRXJpZHVcbGFuZ3VhZ2VzOjpHZXRDdXJyZW50TGFuZygpLT50b0FycmF5KCk7DQogIH0gIA0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBMYW5nT2JoKCkNCiAgew0KICAgIHJldHVybiBcRXJpZHVcbGFuZ3VhZ2VzOjpHZXRDdXJyZW50TGFuZygpOw0KICB9DQogICAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gTGFuZ0NvZGUoKQ0KICB7DQogICAgJHJldCA9IFxFcmlkdVxsYW5ndWFnZXM6OkdldEN1cnJlbnRMYW5nKCktPnRvQXJyYXkoKTsNCiAgICByZXR1cm4gJHJldFsnbGFuZ2NvZGUnXTsNCiAgfQ0KICAgICAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaHJlZmxhbmcoJG1vZGUgPSAnZCcpDQogIHsNCiAgICAkbW9kZSA9IHN0cnRvbG93ZXIoJG1vZGUpOw0KICAgIA0KICAgIHN3aXRjaCAoJG1vZGUpIA0KICAgIHsNCiAgICAgICBjYXNlICdsJzoNCiAgICAgICAgICByZXR1cm4gXEVyaWR1XGxhbmd1YWdlczo6R2V0Q3VycmVudExhbmcoKS0+Z2V0X2hyZWZsYW5nX2xvd2VyKCk7DQogICAgICAgICBicmVhazsNCiAgICAgICAgICANCiAgICAgICBjYXNlICd1JzoNCiAgICAgICAgICByZXR1cm4gXEVyaWR1XGxhbmd1YWdlczo6R2V0Q3VycmVudExhbmcoKS0+Z2V0X2hyZWZsYW5nX3VwcGVyKCk7DQogICAgICAgICBicmVhazsNCiAgICAgICANCiAgICAgICBjYXNlICdkJzogIA0KICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgcmV0dXJuIFxFcmlkdVxsYW5ndWFnZXM6OkdldEN1cnJlbnRMYW5nKCktPmdldF9ocmVmbGFuZygpOw0KICAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogIH0NCiAgDQogIHN0YXRpYyBmdW5jdGlvbiBHZXRMYW5ncygpDQogIHsNCiAgICByZXR1cm4gXEVyaWR1XGxhbmd1YWdlczo6Z2V0bGFuZ3VhZ2VzKCk7DQogIH0NCg0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.translation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCm5hbWVzcGFjZSBFcmlkdTsNCmNsYXNzIHRyYW5zbGF0aW9uIGltcGxlbWVudHMgXEFycmF5QWNjZXNzDQp7DQogIHByaXZhdGUgJF9kYXRhOw0KICANCiAgLyoqDQogICogQHBhcmFtIGFycmF5ICRkYXRhDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggJGRhdGEgPSBhcnJheSgpICkNCiAgew0KICAgICR0aGlzLT5fZGF0YSA9ICRkYXRhOw0KICB9DQogIA0KICAvKioNCiAgKiBHZXQgYSBkYXRhIGJ5IGtleQ0KICAqDQogICogQHBhcmFtIHN0cmluZyBUaGUga2V5IGRhdGEgdG8gcmV0cmlldmUNCiAgKiBAYWNjZXNzIHB1YmxpYw0KICAqIEByZXR1cm5zIHN0cmluZw0KICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gJl9fZ2V0ICgka2V5KSANCiAgew0KICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07DQogIH0NCg0KICAvKioNCiAgKiBBc3NpZ25zIGEgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBkYXRhDQogICoNCiAgKiBAcGFyYW0gc3RyaW5nIFRoZSBkYXRhIGtleSB0byBhc3NpZ24gdGhlIHZhbHVlIHRvDQogICogQHBhcmFtIG1peGVkICBUaGUgdmFsdWUgdG8gc2V0DQogICogQGFjY2VzcyBwdWJsaWMNCiAgKi8NCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrZXksICR2YWx1ZSkgDQogIHsNCiAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7DQogIH0NCiAgDQogIC8qKg0KICAqIEBwYXJhbSBtaXhlZCAka2V5DQogICogQHJldHVybnMgc3RyaW5nDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRFeGlzdHMoJGtleSkgDQogIHsNCiAgICByZXR1cm4gaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsNCiAgfQ0KDQogIC8qKg0KICAqIEBwYXJhbSBtaXhlZCAka2V5DQogICogQHJldHVybnMgc3RyaW5nDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRHZXQoJGtleSkgDQogIHsNCiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApIA0KICAgIHsNCiAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07DQogICAgfQ0KICB9DQoNCiAgLyoqDQogICogQHBhcmFtIG1peGVkICRrZXkNCiAgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRTZXQoJGtleSwgJHZhbHVlKSANCiAgew0KICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsNCiAgfQ0KDQogIC8qKg0KICAqIEBwYXJhbSBtaXhlZCAka2V5DQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgka2V5KSANCiAgew0KICAgIHVuc2V0KCR0aGlzLT5fZGF0YVska2V5XSk7DQogIH0NCiAgDQogIC8qKg0KICAqIEBwYXJhbSBtaXhlZCAka2V5DQogICogQHJldHVybnMgc3RyaW5nDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBnZXQoJGtleSkNCiAgeyANCiAgICBpZiggc2VsZjo6ZXhpc3RzKCRrZXkpICkNCiAgICB7DQogICAgICByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOw0KICAgIH0NCiAgfQ0KDQogIC8qKg0KICAqIEBwYXJhbSBtaXhlZCAka2V5DQogICogQHBhcmFtIG1peGVkICR2YWx1ZQ0KICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gc2V0KCRrZXksICR2YWx1ZSkNCiAgew0KICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsNCiAgfQ0KDQogIC8qKg0KICAqIEBwYXJhbSBtaXhlZCAka2V5DQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBlcmFzZSgka2V5KQ0KICB7DQogICAgJHRoaXMtPm9mZnNldFVuc2V0KCRrZXkpOw0KICB9DQogIA0KICAvKioNCiAgKiBjbGVhcnMgYWxsIGRhdGEgDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBjbGVhcl9hbGwoKQ0KICB7DQogICAgJHRoaXMtPl9kYXRhID0gYXJyYXkoKTsNCiAgfQ0KICANCiAgLyoqDQogICogQHBhcmFtIG1peGVkICRhDQogICogQHBhcmFtIG1peGVkICRtZXJnZQ0KICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gZnJvbV9hcnJheSgkYSA9IGFycmF5KCksICRtZXJnZSA9IEZBTFNFKQ0KICB7DQogICAgaWYoJG1lcmdlKQ0KICAgIHsNCiAgICAgIGFycmF5X21lcmdlKCR0aGlzLT5fZGF0YSwgJGEpOw0KICAgIH0gICAgICANCiAgICBlbHNlDQogICAgew0KICAgICAgJHRoaXMtPl9kYXRhID0gJGE7DQogICAgfQ0KICB9DQogIA0KICAvKioNCiAgKiBmb3JtYXRzIGRhdGEgaWYgY29udmVydGVkIHRvIHN0cmluZw0KICAqIEByZXR1cm5zIHN0cmluZw0KICAqLw0KICBwdWJsaWMgZnVuY3Rpb24gX190b1N0cmluZygpDQogIHsNCiAgICAkcmV0ID0gYXJyYXkoKTsNCiAgICBmb3JlYWNoKCR0aGlzLT5fZGF0YSBhcyAkayA9PiAkdikgJHJldFtdID0gJGsgLiAnPScgLiAkdjsNCiAgICByZXR1cm4gaW1wbG9kZSgnLCcsICRyZXQpOw0KICB9DQogIA0KICAvKioNCiAgKiBhbGxvd3MgdGhlIGNsYXNzIHRvIGJlIHVzZWQgYXMgYSBmdW5jdGlvbg0KICAqIGV4OiANCiAgKiAkZW5nbGlzaCA9IG5ldyBcRXJpZHVcdHJhbnNsYXRpb24oYXJyYXkoJ2ZvbycgPT4gJ2JhcikpOw0KICAqICRlbmdsaXNoKCdmb28nKSByZXR1cm5zICdiYXInOw0KICAqIEBwYXJhbSBtaXhlZCAka2V5DQogICogQHJldHVybnMgc3RyaW5nDQogICovDQogIHB1YmxpYyBmdW5jdGlvbiBfX2ludm9rZSgka2V5KQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5vZmZzZXRHZXQoJGtleSk7DQogIH0NCiAgDQp9IA0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCm5hbWVzcGFjZSBFcmlkdTsNCmNsYXNzIHV0aWxzDQp7DQogIHByaXZhdGUgc3RhdGljICRfaW5pdGl0YWxpemVkOw0KICBwcml2YXRlIHN0YXRpYyAkX2NvdW50cnlfY29kZXM7DQogIHByaXZhdGUgc3RhdGljICRfbGFuZ19jb2RlczsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9iY3A0N2NvZGVzOw0KICBwcml2YXRlIHN0YXRpYyAkX2NvbmZpZzsNCiAgcHJpdmF0ZSBzdGF0aWMgJF9zdWJfcHJlZml4ZXM7DQogIHByaXZhdGUgc3RhdGljICRfbG9jYWxob3N0czsNCiAgDQogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9pbml0aWFsaXplKCkNCiAgew0KICAgIGlmKCFzZWxmOjokX2luaXRpdGFsaXplZCkNCiAgICB7DQogICAgICBzZWxmOjokX2NvbmZpZyA9IFxFcmlkdVxjb25maWc6OkdldEluc3RhbmNlKCk7DQogICAgICBzZWxmOjokX3N1Yl9wcmVmaXhlcyA9IGV4cGxvZGUoJywnLCBzZWxmOjokX2NvbmZpZ1snc3ViX3ByZWZpeGVzJ10pOw0KICAgICAgc2VsZjo6JF9sb2NhbGhvc3RzID0gZXhwbG9kZSgnLCcsIHNlbGY6OiRfY29uZmlnWydsb2NhbF9kb21haW5zJ10pOw0KICAgICAgc2VsZjo6JF9pbml0aXRhbGl6ZWQgPSBUUlVFOw0KICAgIH0NCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfb2JqX3R5cGUoJGN1cnJlbnRfaWQgPSBOVUxMKQ0KICB7DQogICAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOw0KICANCiAgICBpZiggIWlzc2V0KCRjdXJyZW50X2lkKSApDQogICAgew0KICAgICAgJG9iaiA9ICRjb250ZW50b3BzLT5nZXRDb250ZW50T2JqZWN0KCk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkb2JqID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCRjdXJyZW50X2lkKTsNCiAgICB9DQogICAgDQogICAgaWYoICFpc19vYmplY3QoJG9iaikgKSByZXR1cm4gRkFMU0U7DQogICAgaWYoICFpc19hKCRvYmosICdDb250ZW50QmFzZScpICkgcmV0dXJuIEZBTFNFOw0KICAgIA0KICAgIHJldHVybiAkb2JqLT5UeXBlKCk7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Jvb3RfaWQoJGN1cnJlbnRfaWQgPSBOVUxMKQ0KICB7DQogICAgJGdDbXMgPSBcY21zbXMoKTsNCiAgICAkaG0gPSAkZ0Ntcy0+R2V0SGllcmFyY2h5TWFuYWdlcigpOw0KICAgIA0KICAgIGlmKCAhaXNzZXQoJGN1cnJlbnRfaWQpICkgDQogICAgew0KICAgICAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOw0KICAgICAgJGNudF9vYmogPSAkY29udGVudG9wcy0+Z2V0Q29udGVudE9iamVjdCgpOw0KICAgICAgaWYoICFpc19vYmplY3QoJGNudF9vYmopICkgcmV0dXJuIE5VTEw7DQogICAgICAkY3VycmVudF9pZCA9ICRjbnRfb2JqLT5JZCgpOw0KICAgICAgaWYoTlVMTCA9PT0gJGN1cnJlbnRfaWQpIHJldHVybiAkY3VycmVudF9pZDsNCiAgICB9IA0KDQogICAgJHN0YWNrID0gYXJyYXkoKTsNCiAgICAkbm9kZSA9ICRobS0+ZmluZF9ieV90YWcoJ2lkJywgJGN1cnJlbnRfaWQpOw0KICAgIA0KICAgIHdoaWxlKCAkbm9kZSAmJiAkbm9kZS0+Z2V0X3RhZygnaWQnKSA+IDAgKQ0KICAgIHsNCiAgICAgICRzdGFja1tdID0gJG5vZGU7DQogICAgICAkbm9kZSA9ICRub2RlLT5nZXRQYXJlbnQoKTsNCiAgICB9DQogICAgDQogICAgaWYoIGNvdW50KCRzdGFjaykgPT0gMCApIHJldHVybjsNCg0KICAgICRpZCA9ICRzdGFja1sgY291bnQoJHN0YWNrKSAtIDFdLT5nZXRfdGFnKCdpZCcpOw0KDQogICAgcmV0dXJuICRpZDsNCiAgfSANCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0RmlsZUNvbnRlbnQoJGZpbGVuYW1lKQ0KICB7DQogICAgJGZpbGVwYXRoID0gZGlybmFtZSggZGlybmFtZShfX0ZJTEVfXykgKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZW5hbWU7DQogICAgDQogICAgaWYoIGZpbGVfZXhpc3RzKCRmaWxlcGF0aCkgKQ0KICAgIHsNCiAgICAgICRmaGFuZGxlID0gZm9wZW4oJGZpbGVwYXRoLCAncisnKTsNCiAgICAgICRjb250ZW50ID0gZnJlYWQoICRmaGFuZGxlLCBmaWxlc2l6ZSgkZmlsZXBhdGgpICk7DQogICAgICByZXR1cm4gJGNvbnRlbnQ7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICByZXR1cm4gZmFsc2U7DQogICAgfQ0KICB9DQogIA0KICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfZGF0YV9mcm9tX2NzdigkZm4gPSAnJywgJGhlYWRpbmdzID0gVFJVRSwgJGZsaXAgPSBGQUxTRSwgJGNsZWFuID0gVFJVRSkNCiAgew0KICAgICRyZXQgPSBGQUxTRTsNCiAgICANCiAgICBpZiggaXNfcmVhZGFibGUoJGZuKSApDQogICAgew0KICAgICAgJGggPSBmb3BlbigkZm4sICdyJyk7DQogICAgICANCiAgICAgICRyZXQgPSBhcnJheSgpOw0KICAgICAgd2hpbGUoICgkZGF0YSA9IGZnZXRjc3YoJGgsIDEwMCwgJywnKSApICE9PSBGQUxTRSkgDQogICAgICB7DQogICAgICAgICNkZXRlcm1pbmUgaWYgd2Ugd2FudCB0aGUgc3VmaXggJygka2V5KScNCiAgICAgICAgJHN1ZiA9ICRjbGVhbiA/ICcnIDogJyAoJyAuICRkYXRhWyhpbnQpJGZsaXBdIC4gJyknOw0KICAgICAgICANCiAgICAgICAgaWYoJGZsaXApDQogICAgICAgIHsNCiAgICAgICAgICAkcmV0WyRkYXRhWzFdXSA9ICRkYXRhWzBdIC4gJHN1ZjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAkcmV0WyRkYXRhWzBdXSA9ICRkYXRhWzFdIC4gJHN1ZjsgDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgaWYoISRoZWFkaW5ncykNCiAgICAgIHsNCiAgICAgICAgIyBjbGVhciBoZWFkaW5ncw0KICAgICAgICBhcnJheV9zaGlmdCgkcmV0KTsNCiAgICAgICB9DQogICAgICAgDQogICAgICBmY2xvc2UoJGgpOyAgDQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldENvdW50cnlDb2Rlc0xpc3QoKQ0KICB7DQogICAgaWYoIGVtcHR5KHNlbGY6OiRfY291bnRyeV9jb2RlcykgKQ0KICAgIHsNCiAgICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGY6OiRfY29uZmlnWydtb2R1bGVfcGF0aCddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY291bnRyeS1JU08tMzE2Ni0yLmRhdCcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgIHNlbGY6OiRfY291bnRyeV9jb2RlcyA9IHNlbGY6Ol9kYXRhX2Zyb21fY3N2KCRmbiwgRkFMU0UsIFRSVUUsIEZBTFNFKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfY291bnRyeV9jb2RlczsNCiAgfQ0KICAgIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIEdldExhbmdDb2Rlc0xpc3QoKQ0KICB7DQogICAgaWYoIGVtcHR5KHNlbGY6OiRfbGFuZ19jb2RlcykgKQ0KICAgIHsNCiAgICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGY6OiRfY29uZmlnWydtb2R1bGVfcGF0aCddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFuZy1JU08tNjM5LTEuZGF0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgc2VsZjo6JF9sYW5nX2NvZGVzID0gc2VsZjo6X2RhdGFfZnJvbV9jc3YoJGZuLCBGQUxTRSwgRkFMU0UsIEZBTFNFKTsNCiAgICB9DQogICAgDQogICAgcmV0dXJuIHNlbGY6OiRfbGFuZ19jb2RlczsNCiAgfQ0KDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gR2V0UmVnQmNwNDdDb2Rlc0xpc3QoKQ0KICB7DQogICAgaWYoIGVtcHR5KHNlbGY6OiRfYmNwNDdjb2RlcykgKQ0KICAgIHsNCiAgICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGY6OiRfY29uZmlnWydtb2R1bGVfcGF0aCddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVnaXN0ZXJlZC1CQ1AtNDcuZGF0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KICAgICAgc2VsZjo6JF9iY3A0N2NvZGVzID0gc2VsZjo6X2RhdGFfZnJvbV9jc3YoJGZuLCBGQUxTRSwgRkFMU0UpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gc2VsZjo6JF9iY3A0N2NvZGVzOw0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGV4dHJhY3RfdGxkKCRkb21haW4gPSAnJykNCiAgew0KICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgJHBhcnRzID0gZXhwbG9kZSgnLicsICRkb21haW4pOw0KICAgICRjb3VudCA9IGNvdW50KCRwYXJ0cyk7DQogICAgDQogICAgJHJldCA9IGFycmF5KCk7DQogICAgDQogICAgIyB0aGlzIGlzIGEgImd1ZXNzaW5nIiB0YXNrLCBub3QgYWNjdXJhdGUgYW5kIG5vIG5lZWQgdG8gYmUgYWNjdXJhdGUgYXRtDQogICAgaWYoIHN0cmxlbigkcGFydHNbJGNvdW50IC0gMV0pIDwgNCApDQogICAgew0KICAgICAgJHJldFtdID0gYXJyYXlfcG9wKCRwYXJ0cyk7DQogICAgICAkY291bnQgPSBjb3VudCgkcGFydHMpOw0KICAgIA0KICAgICAgaWYoJGNvdW50ICE9IDEpDQogICAgICB7DQogICAgICAgICMgdGVzdCBhZ2FpbiBmb3IgY28gYW5kIHVrLmNvIHR5cGVzIG9mIHRsZA0KICAgICAgICAjIGFuZCBhZ2FpbiAiZ3Vlc3MiIHdvcmsNCiAgICAgICAgaWYoIHN0cmxlbigkcGFydHNbJGNvdW50IC0gMV0pIDwgMyApDQogICAgICAgIHsNCiAgICAgICAgICAkcmV0W10gPSBhcnJheV9wb3AoJHBhcnRzKTsNCiAgICAgICAgICBhcnJheV9yZXZlcnNlKCRyZXQpOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICANCiAgICAkcmV0ID0gYXJyYXlfZGlmZigkcmV0LCBzZWxmOjokX2xvY2FsaG9zdHMpOw0KICAgIA0KICAgIHJldHVybiBpbXBsb2RlKCcuJywgJHJldCk7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZXh0cmFjdF9uYWtlZF9kb21haW4oJGRvbWFpbiA9ICcnKQ0KICB7DQogICAgc2VsZjo6X2luaXRpYWxpemUoKTsNCiAgICAkcGFydHMgPSBleHBsb2RlKCcuJywgJGRvbWFpbik7DQogICAgJGNvdW50ID0gY291bnQoJHBhcnRzKTsNCiAgICANCiAgICBpZigkY291bnQpDQogICAgew0KICAgICAgaWYoJGNvdW50ID4gMSkNCiAgICAgIHsNCiAgICAgICAgI3JlbW92ZSBwcmVmaXggd3d4LiBpZiBleGlzdA0KICAgICAgICBmb3JlYWNoKHNlbGY6OiRfc3ViX3ByZWZpeGVzIGFzICRwcmVmaXgpDQogICAgICAgIHsNCiAgICAgICAgICBpZiggXHN0YXJ0c3dpdGgoJHBhcnRzWzBdLCAkcHJlZml4KSApDQogICAgICAgICAgew0KICAgICAgICAgICAgIyByZW1vdmUgYW5kIHJlaW5kZXguLi4NCiAgICAgICAgICAgIHVuc2V0KCRwYXJ0c1swXSk7DQogICAgICAgICAgICAkcGFydHMgPSBhcnJheV92YWx1ZXMoJHBhcnRzKTsNCiAgICAgICAgICAgICRjb3VudCA9IGNvdW50KCRwYXJ0cyk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgDQogICAgICAgICMgJGNvdW50IGlzIDEgc28gd2UgYXJlIGxlZnQgd2l0aCB0aGUgbmFrZWQgZG9tYWluDQogICAgICAgIGlmKCRjb3VudCA9PSAxKSByZXR1cm4gJHBhcnRzWzBdOw0KICAgICAgICANCiAgICAgICAgIyBvdGhlcndpc2Ugd2UgbWF5IGhhdmUgYSB0bGQgYXQgdGhlIGVuZC4uLg0KICAgICAgICAkdGxkID0gZXhwbG9kZSgnLicsIHNlbGY6OmV4dHJhY3RfdGxkKCRkb21haW4pICk7DQogICAgICAgIA0KICAgICAgICAkcGFydHMgPSBhcnJheV9kaWZmKCRwYXJ0cywgJHRsZCk7DQogICAgICAgIA0KICAgICAgICAjIG5vdyB3ZSBhc3N1bWUgd2UgaGF2ZSBvbmx5IGRvbWFpbiBhbmQgZXZlbnR1YWxseSBzdWItZG9tYWlucw0KICAgICAgICAjIGxhc3Qgb24gdGhlIGNoYWluLi4uIGhhcyB0byBiZSB0aGUgbmFrZWQgZG9tYWluLi4uDQogICAgICAgICMgaWYgd2UgaGF2ZSBmYWlsZWQgaXMgYmVjYXVzZSB0aGUgdGxkIGlzIGxlc3MgY29tbW9uLi4uDQogICAgICB9DQogIA0KICAgICAgcmV0dXJuIGVuZCgkcGFydHMpOw0KICAgIH0NCiAgICANCiAgICByZXR1cm4gJyc7DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2RvbWFpbl92YXJpYXRpb25zKCRuYWtlZF9kb21haW4gPSAnJykNCiAgew0KICAgIHNlbGY6Ol9pbml0aWFsaXplKCk7DQogICAgJHJldCA9IGFycmF5KCRuYWtlZF9kb21haW4pOw0KICANCiAgICBmb3JlYWNoKHNlbGY6OiRfc3ViX3ByZWZpeGVzIGFzICRwcmVmaXgpDQogICAgew0KICAgICAgJHJldFtdID0gJHByZWZpeCAuICcuJyAuICRuYWtlZF9kb21haW47DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jdXJyZW50X2hvc3QoKQ0KICB7DQogICAgcmV0dXJuICRfU0VSVkVSWydIVFRQX0hPU1QnXTsNCiAgfSAgDQogIA0KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jdXJyZW50X3VybCgpDQogIHsNCiAgICByZXR1cm4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ107DQogIH0NCiAgDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfaXAoJHRlc3QgPSAnJykNCiAgew0KICAgIHJldHVybiAoYm9vbClmaWx0ZXJfdmFyKCR0ZXN0LCBGSUxURVJfVkFMSURBVEVfSVApOyANCiAgfQ0KICANCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtaW5pbWl6ZV9kb21haW5fbmFtZSgkbmFtZSA9ICcnKQ0KICB7DQogICAgJHJlbW92ZSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICAgICd3d3cnLA0KICAgICAgICAgICAgICAgICAgICAgICd3d3cxJywNCiAgICAgICAgICAgICAgICAgICAgICAnd3d3MicsDQogICAgICAgICAgICAgICAgICAgICAgJ3d3dzMnDQogICAgICAgICAgICAgICAgICAgICk7DQogICAgJHJldCA9ICRuYW1lOw0KICAgICR0bXAgPSBleHBsb2RlKCcuJywgJG5hbWUpOw0KICAgIA0KICAgIGlmKCBpc19hcnJheSgkdG1wKSApDQogICAgew0KICAgICAgZm9yZWFjaCgkcmVtb3ZlIGFzICRvbmUpDQogICAgICB7DQogICAgICAgIGlmKCR0bXBbMF0gPT0gJG9uZSkNCiAgICAgICAgew0KICAgICAgICAgIHVuc2V0KCR0bXBbMF0pOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICB9DQogICAgICANCiAgICAgICRyZXQgPSBpbXBsb2RlKCcuJywgJHRtcCk7DQogICAgfQ0KICAgIA0KICAgIHJldHVybiAkcmV0Ow0KICB9DQogIA0KICAvKioNCiAgKiBtYWtlIHN1cmUgJHVybCBpcyB3ZWxsIGZvcm1lZCBpLmUuIGRvZXNuJ3QgaGF2ZSBleHRyYSAnLycgDQogICogDQogICogQHBhcmFtIG1peGVkICR1cmwNCiAgKiBAcmV0dXJuIG1peGVkDQogICovDQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY29uZm9ybV91cmwoJHVybCkNCiAgew0KICAgIGlmKCBlbXB0eSgkdXJsKSApIHJldHVybiAnJzsNCiAgICAkcHJvdG9jb2wgPSBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgPyAnaHR0cDovLycgOiAnaHR0cHM6Ly8nOyAgICANCiAgICBpZiggc3RhcnRzd2l0aCgkdXJsLCAkcHJvdG9jb2wpICkgJHVybCA9IHN0cl9yZXBsYWNlKCRwcm90b2NvbCwgJHVybCwgJycpOyAgICANCiAgICByZXR1cm4gJHByb3RvY29sIC4gcHJlZ19yZXBsYWNlKCcvXC97Mix9LycsICcvJywgJHVybCk7DQogIH0NCn0NCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMQ0KIyBBIGZvcmsgb2YgQmFiZWwNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIEJhYmVsIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIHVzaW5nIENUTE1vZHVsZU1ha2VyIGFuZCByZWxlYXNlZCB1bmRlciBHTlUNCiMgQ1RMTW9kdWxlTWFrZXIgd2FzIGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIGFuZCByZWxlYXNlZCB1bmRlciBHTlUNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIEVyaWR1IGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQkVHSU5fTElDRU5TRQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgRXJpZHUNCiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIEVyaWR1IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBFTkRfTElDRU5TRQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7DQoNCi8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24gPC0tPiBDaGFuZ2VkIChKTSkNCiRkYiA9ICRnQ21zLT5HZXREYigpOw0KJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOw0KCQkNCi8vIG15c3FsLXNwZWNpZmljLCBidXQgaWdub3JlZCBieSBvdGhlciBkYXRhYmFzZQ0KJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsNCg0KLy8gQ3JlYXRlcyB0aGUgbGFuZ3VhZ2VzIHRhYmxlDQokZmxkcyA9ICcNCiAgaWQgSSBLRVkgQVVUTywNCglsYW5nY29kZSBDKDgpIEtFWSwNCiAgaXNvXzYzOV8xIEMoMiksDQogIGlzb18zMTY2XzFfYWxwaGFfMiBDKDIpLA0KCXJvb3RfaWQgSSwNCglkZWZhdWx0X2lkIEksDQoJbmFtZSBDKDY0KSwNCgltZW51X25hbWUgQyg2NCksDQoJYWN0aXZlIEwsDQoJaXRlbV9vcmRlciBJLA0KICBhc3NvY2lhdGVkX2RhdGEgVkFSQ0hBUigyMDAwMCk7DQoJJzsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ3VhZ2VzJywgJGZsZHMsICR0YWJvcHRhcnJheSk7DQokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoJDQoNCi8vIENyZWF0ZXMgdGhlIGxhbmd1YWdlIGtleXMgdGFibGUNCiRmbGRzID0gJw0KICBpZCBJIEtFWSBBVVRPLA0KCXN0cmluZ2lkIEkgS0VZLA0KCWNhcHRpb24gQygxMjgpDQogIHR5cGUgSSBERUZBVUxUIDENCgknOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5na2V5cycsICRmbGRzLCAkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQoNCi8vIENyZWF0ZXMgdGhlIGxhbmd1YWdlIGVudHJpZXMgKHZhbHVlcykgdGFibGUNCiRmbGRzID0gJw0KICBpZCBJIEtFWSBBVVRPLA0KCXN0cmluZ2lkIEksDQogIGxhbmdpZCBJIE5PVCBOVUxMLA0KCWxhbmdjb2RlIEMoNSksDQoJdmFsdWUgWEwNCgknOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9lcmlkdV9sYW5nZW50cmllcycsICRmbGRzLCAkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQojU2V0IFBlcm1pc3Npb25zDQokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignYWRtaW5fZXJpZHUnLCAnRXJpZHU6IGFkbWluJyk7DQokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbigndHJhbnNsYXRlX2VyaWR1JywgJ0VyaWR1OiB0cmFuc2xhdGUnKTsNCg0KJG1vZHByZWZzID0gJHRoaXMtPmdldF9tb2RwcmVmcygpOw0KZm9yZWFjaCgkbW9kcHJlZnMgYXMgJG9uZXByZWYpCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCRvbmVwcmVmWzBdLCRvbmVwcmVmWzFdKTsNCg0KdHJ5DQp7DQogICRlcmlkdV9tZW51X3RlbXBsYXRlID0gbmV3IENtc0xheW91dFRlbXBsYXRlVHlwZSgpOw0KICAkZXJpZHVfbWVudV90ZW1wbGF0ZS0+c2V0X29yaWdpbmF0b3IoICR0aGlzLT5HZXROYW1lKCkgKTsNCiAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnNldF9uYW1lKCdlcmlkdV9sYW5nX3NlbGVjdG9yX21lbnUnKTsNCiAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnNldF9kZmx0X2ZsYWcoVFJVRSk7DQogICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfbGFuZ19jYWxsYmFjaygnRXJpZHU6OnRlbXBsYXRlX2xhbmdfY2FsbGJhY2snKTsNCiAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCdFcmlkdTo6cmVzZXRfdGVtcGxhdGVfZGVmYXVsdCcpOw0KICAkZXJpZHVfbWVudV90ZW1wbGF0ZS0+c2V0X2hlbHBfY2FsbGJhY2soJ0VyaWR1Ojp0ZW1wbGF0ZV9oZWxwX2NhbGxiYWNrJyk7DQogICRlcmlkdV9tZW51X3RlbXBsYXRlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsNCiAgJGVyaWR1X21lbnVfdGVtcGxhdGUtPnNhdmUoKTsNCn0NCmNhdGNoKENtc0V4Y2VwdGlvbiAkZSkNCnsNCiAgYXVkaXQoJycsICR0aGlzLT5HZXROYW1lKCksICdJbnN0YWxsYXRpb24gRXJyb3I6ICcgLiAkZS0+Z2V0TWVzc2FnZSgpKTsNCn0gDQoNCiRmbiA9IGNtc19qb2luX3BhdGgoJHRoaXMtPkdldE1vZHVsZVBhdGgoKSwgJ3RlbXBsYXRlcycsICdkZWZhdWx0X21lbnVfdG1wbHQudHBsJyk7DQoNCmlmKCBmaWxlX2V4aXN0cygkZm4pICkNCnsNCiAgJGRlZmF1bHRfdHBsID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQp9DQplbHNlDQp7DQogICRkZWZhdWx0X3RwbCA9ICc8IS0tIEVycm9yIGR1cmluZyBFcmlkdSBpbnN0YWxsYXRpb24gLS0+JzsNCn0NCg0KdHJ5DQp7DQogICR0cGwgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGUoKTsNCiAgJHRwbC0+c2V0X25hbWUoJ0xhbmd1YWdlIFN3aXRjaGVyIE1lbnUnKTsNCiAgJHRwbC0+c2V0X293bmVyKCBnZXRfdXNlcmlkKCkgKTsNCiAgJHRwbC0+c2V0X2NvbnRlbnQoJGRlZmF1bHRfdHBsKTsNCiAgJHRwbC0+c2V0X3R5cGUoJGVyaWR1X21lbnVfdGVtcGxhdGUpOw0KICAkdHBsLT5zZXRfdHlwZV9kZmx0KFRSVUUpOw0KICAkdHBsLT5zYXZlKCk7DQp9DQpjYXRjaChDbXNFeGNlcHRpb24gJGUpDQp7DQogIGF1ZGl0KCAnJywgJHRoaXMtPkdldE5hbWUoKSwgJ0luc3RhbGxhdGlvbiBFcnJvcjogJyAuICRlLT5nZXRNZXNzYWdlKCkgKTsNCn0gICAgICAgICANCg0KJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ29yZScsICdDb250ZW50UHJlQ29tcGlsZScsIGZhbHNlKTsNCg0KLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQokdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsICR0aGlzLT5HZXRWZXJzaW9uKCkpKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMS4xDQojIEEgZm9yayBvZiBCYWJlbA0KIyBtYWludGFpbmVkIGJ5IEZlcm5hbmRvIE1vcmdhZG8gQUtBIEpvIE1vcmcNCiMgc2luY2UgMjAxNg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA4IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIyBDVExNb2R1bGVNYWtlciB3YXMgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgRXJpZHUgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiMgYW5kIG1hbmFnZSBtdWx0aXBsZSBsYW5ndWFnZSBjb250ZW50DQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBCRUdJTl9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBFcmlkdQ0KIyBFcmlkdSBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgRXJpZHUgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEVORF9MSUNFTlNFDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsNCg0KJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmd1YWdlcycpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ2tleXMnKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzJyk7DQokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoNCiR0aGlzLT5EZWxldGVUZW1wbGF0ZSgnJywgJHRoaXMtPkdldE5hbWUoKSk7DQoNCi8vIHJlbW92ZSBhbGwgdGVtcGxhdGVzIGFuZCB0ZW1wbGF0ZSB0eXBlcw0KdHJ5DQp7DQogICR0eXBlcyA9IENtc0xheW91dFRlbXBsYXRlVHlwZTo6bG9hZF9hbGxfYnlfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsNCiAgDQogIGZvcmVhY2goICR0eXBlcyBhcyAkdHlwZSApDQogIHsNCiAgICB0cnkNCiAgICB7DQogICAgICAkdGVtcGxhdGVzID0gJHR5cGUtPmdldF90ZW1wbGF0ZV9saXN0KCk7DQogICAgICANCiAgICAgIGlmKCBpc19hcnJheSgkdGVtcGxhdGVzKSAmJiBjb3VudCgkdGVtcGxhdGVzKSApDQogICAgICB7DQogICAgICAgIGZvcmVhY2goICR0ZW1wbGF0ZXMgYXMgJHRwbCApDQogICAgICAgIHsNCiAgICAgICAgICAkdHBsLT5kZWxldGUoKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICBjYXRjaChFeGNlcHRpb24gJGUpDQogICAgew0KICAgICAgZGVidWdfdG9fbG9nKCBfX0ZJTEVfXyAuICc6JyAuIF9fTElORV9fIC4gJyAnIC4gJGUtPkdldE1lc3NhZ2UoKSApOw0KICAgICAgYXVkaXQoICcnLCAkdGhpcy0+R2V0TmFtZSgpLCAnVW5pbnN0YWxsIEVycm9yOiAnIC4gJGUtPkdldE1lc3NhZ2UoKSApOw0KICAgIH0NCiAgICANCiAgICAkdHlwZS0+ZGVsZXRlKCk7DQogIH0NCn0NCmNhdGNoKENtc0V4Y2VwdGlvbiAkZSkNCnsNCiAgZGVidWdfdG9fbG9nKCBfX0ZJTEVfXyAuICc6JyAuIF9fTElORV9fIC4gJyAnIC4gJGUtPkdldE1lc3NhZ2UoKSApOw0KICBhdWRpdCggJycsICR0aGlzLT5HZXROYW1lKCksICdVbmluc3RhbGwgRXJyb3I6ICcgLiAkZS0+R2V0TWVzc2FnZSgpICk7DQp9DQoNCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdhZG1pbl9lcmlkdScpOw0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsNCg0KLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQokdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogRXJpZHU6IE11bHRpbGluZ3VhbCBDb250ZW50DQojIFZlcnNpb24gMQ0KIyBBIGZvcmsgb2YgQmFiZWwNCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnDQojIHNpbmNlIDIwMTYNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIEJhYmVsIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIHVzaW5nIENUTE1vZHVsZU1ha2VyIGFuZCByZWxlYXNlZCB1bmRlciBHTlUNCiMgQ1RMTW9kdWxlTWFrZXIgd2FzIGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIGFuZCByZWxlYXNlZCB1bmRlciBHTlUNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIEVyaWR1IGlzIGEgQ01TIE1hZGUgU2ltcGxlIG1vZHVsZSB0aGF0IGVuYWJsZXMgdGhlIHdlYiBkZXZlbG9wZXIgdG8gY3JlYXRlDQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQkVHSU5fTElDRU5TRQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgRXJpZHUNCiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIEVyaWR1IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBFTkRfTElDRU5TRQ0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7DQokZGIgPSBjbXNtcygpLT5HZXREYigpOw0KJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOw0KJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOw0KDQp0cnkNCnsNCiAgc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pDQogIHsNCiAgICBjYXNlICcxLjAuYi4zJzoNCiAgICBjYXNlICcxLjAuYi40JzoNCiAgICANCiAgICAgJHEgPSAnQUxURVIgVEFCTEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ2VudHJpZXMgTU9ESUZZIHZhbHVlIFZBUkNIQVIoNDAwMCknOw0KICAgICAkciA9ICRkYi0+RXhlY3V0ZSgkcSk7DQogICAgIGlmKCEkcikgdGhyb3cgbmV3IEV4Y2VwdGlvbiggJGRiLT5FcnJvck1zZygpICk7DQogICAgIA0KICAgIGNhc2UgJzEuMCc6DQogICAgY2FzZSAnMS4xLmJldGEuMSc6DQogICAgY2FzZSAnMS4xLmJldGEuMic6DQogICAgY2FzZSAnMS4xLmJldGEuMyc6DQogICANCiAgICAgICRxID0gJ0FMVEVSIFRBQkxFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmd1YWdlcyANCiAgICAgICAgICAgIEFERCBpc29fNjM5XzEgVkFSQ0hBUigyKSBBRlRFUiBsYW5nY29kZSwNCiAgICAgICAgICAgIEFERCBpc29fMzE2Nl8xX2FscGhhXzIgVkFSQ0hBUigyKSBBRlRFUiBpc29fNjM5XzEsDQogICAgICAgICAgICBBREQgYXNzb2NpYXRlZF9kYXRhIFZBUkNIQVIoMjAwMDApIEFGVEVSIGl0ZW1fb3JkZXInOw0KICAgICAgICANCiAgICAgICRyID0gJGRiLT5FeGVjdXRlKCRxKTsNCiAgICAgIGlmKCEkcikgdGhyb3cgbmV3IEV4Y2VwdGlvbiggJGRiLT5FcnJvck1zZygpICk7DQogICAgICANCiAgICBjYXNlICcxLjEuYmV0YS40JzoNCiAgICAgICANCiAgICAgICRxID0gJ0FMVEVSIFRBQkxFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzIA0KICAgICAgICAgICAgQUREIGxhbmdpZCBJTlQgTk9UIE5VTEwgQUZURVIgc3RyaW5naWQnOw0KICAgICAgICANCiAgICAgICRyID0gJGRiLT5FeGVjdXRlKCRxKTsNCiAgICAgIGlmKCEkcikgdGhyb3cgbmV3IEV4Y2VwdGlvbiggJGRiLT5FcnJvck1zZygpICk7DQogICAgICANCiAgICAgICRkZWZhdWx0X2xhbmdjb2RlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfbGFuZ3VhZ2UnKTsNCiAgICAgICRsYW5nID0gXEVyaWR1XGxhbmd1YWdlczo6Z2V0X2xhbmd1YWdlX2RldGFpbHMoJGRlZmF1bHRfbGFuZ2NvZGUpOw0KICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfbGFuZ3VhZ2UnLCAkbGFuZy0+aWQpOw0KDQogICAgICAjIHdlIG5lZWQgdG8gdHdlYWsgbGFuZ2VudHJpZXMNCiAgICAgICRxID0gJ1NFTEVDVCBsYW5nY29kZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzJzsNCiAgICAgICRyID0gJGRiLT5HZXRBbGwoJHEpOw0KICAgICAgaWYoISRyKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCAkZGItPkVycm9yTXNnKCkgKTsNCiAgICAgIA0KICAgICAgJHEgPSAnU0VMRUNUIGlkLGxhbmdjb2RlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZXJpZHVfbGFuZ3VhZ2VzJzsNCiAgICAgICRyMiA9ICRkYi0+R2V0QWxsKCRxKTsNCiAgICAgIGlmKCEkcjIpIHRocm93IG5ldyBFeGNlcHRpb24oICRkYi0+RXJyb3JNc2coKSApOw0KICAgICAgDQogICAgICAkbGFuZyA9IGFycmF5KCk7DQogICAgICBmb3JlYWNoKCRyMiBhcyAkbCkgJGxhbmdbJGxbJ2xhbmdjb2RlJ11dID0gJGxbJ2lkJ107DQogICAgICANCiAgICAgIGZvcmVhY2goJHIgYXMgJG9uZSkNCiAgICAgIHsNCiAgICAgICAgJHEgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzIFNFVCBsYW5naWQ9PyBXSEVSRSBsYW5nY29kZT0/JzsNCiAgICAgICAgJHIgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSgkbGFuZ1skb25lWydsYW5nY29kZSddXSwgJG9uZVsnbGFuZ2NvZGUnXSkgKTsgDQogICAgICB9DQogICAgICANCiAgICAgICMgYSB0YWJsZSBsZWZ0b3Zlci4uLi4gIA0KICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2VyaWR1X2xhbmdlbnRyaWVzX3NlcScpOw0KICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KICAgICANCiAgICAgIHRyeQ0KICAgICAgew0KICAgICAgICAgJGVyaWR1X21lbnVfdGVtcGxhdGUgPSBuZXcgQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7DQogICAgICAgICAkZXJpZHVfbWVudV90ZW1wbGF0ZS0+c2V0X29yaWdpbmF0b3IoICR0aGlzLT5HZXROYW1lKCkgKTsNCiAgICAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfbmFtZSgnZXJpZHVfbGFuZ19zZWxlY3Rvcl9tZW51Jyk7DQogICAgICAgICAkZXJpZHVfbWVudV90ZW1wbGF0ZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsNCiAgICAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfbGFuZ19jYWxsYmFjaygnRXJpZHU6OnRlbXBsYXRlX2xhbmdfY2FsbGJhY2snKTsNCiAgICAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRXJpZHU6OnJlc2V0X3RlbXBsYXRlX2RlZmF1bHQnKTsNCiAgICAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zZXRfaGVscF9jYWxsYmFjaygnRXJpZHU6OnRlbXBsYXRlX2hlbHBfY2FsbGJhY2snKTsNCiAgICAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsNCiAgICAgICAgICRlcmlkdV9tZW51X3RlbXBsYXRlLT5zYXZlKCk7DQogICAgICB9DQogICAgICBjYXRjaChDbXNFeGNlcHRpb24gJGUpDQogICAgICB7DQogICAgICAgIGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAnSW5zdGFsbGF0aW9uIEVycm9yOiAnIC4gJGUtPkdldE1lc3NhZ2UoKSk7DQogICAgICB9DQogICAgICANCiAgICAgICRhbGx0ZW1wbGF0ZXMgPSAkdGhpcy0+TGlzdFRlbXBsYXRlcygpOw0KICAgICAgDQogICAgICBmb3JlYWNoKCRhbGx0ZW1wbGF0ZXMgYXMgJHRwbG5hbWUpDQogICAgICB7DQogICAgICAgICAkY29udGVudHMgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJHRwbG5hbWUpOw0KICAgICAgICAgDQogICAgICAgICBpZigkY29udGVudHMpDQogICAgICAgICB7DQogICAgICAgICAgIHRyeQ0KICAgICAgICAgICB7DQogICAgICAgICAgICAgJHRwbCA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZSgpOw0KICAgICAgICAgICAgICR0cGwtPnNldF9uYW1lKCR0cGw6OmdlbmVyYXRlX3VuaXF1ZV9uYW1lKCR0cGxuYW1lKSk7DQogICAgICAgICAgICAgJHRwbC0+c2V0X293bmVyKCBnZXRfdXNlcmlkKCkgKTsNCiAgICAgICAgICAgICAkdHBsLT5zZXRfY29udGVudCgkY29udGVudHMpOw0KICAgICAgICAgICAgICR0cGwtPnNldF90eXBlKCR0eXBlKTsNCiAgICAgICAgICAgICAkdHBsLT5zZXRfdHlwZV9kZmx0KCRwcm90b3R5cGUgPT0gJG1vZC0+R2V0UHJlZmVyZW5jZSgkY3VycmVudGRmbHQpKTsNCiAgICAgICAgICAgICAkdHBsLT5zYXZlKCk7DQogICAgICAgIA0KICAgICAgICAgICAgICRtb2QtPkRlbGV0ZVRlbXBsYXRlKCR0cGxuYW1lKTsNCiAgICAgICAgICAgfQ0KICAgICAgICAgICBjYXRjaCggXENtc0ludmFsaWREYXRhRXhjZXB0aW9uICRlICl7fQ0KICAgICAgICAgfQ0KICAgICAgfQ0KICB9DQp9DQpjYXRjaChFeGNlcHRpb24gJGUpIA0Kew0KICAkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJGRiLT5FcnJvck1zZygpICk7DQogIHJldHVybiAkZS0+Z2V0TWVzc2FnZSgpOw0KfQ0KDQovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCiR0aGlzLT5BdWRpdCggDQogICAgICAgICAgICAgIDAsIA0KCSAgICAgICAgICAgICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgDQoJICAgICAgICAgICAgJHRoaXMtPkxhbmcoICd1cGdyYWRlZCcsICR0aGlzLT5HZXRWZXJzaW9uKCkgKQ0KICAgICAgICAgICAgKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IEVyaWR1CnZlcnNpb24gPSAxLjEuYmV0YS41CmRlc2NyaXB0aW9uID0gCmF1dGhvciA9IEpvIE1vcmcgKEZlcm5hbmRvIE1vcmdhZG8pCmF1dGhvcmVtYWlsID0gam9tb3JnQGNtc21hZGVzaW1wbGUub3JnCm1pbmNtc3ZlcnNpb24gPSAyLjEuNQpsYXp5bG9hZGFkbWluID0gMApsYXp5bG9hZGZyb250ZW5kID0gMAo=]]></data>
	</file>
	<file>
	  <filename>/redirect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudAojIFZlcnNpb24gMS4xCiMgQSBmb3JrIG9mIEJhYmVsCiMgbWFpbnRhaW5lZCBieSBGZXJuYW5kbyBNb3JnYWRvIEFLQSBKbyBNb3JnCiMgc2luY2UgMjAxNgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgQmFiZWwgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gdXNpbmcgQ1RMTW9kdWxlTWFrZXIgYW5kIHJlbGVhc2VkIHVuZGVyIEdOVQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgcmVsZWFzZWQgdW5kZXIgR05VCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBFcmlkdSBpcyBhIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUgdGhhdCBlbmFibGVzIHRoZSB3ZWIgZGV2ZWxvcGVyIHRvIGNyZWF0ZQojIGFuZCBtYW5hZ2UgbXVsdGlwbGUgbGFuZ3VhZ2UgY29udGVudAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVyaWR1CiMgRXJpZHUgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBFcmlkdSBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFTkRfTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplcnJvcl9yZXBvcnRpbmcoMCk7CmlmKCFpc3NldCgkX0dFVFsibmV3dXJsIl0pICkKewoJaGVhZGVyKCJsb2NhdGlvbjogaW5kZXgucGhwIik7Cn1lbHNlCnsKCWlmKGlzc2V0KCRfR0VUWyJuZXdsYW5nIl0pKQlzZXRjb29raWUoJ3VzcmxhbmcnLCAkX0dFVFsibmV3bGFuZyJdLCB0aW1lKCkgKyA4NjQwMCozMCwgJy8nKTsKCWhlYWRlcigibG9jYXRpb246ICIgLiAkX0dFVFsibmV3dXJsIl0pOwp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRhZGRuZXd9PC9wPgp7aWYgY291bnQoJGl0ZW1saXN0KSA+IDB9CjxkaXY+Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cjx0aGVhZD48dHI+Cgl7Zm9yZWFjaCBmcm9tPSRhZG1pbnNob3cgaXRlbT1jb2x1bW59CgkJPHRoPnskY29sdW1uWzBdfTwvdGg+Cgl7L2ZvcmVhY2h9CjwvdHI+PC90aGVhZD4KPHRib2R5Pgp7Y3ljbGUgdmFsdWVzPSJyb3cyLHJvdzEiIGFzc2lnbj1yb3djbGFzcyByZXNldD10cnVlfQp7Zm9yZWFjaCBmcm9tPSRpdGVtbGlzdCBpdGVtPW9uZWl0ZW19CntjeWNsZSB2YWx1ZXM9InJvdzIscm93MSIgYXNzaWduPXJvd2NsYXNzfQo8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJe2ZvcmVhY2ggZnJvbT0kYWRtaW5zaG93IGl0ZW09Y29sdW1ufQoJCXthc3NpZ24gdmFyPW9uZXZhbCB2YWx1ZT0kY29sdW1uWzFdfQoJCTx0ZD57JG9uZWl0ZW0tPiRvbmV2YWx9PC90ZD4KCXsvZm9yZWFjaH0KPC90cj4Key9mb3JlYWNofQo8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPHA+eyRhZGRuZXd9PC9wPnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGg0PlZlcnNpb24gMS4wPC9oND4KPHVsPgogIDxsaT4xc3QgcHVibGljIHJlbGVhc2UuPC9saT4KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/default_menu_tmplt.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPg0KICB7Zm9yZWFjaCBmcm9tPSRsYW5ndWFnZXMgaXRlbT0nbGFuZ3VhZ2UnfQ0KICAgIHtpZiAkbGFuZ3VhZ2UtPmlzX2N1cnJlbnR9eyRjbGFzcyA9ICJjbGFzcz0nYWN0aXZlJyJ9e2Vsc2V9eyRjbGFzcyA9ICcnfXsvaWZ9DQogICAgPGxpIHskY2xhc3N9Pg0KICAgICAgPGEge2lmICRsYW5ndWFnZS0+dXJsfWhyZWY9J3skbGFuZ3VhZ2UtPnVybH0ney9pZn0geyRjbGFzc30+eyRsYW5ndWFnZS0+bWVudV9uYW1lfTwvYT4NCiAgICA8L2xpPg0KICB7L2ZvcmVhY2h9DQo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/templates/default_menu_tmplt_backup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsIGlkPSdsYW5ndWFnZV9tZW51Jz4NCntmb3JlYWNoIGZyb209JGxhbmd1YWdlcyBpdGVtPSdsYW5ndWFnZSd9DQogICB7aWYgJGxhbmd1YWdlLT5pc19jdXJyZW50fTxsaSBjbGFzcz0nYWN0aXZlJz48YSB7aWYgJGxhbmd1YWdlLT51cmx9aHJlZj0neyRsYW5ndWFnZS0+dXJsfScgey9pZn1jbGFzcz0nYWN0aXZlJz57ZWxzZX08bGk+PGEgaHJlZj0neyRsYW5ndWFnZS0+dXJsfSc+ey9pZn17JGxhbmd1YWdlLT5tZW51X25hbWV9PC9hPjwvbGk+DQp7L2ZvcmVhY2h9DQo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/templates/editlang.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQ0KeyRoaWRkZW59DQo8aDM+eyRlZGl0dGl0bGV9PC9oMz4NCntpZiAkbGFuZ3NlbGVjdH0NCgk8ZGl2IGlkPSJlcmlkdV9sYW5nc2VsZWN0ZGl2IiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwOyI+DQoJCTxwPnskbGFuZ3NlbGVjdF9sYWJlbH0mbmJzcDt7JGxhbmdzZWxlY3R9PC9wPg0KCTwvZGl2Pg0Key9pZn0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPg0KICAgICAgeyRpdGVtLT5uYW1lX2xhYmVsfSo6DQogICAgICA8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICA8aW5wdXQgY2xhc3M9ImNtc190ZXh0ZmllbGQiIG5hbWU9InskYWN0aW9uaWR9bmFtZSIgaWQ9InskYWN0aW9uaWR9bmFtZSIgdmFsdWU9InskaXRlbS0+bmFtZX0iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjY0IiB0eXBlPSJ0ZXh0Ij4NCiAgICA8L3A+DQoJPC9kaXY+DQogIA0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+DQogICAgICB7JGl0ZW0tPmxhbmdjb2RlX2xhYmVsfSo6DQogICAgPC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgICA8aW5wdXQgY2xhc3M9ImNtc190ZXh0ZmllbGQiIG5hbWU9InskYWN0aW9uaWR9bGFuZ2NvZGUiIGlkPSJ7JGFjdGlvbmlkfWxhbmdjb2RlIiB2YWx1ZT0ieyRpdGVtLT5sYW5nY29kZX0iIHNpemU9IjE1IiBtYXhsZW5ndGg9IjgiIHR5cGU9InRleHQiIHtpZiAhZW1wdHkoJGl0ZW0tPmlkKX1yZWFkb25seXsvaWZ9Pg0KICAgIDwvcD4NCiAgPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPg0KICAgICAgeyRpdGVtLT5pc29fNjM5XzFfbGFiZWx9KjoNCiAgICA8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgIDxpbnB1dCBjbGFzcz0iY21zX3RleHRmaWVsZCIgbmFtZT0ieyRhY3Rpb25pZH1pc29fNjM5XzEiIGlkPSJ7JGFjdGlvbmlkfWlzb182MzlfMSIgdmFsdWU9InskaXRlbS0+aXNvXzYzOV8xfSIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSIyIiB0eXBlPSJ0ZXh0Ij4NCiAgICA8L3A+DQogIDwvZGl2Pg0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPg0KICAgICAgeyRpdGVtLT5pc29fMzE2Nl8xX2FscGhhXzJfbGFiZWx9KjoNCiAgICA8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgIDxpbnB1dCBjbGFzcz0iY21zX3RleHRmaWVsZCIgbmFtZT0ieyRhY3Rpb25pZH1pc29fMzE2Nl8xX2FscGhhXzIiIGlkPSJ7JGFjdGlvbmlkfWlzb18zMTY2XzFfYWxwaGFfMiIgdmFsdWU9InskaXRlbS0+aXNvXzMxNjZfMV9hbHBoYV8yfSIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSIyIiB0eXBlPSJ0ZXh0Ij4NCiAgICA8L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4NCiAgICAgIHskaXRlbS0+bWVudV9uYW1lX2xhYmVsfSA6DQogICAgPC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgPGlucHV0IGNsYXNzPSJjbXNfdGV4dGZpZWxkIiBuYW1lPSJ7JGFjdGlvbmlkfW1lbnVfbmFtZSIgaWQ9InskYWN0aW9uaWR9bWVudV9uYW1lIiB2YWx1ZT0ieyRpdGVtLT5tZW51X25hbWV9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSI2NCIgdHlwZT0idGV4dCI+DQogICAgPC9wPg0KCTwvZGl2Pg0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPiANCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPg0KICAgICAgeyRpdGVtLT5kb21haW5fbGFiZWx9OiB7KmNtc19oZWxwIGtleTI9J2hlbHBfZmllbGRfdXNlcm5hbWUnIHRpdGxlPSRmb28qfQ0KICAgIDwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgIDxpbnB1dCBjbGFzcz0iY21zX3RleHRmaWVsZCIgbmFtZT0ieyRhY3Rpb25pZH1kb21haW4iIGlkPSJ7JGFjdGlvbmlkfWRvbWFpbiIgdmFsdWU9InskaXRlbS0+ZG9tYWlufSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iNjQiIHR5cGU9InRleHQiPg0KICAgIDwvcD4NCiAgPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGl0ZW0tPnJvb3RfaWRfbGFiZWx9KiA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHJvb3RfaWRfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpdGVtLT5kZWZhdWx0X2lkX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGRlZmF1bHRfaWRfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KPGJyLz4NCjxwPnskc3VibWl0fSB7JGFwcGx5fSB7JGNhbmNlbH08L3A+DQo8L2Zvcm0+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQp2YXIgbW9kdWxlaWQgPSAieyRhY3Rpb25pZH0iOw0Ke2xpdGVyYWx9DQpmdW5jdGlvbiBsYW5ndWFnZWZpbGwocmF3ZGF0YSl7DQoJdmFyIG5ld2RhdGEgPSByYXdkYXRhLnNwbGl0KCcvJyk7DQogIHZhciBsYW5nY29kZSA9IG5ld2RhdGFbMF0ucmVwbGFjZSgnXycsICctJyk7DQogIHZhciBjb2RlcyA9IGxhbmdjb2RlLnNwbGl0KCctJyk7DQogIHZhciBpc29fNjM5XzEgPSBjb2Rlc1swXTsNCiAgdmFyIGlzb18zMTY2XzFfYWxwaGFfMiA9IGNvZGVzWzFdOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vZHVsZWlkKydsYW5nY29kZScpLnZhbHVlID0gbGFuZ2NvZGU7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW9kdWxlaWQrJ25hbWUnKS52YWx1ZSA9IG5ld2RhdGFbMV07DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vZHVsZWlkKydtZW51X25hbWUnKS52YWx1ZSA9IG5ld2RhdGFbMV07DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vZHVsZWlkKydpc29fNjM5XzEnKS52YWx1ZSA9IGlzb182MzlfMTsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2R1bGVpZCsnaXNvXzMxNjZfMV9hbHBoYV8yJykudmFsdWUgPSBpc29fMzE2Nl8xX2FscGhhXzI7DQoJcmV0dXJuIGZhbHNlOw0KfQ0KdmFyIGxhbmdzZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXJpZHVfbGFuZ3NlbGVjdGRpdicpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKTsNCmlmKGxhbmdzZWxlY3RbMF0pIGxhbmdzZWxlY3RbMF0ub25jaGFuZ2UgPSBmdW5jdGlvbigpew0KCWxhbmd1YWdlZmlsbCh0aGlzLnZhbHVlKTsNCn07DQpsYW5nc2VsZWN0ID0gbnVsbDsNCnsvbGl0ZXJhbH0NCjwvc2NyaXB0Pg0K]]></data>
	</file>
	<file>
	  <filename>/templates/entriestable.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVGFicyBIZWFkZXJzICp9DQo8ZGl2IGlkPSJwYWdlX3RhYnMiPg0KICA8ZGl2IGlkPSJnZW5lcmFsIj4NCiAgICBXaGF0IElzIEl0DQogIDwvZGl2PiAgICANCiAgPGRpdiBpZD0iaG93Ij4NCiAgICBIb3cgVG8gVXNlIEl0DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJtZXRob2RzIj4NCiAgTWV0aG9kcw0KPC9kaXY+ICAgICAgIA0KICA8ZGl2IGlkPSJhYm91dCI+DQogICAgQWJvdXQNCiAgPC9kaXY+DQo8L2Rpdj4NCnsqIFRhYnMgSGVhZGVycyAqfQ0KDQo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pg0KDQp7KiBUYWJzIENvbnRlbnRzICp9DQo8ZGl2IGlkPSJwYWdlX2NvbnRlbnQiPg0KDQp7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0NCnsqIFdoYXQgSXMgSXQgKn0NCiAgPGRpdiBpZD0iZ2VuZXJhbF9jIj4NCiAgPGJsb2NrcXVvdGUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2ZjZmNmYyA7cGFkZGluZzogMXB4IDNweCA4cHggMTZweDsgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjNTc3ZGE0OyI+DQogIDxoND48ZW0+PHN0cm9uZz5FcmlkdTwvc3Ryb25nPjwvZW0+PC9oND4NCiAgPHA+PGVtPjxzdHJvbmc+RXJpZHU8L3N0cm9uZz4gaXMgYW4gYW5jaWVudCBTdW1lcmlhbiBjaXR5IGluIHdoYXQgaXMgbm93IFRlbGwgQWJ1IFNoYWhyYWluLCBEaGkgUWFyIEdvdmVybm9yYXRlLCBJcmFxLjwvZW0+PC9wPg0KICA8cD48ZW0+PHN0cm9uZz5FcmlkdTwvc3Ryb25nPiB3YXMgbG9uZyBjb25zaWRlcmVkIHRoZSBlYXJsaWVzdCBjaXR5IGluIHNvdXRoZXJuIE1lc29wb3RhbWlhLCBhbmQgaXMgc3RpbGwgdG9kYXkgYXJndWVkIHRvIGJlIHRoZSBvbGRlc3QgY2l0eSBpbiB0aGUgd29ybGQuPC9lbT48L3A+DQogIDxwPjxlbT5bLi4uXSBUaGUgRWd5cHRvbG9naXN0IDxzdHJvbmc+RGF2aWQgUm9obDwvc3Ryb25nPiwgaGFzIGNvbmplY3R1cmVkIHRoYXQgPHN0cm9uZz5FcmlkdTwvc3Ryb25nPiwgdG8gdGhlIHNvdXRoIG9mIFVyLCB3YXMgdGhlIG9yaWdpbmFsIDxzdHJvbmc+QmFiZWw8L3N0cm9uZz4gYW5kIHNpdGUgb2YgdGhlIDxzdHJvbmc+VG93ZXIgb2YgQmFiZWw8L3N0cm9uZz4sIHJhdGhlciB0aGFuIHRoZSBsYXRlciBjaXR5IG9mIDxzdHJvbmc+QmFieWxvbjwvc3Ryb25nPiBbLi4uXTwvZW0+PC9wPg0KICA8Y2l0ZT5XaWtpcGVkaWE8L2NpdGU+DQo8L2Jsb2NrcXVvdGU+DQogICAgPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQogICAgPHA+VGhpcyBtb2R1bGUgbWFuYWdlcyBtdWx0aXBsZXMgbGFuZ3VhZ2VzIGZvciB0aGUgZnJvbnRlbmQgYW5kIHByb3ZpZGVzIG5hdmlnYXRpb24gdGhyb3VnaCB0aGUgbGFuZ3VhZ2VzLjwvcD4NCiAgICA8cD5JdHMgYSBmb3JrIG9mIDxzdHJvbmc+QmFiZWw8L3N0cm9uZz4gd2hpY2gsIGJ5IHRoZSB0aW1lIG9mIHRoaXMgd3JpdHRpbmcsIHNlZW1zIHRvIGJlIDxlbT5hYmFuZG9uLXdhcmU8L2VtPi48L3A+DQogICAgPHA+Qm90aCB0aGlzIG1vZHVsZSBhbmQgQmFiZWwgdXNlIGFuIGFwcHJvYWNoIHRvIG11bHRpbGluZ3VhbCBzaXRlcyBjYWxsZWQgInNlcGFyYXRlIHRyZWUgYnJhbmNoZXMiLCB3aGljaCBoYXMgYmVlbiBkZXZlbG9wcGVkIGJ5IG90aGVyIGNtc21zIGRldmVsb3BlcnMgKG5hbWVseSBNYXJjb3MgQ3J1eiAtIHNlZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcvdmlld3RvcGljLnBocD90PTE5MDk5I3A5NDc0OSIgdGFyZ2V0PSJfYmxhbmsiPnRoaXMgdG9waWM8L2E+LjwvcD4NCiAgICA8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiB0aHJvdWdoIGEgZmV3IGNoYW5nZXMgYW5kIGhhcyBhbiBleHRlbnNpdmUgcm9hZG1hcCBmb3IgZnV0dXJlIHJlbGVhc2VzLiBUaGVyZSBtYXkgYmUgYSBmZXcgbWlub3IgZ2xpdGNoZXMgYnV0IGl0IGhhcyBiZWVuIHVzZWQgaW4gcHJvZHVjdGlvbiBzaXRlcyBmb3IgYWxtb3N0IGEgeWVhciBhbHJlYWR5LiBJdCBoYXMgcHJvdmVuIHRvIGJlIHF1aXRlIHN0YWJsZSBzbyBmYXIuPC9wPg0KICA8L2Rpdj4NCiAgDQp7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0NCnsqIEhvdyBUbyBVc2UgSXQgKn0NCiAgPGRpdiBpZD0iaG93X2MiPg0KICAgIDxoMz5Ib3cgRG8gSSBVc2UgSXQ/PC9oMz4NCiAgICA8aDQ+VHJlZSBicmFuY2hlczwvaDQ+DQogICAgPHA+VGhpcyBtb2R1bGUgdXNlcyBhbiBhcHByb2FjaCB0byBtdWx0aWxpbmd1YWwgc2l0ZXMgY2FsbGVkIDxlbT48c3Ryb25nPiJzZXBhcmF0ZSB0cmVlIGJyYW5jaGVzIjwvc3Ryb25nPjwvZW0+LCB3aGljaCBoYXMgYmVlbiBkZXZlbG9wcGVkIGJ5IG90aGVyIGNtc21zIGRldmVsb3BlcnMgKG5hbWVseSA8c3Ryb25nPk1hcmNvcyBDcnV6PC9zdHJvbmc+IC0gc2VlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZy92aWV3dG9waWMucGhwP3Q9MTkwOTkjcDk0NzQ5IiB0YXJnZXQ9Il9ibGFuayI+dGhpcyB0b3BpYzwvYT4pLjwvcD4NCiAgICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij48cD5TaG91bGQgeW91IG5lZWQgdG8gdXNlIGl0IGluIHlvdXIgdGVtcGxhdGVzLCB0aGUgY3VycmVudCBsYW5ndWFnZSBjb2RlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSA8ZW0+PHN0cm9uZz4kcGFnZV9sYW5nIHZhcmlhYmxlPC9zdHJvbmc+PC9lbT4uPC9wPg0KICAgIDxwPk1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGxhbmd1YWdlIGNhbiBhbHNvIGJlIHJldHJpZXZlZCB1c2luZyB0aGUgPGVtPjxzdHJvbmc+JHBhZ2VfbGFuZ19pbmZvIG9iamVjdDwvc3Ryb25nPjwvZW0+ICh3aXRoIHRoZSBzYW1lIGF0dHJpYnV0ZXMgYXMgaW4gdGhlIG1lbnUgdGVtcGxhdGVzKS48L3A+PC9kaXY+DQogICAgDQogICAgPGg0PlBhcnQgMTogc2V0dGluZyB1cCB0aGUgcGFnZXM8L2g0PiAgICAgIA0KICAgIDxwPlRvIHVzZSB0aGlzLCB5b3Ugd2lsbCBoYXZlIHRvIGNyZWF0ZSBkaWZmZXJlbnQgcm9vdCBwYWdlcyBmb3IgZWFjaCBsYW5ndWFnZS4gRm9yIGV4YW1wbGU6PC9wPg0KICAgIDxmaWVsZHNldD4NCiAgICAgIDxsZWdlbmQ+U2FtcGxlIFNpdGUgU3RydWN0dXJlPC9sZWdlbmQ+DQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+MS4gRW5nbGlzaA0KICAgICAgICAgICAgPHVsPg0KICAgICAgICAgICAgICA8bGk+MS4xLiAxc3QgcGFnZTwvbGk+DQogICAgICAgICAgICAgIDxsaT4xLjIuIDJuZCBwYWdlPC9saT4NCiAgICAgICAgICAgICAgPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICAgIDxsaT4yLiBGcmFuJmNjZWRpbDthaXMNCiAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgPGxpPjIuMS4gUGFnZSAxPC9saT4NCiAgICAgICAgICAgICAgPGxpPjIuMi4gUGFnZSAyPC9saT4NCiAgICAgICAgICAgICAgPGxpPjIuMy4gUGFnZSAzPC9saT4NCiAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgPC9saT4NCiAgICAgICAgPC91bD4NCiAgICA8L2ZpZWxkc2V0Pg0KDQogICAgPHA+PHN0cm9uZz5Sb290IGxhbmd1YWdlPC9zdHJvbmc+IHBhZ2VzIDxzdHJvbmc+KDEuIGFuZCAyLik8L3N0cm9uZz4gc2hvdWxkIGJlIDxzdHJvbmc+PGVtPnNlY3Rpb24gaGVhZGVyczwvZW0+PC9zdHJvbmc+LjwvcD4NCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+WW91IGNhbiBuYW1lIHRoZW0gKGFsaWFzIGFuZCBhbGwpIGFueSB3YXkgeW91IHdhbnQuPC9kaXY+DQogICAgIA0KICAgIDxwPkluIG9yZGVyIHRvIGRpc3BsYXkgbWVudSBjb3JyZWN0bHkgKHRoYXQgaXMsIG5vdCB0byBkaXNwbGF5IGxhbmd1YWdlIGhlYWRlciBwYWdlcyBhbmQgcGFnZXMgYmVsb25naW5nIHRvIG90aGVyIGxhbmd1YWdlcyksIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgdGhlIDxzdHJvbmc+c3RhcnRfbGV2ZWw9JzInPC9zdHJvbmc+IHRvIHlvdXIgbWVudSB0YWdzOjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e2xpdGVyYWx9e21lbnUgc3RhcnRfbGV2ZWw9JzInfXsvbGl0ZXJhbH08L3ByZT48L3A+DQogICAgPGg0PlBhcnQgMjogc2V0dGluZyB1cCB0aGUgbGFuZ3VhZ2VzPC9oND4NCiAgICA8cD5OZXh0LCBnbyB0bzo8L3A+DQogICAgICA8ZmllbGRzZXQ+DQogICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+PHN0cm9uZz48ZW0+Q29udGVudCAmZ3Q7IEVyaWR1OiBNdWx0aWxpbmd1YWwgQ29udGVudDwvZW0+PC9zdHJvbmc+PC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgIDwvZmllbGRzZXQ+IA0KICAgIDxwPkZvciBlYWNoIGxhbmd1YWdlLCBjbGljayA8c3Ryb25nPjxlbT5BZGQgTGFuZ3VhZ2U8L2VtPjwvc3Ryb25nPiBhbmQgZW50ZXIgdGhlIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9ucy48cD4NCiAgICA8cD5UaGUgPHN0cm9uZz4iUm9vdCBwYWdlIjwvc3Ryb25nPiBzaG91bGQgYmUgb25lIG9mIHRoZSA8c3Ryb25nPnNlY3Rpb24gaGVhZGVyczwvc3Ryb25nPiB5b3UndmUgY3JlYXRlZCBmb3IgZWFjaCBsYW5ndWFnZSA8c3Ryb25nPigxLkVuZ2xpc2gsIDIuRnJhbiZjY2VkaWw7YWlzKTwvc3Ryb25nPi48L3A+DQogICAgICA8ZmllbGRzZXQ+DQogICAgICA8bGVnZW5kPlJvb3QgUGFnZXMgYW5kIFNlY3Rpb24gSGVhZGVyczwvbGVnZW5kPg0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPjxzdHJvbmc+MS4gRW5nbGlzaDwvc3Ryb25nPiAoc2hvdWxkIGJlIGEgU2VjdGlvbiBIZWFkZXIpDQogICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgIDxsaT4uLi48L2xpPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICAgIDxsaT48c3Ryb25nPjIuIEZyYW4mY2NlZGlsO2Fpczwvc3Ryb25nPiAoc2hvdWxkIGJlIGEgU2VjdGlvbiBIZWFkZXIpDQogICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgIDxsaT4uLi48L2xpPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L3VsPg0KICAgIDwvZmllbGRzZXQ+DQogICAgPHA+VGhlIDxzdHJvbmc+IkRlZmF1bHQgcGFnZSI8L3N0cm9uZz4gc2hvdWxkIGJlIHRoZSA8c3Ryb25nPmhvbWUgcGFnZTwvc3Ryb25nPiBmb3IgZWFjaCBsYW5ndWFnZS48L3A+DQogICAgPHA+QXMgb2YgdGhlIGxhbmd1YWdlIGNvZGUsIHlvdSBjb3VsZCB1c2UgYW55IDUgY2hhcmFjdGVycyBjb2RlLCBidXQgaW4gb3JkZXIgdG8gcHJvdmlkZSBnb29kIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgbW9kdWxlcywgeW91IHNob3VsZCB1c2UgdGhlIHNhbWUgYXMgQ01TTVMgdXNlcyAoeW91IG1heSB1c2UgdGhlIGRyb3AgZG93biBsaXN0IG9uIHRoZSB0b3AgcmlnaHQgdG8gcGFydGlhbGx5IGZpbGwgdGhlIGZvcm0pLjwvcD4NCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPjxwPldoZW4gcmVhZHksIG1ha2Ugc3VyZSB5b3UgYWN0aXZhdGUgZWFjaCBsYW5ndWFnZS4uLjwvcD48L2Rpdj4NCiAgICANCiAgICA8aDQ+UGFydCAzOiBMYW5ndWFnZSBtZW51PC9oND4NCiAgICA8cD5UbyBnZXQgYSBsYW5ndWFnZSBtZW51LCB5b3UgbWF5IHVzZSB0aGUgZm9sbG93aW5nIHRhZzo8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntsaXRlcmFsfXtFcmlkdSBhY3Rpb249J21lbnUnfXsvbGl0ZXJhbH08L3ByZT48L3A+DQogICAgPHA+b3IsIHRvIHVzZSBhIHRlbXBsYXRlIG90aGVyIHRoYW4gdGhlIGRlZmF1bHQgb25lOjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e2xpdGVyYWx9e0VyaWR1IGFjdGlvbj0nbWVudScgdGVtcGxhdGU9J3RlbXBsYXRlX25hbWUnfXsvbGl0ZXJhbH08L3ByZT48L3A+DQogICAgPHA+VGhlICJzaG93IiBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gY2hvb3NlIHdoaWNoIGxhbmd1YWdlcyBzaG91bGQgYmUgZGlzcGxheWVkLjwvcD4NCiAgICA8aDQ+UGFydCA0IChvcHRpb25hbCkgOiBDdXN0b20gbGFuZ3VhZ2UgZW50cmllczwvaDQ+DQogICAgPHA+SW4gPHN0cm9uZz50ZW1wbGF0ZXM8L3N0cm9uZz4sIDxzdHJvbmc+bW9kdWxlIHRlbXBsYXRlczwvc3Ryb25nPiwgPHN0cm9uZz5nbG9iYWwgY29udGVudCBibG9ja3MgKEdDQidzKTwvc3Ryb25nPiwgPHN0cm9uZz5jb250ZW50IGJsb2Nrczwvc3Ryb25nPiwgZXRjLCB5b3UgbWF5IG5lZWQgdG8gY2hhbmdlIHRoZSBjb250ZW50IGRlcGVuZGluZyBvbiB0aGUgbGFuZ3VhZ2UuPC9wPg0KICAgIDxwPlRoZSB0cmFkaXRpb25hbCB3YXkgdG8gZG8gdGhpcyB3YXMgdG8gY3JlYXRlIGNvbmRpdGlvbnMgd2l0aCB0aGUgcGFnZV9sYW5nIHZhcmlhYmxlOjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e2xpdGVyYWx9DQogICAge2lmICRwYWdlX2xhbmcgPT0gJ2VuX1VTJ30NCiAgICAgIEVuZ2xpc2ggdGV4dA0KICAgIHtlbHNlaWYgJHBhZ2VfbGFuZyA9PSAnZnJfRlInfQ0KICAgICAgVGV4dGUgZW4gZnJhbiZjY2VkaWw7YWlzDQogICAgey9pZn17L2xpdGVyYWx9PC9wcmU+PC9wPg0KICAgIDxwPldlbGwuLi4geW91IGNhbiBzdGlsbCB1c2UgdGhpcyBtZXRob2QgYnV0LCB3aXRoIHRoZSBtb2R1bGUsIGFub3RoZXIgbW9yZSBjZW50cmFsaXplZCB3YXkgaXMgcHJvdmlkZWQuPC9wPg0KICAgIDxwPkluIHRoZSBhZG1pbiBwYW5lbCBvZiB0aGlzIG1vZHVsZSwgeW91IHdpbGwgZmluZCBhIGxpbmsgdG8gZWRpdCBlbnRyaWVzIGZvciBlYWNoIGxhbmd1YWdlLjwvcD4NCiAgICA8cD48c3Ryb25nPjxlbT5MYW5ndWFnZSBFbnRyaWVzPC9lbT48L3N0cm9uZz4gYXJlIHN0cmluZ3MgdGhhdCBleGlzdHMgZm9yIGVhY2ggbGFuZ3VhZ2UgYnV0IGhvbGQgZGlmZmVyZW50IHRleHQgKG9yIEhUTUwpLjwvcD4NCiAgICA8cD5XaGF0IHlvdSBjYW4gZG8gaXMgdG8gY3JlYXRlIGEgbmV3IDxzdHJvbmc+PGVtPmxhbmd1YWdlIGVudHJ5PC9lbT48L3N0cm9uZz4gKGZvciBleGFtcGxlOiAid2VsY29tZSB0ZXh0IiwgZW50ZXIgaXRzIGNvbnRlbnQgZm9yIGFsbCBsYW5ndWFnZXMsIGFuZCBzaW1wbHkgY2FsbCB0aGUgZW50cnkgd2hlcmV2ZXIgeW91IG5lZWQgaXQgdXNpbmcgdGhlIGRlZmF1bHQgYWN0aW9uOjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e2xpdGVyYWx9e0VyaWR1IHNob3c9J3dlbGNvbWUgdGV4dCd9ey9saXRlcmFsfTwvcHJlPjwvcD4NCiAgICA8cD5TaG91bGQgeW91IGV2ZXIgbmVlZCB0byBlZGl0IHRoZSBzdHJpbmdzIGFuZCBhZGQgbGFuZ3VhZ2VzLCB5b3Ugd2lsbCBmaW5kIHRoaXMgc29sdXRpb24gdG8gYmUgbW9yZSBoYW5keS4gQnV0IGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBvbmUsIGl0IHdpbGwgd29yayBqdXN0IHRoZSBzYW1lLjwvcD4NCiAgICA8cD5Zb3UgY2FuIGFsc28gYXNzaWduIGxhbmd1YWdlIGVudHJpZXMgdG8gc21hcnR5IHZhcmlhYmxlcywgdXNpbmc6PC9wPg0KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57bGl0ZXJhbH17RXJpZHUgc2hvdz0nd2VsY29tZSB0ZXh0JyBhc3NpZ249J3dlbGNvbWUnfXsvbGl0ZXJhbH08L3ByZT48L3A+DQogICAgPHA+b3IsIGlmIHlvdSB3YW50IHRvIGFzc2lnbiBtdWx0aXBsZSBlbnRyaWVzLCBzZXBlcmF0ZSB0aGVtIGJ5IGNvbW1hczo8L3A+DQogICAgPHA+PHByZSBzdHlsZT0iZGlzcGxheTpibG9jazsiPntsaXRlcmFsfXtFcmlkdSBzaG93PSdlbnRyeTEsZW50cnkyLGVudHJ5JyBhc3NpZ249J3ZhcjEsdmFyMix2YXIzJ317L2xpdGVyYWx9PC9wcmU+PC9wPg0KICA8L2Rpdj4NCiAgDQp7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKn0NCnsqIE1ldGhvZHMgKn0NCiAgPGRpdiBpZD0ibWV0aG9kc19jIj4NCiAgICA8aDM+TGFuZ3VhZ2UgcmVkaXJlY3Rpb24gbWV0aG9kczwvaDM+ICANCiAgICA8cD5UaGVyZSBhcmUgdHdvIHBvc3NpYmxlIG1ldGhvZHMgdG8gdGVsbCBDTVNNUyB3aGljaCBwYWdlIGlzIHRoZSBlcXVpdmFsZW50IGluIGFub3RoZXIgbGFuZ3VhZ2Ugb2YgYSBnaXZlbiBwYWdlLjwvcD4NCiAgICA8cD4gQnkgZGVmYXVsdCwgdGhlIGhpcmVyYXJjaHkgc29sdXRpb24gaXMgYWN0aXZhdGVkLCBidXQgeW91IGNhbiBjaGFuZ2UgdGhhdCBpbiB0aGUgc2V0dGluZ3MgdGFiLjwvcD4NCiAgICA8aDQ+TWFyY29zIENydXoncyBkZWZpbml0aW9uIHNvbHV0aW9uPC9oND4NCiAgICA8ZmllbGRzZXQ+DQogICAgICA8dWw+DQogICAgICAgIDxsaT48c3Ryb25nPjxlbT5Qcm9zOjwvZW0+PC9zdHJvbmc+IGFsbG93cyB0aGlnaHQgY3VzdG9taXphdGlvbiBhbmQgcGFydGlhbCB0cmFuc2xhdGlvbi48L2xpPg0KICAgICAgICA8bGk+PHN0cm9uZz48ZW0+Q29uczo8L2VtPjwvc3Ryb25nPiBuZWVkIHRvIHNwZWNpZnkgbGFuZ3VhZ2UgYWx0ZXJuYXRpdmVzIGZvciBlYWNoIHBhZ2UsIGFuZCB0byB1cGRhdGUgaXQgaWYgYW4gYWxpYXMgY2hhbmdlcy48L2xpPg0KICAgICAgPC91bD4NCiAgICA8L2ZpZWxkc2V0PiANCiAgICA8cD5BZGQgdGhlIGZvbGxvd2luZyB0YWcgaW4gZWFjaCBvZiB5b3VyIHBhZ2UgdGVtcGxhdGVzIDo8cD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e2xpdGVyYWx9e2NvbnRlbnQgYmxvY2s9J090aGVyIGxhbmd1YWdlcycgb25lbGluZT0ndHJ1ZScgYXNzaWduPW90aGVyX2xhbmd1YWdlcyB3eXNpd3lnPSdmYWxzZSd9ey9saXRlcmFsfTwvcHJlPjwvcD4NCiAgICA8cD5UaGlzIHdpbGwgYWRkIGEgY29udGVudCBibG9jayB0byBiZSBmaWxsZWQgd2hlbiB5b3UgZWRpdCB0aGUgcGFnZS4gV2Ugd2lsbCB1c2UgdGhpcyBibG9jayB0byBkZWZpbmUgdGhlIGVxdWl2YWxlbnRzIGluIG90aGVyIGxhbmd1YWdlcyBmb3IgdGhpcyBwYWdlLCBieSBmaWxsaW5nIGl0IGluIHRoZSBmb2xsb3dpbmcgd2F5OjwvcD4NCiAgICA8ZmllbGRzZXQ+ZW5fVVM9PGVtPnBhZ2UxPC9lbT47ZnJfRlI9PGVtPnBhZ2UxPC9lbT47ZGVfREU9PGVtPnBhZ2UxPC9lbT48L2ZpZWxkc2V0Pg0KICAgIDxwPndoZXJlIDxzdHJvbmc+PGVtPnBhZ2UxPC9lbT48L3N0cm9uZz4sIDxzdHJvbmc+PGVtPnBhZ2UxPC9lbT48L3N0cm9uZz4gYW5kIDxzdHJvbmc+PGVtPnBhZ2UxPC9lbT48L3N0cm9uZz4gYXJlIHRoZSBwYWdlIGFsaWFzZXMuPC9wPg0KICAgIDxkaXYgY2xhc3M9Indhcm5pbmciIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+PHA+dGhlIG9yZGVyIGRvZXMgbm90IG1hdHRlciwgYnV0IG5vIHNwYWNlcyBhcmUgYWxsb3dlZDwvcD48L2Rpdj4NCiAgICA8cD5UbyBtYWtlIHN1cmUgdGhlIG1vZHVsZXMgdXNlcyB0aGlzIG1ldGhvZCwgbWFrZSBzdXJlIHRvIHVudGljayB0aGUgPHN0cm9uZz48ZW0+IlVzZSBoaWVyYXJjaHkgZm9yIHJlZGlyZWN0aW9uIjwvZW0+PC9zdHJvbmc+IG9wdGlvbiBpbiB0aGUgPHN0cm9uZz48ZW0+U2V0dGluZ3M8L2VtPjwvc3Ryb25nPiB0YWIuPC9wPg0KICAgIDxoND5UaGUgaGllcmFyY2h5IHNvbHV0aW9uPC9oND4NCiAgICA8ZmllbGRzZXQ+DQogICAgICA8dWw+DQogICAgICAgIDxsaT48c3Ryb25nPjxlbT5Qcm9zOjwvZW0+PC9zdHJvbmc+IGl0J3MgYXV0b21hdGljIC0geW91IGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcuPC9saT4NCiAgICAgICAgPGxpPjxzdHJvbmc+PGVtPkNvbnM6PC9lbT48L3N0cm9uZz4gdGhlIHBhZ2Ugc3RydWN0dXJlIG11c3QgYmUgaWRlbnRpY2FsIGZvciBlYWNoIGxhbmd1YWdlLjwvbGk+DQogICAgICA8L3VsPg0KICAgIDwvZmllbGRzZXQ+IA0KICAgIDxwPlRoaXMgc29sdXRpb24gdXNlcyB0aGUgcGFnZSBoaWVyYXJjaHkgdG8ga25vdyB3aGljaCBwYWdlcyBhcmUgZXF1aXZhbGVudC48L3A+DQogICAgPHA+SW4gb3VyIGV4YW1wbGUgYWJvdmUsICIyLjMuIFBhZ2UgMyIgd291bGQgYmUgdGhlIGZyZW5jaCBlcXVpdmFsZW50IG9mICIxLjMuIDNyZCBwYWdlIiwgYmVjYXVzZSBpdCBvY2N1cGllcyB0aGUgZXF1aXZhbGVudCBwb3NpdGlvbiBpbiB0aGUgZnJlbmNoIGJyYW5jaC48L3A+DQogICAgPHA+SW4gb3RoZXIgd29yZHMsIHNob3VsZCB0aGUgcGFnZSBiZSBvcmRlcmVkIGRpZmZlcmVudGx5LCBhbGwgd291bGQgYmUgbWVzc2VkIHVwOjwvcD4NCiAgICA8ZmllbGRzZXQ+DQogICAgICA8bGVnZW5kPlBhZ2UgSGllcmFyY2h5IERvZXNuJ3QgTWF0Y2g8L2xlZ2VuZD4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPjEuIEVuZ2xpc2gNCiAgICAgICAgICA8dWw+DQogICAgICAgICAgICA8bGk+MS4xLiAxc3QgcGFnZTwvbGk+DQogICAgICAgICAgICA8bGk+MS4yLiAybmQgcGFnZTwvbGk+DQogICAgICAgICAgICA8bGk+MS4zLiAzcmQgcGFnZTwvbGk+DQogICAgICAgICAgPC91bD4NCiAgICAgICAgPC9saT4NCiAgICAgICAgPGxpPjIuIEZyYW4mY2NlZGlsO2Fpcw0KICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgIDxsaT4yLjEuIFBhZ2UgMTwvbGk+DQogICAgICAgICAgICA8bGk+Mi4yLiBQYWdlIDM8L2xpPg0KICAgICAgICAgICAgPGxpPjIuMy4gUGFnZSAyPC9saT4NCiAgICAgICAgICA8L3VsPg0KICAgICAgICA8L2xpPg0KICAgICAgPC91bD4NCiAgICA8L2ZpZWxkc2V0Pg0KICAgIDxwPkhlcmUsICJQYWdlIDIiIG9jY3VwaWVzIHRoZSB0aGlyZCBwb3NpdGlvbiwgc28gaXQgd291bGQgYmUgZGVlbWVkIGVxdWl2YWxlbnQgdG8gdGhlIDNyZCBwYWdlIGluIGVuZ2xpc2guPC9wPiAgICAgICAgDQogICAgPHA+VGhpcyBhbHNvIG1lYW5zIHRoYXQgaWYgYWxsIHBhZ2VzIGRvIG5vdCBleGlzdCBpbiBhbGwgbGFuZ3VhZ2VzLCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsLiBGb3IgZXhhbXBsZTo8L3A+DQogICAgPGZpZWxkc2V0Pg0KICAgICAgPGxlZ2VuZD5QYWdlIEhpZXJhcmNoeSBXaXRoIGEgTWlzc2luZyBQYWdlPC9sZWdlbmQ+DQogICAgICA8dWw+DQogICAgICAgIDxsaT4xLiBFbmdsaXNoDQogICAgICAgICAgPHVsPg0KICAgICAgICAgICAgPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPg0KICAgICAgICAgICAgPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPg0KICAgICAgICAgICAgPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgIDwvbGk+DQogICAgICAgIDxsaT4yLiBGcmFuJmNjZWRpbDthaXMNCiAgICAgICAgICA8dWw+DQogICAgICAgICAgICA8bGk+Mi4xLiBQYWdlIDI8L2xpPg0KICAgICAgICAgICAgPGxpPjIuMi4gUGFnZSAzPC9saT4NCiAgICAgICAgICA8L3VsPg0KICAgICAgICA8L2xpPg0KICAgICAgPC91bD4NCiAgICA8L2ZpZWxkc2V0Pg0KICAgIDxwPkhlcmUsICIxc3QgcGFnZSIgd291bGQgYmUgdGFrZW4gdG8gYmUgZXF1aXZhbGVudCB0byAiUGFnZSAyIiBhbmQgIjNyZCBwYWdlIiB3b3VsZCBiZSBkZWVtZWQgdG8gaGF2ZSBubyB0cmFkdWN0aW9uLCBhbHRob3VnaCBpdCBkb2VzLjwvcD4NCiAgPC9kaXY+DQogIA0KeyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKip9DQp7KiBDcmVkaXRzICp9DQogIDxkaXYgaWQ9ImFib3V0X2MiPg0KICAgIA0KICAgIDxoMz5TdXBwb3J0PC9oMz4NCiAgICA8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KICAgIDxwPlRoZSBtb2R1bGUgYXV0aG9yIGlzIGluIG5vIHdheSBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUgaW4gYW55IGZhc2hpb24uIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXRzIHVzZTo8L3A+DQogICAgeyo8cD5JZiB5b3UgZmluZCBhbnkgYnVncyBwbGVhc2UgZmVlbCBmcmVlIHRvIHN1Ym1pdCBhIGJ1ZyByZXBvcnQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9idWcvbGlzdC8xMzQ1IiB0YXJnZXQ9Il9ibGFuayI+aGVyZTwvYT4gb3IgZm9yIGFueSBnb29kIGlkZWFzIGNvbnNpZGVyIHN1Ym1pdHRpbmcgYSBmZWF0dXJlIHJlcXVlc3QgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9mZWF0dXJlX3JlcXVlc3QvbGlzdC8xMzQ1IiB0YXJnZXQ9Il9ibGFuayI+aGVyZTwvYT4uPC9wPiAgKn0NCiAgICA8cD5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByb3ZpZGUgYWxsIHJlbGV2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvcD4NCiAgICA8cD5UaGUgYXV0aG9yLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L3A+DQogICAgPHA+UGxlYXNlIGtlZXAgaW4gbWluZCB0aGF0IGRldmVsb3BlcnMgZG8gaGF2ZSB0aGVpciBkYWlseSBqb2JzIHdoaWNoIG1lYW5zIHRoYXQgZmVhdHVyZSByZXF1ZXN0cyBhcmUgY29uc2lkZXJlZCBhbmQgZG9uZSBhcyB0aW1lIGFsbG93cy4gSWYgeW91IG5lZWQgYSBmZWF0dXJlIHJlYWxseSBiYWRseSBjb25zaWRlciBjb250YWN0aW5nIG9uZSBvZiB0aGUgZGV2ZWxvcGVycyBmb3IgYSBzcG9uc29yZWQgZGV2ZWxvcG1lbnQuPC9wPg0KDQogICAgPHA+SWYgd2FudCB0byBoZWxwIHRoZSBkZXZlbG9wbWVudCBhbmQgbWFpbnRlbmFuY2Ugb2YgdGhpcyBtb2R1bGUsIHBsZWFzZSBjb25zaWRlciBkb25hdGluZy4gPGJyIFw+IDxiciBcPg0KICAgIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyP2NtZD1fcy14Y2xpY2smaG9zdGVkX2J1dHRvbl9pZD00NTdRU1pNUVg3QktBIj4gDQogICAgICA8aW1nIHNyYz0ieyRyb290X3VybH0vbW9kdWxlcy9FcmlkdS9pbWFnZXMvcHBfYnV0dG9uLnBuZyIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iYXlQYWwg4oCTIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lLiIgLz4NCiAgICA8L2E+PC9wPg0KICANCiAgICA8aDM+VHJvdWJsZXNob290aW5nPC9oMz4gICAgDQogICAgPHA+UGFnZSBsYW5ndWFnZSBzaG91bGQgYmUgZGV0ZWN0ZWQgYW5kIGFzc2lnbmVkIHRvIHRoZSBzbWFydHkgdmFyaWFibGVzIGJlZm9yZSB0aGUgdGVtcGxhdGUgaXMgcHJvY2Vzc2VkIGJ5IGFuIGV2ZW50IGhhbmRsZXIuIEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRoYXQgYXQgc29tZSBwb2ludCBpbiB0aGUgcGFnZSB0ZW1wbGF0ZSB0aGUgcGFnZSBsYW5ndWFnZSBpcyBsb3N0IChlc3BlY2lhbGx5IHNpbmNlIHRoZSBwYWdlIGhlYWQgaXMgcHJvY2Vzc2VkIHNlcGFyYXRseSBmcm9tIHRoZSBwYWdlIGJvZHkpLiBTaG91bGQgdGhpcyBoYXBwZW4sIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgdGFnIHRvIHJlYXNzaWduIGl0OjwvcD4NCiAgICA8cD48cHJlIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+e2xpdGVyYWx9e0VyaWR1IGFjdGlvbj0nYXNzaWduJ317L2xpdGVyYWx9PC9wcmU+PC9wPg0KICAgIDxwPk5vdGUgdGhhdCB5b3UgbWF5IGFsc28gdXNlPC9wPg0KICAgIDxwPjxwcmUgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij57bGl0ZXJhbH17RXJpZHUgYWN0aW9uPSdhdXRvX3JlZGlyZWN0J317L2xpdGVyYWx9PC9wcmU+PC9wPg0KICAgIDxwPmF0IHRoZSBiZWdpbm5pbmcgb2YgeW91ciB0ZW1wbGF0ZSBpZiwgZm9yIHNvbWUgcmVhc29uLCByZWRpcmVjdGlvbiBkb2VzIG5vdCBvY2N1ciAoSSBkb24ndCBzZWUgd2h5IHRoaXMgc2hvdWxkIGhhcHBlbiB0aG91Z2gpLjwvcD4NCiAgICANCiAgICA8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCiAgICAgIA0KICAgICAgPHA+VGhlIE1vZHVsZSBpcyBjdXJyZW50bHkgYmVpbmcgZGV2ZWxvcGVkIGJ5IDxzdHJvbmc+RmVybmFuZG8gTW9yZ2FkbyAoSm8gTW9yZyk8L3N0cm9uZz4NCiAgICAgIDxiciAvPg0KICAgICAgV2ViOiA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly93d3cuc20tYXJ0LWxhYi5jb20iIHJlbD0iZXh0ZXJuYWwiPnd3dy5zbS1hcnQtbGFiLmNvbTwvYT4NCiAgICAgIDxiciAvPg0KICAgICAgRW1haWw6IDxhIGhyZWY9Im1haWx0bzpqb21vcmdAc20tYXJ0LWxhYi5jb20iPmpvbW9yZ0BzbS1hcnQtbGFiLmNvbTwvYT4NCiAgICAgIDwvcD4NCiAgICAgIHtpZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDoiJVkiID09ICcyMDE2J317JGNyID0gJzIwMTYnfXtlbHNlfXskY3IgPSAiMjAxNiAtIHskc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJVknfSJ9ey9pZn0NCiAgICAgIA0KICAgICAgPHA+QmFiZWwgd2FzIGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIChwbGdlciksIGJhc2VkIG9uIGFuIGFwcHJvYWNoIGJ5IE1hcmNvcyBDcnV6LCBhbmQgcmVsZWFzZWQgdW5kZXIgdGhlIEdOVSBQdWJsaWMgTGljZW5zZS48L3A+DQogICAgICA8cD5Db3B5cmlnaHQgJmNvcHk7IHskY3J9IC4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPGJyIC8+PC9wPg0KICAgICAgDQogICAgICA8cD48c3Ryb25nPkVyaWR1PC9zdHJvbmc+IGlzIGZyZWUgc29mdHdhcmU7PGJyIC8+IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFzIHB1Ymxpc2hlZCBieSB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb248L3N0cm9uZz47PGJyIC8+IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KICAgICAgPHA+PHN0cm9uZz5FcmlkdTwvc3Ryb25nPiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgPHN0cm9uZz5XSVRIT1VUIEFOWSBXQVJSQU5UWTwvc3Ryb25nPjs8YnIgLz4gd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIDxzdHJvbmc+TUVSQ0hBTlRBQklMSVRZPC9zdHJvbmc+IG9yIDxzdHJvbmc+RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0U8L3N0cm9uZz4uPC9wPg0KICAgICAgPHA+U2VlIHRoZUdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPC9wPg0KICAgICAgPHA+WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTs8YnIgLz4gaWYgbm90LCB3cml0ZSB0byB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBPC9zdHJvbmc+IG9yIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPnJlYWQgaXQgb25saW5lPC9hPi48L3A+DQogICAgICA8cD48c3Ryb25nPllvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgPHN0cm9uZz5FcmlkdTwvc3Ryb25nPi48L3N0cm9uZz48L3A+ICAgICAgDQogICAgICANCiAgICAgIDxoND5Db250cmlidXRvcnM8L2g0Pg0KICAgICAgPHA+PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly93d3cubWF0dGhvcm5zYnkuY2EiIHJlbD0iZXh0ZXJuYWwiPk1hdHQgSG9tc2J5IChESUdJMyk8L2E+IC0gc3BvbnNvcnNoaXAuPC9wPiANCiAgICANCiAgPC9kaXY+DQogIA0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEVU1NWSBIVE1MIEZJTEUgLS0+]]></data>
	</file>
	<file>
	  <filename>/templates/redirect.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyIgb25sb2FkPSJkb2N1bWVudC5sb2NhdGlvbi5hc3NpZ24oJ3skcmVkaXJlY3RfdXJsfScpIj48cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+PGltZyBhbHQ9IlBsZWFzZSB3YWl0Li4uIiBzcmM9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSWdkMmxrZEdnOUlqWTBJaUJvWldsbmFIUTlJalkwSWlCbWFXeHNQU0ozYUdsMFpTSStDaUFnUEdOcGNtTnNaU0JqZUQwaU1UWWlJR041UFNJeklpQnlQU0l3SWo0S0lDQWdJRHhoYm1sdFlYUmxJR0YwZEhKcFluVjBaVTVoYldVOUluSWlJSFpoYkhWbGN6MGlNRHN6T3pBN01DSWdaSFZ5UFNJeGN5SWdjbVZ3WldGMFEyOTFiblE5SW1sdVpHVm1hVzVwZEdVaUlHSmxaMmx1UFNJd0lpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RRMUlERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzR4TWpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0Rrd0lERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzR5TlhNaUlHdGxlVk53YkdsdVpYTTlJakF1TWlBd0xqSWdNQzQwSURBdU9Ec3dMaklnTUM0eUlEQXVOQ0F3TGpnN01DNHlJREF1TWlBd0xqUWdNQzQ0SWlCallXeGpUVzlrWlQwaWMzQnNhVzVsSWlBdlBnb2dJRHd2WTJseVkyeGxQZ29nSUR4amFYSmpiR1VnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTVRNMUlERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzR6TnpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RFNE1DQXhOaUF4TmlraUlHTjRQU0l4TmlJZ1kzazlJak1pSUhJOUlqQWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpY2lJZ2RtRnNkV1Z6UFNJd096TTdNRHN3SWlCa2RYSTlJakZ6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnWW1WbmFXNDlJakF1TlhNaUlHdGxlVk53YkdsdVpYTTlJakF1TWlBd0xqSWdNQzQwSURBdU9Ec3dMaklnTUM0eUlEQXVOQ0F3TGpnN01DNHlJREF1TWlBd0xqUWdNQzQ0SWlCallXeGpUVzlrWlQwaWMzQnNhVzVsSWlBdlBnb2dJRHd2WTJseVkyeGxQZ29nSUR4amFYSmpiR1VnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTWpJMUlERTJJREUyS1NJZ1kzZzlJakUySWlCamVUMGlNeUlnY2owaU1DSStDaUFnSUNBOFlXNXBiV0YwWlNCaGRIUnlhV0oxZEdWT1lXMWxQU0p5SWlCMllXeDFaWE05SWpBN016c3dPekFpSUdSMWNqMGlNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUJpWldkcGJqMGlNQzQyTWpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RJM01DQXhOaUF4TmlraUlHTjRQU0l4TmlJZ1kzazlJak1pSUhJOUlqQWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpY2lJZ2RtRnNkV1Z6UFNJd096TTdNRHN3SWlCa2RYSTlJakZ6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnWW1WbmFXNDlJakF1TnpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLSUNBOFkybHlZMnhsSUhSeVlXNXpabTl5YlQwaWNtOTBZWFJsS0RNeE5TQXhOaUF4TmlraUlHTjRQU0l4TmlJZ1kzazlJak1pSUhJOUlqQWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpY2lJZ2RtRnNkV1Z6UFNJd096TTdNRHN3SWlCa2RYSTlJakZ6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnWW1WbmFXNDlJakF1T0RjMWN5SWdhMlY1VTNCc2FXNWxjejBpTUM0eUlEQXVNaUF3TGpRZ01DNDRPekF1TWlBd0xqSWdNQzQwSURBdU9Ec3dMaklnTUM0eUlEQXVOQ0F3TGpnaUlHTmhiR05OYjJSbFBTSnpjR3hwYm1VaUlDOCtDaUFnUEM5amFYSmpiR1UrQ2lBZ1BHTnBjbU5zWlNCMGNtRnVjMlp2Y20wOUluSnZkR0YwWlNneE9EQWdNVFlnTVRZcElpQmplRDBpTVRZaUlHTjVQU0l6SWlCeVBTSXdJajRLSUNBZ0lEeGhibWx0WVhSbElHRjBkSEpwWW5WMFpVNWhiV1U5SW5JaUlIWmhiSFZsY3owaU1Ec3pPekE3TUNJZ1pIVnlQU0l4Y3lJZ2NtVndaV0YwUTI5MWJuUTlJbWx1WkdWbWFXNXBkR1VpSUdKbFoybHVQU0l3TGpWeklpQnJaWGxUY0d4cGJtVnpQU0l3TGpJZ01DNHlJREF1TkNBd0xqZzdNQzR5SURBdU1pQXdMalFnTUM0NE96QXVNaUF3TGpJZ01DNDBJREF1T0NJZ1kyRnNZMDF2WkdVOUluTndiR2x1WlNJZ0x6NEtJQ0E4TDJOcGNtTnNaVDRLUEM5emRtYytDZz09IiBzdHlsZT0ibWFyZ2luOiAwIGF1dG87IiAvPjwvcD48cD57JGRvbWFpbnNfY29va2llc19zZXR9PC9wPjwvYm9keT48L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/templates/redirect_bu.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5IG9ubG9hZD0iZG9jdW1lbnQubG9jYXRpb24uYXNzaWduKCd7JHJlZGlyZWN0X3VybH0nKSI+PHA+UGxlYXNlIFdhaXQuLi48L3A+PHA+eyRkb21haW5zX2Nvb2tpZXNfc2V0fTwvcD48L2JvZHk+PC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/templates/settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVE9ETyAqfQ==]]></data>
	</file>
</module>
