# zem_contact_reborn v4.0.3.19 # Form mailer for Textpattern # TXP Community # http://forum.textpattern.com/viewtopic.php?id=21144 # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YTo5OntzOjQ6Im5hbWUiO3M6MTg6InplbV9jb250YWN0X3JlYm9ybiI7czo3OiJ2ZXJzaW9u IjtzOjg6IjQuMC4zLjE5IjtzOjY6ImF1dGhvciI7czoxMzoiVFhQIENvbW11bml0eSI7czox MDoiYXV0aG9yX3VyaSI7czo1MToiaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3 dG9waWMucGhwP2lkPTIxMTQ0IjtzOjExOiJkZXNjcmlwdGlvbiI7czoyNzoiRm9ybSBtYWls ZXIgZm9yIFRleHRwYXR0ZXJuIjtzOjQ6InR5cGUiO2k6MDtzOjQ6ImhlbHAiO3M6MzcxMTc6 IiA8c3R5bGU+CiAgIGxpIGNvZGUge2ZvbnQtd2VpZ2h0OiBib2xkO30KICAgcHJlIHtwYWRk aW5nOiAwLjVlbSAxZW07IGJhY2tncm91bmQ6ICNlZWU7IGJvcmRlcjogMXB4IGRhc2hlZCAj Y2NjO30KICAgaDEsIGgyLCBoMywgaDMgY29kZSB7Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7 IGZvbnQtd2VpZ2h0OiBib2xkO30KICAgaDEsIGgyLCBoMyB7bWFyZ2luLWxlZnQ6IC0xZW07 fQogICBoMiwgaDMge21hcmdpbi10b3A6IDJlbTt9CiAgIGgxIHtmb250LXNpemU6IDNlbTt9 CiAgIGgyIHtmb250LXNpemU6IDJlbTt9CiAgIGgzIHtmb250LXNpemU6IDEuNWVtO30KICAg bGkgYSBjb2RlIHtmb250LXdlaWdodDogbm9ybWFsO30KICAgLnJlcXVpcmVkLCAud2Fybmlu ZyB7Y29sb3I6cmVkO30KIDwvc3R5bGU+CgoJPGgxIGlkPSJ0b3AiPlplbSBDb250YWN0IFJl Ym9ybjwvaDE+CgoJPHA+UGxlYXNlIHJlcG9ydHMgYnVncyBhbmQgcHJvYmxlbXMgd2l0aCB0 aGlzIHBsdWdpbiBpbiA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3Zp ZXd0b3BpYy5waHA/aWQ9MjExNDQiPnRoaXMgZm9ydW0gdGhyZWFkPC9hPi48L3A+CgoJPHAg Y2xhc3M9InJlcXVpcmVkIj5UaGlzIHBsdWdpbiByZXF1aXJlcyBhIHNlcGFyYXRlIGxhbmd1 YWdlIHBsdWdpbiBjYWxsZWQgPGNvZGU+emVtX2NvbnRhY3RfbGFuZzwvY29kZT4gdG8gYmUg aW5zdGFsbGVkIGFuZCBhY3RpdmF0ZWQgdG8gd29yayBwcm9wZXJseS48L3A+CgoJPGgyIGlk PSJjb250ZW50cyI+Q29udGVudHM8L2gyPgoKCTx1bD4KCQk8bGk+PGEgaHJlZj0iI2ZlYXR1 cmVzIj5GZWF0dXJlczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjc3RhcnQiPkdldHRpbmcg c3RhcnRlZDwvYT4KCTx1bD4KCQk8bGk+PGEgaHJlZj0iI2NvbnRhY3Rmb3JtIj5Db250YWN0 IGZvcm08L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3NlbmRhcnRpY2xlIj5TZW5kIGFydGlj bGU8L2E+PC9saT4KCTwvdWw+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3RhZ3MiPlRhZ3M8L2E+ Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiN6YyI+IDxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0 IC8mIzYyOzwvY29kZT4gPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiN6Y190ZXh0Ij4gPGNv ZGU+JiM2MDt0eHA6emVtX2NvbnRhY3RfdGV4dCAvJiM2Mjs8L2NvZGU+IDwvYT48L2xpPgoJ CTxsaT48YSBocmVmPSIjemNfZW1haWwiPiA8Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdF9l bWFpbCAvJiM2Mjs8L2NvZGU+IDwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjemNfdGV4dGFy ZWEiPiA8Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdF90ZXh0YXJlYSAvJiM2Mjs8L2NvZGU+ IDwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjemNfc3VibWl0Ij4gPGNvZGU+JiM2MDt0eHA6 emVtX2NvbnRhY3Rfc3VibWl0IC8mIzYyOzwvY29kZT4gPC9hPjwvbGk+CgkJPGxpPjxhIGhy ZWY9IiN6Y19zZWxlY3QiPiA8Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdF9zZWxlY3QgLyYj NjI7PC9jb2RlPiA8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3pjX2NoZWNrYm94Ij4gPGNv ZGU+JiM2MDt0eHA6emVtX2NvbnRhY3RfY2hlY2tib3ggLyYjNjI7PC9jb2RlPiA8L2E+PC9s aT4KCQk8bGk+PGEgaHJlZj0iI3pjX3JhZGlvIj4gPGNvZGU+JiM2MDt0eHA6emVtX2NvbnRh Y3RfcmFkaW8gLyYjNjI7PC9jb2RlPiA8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3pjX3Nl Y3JldCI+IDxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0X3NlY3JldCAvJiM2Mjs8L2NvZGU+ IDwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjemNfc2VydmVyX2luZm8iPiA8Y29kZT4mIzYw O3R4cDp6ZW1fY29udGFjdF9zZXJ2ZXJpbmZvIC8mIzYyOzwvY29kZT4gPC9hPjwvbGk+CgkJ PGxpPjxhIGhyZWY9IiN6Y19zZW5kX2FydGljbGUiPiA8Y29kZT4mIzYwO3R4cDp6ZW1fY29u dGFjdF9zZW5kX2FydGljbGUgLyYjNjI7PC9jb2RlPiA8L2E+PC9saT4KCTwvdWw+PC9saT4K CQk8bGk+PGEgaHJlZj0iI2FkdmFuY2VkIj5BZHZhbmNlZCBleGFtcGxlczwvYT4KCTx1bD4K CQk8bGk+PGEgaHJlZj0iI2Vycm9yZm9ybSI+U2VwYXJhdGUgaW5wdXQgYW5kIGVycm9yIGZv cm1zPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNzdWJqZWN0X2Zvcm0iPlVzZXIgc2VsZWN0 YWJsZSBzdWJqZWN0IGZpZWxkPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiN0b19mb3JtIj5V c2VyIHNlbGVjdGFibGUgcmVjaXBpZW50LCB3aXRob3V0IHNob3dpbmcgZW1haWwgYWRkcmVz c2VzPC9hPjwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNzdHlsaW5nIj5TdHls aW5nPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNoaXN0b3J5Ij5IaXN0b3J5PC9hPjwvbGk+ CgkJPGxpPjxhIGhyZWY9IiNjcmVkaXRzIj5DcmVkaXRzPC9hPjwvbGk+CgkJPGxpPjxhIGhy ZWY9IiNhcGkiPlBsdWdpbiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMi PkFQSTwvc3Bhbj48L3NwYW4+IGFuZCBjYWxsYmFjayBldmVudHM8L2E+PC9saT4KCTwvdWw+ CgoJPGgyIGlkPSJmZWF0dXJlcyI+RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+QXJiaXRy YXJ5IHRleHQgZmllbGRzIGNhbiBiZSBzcGVjaWZpZWQsIHdpdGggbWluL21heC9yZXF1aXJl ZCBzZXR0aW5ncyBmb3IgdmFsaWRhdGlvbi48L2xpPgoJCTxsaT5FbWFpbCBhZGRyZXNzIHZh bGlkYXRpb24sIGluY2x1ZGluZyBhIGNoZWNrIGZvciBhIHZhbGlkIE1YIHJlY29yZCAoVW5p eCBvbmx5KS48L2xpPgoJCTxsaT5TYWZlIGVzY2FwaW5nIG9mIGlucHV0IGRhdGEuPC9saT4K CQk8bGk+VVRGLTggc2FmZS48L2xpPgoJCTxsaT5BY2Nlc3NpYmxlIGZvcm0gbGF5b3V0LCBp bmNsdWRpbmcgPGNvZGU+JiM2MDtsYWJlbCYjNjI7PC9jb2RlPiwgPGNvZGU+JiM2MDtsZWdl bmQmIzYyOzwvY29kZT4gYW5kIDxjb2RlPiYjNjA7ZmllbGRzZXQmIzYyOzwvY29kZT4gdGFn cy48L2xpPgoJCTxsaT5WYXJpb3VzIGNsYXNzZXMgYW5kIGlkcyB0byBhbGxvdyBlYXN5IHN0 eWxpbmcgb2YgYWxsIHBhcnRzIG9mIHRoZSBmb3JtLjwvbGk+CgkJPGxpPkEgc2VwYXJhdGUg bGFuZ3VhZ2UgcGx1Zy1pbiB0byBlbmFibGUgZWFzeSBsb2NhbGlzYXRpb24uPC9saT4KCQk8 bGk+U3BhbSBwcmV2ZW50aW9uIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2Fw cyI+QVBJPC9zcGFuPjwvc3Bhbj4gKHVzZWQgYnkgVHJhbnF1aWxsbyYjODIxNztzIDxjb2Rl PnBhcF9jb250YWN0X2NsZWFuZXI8L2NvZGU+IHBsdWdpbikuPC9saT4KCTwvdWw+CgoJPHA+ PGEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+PC9wPgoKCTxoMiBpZD0ic3RhcnQiPkdl dHRpbmcgc3RhcnRlZDwvaDI+CgoJPGgzIGlkPSJjb250YWN0Zm9ybSI+Q29udGFjdCBmb3Jt PC9oMz4KCgk8cD5UaGUgc2ltcGxlc3QgZm9ybSBpcyBzaG93biBiZWxvdywgd2hpY2ggcHJv ZHVjZXMgYSBkZWZhdWx0IGZvcm0gd2l0aCBOYW1lLCBFbWFpbCBhbmQgTWVzc2FnZSBmaWVs ZHMuIEVtYWlsIHdpbGwgYmUgZGVsaXZlcmVkIHRvIHJlY2lwaWVudEBleGFtcGxlLmNvbSwg d2l0aCB0aGUgdXNlciYjODIxNztzIHN1cHBsaWVkIGVtYWlsIGFzIHRoZSAmIzgyMjA7RnJv bTomIzgyMjE7IGFkZHJlc3MuPC9wPgoKPHByZT48Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFj dCB0bz0mIzM0O3JlY2lwaWVudEBleGFtcGxlLmNvbSYjMzQ7IC8mIzYyOwo8L2NvZGU+PC9w cmU+CgoJPHA+VG8gc3BlY2lmeSBmaWVsZHMgZXhwbGljaXRseSwgdXNlIHNvbWV0aGluZyBs aWtlIHRoaXM6PC9wPgoKPHByZT48Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdCB0bz0mIzM0 O3JlY2lwaWVudEBleGFtcGxlLmNvbSYjMzQ7JiM2MjsKICAmIzYwO3R4cDp6ZW1fY29udGFj dF9lbWFpbCAvJiM2MjsKICAmIzYwO3R4cDp6ZW1fY29udGFjdF90ZXh0IGxhYmVsPSYjMzQ7 UGhvbmUmIzM0OyBtaW49NyBtYXg9MTUvJiM2MjsKICAmIzYwO3R4cDp6ZW1fY29udGFjdF90 ZXh0YXJlYSBsYWJlbD0mIzM0O1lvdXIgcXVlc3Rpb24mIzM0OyAvJiM2MjsKICAmIzYwO3R4 cDp6ZW1fY29udGFjdF9zdWJtaXQgbGFiZWw9JiMzNDtTZW5kJiMzNDsgLyYjNjI7CiYjNjA7 L3R4cDp6ZW1fY29udGFjdCYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD5BbHRlcm5hdGl2ZWx5 LCBwbGFjZSB0aGUgZmllbGQgc3BlY2lmaWNhdGlvbnMgaW4gYSBUZXh0cGF0dGVybiBmb3Jt LCBhbmQgY2FsbCBpdCBsaWtlIHRoaXM6PC9wPgoKPHByZT48Y29kZT4mIzYwO3R4cDp6ZW1f Y29udGFjdCB0bz0mIzM0O3JlY2lwaWVudEBleGFtcGxlLmNvbSYjMzQ7IGZvcm09JiMzNDtt eWNvbnRhY3Rmb3JtJiMzNDsgLyYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD48YSBocmVmPSIj dG9wIj5CYWNrIHRvIHRvcDwvYT48L3A+CgoJPGgzIGlkPSJzZW5kYXJ0aWNsZSI+U2VuZCBh cnRpY2xlPC9oMz4KCgk8cD5XaXRoaW4gdGhlIGNvbnRleHQgb2YgYW4gaW5kaXZpZHVhbCBh cnRpY2xlLCB0aGlzIHBsdWdpbiBjYW4gYmUgdXNlZCB0byBzZW5kIHRoZSBhcnRpY2xlIChv ciBleGNlcnB0LCBpZiBpdCBleGlzdHMpIHRvIGFuIGVtYWlsIGFkZHJlc3Mgc3BlY2lmaWVk IGJ5IHRoZSB2aXNpdG9yLiBUaGlzIHJlcXVpcmVzIGF0IGxlYXN0IHR3byB0YWdzOgoJPHVs PgoJCTxsaT48Y29kZT56ZW1fY29udGFjdDwvY29kZT4sIHRvIGNyZWF0ZSBmb3JtIHRoYXQg aXMgaW5pdGlhbGx5IGhpZGRlbiBieSBzZXR0aW5nIHRoZSA8Y29kZT5zZW5kX2FydGljbGU8 L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgoJCTxsaT48Y29kZT56ZW1fY29udGFjdF9zZW5kX2Fy dGljbGU8L2NvZGU+LCB0byBjcmVhdGUgYSAmIzgyMTY7c2VuZCBhcnRpY2xlJiM4MjE3OyBs aW5rIHdoaWNoIHJldmVhbHMgdGhlIGFmb3JlbWVudGlvbmVkIGZvcm0gd2hlbiBjbGlja2Vk LjwvbGk+Cgk8L3VsPjwvcD4KCjxwcmU+PGNvZGU+JiM2MDt0eHA6emVtX2NvbnRhY3Qgc2Vu ZF9hcnRpY2xlPSYjMzQ7MSYjMzQ7IC8mIzYyOwomIzYwO3R4cDp6ZW1fY29udGFjdF9zZW5k X2FydGljbGUgLyYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD5CeSBkZWZhdWx0IHRoZSBmb3Jt IGNvbnRhaW5zIGZpZWxkcyBmb3IgeW91ciBuYW1lIGFuZCBlbWFpbCBhZGRyZXNzLCB0aGUg cmVjaXBpZW50JiM4MjE3O3MgZW1haWwgYWRkcmVzcyBhbmQgYSBwZXJzb25hbCBtZXNzYWdl LCBidXQgc2ltaWxhciB0byBjb250YWN0IGZvcm1zIHlvdSBjYW4gY3JlYXRlIHlvdXIgb3du IGZvcm0gbGF5b3V0LiBTb21lIHRoaW5ncyB5b3UgbmVlZCB0byBrbm93OgoJPHVsPgoJCTxs aT5TZXQgdGhlIDxjb2RlPnNlbmRfYXJ0aWNsZTwvY29kZT4gYXR0cmlidXRlIHRvIDxjb2Rl PjE8L2NvZGU+IGluIHRoZSA8Y29kZT56ZW1fY29udGFjdDwvY29kZT4gdGFnLjwvbGk+CgkJ PGxpPlVzZSBhIDxjb2RlPnplbV9jb250YWN0X2VtYWlsPC9jb2RlPiB0YWcgd2l0aCB0aGUg PGNvZGU+c2VuZF9hcnRpY2xlPC9jb2RlPiBhdHRyaWJ1dGUgc2V0IHRvIDxjb2RlPjE8L2Nv ZGU+LiBUaGlzIGZpZWxkIHdpbGwgYmUgdXNlZCBhcyB0aGUgcmVjaXBpZW50IGVtYWlsIGFk ZHJlc3MuPC9saT4KCTwvdWw+PC9wPgoKPHByZT48Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFj dCB0bz0mIzM0O3lvdUBleGFtcGxlLmNvbSYjMzQ7IHNlbmRfYXJ0aWNsZT0mIzM0OzEmIzM0 OyYjNjI7CiAgJiM2MDt0eHA6emVtX2NvbnRhY3RfZW1haWwgbGFiZWw9JiMzNDtSZWNpcGll bnQgRW1haWwmIzM0OyBzZW5kX2FydGljbGU9JiMzNDsxJiMzNDsgLyYjNjI7CiAgJiM2MDt0 eHA6emVtX2NvbnRhY3RfZW1haWwgbGFiZWw9JiMzNDtZb3VyIEVtYWlsJiMzNDsgLyYjNjI7 CiAgJiM2MDt0eHA6emVtX2NvbnRhY3Rfc3VibWl0IGxhYmVsPSYjMzQ7U2VuZCBBcnRpY2xl JiMzNDsgLyYjNjI7CiYjNjA7L3R4cDp6ZW1fY29udGFjdCYjNjI7CjwvY29kZT4KPGNvZGU+ JiM2MDt0eHA6emVtX2NvbnRhY3Rfc2VuZF9hcnRpY2xlIC8mIzYyOwo8L2NvZGU+PC9wcmU+ CgoJPHA+PGEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+PC9wPgoKCTxoMiBpZD0idGFn cyI+VGFnczwvaDI+CgoJPHA+PGEgaHJlZj0iI3pjIj48Y29kZT4mIzYwO3R4cDp6ZW1fY29u dGFjdCAvJiM2Mjs8L2NvZGU+PC9hPiBwcm9kdWNlcyBhIGZsZXhpYmxlLCBjdXN0b21pc2Fi bGUgZW1haWwgY29udGFjdCBmb3JtLiBJdCBpcyBpbnRlbmRlZCBmb3IgdXNlIGFzIGFuIGVu cXVpcnkgZm9ybSBmb3IgY29tbWVyY2lhbCBhbmQgcHJpdmF0ZSBzaXRlcywgYW5kIGluY2x1 ZGVzIHNldmVyYWwgZmVhdHVyZXMgdG8gaGVscCByZWR1Y2UgY29tbW9uIHByb2JsZW1zIHdp dGggc3VjaCBmb3JtcyAoaW52YWxpZCBlbWFpbCBhZGRyZXNzZXMsIG1pc3NpbmcgaW5mb3Jt YXRpb24pLjwvcD4KCgk8cD48YSBocmVmPSIjemNfc2VuZF9hcnRpY2xlIj48Y29kZT4mIzYw O3R4cDp6ZW1fY29udGFjdF9zZW5kX2FydGljbGUgLyYjNjI7PC9jb2RlPjwvYT4gY2FuIGJl IHVzZWQgdG8gY3JlYXRlIGEgJiM4MjIwO3NlbmQgYXJ0aWNsZSYjODIyMTsgbGluayB3aXRo aW4gYW4gYXJ0aWNsZSBmb3JtLCBjb25uZWN0aW5nIGl0IHRvIHRoZSBjb250YWN0IGZvcm0u PC9wPgoKCTxwPkFsbCBvdGhlciB0YWdzIHByb3ZpZGVkIGJ5IHRoaXMgcGx1Z2luIGNhbiBv bmx5IGJlIHVzZWQgaW5zaWRlIGEgPGNvZGU+JiM2MDt0eHA6emVtX2NvbnRhY3QmIzYyOzwv Y29kZT4gJiM4MjMwOyA8Y29kZT4mIzYwOy90eHA6emVtX2NvbnRhY3QmIzYyOzwvY29kZT4g Y29udGFpbmVyIHRhZyBvciBpbiBhIFRleHRwYXR0ZXJuIGZvcm0gdXNlZCBhcyB0aGUgPGNv ZGU+Zm9ybTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSA8Y29kZT4mIzYwO3R4cDp6ZW1fY29u dGFjdCAvJiM2Mjs8L2NvZGU+IHRhZy48L3A+CgoJPHA+PGEgaHJlZj0iI3RvcCI+QmFjayB0 byB0b3A8L2E+PC9wPgoKCTxoMyBpZD0iemMiPjxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0 IC8mIzYyOzwvY29kZT48L2gzPgoKCTxwPk1heSBiZSB1c2VkIGFzIGEgc2VsZi1jbG9zaW5n IG9yIGNvbnRhaW5lciB0YWcuIFBsYWNlIHRoaXMgd2hlcmUgeW91IHdhbnQgdGhlIGlucHV0 IGZvcm0gdG8gZ28uIFN0YXR1cyBhbmQgZXJyb3IgbWVzc2FnZXMsIGlmIGFueSwgd2lsbCBi ZSBkaXNwbGF5ZWQgYmVmb3JlIHRoZSBmb3JtLjwvcD4KCgk8aDQ+QXR0cmlidXRlczwvaDQ+ CgoJPHVsPgoJCTxsaT48Y29kZT50bz0mIzM0O2VtYWlsIGFkZHJlc3MmIzM0OzwvY29kZT4g PHNwYW4gY2xhc3M9InJlcXVpcmVkIj5yZXF1aXJlZDwvc3Bhbj48YnIgLz4KUmVjaXBpZW50 IGVtYWlsIGFkZHJlc3MuPC9saT4KCQk8bGk+PGNvZGU+dG9fZm9ybT0mIzM0O2Zvcm0gbmFt ZSYjMzQ7PC9jb2RlPjxiciAvPgpVc2Ugc3BlY2lmaWVkIGZvcm0gKG92ZXJyaWRlcyA8c3Ry b25nPnRvPC9zdHJvbmc+IGF0dHJpYnV0ZSkuPC9saT4KCTwvdWw+CgoJPHVsPgoJCTxsaT48 Y29kZT5mcm9tPSYjMzQ7ZW1haWwgYWRkcmVzcyYjMzQ7PC9jb2RlPjxiciAvPgpFbWFpbCBh ZGRyZXNzIHVzZWQgaW4gdGhlICYjODIyMDtGcm9tOiYjODIyMTsgZmllbGQgd2hlbiBzZW5k aW5nIGVtYWlsLiBEZWZhdWx0cyB0byB0aGUgc2VuZGVyJiM4MjE3O3MgZW1haWwgYWRkcmVz cy4gSWYgc3BlY2lmaWVkLCB0aGUgc2VuZGVyJiM4MjE3O3MgZW1haWwgYWRkcmVzcyB3aWxs IGJlIHBsYWNlZCBpbiB0aGUgJiM4MjIwO1JlcGx5LVRvOiYjODIyMTsgZmllbGQgaW5zdGVh ZC48L2xpPgoJCTxsaT48Y29kZT5mcm9tX2Zvcm09JiMzNDtmb3JtIG5hbWUmIzM0OzwvY29k ZT48YnIgLz4KVXNlIHNwZWNpZmllZCBmb3JtIChvdmVycmlkZXMgPHN0cm9uZz5mcm9tPC9z dHJvbmc+IGF0dHJpYnV0ZSkuPC9saT4KCTwvdWw+CgoJPHVsPgoJCTxsaT48Y29kZT5zdWJq ZWN0PSYjMzQ7c3ViamVjdCB0ZXh0JiMzNDs8L2NvZGU+PGJyIC8+ClN1YmplY3QgdXNlZCB3 aGVuIHNlbmRpbmcgYW4gZW1haWwuIERlZmF1bHQgaXMgdGhlIHNpdGUgbmFtZS48L2xpPgoJ CTxsaT48Y29kZT5zdWJqZWN0X2Zvcm09JiMzNDtmb3JtIG5hbWUmIzM0OzwvY29kZT48YnIg Lz4KVXNlIHNwZWNpZmllZCBmb3JtIChvdmVycmlkZXMgPHN0cm9uZz5zdWJqZWN0PC9zdHJv bmc+IGF0dHJpYnV0ZSkuPC9saT4KCTwvdWw+CgoJPHVsPgoJCTxsaT48Y29kZT50aGFua3M9 JiMzNDt0ZXh0JiMzNDs8L2NvZGU+PGJyIC8+Ck1lc3NhZ2Ugc2hvd24gYWZ0ZXIgc3VjY2Vz c2Z1bGx5IHN1Ym1pdHRpbmcgYSBtZXNzYWdlLiBEZWZhdWx0IGlzIDxzdHJvbmc+VGhhbmsg eW91LCB5b3VyIG1lc3NhZ2UgaGFzIGJlZW4gc2VudDwvc3Ryb25nPi48L2xpPgoJCTxsaT48 Y29kZT50aGFua3NfZm9ybT0mIzM0O2Zvcm0gbmFtZSYjMzQ7PC9jb2RlPjxiciAvPgpVc2Ug c3BlY2lmaWVkIGZvcm0gKG92ZXJyaWRlcyA8c3Ryb25nPnRoYW5rczwvc3Ryb25nPiBhdHRy aWJ1dGUpLjwvbGk+CgkJPGxpPjxjb2RlPnJlZGlyZWN0PSYjMzQ7VVJMJiMzNDs8L2NvZGU+ PGJyIC8+ClJlZGlyZWN0IHRvIHNwZWNpZmllZCA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj48L3NwYW4+IChvdmVycmlkZXMgPHN0cm9uZz50aGFu a3M8L3N0cm9uZz4gYW5kIDxzdHJvbmc+dGhhbmtzX2Zvcm08L3N0cm9uZz4gYXR0cmlidXRl cykuIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPjwv c3Bhbj4gbXVzdCBiZSByZWxhdGl2ZSB0byB0aGUgVGV4dHBhdHRlcm4gU2l0ZSA8c3BhbiBj bGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj48L3NwYW4+LiBFeGFt cGxlOiA8ZW0+cmVkaXJlY3Q9JiM4MjIwO21vbmtleSYjODIyMTs8L2VtPiB3b3VsZCByZWRp cmVjdCB0byBodHRwOi8vZXhhbXBsZS5jb20vbW9ua2V5LjwvbGk+Cgk8L3VsPgoKCTx1bD4K CQk8bGk+PGNvZGU+bGFiZWw9JiMzNDt0ZXh0JiMzNDs8L2NvZGU+PGJyIC8+CkxhYmVsIGZv ciB0aGUgY29udGFjdCBmb3JtLiBJZiBzZXQgdG8gYW4gZW1wdHkgc3RyaW5nLCBkaXNwbGF5 IG9mIHRoZSBmaWVsZHNldCBhbmQgbGVnZW5kIHRhZ3Mgd2lsbCBiZSBzdXBwcmVzc2VkLiBE ZWZhdWx0IGlzIDxzdHJvbmc+Q29udGFjdDwvc3Ryb25nPi48L2xpPgoJCTxsaT48Y29kZT5z ZW5kX2FydGljbGU9JiMzNDtib29sZWFuJiMzNDs8L2NvZGU+PGJyIC8+CldoZXRoZXIgdG8g dXNlIHRoaXMgZm9ybSB0byA8YSBocmVmPSIjYXJ0aWNsZSI+c2VuZCBhbiBhcnRpY2xlPC9h Pi4gQXZhaWxhYmxlIHZhbHVlczogPHN0cm9uZz4xPC9zdHJvbmc+ICh5ZXMpLCA8c3Ryb25n PjA8L3N0cm9uZz4gKG5vKS4gRGVmYXVsdCBpcyA8c3Ryb25nPjA8L3N0cm9uZz4gKG5vKS48 L2xpPgoJCTxsaT48Y29kZT5jb3B5c2VuZGVyPSYjMzQ7Ym9vbGVhbiYjMzQ7PC9jb2RlPjxi ciAvPgpXaGV0aGVyIHRvIHNlbmQgYSBjb3B5IG9mIHRoZSBlbWFpbCB0byB0aGUgc2VuZGVy JiM4MjE3O3MgYWRkcmVzcy4gQXZhaWxhYmxlIHZhbHVlczogPHN0cm9uZz4xPC9zdHJvbmc+ ICh5ZXMpLCA8c3Ryb25nPjA8L3N0cm9uZz4gKG5vKS4gRGVmYXVsdCBpcyA8c3Ryb25nPjA8 L3N0cm9uZz4gKG5vKS48L2xpPgoJPC91bD4KCgk8dWw+CgkJPGxpPjxjb2RlPmZvcm09JiMz NDtmb3JtIG5hbWUmIzM0OzwvY29kZT48YnIgLz4KVXNlIHNwZWNpZmllZCBmb3JtLCBjb250 YWluaW5nIHRoZSBsYXlvdXQgb2YgdGhlIGNvbnRhY3QgZm9ybSBmaWVsZHMuPC9saT4KCQk8 bGk+PGNvZGU+c2hvd19pbnB1dD0mIzM0O2Jvb2xlYW4mIzM0OzwvY29kZT48YnIgLz4KIFdo ZXRoZXIgdG8gZGlzcGxheSB0aGUgZm9ybSBpbnB1dCBmaWVsZHMuIEF2YWlsYWJsZSB2YWx1 ZXM6IDxzdHJvbmc+MTwvc3Ryb25nPiAoeWVzKSwgPHN0cm9uZz4wPC9zdHJvbmc+IChubyku IERlZmF1bHQgaXMgPHN0cm9uZz4xPC9zdHJvbmc+ICh5ZXMpLjwvbGk+CgkJPGxpPjxjb2Rl PnNob3dfZXJyb3I9JiMzNDtib29sZWFuJiMzNDs8L2NvZGU+PGJyIC8+CiBXaGV0aGVyIHRv IGRpc3BsYXkgZXJyb3IgYW5kIHN0YXR1cyBtZXNzYWdlcy4gQXZhaWxhYmxlIHZhbHVlczog PHN0cm9uZz4xPC9zdHJvbmc+ICh5ZXMpLCA8c3Ryb25nPjA8L3N0cm9uZz4gKG5vKS4gRGVm YXVsdCBpcyA8c3Ryb25nPjE8L3N0cm9uZz4gKHllcykuPC9saT4KCTwvdWw+CgoJPGg0PkV4 YW1wbGVzPC9oND4KCgk8cD5TZWUgPGEgaHJlZj0iI2NvbnRhY3Rmb3JtIj5HZXR0aW5nIHN0 YXJ0ZWQ8L2E+IGFuZCA8YSBocmVmPSIjYWR2YW5jZWQiPkFkdmFuY2VkIGV4YW1wbGVzPC9h Pi48L3A+CgoJPHA+PGEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+PC9wPgoKCTxoMyBp ZD0iemNfdGV4dCI+PGNvZGU+JiM2MDt0eHA6emVtX2NvbnRhY3RfdGV4dCAvJiM2Mjs8L2Nv ZGU+PC9oMz4KCgk8cD5DcmVhdGVzIGEgdGV4dCBpbnB1dCBmaWVsZCBhbmQgY29ycmVzcG9u ZGluZyA8Y29kZT4mIzYwO2xhYmVsJiM2Mjs8L2NvZGU+IHRhZy4gVGhlIGlucHV0IHZhbHVl IHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGVtYWlsLCBwcmVjZWRlZCBieSB0aGUgbGFiZWwu PC9wPgoKCTxoND5BdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxjb2RlPmxhYmVsPSYj MzQ7dGV4dCYjMzQ7PC9jb2RlPjxiciAvPgpUZXh0IGxhYmVsIGRpc3BsYXllZCB0byB0aGUg dXNlci4gRGVmYXVsdCBpcyA8c3Ryb25nPlRleHQ8L3N0cm9uZz4uPC9saT4KCQk8bGk+PGNv ZGU+bmFtZT0mIzM0O3ZhbHVlJiMzNDs8L2NvZGU+PGJyIC8+CkZpZWxkIG5hbWUsIGFzIHVz ZWQgaW4gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwv c3Bhbj48L3NwYW4+IGlucHV0IHRhZy48L2xpPgoJCTxsaT48Y29kZT5icmVhaz0mIzM0O3Rh ZyYjMzQ7PC9jb2RlPjxiciAvPgpCcmVhayB0YWcgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGlu cHV0IGZpZWxkLiBEZWZhdWx0IGlzIDxjb2RlPiYjNjA7YnIgLyYjNjI7PC9jb2RlPi4gVXNl IDxjb2RlPmJyZWFrPSYjMzQ7JiMzNDs8L2NvZGU+IHRvIHB1dCB0aGUgbGFiZWwgYW5kIGlu cHV0IGZpZWxkIG9uIHRoZSBzYW1lIGxpbmUuPC9saT4KCQk8bGk+PGNvZGU+ZGVmYXVsdD0m IzM0O3ZhbHVlJiMzNDs8L2NvZGU+PGJyIC8+CkRlZmF1bHQgdmFsdWUgd2hlbiBubyBpbnB1 dCBpcyBwcm92aWRlZC48L2xpPgoJCTxsaT48Y29kZT5taW49JiMzNDtpbnRlZ2VyJiMzNDs8 L2NvZGU+PGJyIC8+Ck1pbmltdW0gaW5wdXQgbGVuZ3RoIGluIGNoYXJhY3RlcnMuIERlZmF1 bHQgaXMgPHN0cm9uZz4wPC9zdHJvbmc+LjwvbGk+CgkJPGxpPjxjb2RlPm1heD0mIzM0O2lu dGVnZXImIzM0OzwvY29kZT48YnIgLz4KTWF4aW11bSBpbnB1dCBsZW5ndGggaW4gY2hhcmFj dGVycy4gRGVmYXVsdCBpcyA8c3Ryb25nPjEwMDwvc3Ryb25nPi48L2xpPgoJCTxsaT48Y29k ZT5zaXplPSYjMzQ7aW50ZWdlciYjMzQ7PC9jb2RlPjxiciAvPgpTaXplIG9mIHRoZSBpbnB1 dCBmaWVsZCBhcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPC9saT4KCQk8bGk+PGNvZGU+cmVx dWlyZWQ9JiMzNDtib29sZWFuJiMzNDs8L2NvZGU+PGJyIC8+CldoZXRoZXIgdGhpcyB0ZXh0 IGZpZWxkIG11c3QgYmUgZmlsbGVkIG91dC4gQXZhaWxhYmxlIHZhbHVlczogPHN0cm9uZz4x PC9zdHJvbmc+ICh5ZXMpLCA8c3Ryb25nPjA8L3N0cm9uZz4gKG5vKS4gRGVmYXVsdCBpcyA8 c3Ryb25nPjE8L3N0cm9uZz4gKHllcykuPC9saT4KCTwvdWw+CgoJPGg0PkV4YW1wbGU8L2g0 PgoKPHByZT48Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdF90ZXh0IGxhYmVsPSYjMzQ7WW91 ciBuYW1lJiMzNDsgLyYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD48YSBocmVmPSIjdG9wIj5C YWNrIHRvIHRvcDwvYT48L3A+CgoJPGgzIGlkPSJ6Y19lbWFpbCI+PGNvZGU+JiM2MDt0eHA6 emVtX2NvbnRhY3RfZW1haWwgLyYjNjI7PC9jb2RlPjwvaDM+CgoJPHA+SW5wdXQgZmllbGQg Zm9yIHVzZXImIzgyMTc7cyBlbWFpbCBhZGRyZXNzLjwvcD4KCgk8cD5UaGUgZW50ZXJlZCBl bWFpbCBhZGRyZXNzIHdpbGwgYXV0b21hdGljYWxseSBiZSB2YWxpZGF0ZWQgdG8gbWFrZSBz dXJlIGl0IGlzIG9mIHRoZSBmb3JtICYjODIyMDthYmNAeHh4Lnl5eVsuenp6XSYjODIyMTsu IE9uIG5vbi1XaW5kb3dzIHNlcnZlcnMsIGEgdGVzdCB3aWxsIGJlIGRvbmUgdG8gdmVyaWZ5 IHRoYXQgYW4gQSBvciBNWCByZWNvcmQgZXhpc3RzIGZvciB0aGUgZG9tYWluLiBOZWl0aGVy IHRlc3QgcHJldmVudHMgc3BhbSwgYnV0IGl0IGRvZXMgaGVscCBkZXRlY3RpbmcgYWNjaWRl bnRhbCB0eXBpbmcgZXJyb3JzLjwvcD4KCgk8aDQ+QXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJ CTxsaT48Y29kZT5sYWJlbD0mIzM0O3RleHQmIzM0OzwvY29kZT48YnIgLz4KVGV4dCBsYWJl bCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuIERlZmF1bHQgaXMgPHN0cm9uZz5FbWFpbDwvc3Ry b25nPi48L2xpPgoJCTxsaT48Y29kZT5uYW1lPSYjMzQ7dmFsdWUmIzM0OzwvY29kZT48YnIg Lz4KRmllbGQgbmFtZSwgYXMgdXNlZCBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFu IGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPjwvc3Bhbj4gaW5wdXQgdGFnLjwvbGk+CgkJPGxp Pjxjb2RlPmJyZWFrPSYjMzQ7dGFnJiMzNDs8L2NvZGU+PGJyIC8+CkJyZWFrIHRhZyBiZXR3 ZWVuIHRoZSBsYWJlbCBhbmQgaW5wdXQgZmllbGQuIERlZmF1bHQgaXMgPGNvZGU+JiM2MDti ciAvJiM2Mjs8L2NvZGU+LiBVc2UgPGNvZGU+YnJlYWs9JiMzNDsmIzM0OzwvY29kZT4gdG8g cHV0IHRoZSBsYWJlbCBhbmQgaW5wdXQgZmllbGQgb24gdGhlIHNhbWUgbGluZS48L2xpPgoJ CTxsaT48Y29kZT5kZWZhdWx0PSYjMzQ7dmFsdWUmIzM0OzwvY29kZT48YnIgLz4KRGVmYXVs dCB2YWx1ZSB3aGVuIG5vIGlucHV0IGlzIHByb3ZpZGVkLjwvbGk+CgkJPGxpPjxjb2RlPm1p bj0mIzM0O2ludGVnZXImIzM0OzwvY29kZT48YnIgLz4KTWluaW11bSBpbnB1dCBsZW5ndGgg aW4gY2hhcmFjdGVycy4gRGVmYXVsdCBpcyA8c3Ryb25nPjA8L3N0cm9uZz4uPC9saT4KCQk8 bGk+PGNvZGU+bWF4PSYjMzQ7aW50ZWdlciYjMzQ7PC9jb2RlPjxiciAvPgpNYXhpbXVtIGlu cHV0IGxlbmd0aCBpbiBjaGFyYWN0ZXJzLiBEZWZhdWx0IGlzIDxzdHJvbmc+MTAwPC9zdHJv bmc+LjwvbGk+CgkJPGxpPjxjb2RlPnNpemU9JiMzNDtpbnRlZ2VyJiMzNDs8L2NvZGU+PGJy IC8+ClNpemUgb2YgdGhlIGlucHV0IGZpZWxkIGFzIGRpc3BsYXllZCB0byB0aGUgdXNlci48 L2xpPgoJCTxsaT48Y29kZT5yZXF1aXJlZD0mIzM0O2Jvb2xlYW4mIzM0OzwvY29kZT48YnIg Lz4KV2hldGhlciB0aGlzIHRleHQgZmllbGQgbXVzdCBiZSBmaWxsZWQgb3V0LiBBdmFpbGFi bGUgdmFsdWVzOiA8c3Ryb25nPjE8L3N0cm9uZz4gKHllcyksIDxzdHJvbmc+MDwvc3Ryb25n PiAobm8pLiBEZWZhdWx0IGlzIDxzdHJvbmc+MTwvc3Ryb25nPiAoeWVzKS48L2xpPgoJCTxs aT48Y29kZT5zZW5kX2FydGljbGU9JiMzNDtib29sZWFuJiMzNDs8L2NvZGU+PGJyIC8+Cldo ZXRoZXIgdGhpcyBmaWVsZCBpcyB1c2VkIGFzIHRoZSByZWNpcGllbnQgZW1haWwgYWRkcmVz cyB3aGVuIHVzaW5nIHRoZSBzZW5kX2FydGljbGUgZnVuY3Rpb24uIEF2YWlsYWJsZSB2YWx1 ZXM6IDxzdHJvbmc+MTwvc3Ryb25nPiAoeWVzKSwgPHN0cm9uZz4wPC9zdHJvbmc+IChubyku IERlZmF1bHQgaXMgPHN0cm9uZz4wPC9zdHJvbmc+IChubykuPC9saT4KCTwvdWw+CgoJPGg0 PkV4YW1wbGU8L2g0PgoKPHByZT48Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdF9lbWFpbCBs YWJlbD0mIzM0O1lvdXIgZW1haWwgYWRkcmVzcyYjMzQ7IC8mIzYyOwo8L2NvZGU+PC9wcmU+ CgoJPHA+PGEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+PC9wPgoKCTxoMyBpZD0iemNf dGV4dGFyZWEiPjxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0X3RleHRhcmVhIC8mIzYyOzwv Y29kZT48L2gzPgoKCTxwPkNyZWF0ZXMgYSB0ZXh0YXJlYS48L3A+CgoJPGg0PkF0dHJpYnV0 ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PGNvZGU+bGFiZWw9JiMzNDt0ZXh0JiMzNDs8L2NvZGU+ PGJyIC8+ClRleHQgbGFiZWwgZGlzcGxheWVkIHRvIHRoZSB1c2VyLiBEZWZhdWx0IGlzIDxz dHJvbmc+TWVzc2FnZTwvc3Ryb25nPi48L2xpPgoJCTxsaT48Y29kZT5uYW1lPSYjMzQ7dmFs dWUmIzM0OzwvY29kZT48YnIgLz4KRmllbGQgbmFtZSwgYXMgdXNlZCBpbiB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPjwvc3Bhbj4gaW5w dXQgdGFnLjwvbGk+CgkJPGxpPjxjb2RlPmJyZWFrPSYjMzQ7dGFnJiMzNDs8L2NvZGU+PGJy IC8+CkJyZWFrIHRhZyBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaW5wdXQgZmllbGQuIERlZmF1 bHQgaXMgPGNvZGU+JiM2MDticiAvJiM2Mjs8L2NvZGU+LiBVc2UgPGNvZGU+YnJlYWs9JiMz NDsmIzM0OzwvY29kZT4gdG8gcHV0IHRoZSBsYWJlbCBhbmQgaW5wdXQgZmllbGQgb24gdGhl IHNhbWUgbGluZS48L2xpPgoJCTxsaT48Y29kZT5kZWZhdWx0PSYjMzQ7dmFsdWUmIzM0Ozwv Y29kZT48YnIgLz4KRGVmYXVsdCB2YWx1ZSB3aGVuIG5vIGlucHV0IGlzIHByb3ZpZGVkLjwv bGk+CgkJPGxpPjxjb2RlPmNvbHM9JiMzNDtpbnRlZ2VyJiMzNDs8L2NvZGU+PGJyIC8+CkNv bHVtbiB3aWR0aC4gRGVmYXVsdCBpcyA8c3Ryb25nPjU4PC9zdHJvbmc+LjwvbGk+CgkJPGxp Pjxjb2RlPnJvd3M9JiMzNDtpbnRlZ2VyJiMzNDs8L2NvZGU+PGJyIC8+ClJvdyBoZWlnaHQu IERlZmF1bHQgaXMgPHN0cm9uZz44PC9zdHJvbmc+LjwvbGk+CgkJPGxpPjxjb2RlPm1pbj0m IzM0O2ludGVnZXImIzM0OzwvY29kZT48YnIgLz4KTWluaW11bSBpbnB1dCBsZW5ndGggaW4g Y2hhcmFjdGVycy4gRGVmYXVsdCBpcyA8c3Ryb25nPjA8L3N0cm9uZz4uPC9saT4KCQk8bGk+ PGNvZGU+bWF4PSYjMzQ7aW50ZWdlciYjMzQ7PC9jb2RlPjxiciAvPgpNYXhpbXVtIGlucHV0 IGxlbmd0aCBpbiBjaGFyYWN0ZXJzLiBEZWZhdWx0IGlzIDxzdHJvbmc+MTAwMDA8L3N0cm9u Zz4uPC9saT4KCQk8bGk+PGNvZGU+cmVxdWlyZWQ9JiMzNDtib29sZWFuJiMzNDs8L2NvZGU+ PGJyIC8+CldoZXRoZXIgdGhpcyB0ZXh0IGZpZWxkIG11c3QgYmUgZmlsbGVkIG91dC4gQXZh aWxhYmxlIHZhbHVlczogPHN0cm9uZz4xPC9zdHJvbmc+ICh5ZXMpLCA8c3Ryb25nPjA8L3N0 cm9uZz4gKG5vKS4gRGVmYXVsdCBpcyA8c3Ryb25nPjE8L3N0cm9uZz4gKHllcykuPC9saT4K CTwvdWw+CgoJPGg0PkV4YW1wbGU8L2g0PgoKCTxwPlRleHRhcmVhIHRoYXQgaXMgNDAgY2hh cnMgd2lkZSwgMTAgbGluZXMgaGlnaCwgd2l0aCBhIGN1c3RvbWl6ZWQgbGFiZWw6PC9wPgoK PHByZT48Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdF90ZXh0YXJlYSBjb2xzPSYjMzQ7NDAm IzM0OyByb3dzPSYjMzQ7MTAmIzM0OyBsYWJlbD0mIzM0O1lvdXIgcXVlc3Rpb24mIzM0OyAv JiM2MjsKPC9jb2RlPjwvcHJlPgoKCTxwPjxhIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9h PjwvcD4KCgk8aDMgaWQ9InpjX3N1Ym1pdCI+PGNvZGU+JiM2MDt0eHA6emVtX2NvbnRhY3Rf c3VibWl0IC8mIzYyOzwvY29kZT48L2gzPgoKCTxwPkNyZWF0ZXMgYSBzdWJtaXQgYnV0dG9u LjxiciAvPgpXaGVuIHVzZWQgYXMgYSBjb250YWluZXIgdGFnLCBhICYjODIyMDtidXR0b24m IzgyMjE7IGVsZW1lbnQgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgYW4gJiM4MjIwO2lucHV0 JiM4MjIxOyBlbGVtZW50LjwvcD4KCgk8aDQ+QXR0cmlidXRlczo8L2g0PgoKCTx1bD4KCQk8 bGk+PGNvZGU+bGFiZWw9JiMzNDt0ZXh0JiMzNDs8L2NvZGU+PGJyIC8+ClRleHQgc2hvd24g b24gdGhlIHN1Ym1pdCBidXR0b24uIERlZmF1bHQgaXMgJiM4MjIwO1NlbmQmIzgyMjE7Ljwv bGk+CgkJPGxpPjxjb2RlPmJ1dHRvbj0mIzM0O2Jvb2xlYW4mIzM0OzwvY29kZT48YnIgLz4K PGVtPkRlcHJlY2F0ZWQuIFVzZSBhIGNvbnRhaW5lciB0YWcgaWYgeW91IHdhbnQgYSBidXR0 b24gZWxlbWVudC48L2VtPjwvbGk+Cgk8L3VsPgoKCTxoND5FeGFtcGxlczwvaDQ+CgoJPHA+ U3RhbmRhcmQgc3VibWl0IGJ1dHRvbjo8L3A+Cgo8cHJlPjxjb2RlPiYjNjA7dHhwOnplbV9j b250YWN0X3N1Ym1pdCAvJiM2MjsKPC9jb2RlPjwvcHJlPgoKCTxwPlN1Ym1pdCBidXR0b24g d2l0aCB5b3VyIG93biB0ZXh0OjwvcD4KCjxwcmU+PGNvZGU+JiM2MDt0eHA6emVtX2NvbnRh Y3Rfc3VibWl0IGxhYmVsPSYjMzQ7U2VuZCYjMzQ7IC8mIzYyOwo8L2NvZGU+PC9wcmU+CgoJ PHA+VXNhZ2UgYXMgYSBjb250YWluZXIgdGFnLCB3aGljaCBhbGxvd3MgeW91IHRvIHVzZSBU ZXh0cGF0dGVybiB0YWdzIGFuZCA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gbWFy a3VwIGluIHRoZSBzdWJtaXQgYnV0dG9uOjwvcD4KCjxwcmU+PGNvZGU+JiM2MDt0eHA6emVt X2NvbnRhY3Rfc3VibWl0JiM2MjsmIzYwO3N0cm9uZyYjNjI7U2VuZCYjNjA7L3N0cm9uZyYj NjI7IHF1ZXN0aW9uJiM2MDsvdHhwOnplbV9jb250YWN0X3N1Ym1pdCYjNjI7CjwvY29kZT48 L3ByZT4KCjxwcmU+PGNvZGU+JiM2MDt0eHA6emVtX2NvbnRhY3Rfc3VibWl0JiM2MjsmIzYw O2ltZyBzcmM9JiMzNDtwYXRoL3RvL2ltZy5wbmcmIzM0OyBhbHQ9JiMzNDtzdWJtaXQmIzM0 OyYjNjI7JiM2MDsvdHhwOnplbV9jb250YWN0X3N1Ym1pdCYjNjI7CjwvY29kZT48L3ByZT4K Cgk8cD48YSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT48L3A+CgoJPGgzIGlkPSJ6Y19z ZWxlY3QiPjxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0X3NlbGVjdCAvJiM2Mjs8L2NvZGU+ PC9oMz4KCgk8cD5DcmVhdGVzIGEgZHJvcC1kb3duIHNlbGVjdGlvbiBsaXN0LjwvcD4KCgk8 aDQ+QXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJCTxsaT48Y29kZT5saXN0PSYjMzQ7Y29tbWEt c2VwYXJhdGVkIHZhbHVlcyYjMzQ7PC9jb2RlPiA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPnJl cXVpcmVkPC9zcGFuPjxiciAvPgpMaXN0IG9mIGl0ZW1zIHRvIHNob3cgaW4gdGhlIHNlbGVj dCBib3guPC9saT4KCQk8bGk+PGNvZGU+c2VsZWN0ZWQ9JiMzNDt2YWx1ZSYjMzQ7PC9jb2Rl PjxiciAvPgpMaXN0IGl0ZW0gdGhhdCBpcyBzZWxlY3RlZCBieSBkZWZhdWx0LjwvbGk+CgkJ PGxpPjxjb2RlPmxhYmVsPSYjMzQ7dGV4dCYjMzQ7PC9jb2RlPjxiciAvPgpUZXh0IGxhYmVs IGRpc3BsYXllZCB0byB0aGUgdXNlci4gRGVmYXVsdCBpcyA8c3Ryb25nPk9wdGlvbjwvc3Ry b25nPi48L2xpPgoJCTxsaT48Y29kZT5uYW1lPSYjMzQ7dmFsdWUmIzM0OzwvY29kZT48YnIg Lz4KRmllbGQgbmFtZSwgYXMgdXNlZCBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFu IGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPjwvc3Bhbj4gaW5wdXQgdGFnLjwvbGk+CgkJPGxp Pjxjb2RlPmJyZWFrPSYjMzQ7dGFnJiMzNDs8L2NvZGU+PGJyIC8+CkJyZWFrIHRhZyBiZXR3 ZWVuIHRoZSBsYWJlbCBhbmQgaW5wdXQgZmllbGQuIERlZmF1bHQgaXMgPGNvZGU+JiM2MDti ciAvJiM2Mjs8L2NvZGU+LiBVc2UgPGNvZGU+YnJlYWs9JiMzNDsmIzM0OzwvY29kZT4gdG8g cHV0IHRoZSBsYWJlbCBhbmQgaW5wdXQgZmllbGQgb24gdGhlIHNhbWUgbGluZS48L2xpPgoJ CTxsaT48Y29kZT5kZWxpbWl0ZXI9JiMzNDtjaGFyYWN0ZXImIzM0OzwvY29kZT48YnIgLz4K U2VwYXJhdG9yIGNoYXJhY3RlciB1c2VkIGluIHRoZSA8c3Ryb25nPmxpc3Q8L3N0cm9uZz4g YXR0cmlidXRlLiBEZWZhdWx0IGlzIDxzdHJvbmc+LDwvc3Ryb25nPiAoY29tbWEpLjwvbGk+ CgkJPGxpPjxjb2RlPnJlcXVpcmVkPSYjMzQ7Ym9vbGVhbiYjMzQ7PC9jb2RlPjxiciAvPgpX aGV0aGVyIGEgbm9uLWVtcHR5IG9wdGlvbiBtdXN0IGJlIHNlbGVjdGVkLiBBdmFpbGFibGUg dmFsdWVzOiA8c3Ryb25nPjE8L3N0cm9uZz4gKHllcyksIDxzdHJvbmc+MDwvc3Ryb25nPiAo bm8pLiBEZWZhdWx0IGlzIDxzdHJvbmc+MTwvc3Ryb25nPiAoeWVzKS48L2xpPgoJPC91bD4K Cgk8aDQ+RXhhbXBsZXM8L2g0PgoKCTxwPlNlbGVjdCBsaXN0IGxhYmVsZWQgJiM4MjE2O0Rl cGFydG1lbnQmIzgyMTc7LCBjb250YWluaW5nIHRocmVlIG9wdGlvbnMgYW5kIGEgYmxhbmsg b3B0aW9uIChkdWUgdG8gdGhlIGNvbW1hIGJlZm9yZSAmIzgyMTY7TWFya2V0aW5nJiM4MjE3 Oykgc2hvd24gYnkgZGVmYXVsdCwgZm9yY2luZyB0aGUgdXNlciB0byBtYWtlIGEgc2VsZWN0 aW9uLjwvcD4KCjxwcmU+PGNvZGU+JiM2MDt0eHA6emVtX2NvbnRhY3Rfc2VsZWN0IGxhYmVs PSYjMzQ7RGVwYXJ0bWVudCYjMzQ7IGxpc3Q9JiMzNDssTWFya2V0aW5nLFNhbGVzLFN1cHBv cnQmIzM0OyAvJiM2MjsKPC9jb2RlPjwvcHJlPgoKCTxwPlNlbGVjdCBsaXN0IGNvbnRhaW5p bmcgdGhyZWUgb3B0aW9ucyB3aXRoICYjODIxNjtNYXJrZXRpbmcmIzgyMTc7IHNlbGVjdGVk IGJ5IGRlZmF1bHQuPC9wPgoKPHByZT48Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdF9zZWxl Y3QgbGlzdD0mIzM0O01hcmtldGluZyxTYWxlcyxTdXBwb3J0JiMzNDsgc2VsZWN0ZWQ9JiMz NDtNYXJrZXRpbmcmIzM0OyAvJiM2MjsKPC9jb2RlPjwvcHJlPgoKCTxwPjxhIGhyZWY9IiN0 b3AiPkJhY2sgdG8gdG9wPC9hPjwvcD4KCgk8aDMgaWQ9InpjX2NoZWNrYm94Ij48Y29kZT4m IzYwO3R4cDp6ZW1fY29udGFjdF9jaGVja2JveCAvJiM2Mjs8L2NvZGU+PC9oMz4KCgk8cD5D cmVhdGVzIGEgY2hlY2sgYm94LjwvcD4KCgk8aDQ+QXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJ CTxsaT48Y29kZT5sYWJlbD0mIzM0O3RleHQmIzM0OzwvY29kZT48YnIgLz4KVGV4dCBsYWJl bCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuIERlZmF1bHQgaXMgPHN0cm9uZz5DaGVja2JveDwv c3Ryb25nPi48L2xpPgoJCTxsaT48Y29kZT5uYW1lPSYjMzQ7dmFsdWUmIzM0OzwvY29kZT48 YnIgLz4KRmllbGQgbmFtZSwgYXMgdXNlZCBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPjxz cGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPjwvc3Bhbj4gaW5wdXQgdGFnLjwvbGk+CgkJ PGxpPjxjb2RlPmJyZWFrPSYjMzQ7dGFnJiMzNDs8L2NvZGU+PGJyIC8+CkJyZWFrIHRhZyBi ZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaW5wdXQgZmllbGQuIERlZmF1bHQgaXMgPGNvZGU+JiM2 MDticiAvJiM2Mjs8L2NvZGU+LiBVc2UgPGNvZGU+YnJlYWs9JiMzNDsmIzM0OzwvY29kZT4g dG8gcHV0IHRoZSBsYWJlbCBhbmQgaW5wdXQgZmllbGQgb24gdGhlIHNhbWUgbGluZS48L2xp PgoJCTxsaT48Y29kZT5jaGVja2VkPSYjMzQ7Ym9vbGVhbiYjMzQ7PC9jb2RlPjxiciAvPgpX aGV0aGVyIHRoaXMgYm94IGlzIGNoZWNrZWQgd2hlbiBmaXJzdCBkaXNwbGF5ZWQuIEF2YWls YWJsZSB2YWx1ZXM6IDxzdHJvbmc+MTwvc3Ryb25nPiAoeWVzKSwgPHN0cm9uZz4wPC9zdHJv bmc+IChubykuIERlZmF1bHQgaXMgJiM4MjIwOzAmIzgyMjE7IChubykuPC9saT4KCQk8bGk+ PGNvZGU+cmVxdWlyZWQ9JiMzNDtib29sZWFuJiMzNDs8L2NvZGU+PGJyIC8+CldoZXRoZXIg dGhpcyBjaGVja2JveCBtdXN0IGJlIGZpbGxlZCBvdXQuIEF2YWlsYWJsZSB2YWx1ZXM6IDxz dHJvbmc+MTwvc3Ryb25nPiAoeWVzKSwgPHN0cm9uZz4wPC9zdHJvbmc+IChubykuIERlZmF1 bHQgaXMgPHN0cm9uZz4xPC9zdHJvbmc+ICh5ZXMpLjwvbGk+Cgk8L3VsPgoKCTxoND5FeGFt cGxlczwvaDQ+CgoJPHA+U2hyaW5rLXdyYXAgYWdyZWVtZW50IHdoaWNoIG11c3QgYmUgY2hl Y2tlZCBieSB0aGUgdXNlciBiZWZvcmUgdGhlIGVtYWlsIHdpbGwgYmUgc2VudC48L3A+Cgo8 cHJlPjxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0X2NoZWNrYm94IGxhYmVsPSYjMzQ7SSBh Y2NlcHQgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zJiMzNDsgLyYjNjI7CjwvY29kZT48L3By ZT4KCgk8cD5PcHRpb25hbCBjaGVja2JveGVzOjwvcD4KCjxwcmU+PGNvZGU+U2VsZWN0IHdo aWNoIG9wZXJhdGluZyBzeXN0ZW1zIGFyZSB5b3UgZmFtaWxpYXIgd2l0aDomIzYwO2JyIC8m IzYyOwomIzYwO3R4cDp6ZW1fY29udGFjdF9jaGVja2JveCBsYWJlbD0mIzM0O1dpbmRvd3Mm IzM0OyByZXF1aXJlZD0mIzM0OzAmIzM0OyAvJiM2MjsmIzYwO2JyIC8mIzYyOwomIzYwO3R4 cDp6ZW1fY29udGFjdF9jaGVja2JveCBsYWJlbD0mIzM0O1VuaXgvTGludXgvQlNEJiMzNDsg cmVxdWlyZWQ9JiMzNDswJiMzNDsgLyYjNjI7JiM2MDticiAvJiM2MjsKJiM2MDt0eHA6emVt X2NvbnRhY3RfY2hlY2tib3ggbGFiZWw9JiMzNDtNYWNPUyYjMzQ7IHJlcXVpcmVkPSYjMzQ7 MCYjMzQ7IC8mIzYyOyYjNjA7YnIgLyYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD48YSBocmVm PSIjdG9wIj5CYWNrIHRvIHRvcDwvYT48L3A+CgoJPGgzIGlkPSJ6Y19yYWRpbyI+PGNvZGU+ JiM2MDt0eHA6emVtX2NvbnRhY3RfcmFkaW8gLyYjNjI7PC9jb2RlPjwvaDM+CgoJPHA+Q3Jl YXRlcyBhIHJhZGlvIGJ1dHRvbi48L3A+CgoJPGg0PkF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4K CQk8bGk+PGNvZGU+Z3JvdXA9JiMzNDt0ZXh0JiMzNDs8L2NvZGU+IDxzcGFuIGNsYXNzPSJy ZXF1aXJlZCI+cmVxdWlyZWQ8L3NwYW4+PGJyIC8+ClRleHQgdXNlZCBpbiB0aGUgZW1haWwg dG8gZGVzY3JpYmUgdGhpcyBncm91cCBvZiByYWRpbyBidXR0b25zLiBUaGlzIGF0dHJpYnV0 ZSB2YWx1ZSBpcyByZW1lbWJlcmVkIGZvciBzdWJzZXF1ZW50IHJhZGlvIGJ1dHRvbnMsIHNv IHlvdSBvbmx5IGhhdmUgdG8gc2V0IGl0IG9uIHRoZSBmaXJzdCByYWRpbyBidXR0b24gb2Yg YSBncm91cC4gRGVmYXVsdCBpcyA8c3Ryb25nPlJhZGlvPC9zdHJvbmc+LjwvbGk+CgkJPGxp Pjxjb2RlPmxhYmVsPSYjMzQ7dGV4dCYjMzQ7PC9jb2RlPiA8c3BhbiBjbGFzcz0icmVxdWly ZWQiPnJlcXVpcmVkPC9zcGFuPjxiciAvPgpUZXh0IGxhYmVsIGRpc3BsYXllZCB0byB0aGUg dXNlciBhcyByYWRpbyBidXR0b24gb3B0aW9uLjwvbGk+CgkJPGxpPjxjb2RlPm5hbWU9JiMz NDt2YWx1ZSYjMzQ7PC9jb2RlPjxiciAvPgpGaWVsZCBuYW1lLCBhcyB1c2VkIGluIHRoZSA8 c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+PC9zcGFu PiBpbnB1dCB0YWcuIFRoaXMgYXR0cmlidXRlIHZhbHVlIGlzIHJlbWVtYmVyZWQgZm9yIHN1 YnNlcXVlbnQgcmFkaW8gYnV0dG9ucywgc28geW91IG9ubHkgaGF2ZSB0byBzZXQgaXQgb24g dGhlIGZpcnN0IHJhZGlvIGJ1dHRvbiBvZiBhIGdyb3VwLiBJZiBpdCBoYXNuJiM4MjE3O3Qg YmVlbiBzZXQgYXQgYWxsLCBpdCB3aWxsIGJlIGRlcml2ZWQgZnJvbSB0aGUgPGNvZGU+Z3Jv dXA8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgoJCTxsaT48Y29kZT5icmVhaz0mIzM0O3RhZyYj MzQ7PC9jb2RlPjxiciAvPgpCcmVhayB0YWcgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGZpZWxk LiBEZWZhdWx0IGlzIGEgc3BhY2UuPC9saT4KCQk8bGk+PGNvZGU+Y2hlY2tlZD0mIzM0O2Jv b2xlYW4mIzM0OzwvY29kZT48YnIgLz4KV2hldGhlciB0aGlzIHJhZGlvIG9wdGlvbiBpcyBj aGVja2VkIHdoZW4gdGhlIGZvcm0gaXMgZmlyc3QgZGlzcGxheWVkLiBBdmFpbGFibGUgdmFs dWVzOiA8c3Ryb25nPjE8L3N0cm9uZz4gKHllcyksIDxzdHJvbmc+MDwvc3Ryb25nPiAobm8p LiBEZWZhdWx0IGlzIDxzdHJvbmc+MDwvc3Ryb25nPiAobm8pLjwvbGk+Cgk8L3VsPgoKCTxo ND5FeGFtcGxlPC9oND4KCgk8cD5Hcm91cCBtdXR1YWxseSBleGNsdXNpdmUgcmFkaW8gYnV0 dG9ucyBieSBzZXR0aW5nIHRoZSA8Y29kZT5ncm91cDwvY29kZT4gYXR0cmlidXRlIG9uIHRo ZSBmaXJzdCByYWRpbyBidXR0b24gaW4gYSBncm91cC4gT25seSB0aGUgY2hvc2VuIHJhZGlv IGJ1dHRvbiBmcm9tIGVhY2ggZ3JvdXAgd2lsbCBiZSB1c2VkIGluIHRoZSBlbWFpbCBtZXNz YWdlLiBUaGUgbWVzc2FnZSB3aWxsIGJlIG91dHB1dCBpbiB0aGUgZm9ybSA8c3Ryb25nPmdy b3VwOiBsYWJlbDwvc3Ryb25nPiBmb3IgZWFjaCBvZiB0aGUgY2hvc2VuIHJhZGlvIGJ1dHRv bnMuPC9wPgoKPHByZT48Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdF9yYWRpbyBsYWJlbD0m IzM0O01lZGl1bSYjMzQ7IGdyb3VwPSYjMzQ7SSBsaWtlIG15IHN0ZWFrJiMzNDsgLyYjNjI7 CiYjNjA7dHhwOnplbV9jb250YWN0X3JhZGlvIGxhYmVsPSYjMzQ7UmFyZSYjMzQ7IC8mIzYy OwomIzYwO3R4cDp6ZW1fY29udGFjdF9yYWRpbyBsYWJlbD0mIzM0O1dlbGwgZG9uZSYjMzQ7 IC8mIzYyOwo8L2NvZGU+Cjxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0X3JhZGlvIGxhYmVs PSYjMzQ7V2luZSYjMzQ7IGdyb3VwPSYjMzQ7V2l0aCBhIGdsYXNzIG9mJiMzNDsgLyYjNjI7 CiYjNjA7dHhwOnplbV9jb250YWN0X3JhZGlvIGxhYmVsPSYjMzQ7QmVlciYjMzQ7IC8mIzYy OwomIzYwO3R4cDp6ZW1fY29udGFjdF9yYWRpbyBsYWJlbD0mIzM0O1dhdGVyJiMzNDsgLyYj NjI7CjwvY29kZT48L3ByZT4KCgk8cD48YSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT48 L3A+CgoJPGgzIGlkPSJ6Y19zZWNyZXQiPjxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0X3Nl Y3JldCAvJiM2Mjs8L2NvZGU+PC9oMz4KCgk8cD5UaGlzIHRhZyBoYXMgbm8gZWZmZWN0IG9u IHRoZSBmb3JtIG9yIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBvdXRwdXQsIGJ1 dCB3aWxsIGluY2x1ZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiB0aGUgZW1haWwuIEl0 IGNhbiBiZSB1c2VkIGFzIGEgc2VsZi1jbG9zaW5nIHRhZyBvciBhcyBhIGNvbnRhaW5lciB0 YWcuPC9wPgoKCTxoND5BdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxjb2RlPm5hbWU9 JiMzNDt0ZXh0JiMzNDs8L2NvZGU+PGJyIC8+ClVzZWQgaW50ZXJuYWxseS4gU2V0IHRoaXMg b25seSBpZiB5b3UgaGF2ZSBtdWx0aXBsZSAmIzgyMTY7c2VjcmV0JiM4MjE3OyBmb3JtIGVs ZW1lbnRzIHdpdGggaWRlbnRpY2FsIGxhYmVscy48L2xpPgoJCTxsaT48Y29kZT5sYWJlbD0m IzM0O3RleHQmIzM0OzwvY29kZT48YnIgLz4KVXNlZCB0byBpZGVudGlmeSB0aGUgZmllbGQg aW4gdGhlIGVtYWlsLiBEZWZhdWx0IGlzIDxzdHJvbmc+U2VjcmV0PC9zdHJvbmc+LjwvbGk+ CgkJPGxpPjxjb2RlPnZhbHVlPSYjMzQ7dmFsdWUmIzM0OzwvY29kZT48YnIgLz4KU29tZSB0 ZXh0IHlvdSB3YW50IHRvIGFkZCB0byB0aGUgZW1haWwuPC9saT4KCTwvdWw+CgoJPGg0PkV4 YW1wbGVzPC9oND4KCgk8cD5Vc2FnZSBhcyBhIHNlbGYtY2xvc2luZyB0YWc8L3A+Cgo8cHJl Pjxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0X3NlY3JldCB2YWx1ZT0mIzM0O1RoZSBhbnN3 ZXIgaXMgNDImIzM0OyAvJiM2MjsKPC9jb2RlPjwvcHJlPgoKCTxwPlVzYWdlIGFzIGEgY29u dGFpbmVyIHRhZzwvcD4KCjxwcmU+PGNvZGU+JiM2MDt0eHA6emVtX2NvbnRhY3Rfc2VjcmV0 IGxhYmVsPSYjMzQ7RGVhciB1c2VyJiMzNDsmIzYyOwogIFBsZWFzZSBwcm92aWRlIGEgdXNl ZnVsIGV4YW1wbGUgZm9yIHRoaXMgdGFnIQomIzYwOy90eHA6emVtX2NvbnRhY3Rfc2VjcmV0 JiM2MjsKPC9jb2RlPjwvcHJlPgoKCTxwPjxhIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9h PjwvcD4KCgk8aDMgaWQ9InpjX3NlcnZlcmluZm8iPjxjb2RlPiYjNjA7dHhwOnplbV9jb250 YWN0X3NlcnZlcmluZm8gLyYjNjI7PC9jb2RlPjwvaDM+CgoJPHA+VGhpcyB0YWcgaGFzIG5v IGVmZmVjdCBvbiB0aGUgZm9ybSBvciA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4g b3V0cHV0LCBidXQgd2lsbCBpbmNsdWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4gdGhl IGVtYWlsIGJhc2VkIG9uIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiAkX1NF UlZFUiB2YXJpYWJsZS48L3A+CgoJPGg0PkF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+ PGNvZGU+bmFtZT0mIzM0O3ZhbHVlJiMzNDs8L2NvZGU+IDxzcGFuIGNsYXNzPSJyZXF1aXJl ZCI+cmVxdWlyZWQ8L3NwYW4+PGJyIC8+Ck5hbWUgb2YgdGhlIHNlcnZlciB2YXJpYWJsZS4g U2VlIHRoZSA8YSBocmVmPSJodHRwOi8vcGhwLm5ldC9tYW51YWwvcmVzZXJ2ZWQudmFyaWFi bGVzLnBocCNyZXNlcnZlZC52YXJpYWJsZXMuc2VydmVyIj48c3BhbiBjbGFzcz0iY2FwcyI+ UEhQPC9zcGFuPiBtYW51YWw8L2E+IGZvciBhIGZ1bGwgbGlzdC48L2xpPgoJCTxsaT48Y29k ZT5sYWJlbD0mIzM0O3RleHQmIzM0OzwvY29kZT48YnIgLz4KVXNlZCB0byBpZGVudGlmeSB0 aGUgZmllbGQgaW4gdGhlIGVtYWlsLiBEZWZhdWx0cyB0byB0aGUgdmFsdWUgb2YgdGhlIDxz dHJvbmc+bmFtZTwvc3Ryb25nPiBhdHRyaWJ1dGUuPC9saT4KCTwvdWw+CgoJPGg0PkV4YW1w bGVzPC9oND4KCgk8cD5BZGQgdGhlIElQIGFkZHJlc3Mgb2YgdGhlIHZpc2l0b3IgdG8gdGhl IGVtYWlsPC9wPgoKPHByZT48Y29kZT4mIzYwO3R4cDp6ZW1fY29udGFjdF9zZXJ2ZXJpbmZv IG5hbWU9JiMzNDtSRU1PVEVfQUREUiYjMzQ7IGxhYmVsPSYjMzQ7SVAgbnVtYmVyJiMzNDsg LyYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD5BZGQgdGhlIG5hbWUgb2YgdGhlIHZpc2l0b3Im IzgyMTc7cyBicm93c2VyIHRvIHRoZSBlbWFpbDwvcD4KCjxwcmU+PGNvZGU+JiM2MDt0eHA6 emVtX2NvbnRhY3Rfc2VydmVyaW5mbyBuYW1lPSYjMzQ7SFRUUF9VU0VSX0FHRU5UJiMzNDsg bGFiZWw9JiMzNDtCcm93c2VyJiMzNDsgLyYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD48YSBo cmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT48L3A+CgoJPGgzIGlkPSJ6Y19zZW5kX2FydGlj bGUiPjxjb2RlPiYjNjA7dHhwOnplbV9jb250YWN0X3NlbmRfYXJ0aWNsZSAvJiM2Mjs8L2Nv ZGU+PC9oMz4KCgk8cD5Vc2UgdGhpcyB0YWcgaW4geW91ciBpbmRpdmlkdWFsIGFydGljbGUg Zm9ybSwgd2hlcmUgeW91IHdhbnQgdGhlICYjODIyMDtzZW5kIGFydGljbGUmIzgyMjE7IGxp bmsgdG8gYmUgZGlzcGxheWVkLjwvcD4KCgk8aDQ+QXR0cmlidXRlczo8L2g0PgoKCTx1bD4K CQk8bGk+PGNvZGU+bGlua3RleHQ9JiMzNDt0ZXh0JiMzNDs8L2NvZGU+PGJyIC8+ClRleHQg ZGlzcGxheWVkIGZvciB0aGUgbGluay4gRGVmYXVsdCBpcyA8c3Ryb25nPnNlbmQgYXJ0aWNs ZTwvc3Ryb25nPjwvbGk+Cgk8L3VsPgoKCTxoND5FeGFtcGxlczo8L2g0PgoKCTxwPlNlZSA8 YSBocmVmPSIjc2VuZGFydGljbGUiPkdldHRpbmcgc3RhcnRlZDwvYT48L3A+CgoJPHA+PGEg aHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+PC9wPgoKCTxoMiBpZD0iYWR2YW5jZWQiPkFk dmFuY2VkIGV4YW1wbGVzPC9oMj4KCgk8aDMgaWQ9InNob3dfZXJyb3IiPlNlcGFyYXRlIGlu cHV0IGFuZCBlcnJvciBmb3JtczwvaDM+CgoJPHA+VXNpbmcgPGNvZGU+c2hvd19pbnB1dDwv Y29kZT4gYW5kIDxjb2RlPnNob3dfZXJyb3I8L2NvZGU+IHRvIGRpc3BsYXkgdGhlIGZvcm0g YW5kIGVycm9yIG1lc3NhZ2VzIG9uIGRpZmZlcmVudCBwYXJ0cyBvZiBhIHBhZ2UuIEEgZm9y bSBpcyB1c2VkIHRvIG1ha2Ugc3VyZSB0aGUgY29udGVudHMgb2YgYm90aCBmb3JtcyBhcmUg aWRlbnRpY2FsLCBvdGhlcndpc2UgdGhleSB3b3VsZCBiZSBzZWVuIGFzIHR3byBpbmRlcGVu ZGVudCBmb3Jtcy4gVGhlIGZpcnN0IGZvcm0gb25seSBzaG93cyBlcnJvcnMgKG5vIGlucHV0 KSwgdGhlIHNlY29uZCBmb3JtIG9ubHkgc2hvd3MgdGhlIGlucHV0IGZpZWxkcyAobm8gZXJy b3JzKS48L3A+Cgo8cHJlPjxjb2RlPiYjNjA7ZGl2IGlkPSYjMzQ7ZXJyb3ImIzM0OyYjNjI7 CiAgJiM2MDt0eHA6emVtX2NvbnRhY3QgZm9ybT0mIzM0O2NvbnRhY3RfZm9ybSYjMzQ7IHNo b3dfaW5wdXQ9JiMzNDswJiMzNDsgLyYjNjI7CiYjNjA7L2RpdiYjNjI7CjwvY29kZT4KPGNv ZGU+JiM2MDtkaXYgaWQ9JiMzNDtpbnB1dGZvcm0mIzM0OyYjNjI7CiAgJiM2MDt0eHA6emVt X2NvbnRhY3QgZm9ybT0mIzM0O2NvbnRhY3RfZm9ybSYjMzQ7IHNob3dfZXJyb3I9JiMzNDsw JiMzNDsgLyYjNjI7CiYjNjA7L2RpdiYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD5UaGUgPGNv ZGU+Zm9ybTwvY29kZT4gYXR0cmlidXRlIGlzIHVzZWQgYmVjYXVzZSBhcGFydCBmcm9tIHRo ZSA8Y29kZT5zaG93X2Vycm9yPC9jb2RlPiBhbmQgPGNvZGU+c2hvd19pbnB1dDwvY29kZT4g Zm9ybXMsIGJvdGggZm9ybXMgbXVzdCBiZSAxMDAlIGlkZW50aWNhbC4gT3RoZXJ3aXNlIHRo ZXkgd291bGQgYmUgdHJlYXRlZCBhcyB0d28gdW5yZWxhdGVkIGZvcm1zLjwvcD4KCgk8cD48 YSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT48L3A+CgoJPGgzIGlkPSJzdWJqZWN0X2Zv cm0iPlVzZXIgc2VsZWN0YWJsZSBzdWJqZWN0IGZpZWxkPC9oMz4KCgk8cD5TcGVjaWZ5IHRo ZSA8Y29kZT5zdWJqZWN0X2Zvcm08L2NvZGU+IGF0dHJpYnV0ZSBhbmQgY3JlYXRlIGEgZm9y bSB3aGljaCBpbmNsdWRlcyBhIDxjb2RlPnplbV9jb250YWN0X3NlbGVjdDwvY29kZT4gdGFn OjwvcD4KCjxwcmU+PGNvZGU+JiM2MDt0eHA6emVtX2NvbnRhY3QgdG89JiMzNDt5b3VAZXhh bXBsZS5jb20mIzM0OyBzdWJqZWN0X2Zvcm09JiMzNDtteV9zdWJqZWN0X2Zvcm0mIzM0OyAv JiM2MjsKICAmIzYwO3R4cDp6ZW1fY29udGFjdF90ZXh0IGxhYmVsPSYjMzQ7TmFtZSYjMzQ7 IC8mIzYyOyYjNjA7YnIgLyYjNjI7CiAgJiM2MDt0eHA6emVtX2NvbnRhY3RfZW1haWwgLyYj NjI7JiM2MDticiAvJiM2MjsKICAmIzYwO3R4cDp6ZW1fY29udGFjdF9zZWxlY3QgbGFiZWw9 JiMzNDtDaG9vc2UgU3ViamVjdCYjMzQ7IGxpc3Q9JiMzNDssUXVlc3Rpb24sRmVlZGJhY2sm IzM0OyAvJiM2MjsmIzYwO2JyIC8mIzYyOwogICYjNjA7dHhwOnplbV9jb250YWN0X3RleHRh cmVhIGxhYmVsPSYjMzQ7TWVzc2FnZSYjMzQ7IC8mIzYyOyYjNjA7YnIgLyYjNjI7CiYjNjA7 L3R4cDp6ZW1fY29udGFjdCYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD5DcmVhdGUgYSBUZXh0 cGF0dGVybiBmb3JtIGNhbGxlZCAmIzgyMjA7bXlfc3ViamVjdF9mb3JtJiM4MjIxOywgY29u dGFpbmluZzo8L3A+Cgo8cHJlPjxjb2RlPiYjNjA7dHhwOnBocCYjNjI7CiAgZ2xvYmFsICR6 ZW1fY29udGFjdF9mb3JtOwogIGVjaG8gJHplbV9jb250YWN0X2Zvcm1bJiMzOTtDaG9vc2Ug U3ViamVjdCYjMzk7XTsKJiM2MDsvdHhwOnBocCYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD5U aGUgPGNvZGU+bGFiZWw8L2NvZGU+IHVzZWQgaW4gdGhlIDxjb2RlPnplbV9jb250YWN0X3Nl bGVjdDwvY29kZT4gdGFnIG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBjb3JyZXNwb25kaW5n IHZhcmlhYmxlIGluIHRoZSA8Y29kZT5zdWJqZWN0X2Zvcm08L2NvZGU+LiBIZXJlIHdlIHVz ZWQgPGNvZGU+Q2hvb3NlIHN1YmplY3Q8L2NvZGU+LjwvcD4KCgk8cD5JZiB5b3UmIzgyMTc7 ZCBwcmVmZXIgdG8gYWRkIGEgY29tbW9uIHByZWZpeCBmb3IgYWxsIHN1YmplY3RzLCB1c2Ug YSA8Y29kZT5zdWJqZWN0X2Zvcm08L2NvZGU+IGNvbnRhaW5pbmc6PC9wPgoKPHByZT48Y29k ZT4mIzYwO3R4cDpwaHAmIzYyOwogIGdsb2JhbCAkemVtX2NvbnRhY3RfZm9ybTsKICBlY2hv ICYjMzk7TXkgY29tbW9uIHByZWZpeCAtICYjMzk7IC4gJHplbV9jb250YWN0X2Zvcm1bJiMz OTtDaG9vc2UgU3ViamVjdCYjMzk7XTsKJiM2MDsvdHhwOnBocCYjNjI7CjwvY29kZT48L3By ZT4KCgk8cD48YSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT48L3A+CgoJPGgzIGlkPSJ0 b19mb3JtIj5Vc2VyIHNlbGVjdGFibGUgcmVjaXBpZW50LCB3aXRob3V0IHNob3dpbmcgZW1h aWwgYWRkcmVzczwvaDM+CgoJPHA+U3BlY2lmeSB0aGUgPGNvZGU+dG9fZm9ybTwvY29kZT4g YXR0cmlidXRlIGFuZCBjcmVhdGUgYSBmb3JtIHdoaWNoIGluY2x1ZGVzIGEgPGNvZGU+emVt X2NvbnRhY3Rfc2VsZWN0PC9jb2RlPiB0YWc6PC9wPgoKPHByZT48Y29kZT4mIzYwO3R4cDp6 ZW1fY29udGFjdCB0b19mb3JtPSYjMzQ7bXlfemVtX2NvbnRhY3RfdG9fZm9ybSYjMzQ7JiM2 MjsKICAmIzYwO3R4cDp6ZW1fY29udGFjdF90ZXh0IGxhYmVsPSYjMzQ7TmFtZSYjMzQ7IC8m IzYyOyYjNjA7YnIgLyYjNjI7CiAgJiM2MDt0eHA6emVtX2NvbnRhY3RfZW1haWwgLyYjNjI7 JiM2MDticiAvJiM2MjsKICAmIzYwO3R4cDp6ZW1fY29udGFjdF9zZWxlY3QgbGFiZWw9JiMz NDtEZXBhcnRtZW50JiMzNDsgbGlzdD0mIzM0OyxTdXBwb3J0LFNhbGVzJiMzNDsgLyYjNjI7 JiM2MDticiAvJiM2MjsKICAmIzYwO3R4cDp6ZW1fY29udGFjdF90ZXh0YXJlYSBsYWJlbD0m IzM0O01lc3NhZ2UmIzM0OyAvJiM2MjsmIzYwO2JyIC8mIzYyOwomIzYwOy90eHA6emVtX2Nv bnRhY3QmIzYyOwo8L2NvZGU+PC9wcmU+CgoJPHA+Q3JlYXRlIGEgVGV4dHBhdHRlcm4gZm9y bSBjYWxsZWQgJiM4MjIwO215X3plbV9jb250YWN0X3RvX2Zvcm0mIzgyMjE7LCBjb250YWlu aW5nOjwvcD4KCjxwcmU+PGNvZGU+JiM2MDt0eHA6cGhwJiM2MjsKICBnbG9iYWwgJHplbV9j b250YWN0X2Zvcm07CiAgc3dpdGNoKCR6ZW1fY29udGFjdF9mb3JtWyYjMzk7RGVwYXJ0bWVu dCYjMzk7XSkKICB7CiAgICBjYXNlICYjMzk7U3VwcG9ydCYjMzk7OgogICAgICBlY2hvICYj Mzk7Y3Jld0BleGFtcGxlLmNvbSYjMzk7OwogICAgICBicmVhazsKICAgIGNhc2UgJiMzOTtT YWxlcyYjMzk7OgogICAgICBlY2hvICYjMzk7c2hvd21ldGhlbW9uZXlAZXhhbXBsZS5jb20m IzM5OzsKICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICBlY2hvICYjMzk7c29tZW9u ZUBleGFtcGxlLmNvbSYjMzk7OwogIH0KJiM2MDsvdHhwOnBocCYjNjI7CjwvY29kZT48L3By ZT4KCgk8cD5UaGUgPGNvZGU+bGFiZWw8L2NvZGU+IHVzZWQgaW4gdGhlIDxjb2RlPnplbV9j b250YWN0X3NlbGVjdDwvY29kZT4gdGFnIG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBjb3Jy ZXNwb25zaW5nIHZhcmlhYmxlIGluIHRoZSA8Y29kZT50b19mb3JtPC9jb2RlPi4gSGVyZSB3 ZSB1c2VkIDxjb2RlPkRlcGFydG1lbnQ8L2NvZGU+LjwvcD4KCgk8cD5BICYjODIxNjtkZWZh dWx0JiM4MjE3OyBlbWFpbCBhZGRyZXNzIGluIHRoZSA8Y29kZT50b19mb3JtPC9jb2RlPiBp cyBzcGVjaWZpZWQgdG8gZW5zdXJlIHRoYXQgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIGlzIHVz ZWQgaW4gY2FzZXMgd2hlcmUgeW91IGFkZCBvciBjaGFuZ2UgYSBzZWxlY3QvcmFkaW8gb3B0 aW9uIGFuZCBmb3JnZXQgdG8gdXBkYXRlIHRoZSA8Y29kZT50b19mb3JtPC9jb2RlPi48L3A+ CgoJPHAgY2xhc3M9Indhcm5pbmciPk5ldmVyIHVzZSB0YWdzIGxpa2UgPGNvZGU+emVtX2Nv bnRhY3RfdGV4dDwvY29kZT4sIDxjb2RlPnplbV9jb250YWN0X2VtYWlsPC9jb2RlPiBvciA8 Y29kZT56ZW1fY29udGFjdF90ZXh0YXJlYTwvY29kZT4gZm9yIHNldHRpbmcgdGhlIHJlY2lw aWVudCBhZGRyZXNzLCBvdGhlcndpc2UgeW91ciBmb3JtIGNhbiBiZSBhYnVzZWQgdG8gc2Vu ZCBzcGFtIHRvIGFueSBlbWFpbCBhZGRyZXNzITwvcD4KCgk8cD48YSBocmVmPSIjdG9wIj5C YWNrIHRvIHRvcDwvYT48L3A+CgoJPGgyIGlkPSJzdHlsaW5nIj5TdHlsaW5nPC9oMj4KCgk8 cD5UaGUgZm9ybSBpdHNlbGYgaGFzIGEgY2xhc3MgPHN0cm9uZz56ZW1Db250YWN0Rm9ybTwv c3Ryb25nPiBzZXQgb24gdGhlIDxjb2RlPkZPUk08L2NvZGU+IDxzcGFuIGNsYXNzPSJjYXBz Ij5IVE1MPC9zcGFuPiB0YWcuPC9wPgoKCTxwPlRoZSBsaXN0IG9mIGVycm9yIG1lc3NhZ2Vz IChpZiBhbnkpIGhhcyBhIGNsYXNzIDxzdHJvbmc+emVtRXJyb3I8L3N0cm9uZz4gc2V0IG9u IHRoZSA8Y29kZT5VTDwvY29kZT4gPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IHRh ZyB0aGF0IGVuY2xvc2VzIHRoZSBsaXN0IG9mIGVycm9ycy48L3A+CgoJPHA+QWxsIGZvcm0g ZWxlbWVudHMgYW5kIGNvcnJlc3BvbmRpbmcgbGFiZWxzIGhhdmUgdGhlIGZvbGxvd2luZyBj bGFzc2VzIChvciBpZHMgc2V0KToKCTxvbD4KCQk8bGk+T25lIG9mIDxzdHJvbmc+emVtVGV4 dDwvc3Ryb25nPiwgPHN0cm9uZz56ZW1UZXh0YXJlYTwvc3Ryb25nPiwgPHN0cm9uZz56ZW1T ZWxlY3Q8L3N0cm9uZz4sIDxzdHJvbmc+emVtUmFkaW88L3N0cm9uZz4sIDxzdHJvbmc+emVt Q2hlY2tib3g8L3N0cm9uZz4sIDxzdHJvbmc+emVtU3VibWl0PC9zdHJvbmc+LiBJdCBzaG91 bGQgYmUgb2J2aW91cyB3aGljaCBjbGFzcyBpcyB1c2VkIGZvciB3aGljaCBmb3JtIGVsZW1l bnQgKGFuZCBjb3JyZXNwb25kaW5nIGxhYmVsKS48L2xpPgoJCTxsaT48c3Ryb25nPnplbVJl cXVpcmVkPC9zdHJvbmc+IG9yIDxzdHJvbmc+ZXJyb3JFbGVtZW50PC9zdHJvbmc+IG9yIDxz dHJvbmc+emVtUmVxdWlyZWRlcnJvckVsZW1lbnQ8L3N0cm9uZz4sIGRlcGVuZGluZyBvbiB3 aGV0aGVyIHRoZSBmb3JtIGVsZW1lbnQgaXMgcmVxdWlyZWQsIGFuIGVycm9yIHdhcyBmb3Vu ZCBpbiB3aGF0ZXZlciB0aGUgdmlzaXRvciBlbnRlcmVkJiM4MjMwOyBvciBib3RoLjwvbGk+ CgkJPGxpPkFuIGluZGl2aWR1YWwgJiM4MjIwO2lkJiM4MjIxOyBvciAmIzgyMjA7Y2xhc3Mm IzgyMjE7IHNldCB0byB0aGUgdmFsdWUgb2YgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJp YnV0ZSBvZiB0aGUgY29ycmVzcG9uZGluZyB0YWcuIFdoZW4gc3R5bGluZyBmb3JtcyBiYXNl ZCBvbiB0aGlzIGNsYXNzLCB5b3Ugc2hvdWxkIGV4cGxpY2l0bHkgc2V0IHRoZSA8Y29kZT5u YW1lPC9jb2RlPiBhdHRyaWJ1dGUgYmVjYXVzZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBu YW1lcyBtYXkgY2hhbmdlIGluIG5ld2VyIHplbV9jb250YWN0X3JlYm9ybiB2ZXJzaW9ucy48 L2xpPgoJPC9vbD48L3A+CgoJPHA+PGEgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+PC9w PgoKCTxoMiBpZD0iaGlzdG9yeSI+SGlzdG9yeTwvaDI+CgoJPHA+T25seSB0aGUgY2hhbmdl cyB0aGF0IG1heSBhZmZlY3QgcGVvcGxlIHdobyB1cGdyYWRlIGFyZSBkZXRhaWxlZCBiZWxv dy48YnIgLz4KVG8gc2F2ZSBzcGFjZSwgbGlua3MgdG8gZm9ydW0gdG9waWNzIHRoYXQgZGV0 YWlsIGFsbCB0aGUgY2hhbmdlcyBpbiBlYWNoIHZlcnNpb24gaGF2ZSBiZWVuIGFkZGVkLjwv cD4KCgk8dWw+CgkJPGxpPjE0IGZlYiAyMDA3OiA8c3Ryb25nPnZlcnNpb24gNC4wLjMuMTk8 L3N0cm9uZz4gPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9w aWMucGhwP2lkPTIxMTQ0Ij5jaGFuZ2Vsb2c8L2E+Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNz ZW5kYXJ0aWNsZSI+c2VuZF9hcnRpY2xlPC9hPiBmdW5jdGlvbmFsaXR5IHJldmlzZWQsIHJl cXVpcmluZyBjaGFuZ2VzIHdoZW4gdXBncmFkaW5nIGZyb20gZWFybGllciB2ZXJzaW9uczwv bGk+CgkJPGxpPk5ldyBsYW5ndWFnZSBzdHJpbmdzOiAmIzgyMTY7c2VuZF9hcnRpY2xlJiM4 MjE3OyBhbmQgJiM4MjE2O3JlY2lwaWVudCYjODIxNzsgKHJlcGxhY2VzICYjODIxNjtyZWNl aXZlciYjODIxNzspPC9saT4KCQk8bGk+U2V0cyBvZiByYWRpbyBidXR0b25zIHJlcXVpcmUg dGhlIG5ldyA8YSBocmVmPSIjemNfcmFkaW8iPmdyb3VwPC9hPiBhdHRyaWJ1dGU8L2xpPgoJ CTxsaT5ZZXMvTm8gdmFsdWVzIGRlcHJlY2F0ZWQgaW4gZmF2b3IgZm9yIHRoZSA8c3BhbiBj bGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj48L3NwYW4+IHN0YW5k YXJkIDEvMCB2YWx1ZXMgKHllcy9ubyBzdGlsbCB3b3JrIGluIHRoaXMgdmVyc2lvbik8L2xp PgoJPC91bD48L2xpPgoJCTxsaT4yMCBub3YgMjAwNjogPHN0cm9uZz52ZXJzaW9uIDQuMC4z LjE4PC9zdHJvbmc+IDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmll d3RvcGljLnBocD9pZD0xOTgyMyI+Y2hhbmdlbG9nPC9hPgoJPHVsPgoJCTxsaT5JRHMgJiM4 MjE2O3plbUNvbnRhY3RGb3JtJiM4MjE3OyBhbmQgJiM4MjE2O3plbVN1Ym1pdCYjODIxNzsg aGF2ZSBjaGFuZ2VkIHRvIGNsYXNzZXMgdG8gYWxsb3cgbXVsdGlwbGUgZm9ybXMgcGVyIHBh Z2U8L2xpPgoJCTxsaT5OZXcgbGFuZ3VhZ2Ugc3RyaW5nczogJiM4MjE2O2Zvcm1fdXNlZCYj ODIxNzssICYjODIxNjtpbnZhbGlkX3V0ZjgmIzgyMTc7LCAmIzgyMTY7bWF4X3dhcm5pbmcm IzgyMTc7LCAmIzgyMTY7bmFtZSYjODIxNzssICYjODIxNjtyZWZyZXNoJiM4MjE3OywgJiM4 MjE2O3NlY3JldCYjODIxNzs8L2xpPgoJPC91bD48L2xpPgoJCTxsaT4xMiBtYXIgMjAwNjog PHN0cm9uZz52ZXJzaW9uIDQuMC4zLjE3PC9zdHJvbmc+IDxhIGhyZWY9Imh0dHA6Ly9mb3J1 bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0xMzQxNiI+Y2hhbmdlbG9nPC9h PjwvbGk+CgkJPGxpPjExIGZlYiAyMDA2OiA8c3Ryb25nPnZlcnNpb24gLjE2PC9zdHJvbmc+ PC9saT4KCQk8bGk+MDYgZmViIDIwMDY6IDxzdHJvbmc+dmVyc2lvbiAuMTU8L3N0cm9uZz48 L2xpPgoJCTxsaT4wMyBmZWIgMjAwNjogPHN0cm9uZz52ZXJzaW9uIC4xNDwvc3Ryb25nPgoJ PHVsPgoJCTxsaT5SZXF1aXJlcyBzZXBhcmF0ZSB6ZW1fY29udGFjdF9sYW5nIHBsdWdpbjwv bGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjI5IGphbiAyMDA2OiA8c3Ryb25nPnZlcnNpb24gLjEy PC9zdHJvbmc+PC9saT4KCQk8bGk+MjcgamFuIDIwMDY6IDxzdHJvbmc+dmVyc2lvbiAuMTE8 L3N0cm9uZz48L2xpPgoJCTxsaT4yMyBqYW4gMjAwNjogPHN0cm9uZz52ZXJzaW9uIC4wOSBh bmQgLjEwPC9zdHJvbmc+PC9saT4KCQk8bGk+MjMgamFuIDIwMDY6IDxzdHJvbmc+dmVyc2lv biAuMDg8L3N0cm9uZz48L2xpPgoJCTxsaT4xNyBqYW4gMjAwNjogPHN0cm9uZz52ZXJzaW9u IC4wNzwvc3Ryb25nPjwvbGk+CgkJPGxpPjE2IGphbiAyMDA2OiA8c3Ryb25nPnZlcnNpb24g LjA1IGFuZCAuMDY8L3N0cm9uZz48L2xpPgoJCTxsaT4xNSBqYW4gMjAwNjogPHN0cm9uZz52 ZXJzaW9uIC4wNDwvc3Ryb25nPjwvbGk+CgkJPGxpPjEwIGphbiAyMDA2OiA8c3Ryb25nPnZl cnNpb24gLjAzPC9zdHJvbmc+PC9saT4KCQk8bGk+MTkgZGVjIDIwMDU6IDxzdHJvbmc+dmVy c2lvbiAuMDI8L3N0cm9uZz48L2xpPgoJPC91bD4KCgk8cD48YSBocmVmPSIjdG9wIj5CYWNr IHRvIHRvcDwvYT48L3A+CgoJPGgyIGlkPSJjcmVkaXRzIj5DcmVkaXRzPC9oMj4KCgk8dWw+ CgkJPGxpPjxzdHJvbmc+emVtPC9zdHJvbmc+IHdyb3RlIHRoZSB6ZW1fY29udGFjdCAwLjYg cGx1Z2luIG9uIHdoaWNoIHRoaXMgcGx1Z2luIHdhcyBpbml0aWFsbHkgYmFzZWQuPC9saT4K CQk8bGk+PHN0cm9uZz5NYXJ5PC9zdHJvbmc+IGNvbXBsZXRlbHkgcmV2aXNlZCB0aGUgcGx1 Z2luIGNvZGUuPC9saT4KCQk8bGk+PHN0cm9uZz5TdHVhcnQ8L3N0cm9uZz4gVHVybmVkIGl0 IGludG8gYSBwbHVnaW4sIGFkZGVkIGEgcmV2aXNlZCBoZWxwIHRleHQgYW5kIGFkZGl0aW9u YWwgY29kZS4gTWFpbnRhaW5lZCBhbGwgcGx1Z2luIHZlcnNpb25zIHRpbGwgNC4wLjMuMTcu PC9saT4KCQk8bGk+PHN0cm9uZz53ZXQ8L3N0cm9uZz4gYWRkZWQgdGhlIHplbV9jb250YWN0 X3JhZGlvIHRhZy48L2xpPgoJCTxsaT48c3Ryb25nPlRyYW5xdWlsbG88L3N0cm9uZz4gYWRk ZWQgdGhlIGFudGktc3BhbSA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMi PkFQSTwvc3Bhbj48L3NwYW4+IGFuZCB6ZW1fY29udGFjdF9zZW5kX2FydGljbGUgZnVuY3Rp b25hbGl0eS48L2xpPgoJCTxsaT48c3Ryb25nPmFzbHN3NjY8L3N0cm9uZz4sIDxzdHJvbmc+ amR5a2FzdDwvc3Ryb25nPiBhbmQgb3RoZXJzICg/KSBwcm92aWRlZCBhZGRpdGlvbmFsIGNv ZGU8L2xpPgoJCTxsaT48c3Ryb25nPlJ1dWQ8L3N0cm9uZz4gY2xlYW5lZCB1cCBhbmQgYXVk aXRlZCB0aGUgY29kZSB0byB3ZWVkIG91dCBidWdzIGFuZCBjb21wbGV0ZWx5IHJldmlzZWQg dGhlIGhlbHAgdGV4dC4gTWFpbnRhaW5lciBvZiB2ZXJzaW9ucyA0LjAuMy4xOCBhbmQgdXAu PC9saT4KCQk8bGk+U3VwcG9ydGVkIGFuZCB0ZXN0ZWQgdG8gZGVzdHJ1Y3Rpb24gYnkgdGhl IFRleHRwYXR0ZXJuIGNvbW11bml0eS48L2xpPgoJPC91bD4KCgk8cD48YSBocmVmPSIjdG9w Ij5CYWNrIHRvIHRvcDwvYT48L3A+CgoJPGgyIGlkPSJhcGkiPlplbSBDb250YWN0IFJlYm9y biYjODIxNztzIDxzcGFuIGNsYXNzPSJjYXBzIj5BUEk8L3NwYW4+PC9oMj4KCgk8cD5UaGUg cGx1Z2luIDxzcGFuIGNsYXNzPSJjYXBzIj5BUEk8L3NwYW4+IG9mIHplbSBjb250YWN0LCBk ZXZlbG9wZWQgYnkgVHJhbnF1aWxsbywgaXMgc2ltaWxhciB0byB0aGUgY29tbWVudHMgPHNw YW4gY2xhc3M9ImNhcHMiPkFQSTwvc3Bhbj4gb2YgVGV4dHBhdHRlcm4sIHdoaWNoIGlzIGV4 cGxhaW5lZCBpbiB0aGUgVGV4dGJvb2sgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm5l dC93aWtpL2luZGV4LnBocD90aXRsZT1QbHVnaW5fRGV2ZWxvcG1lbnRfVG9waWNzIj5QbHVn aW4gRGV2ZWxvcG1lbnQgVG9waWNzPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0 ZXJuLm5ldC93aWtpL2luZGV4LnBocD90aXRsZT1Db21iYXRfQ29tbWVudF9TcGFtIj5Db21i YXQgQ29tbWVudCBTcGFtPC9hPi48L3A+CgoJPHA+VHdvIGNhbGxiYWNrIGV2ZW50cyBleGlz dCBpbiB6ZW1fY29udGFjdF9yZWJvcm46Cgk8dWw+CgkJPGxpPjxjb2RlPnplbWNvbnRhY3Qu c3VibWl0PC9jb2RlPiBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkIGFu ZCB0aGUgdmFsdWVzIGFyZSBjaGVja2VkIGlmIGVtcHR5IG9yIHZhbGlkIGVtYWlsIGFkZHJl c3NlcywgYnV0IGJlZm9yZSB0aGUgbWFpbCBpcyBzZW50LjwvbGk+CgkJPGxpPjxjb2RlPnpl bWNvbnRhY3QuZm9ybTwvY29kZT4gbGV0JiM4MjE3O3MgeW91IGluc2VydCBjb250ZW50IGlu IHRoZSBjb250YWN0IGZvcm0gYXMgZGlzcGxheWVkIHRvIHRoZSB2aXNpdG9yLjwvbGk+Cgk8 L3VsPjwvcD4KCgk8cD5Gb3IgcmVmZXJlbmNlIGhlcmUgYXJlIHRoZSBjb21tYW5kcyB0aGF0 IHdpbGwgYmUgaW50ZXJlc3RpbmcgdG8gcGx1Z2luIGRldmVsb3BlcnM6PC9wPgoKPHByZT48 Y29kZT4vLyBUaGlzIHdpbGwgY2FsbCB5b3VyIGZ1bmN0aW9uIGJlZm9yZSB0aGUgZm9ybSBp cyBzdWJtaXR0ZWQKLy8gU28geW91IGNhbiBhbmFseXNlIHRoZSBzdWJtaXR0ZWQgZGF0YQpy ZWdpc3Rlcl9jYWxsYmFjaygmIzM5O2FiY19teWZ1bmN0aW9uJiMzOTssJiMzOTt6ZW1jb250 YWN0LnN1Ym1pdCYjMzk7KTsKPC9jb2RlPgo8Y29kZT4vLyBUaGlzIHdpbGwgY2FsbCB5b3Vy IGZ1bmN0aW9uIGFuZCBhZGQgdGhlIG91dHB1dCAodXNlIHJldHVybiAkbXlzdHVmZikKLy8g dG8gdGhlIGNvbnRhY3QtZm9ybS4KcmVnaXN0ZXJfY2FsbGJhY2soJiMzOTthYmNfbXlvdGhl cmZ1bmN0aW9uMiYjMzk7LCYjMzk7emVtY29udGFjdC5mb3JtJiMzOTspOwo8L2NvZGU+Cjxj b2RlPi8vIFRvIGdldCBob2xkIG9mIHRoZSBmb3JtLXZhcmlhYmxlcyB5b3UgY2FuIHVzZQpn bG9iYWwgemVtX2NvbnRhY3RfZm9ybTsKPC9jb2RlPgo8Y29kZT4vLyBXaXRoIHRoZSBmb2xs b3dpbmcgdHdvIGxpbmVzIHlvdSBjYW4gdGVsbCB6ZW1fY29udGFjdCBpZiB5b3VyCi8vIHBs dWdpbiBmb3VuZCBzcGFtCiRldmFsdWF0b3IgPSYjMzg7IGdldF96ZW1jb250YWN0X2V2YWx1 YXRvcigpOwo8L2NvZGU+Cjxjb2RlPi8vIFRoZSBwYXNzZWQgdmFsdWUgbXVzdCBiZSBub24t emVybyB0byBtYXJrIHRoZSBjb250ZW50IGFzIHNwYW0uCi8vIFZhbHVlIG11c3QgYmUgYSBu dW1iZXIgYmV0d2VlbiAwIGFuZCAxLgokZXZhbHVhdG9yIC0mIzYyOyBhZGRfemVtY29udGFj dF9zdGF0dXMoMSk7CjwvY29kZT48L3ByZT4KCgk8cD5NdWx0aXBsZSBwbHVnaW5zIGNhbiBi ZSBhY3RpdmUgYXQgdGhlIHNhbWUgdGltZSBhbmQgZWFjaCBvZiB0aGVtIGNhbiBtYXJrIHRo ZSBzdWJtaXR0ZWQgY29udGVudCBhcyBzcGFtIGFuZCBwcmV2ZW50IHRoZSBmb3JtIGZyb20g YmVpbmcgc3VibWl0dGVkLjwvcD4KCgk8cD48c3Ryb25nPkFuIGV4YW1wbGUgb2YgYSBwbHVn LWluIGNvbm5lY3RpbmcgdG8gWmVtIENvbnRhY3QgUmVib3JuJiM4MjE3O3MgQVBJOjwvc3Ry b25nPjwvcD4KCjxwcmU+PGNvZGU+cmVnaXN0ZXJfY2FsbGJhY2soJiMzOTtwYXBfemVtY29u dGFjdF9mb3JtJiMzOTssJiMzOTt6ZW1jb250YWN0LmZvcm0mIzM5Oyk7CnJlZ2lzdGVyX2Nh bGxiYWNrKCYjMzk7cGFwX3plbWNvbnRhY3Rfc3VibWl0JiMzOTssJiMzOTt6ZW1jb250YWN0 LnN1Ym1pdCYjMzk7KTsKPC9jb2RlPgo8Y29kZT5mdW5jdGlvbiBwYXBfemVtY29udGFjdF9m b3JtKCkgewogICRmaWVsZCA9ICYjMzk7JiM2MDtkaXYgc3R5bGU9JiMzNDtkaXNwbGF5Om5v bmUmIzM0OyYjNjI7JiMzOTsuCiAgICBmaW5wdXQoJiMzOTt0ZXh0JiMzOTssJiMzOTtwaG9u ZSYjMzk7LHBzKCYjMzk7cGhvbmUmIzM5OyksJiMzOTsmIzM5OywmIzM5OyYjMzk7LCYjMzk7 JiMzOTssJiMzOTsmIzM5OywmIzM5OyYjMzk7LCYjMzk7cGhvbmUmIzM5OykuJiMzOTsmIzYw O2JyIC8mIzYyOyYjMzk7LgogICAgZmlucHV0KCYjMzk7dGV4dCYjMzk7LCYjMzk7bWFpbCYj Mzk7LHBzKCYjMzk7bWFpbCYjMzk7KSwmIzM5OyYjMzk7LCYjMzk7JiMzOTssJiMzOTsmIzM5 OywmIzM5OyYjMzk7LCYjMzk7JiMzOTssJiMzOTttYWlsJiMzOTspLiYjMzk7JiM2MDsvZGl2 JiM2MjsmIzM5OzsKICByZXR1cm4gJGZpZWxkOyYjNjA7L2NvZGUmIzYyOwp9CjwvY29kZT4K PGNvZGU+ZnVuY3Rpb24gcGFwX3plbWNvbnRhY3Rfc3VibWl0KCkgewogICRjaGVja2luZ19t YWlsX2ZpZWxkID0gdHJpbShwcygmIzM5O21haWwmIzM5OykpOwogICRjaGVja2luZ19waG9u ZV9maWVsZCA9IHRyaW0ocHMoJiMzOTtwaG9uZSYjMzk7KSk7CjwvY29kZT4KPGNvZGU+ICAk ZXZhbHVhdGlvbiA9JiMzODsgZ2V0X3plbWNvbnRhY3RfZXZhbHVhdG9yKCk7CjwvY29kZT4K PGNvZGU+ICAvLyBJZiB0aGUgaGlkZGVuIGZpZWxkcyBhcmUgZmlsbGVkIG91dCwgdGhlIGNv bnRhY3QgZm9ybSB3b24mIzM5O3QgYmUgc3VibWl0dGVkIQogIGlmICgkY2hlY2tpbmdfbWFp bF9maWVsZCAhPSAmIzM5OyYjMzk7IG9yICRjaGVja2luZ19waG9uZV9maWVsZCAhPSAmIzM5 OyYjMzk7KSB7CiAgICAkZXZhbHVhdGlvbiAtJiM2MjsgYWRkX3plbWNvbnRhY3Rfc3RhdHVz KDEpOwogIH0KICByZXR1cm47Cn0KPC9jb2RlPjwvcHJlPgoKCTxwPjxhIGhyZWY9IiN0b3Ai PkJhY2sgdG8gdG9wPC9hPjwvcD4iO3M6NDoiY29kZSI7czoyMDcxMDoiCmZ1bmN0aW9uIHpl bV9jb250YWN0KCRhdHRzLCAkdGhpbmcgPSAnJykKewoJZ2xvYmFsICRzaXRlbmFtZSwgJHBy ZWZzLCAkcHJvZHVjdGlvbl9zdGF0dXMsICR6ZW1fY29udGFjdF9mcm9tLAoJCSR6ZW1fY29u dGFjdF9yZWNpcGllbnQsICR6ZW1fY29udGFjdF9lcnJvciwgJHplbV9jb250YWN0X3N1Ym1p dCwKCQkkemVtX2NvbnRhY3RfZm9ybSwgJHplbV9jb250YWN0X2xhYmVscywgJHplbV9jb250 YWN0X3ZhbHVlczsKCglleHRyYWN0KHplbV9jb250YWN0X2xBdHRzKGFycmF5KAoJCSdjb3B5 c2VuZGVyJwk9PiAwLAoJCSdmb3JtJwkJPT4gJycsCgkJJ2Zyb20nCQk9PiAnJywKCQknZnJv bV9mb3JtJwk9PiAnJywKCQknbGFiZWwnCQk9PiB6ZW1fY29udGFjdF9nVHh0KCdjb250YWN0 JyksCgkJJ3JlZGlyZWN0Jwk9PiAnJywKCQknc2hvd19lcnJvcicJPT4gMSwKCQknc2hvd19p bnB1dCcJPT4gMSwKCQknc2VuZF9hcnRpY2xlJwk9PiAwLAoJCSdzdWJqZWN0Jwk9PiB6ZW1f Y29udGFjdF9nVHh0KCdlbWFpbF9zdWJqZWN0JywgaHRtbF9lbnRpdHlfZGVjb2RlKCRzaXRl bmFtZSxFTlRfUVVPVEVTKSksCgkJJ3N1YmplY3RfZm9ybScJPT4gJycsCgkJJ3RvJwkJPT4g JycsCgkJJ3RvX2Zvcm0nCT0+ICcnLAoJCSd0aGFua3MnCT0+IGdyYWYoemVtX2NvbnRhY3Rf Z1R4dCgnZW1haWxfdGhhbmtzJykpLAoJCSd0aGFua3NfZm9ybScJPT4gJycKCSksICRhdHRz KSk7CgoJdW5zZXQoJGF0dHNbJ3Nob3dfZXJyb3InXSwgJGF0dHNbJ3Nob3dfaW5wdXQnXSk7 CgkkemVtX2NvbnRhY3RfZm9ybV9pZCA9IG1kNShzZXJpYWxpemUoJGF0dHMpLnByZWdfcmVw bGFjZSgnL1tcdFxzXHJcbl0vJywnJywkdGhpbmcpKTsKCSR6ZW1fY29udGFjdF9zdWJtaXQg PSAocHMoJ3plbV9jb250YWN0X3N1Ym1pdCcpIGFuZCBwcygnemVtX2NvbnRhY3RfZm9ybV9p ZCcpID09ICR6ZW1fY29udGFjdF9mb3JtX2lkKTsKCglpZiAoIWlzX2NhbGxhYmxlKCdtYWls JykpCgl7CgkJcmV0dXJuICgkcHJvZHVjdGlvbl9zdGF0dXMgPT0gJ2xpdmUnKSA/CgkJCXpl bV9jb250YWN0X2dUeHQoJ21haWxfc29ycnknKSA6CgkJCWdUeHQoJ3dhcm5fbWFpbF91bmF2 YWlsYWJsZScpOwoJfQoKCXN0YXRpYyAkaGVhZGVyc19zZW50ID0gZmFsc2U7CglpZiAoISRo ZWFkZXJzX3NlbnQpIHsKCQloZWFkZXIoJ0xhc3QtTW9kaWZpZWQ6ICcuZ21kYXRlKCdELCBk IE0gWSBIOmk6cycsdGltZSgpLTM2MDAqMjQqNykuJyBHTVQnKTsKCQloZWFkZXIoJ0V4cGly ZXM6ICcuZ21kYXRlKCdELCBkIE0gWSBIOmk6cycsdGltZSgpKzYwMCkuJyBHTVQnKTsKCQlo ZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUnKTsKCQkk aGVhZGVyc19zZW50ID0gdHJ1ZTsKCX0KCgkkbm9uY2UgICA9IG15c3FsX3JlYWxfZXNjYXBl X3N0cmluZyhwcygnemVtX2NvbnRhY3Rfbm9uY2UnKSk7CgkkcmVub25jZSA9IGZhbHNlOwoK CWlmICgkemVtX2NvbnRhY3Rfc3VibWl0KQoJewoJCXNhZmVfZGVsZXRlKCd0eHBfZGlzY3Vz c19ub25jZScsICdpc3N1ZV90aW1lIDwgZGF0ZV9zdWIobm93KCksIGludGVydmFsIDEwIG1p bnV0ZSknKTsKCQlpZiAoJHJzID0gc2FmZV9yb3coJ3VzZWQnLCAndHhwX2Rpc2N1c3Nfbm9u Y2UnLCAibm9uY2UgPSAnJG5vbmNlJyIpKQoJCXsKCQkJaWYgKCRyc1sndXNlZCddKQoJCQl7 CgkJCQl1bnNldCgkemVtX2NvbnRhY3RfZXJyb3IpOwoJCQkJJHplbV9jb250YWN0X2Vycm9y W10gPSB6ZW1fY29udGFjdF9nVHh0KCdmb3JtX3VzZWQnKTsKCQkJCSRyZW5vbmNlID0gdHJ1 ZTsKCQkJCSRfUE9TVCA9IGFycmF5KCk7CgkJCQkkX1BPU1RbJ3plbV9jb250YWN0X3N1Ym1p dCddID0gMTsKCQkJCSRfUE9TVFsnemVtX2NvbnRhY3RfZm9ybV9pZCddID0gJHplbV9jb250 YWN0X2Zvcm1faWQ7CgkJCQkkX1BPU1RbJ3plbV9jb250YWN0X25vbmNlJ10gPSAkbm9uY2U7 CgkJCX0KCQl9CgkJZWxzZQoJCXsKCQkJJHplbV9jb250YWN0X2Vycm9yW10gPSB6ZW1fY29u dGFjdF9nVHh0KCdmb3JtX2V4cGlyZWQnKTsKCQkJJHJlbm9uY2UgPSB0cnVlOwoJCX0KCX0K CglpZiAoJHplbV9jb250YWN0X3N1Ym1pdCBhbmQgJG5vbmNlIGFuZCAhJHJlbm9uY2UpCgl7 CgkJJHplbV9jb250YWN0X25vbmNlID0gJG5vbmNlOwoJfQoKCWVsc2VpZiAoISRzaG93X2Vy cm9yIG9yICRzaG93X2lucHV0KQoJewoJCSR6ZW1fY29udGFjdF9ub25jZSA9IG1kNSh1bmlx aWQocmFuZCgpLCB0cnVlKSk7CgkJc2FmZV9pbnNlcnQoJ3R4cF9kaXNjdXNzX25vbmNlJywg Imlzc3VlX3RpbWUgPSBub3coKSwgbm9uY2UgPSAnJHplbV9jb250YWN0X25vbmNlJyIpOwoJ fQoKCSRmb3JtID0gKCRmb3JtKSA/IGZldGNoX2Zvcm0oJGZvcm0pIDogJHRoaW5nOwoKCWlm IChlbXB0eSgkZm9ybSkpCgl7CgkJJGZvcm0gPSAnCjx0eHA6emVtX2NvbnRhY3RfdGV4dCBs YWJlbD0iJy56ZW1fY29udGFjdF9nVHh0KCduYW1lJykuJyIgLz48YnIgLz4KPHR4cDp6ZW1f Y29udGFjdF9lbWFpbCAvPjxiciAvPicuCigkc2VuZF9hcnRpY2xlID8gJzx0eHA6emVtX2Nv bnRhY3RfZW1haWwgc2VuZF9hcnRpY2xlPSIxIiBsYWJlbD0iJy56ZW1fY29udGFjdF9nVHh0 KCdyZWNpcGllbnQnKS4nIiAvPjxiciAvPicgOiAnJykuCic8dHhwOnplbV9jb250YWN0X3Rl eHRhcmVhIC8+PGJyIC8+Cjx0eHA6emVtX2NvbnRhY3Rfc3VibWl0IC8+Cic7Cgl9CgoJJGZv cm0gPSBwYXJzZSgkZm9ybSk7CgoJaWYgKCR0b19mb3JtKQoJewoJCSR0byA9IHBhcnNlKGZl dGNoX2Zvcm0oJHRvX2Zvcm0pKTsKCX0KCglpZiAoISR0byBhbmQgISRzZW5kX2FydGljbGUp Cgl7CgkJcmV0dXJuIHplbV9jb250YWN0X2dUeHQoJ3RvX21pc3NpbmcnKTsKCX0KCgkkb3V0 ID0gJyc7CgoJaWYgKCEkemVtX2NvbnRhY3Rfc3VibWl0KSB7CgkgICMgZG9uJ3Qgc2hvdyBl cnJvcnMgb3Igc2VuZCBtYWlsCgl9CgoJZWxzZWlmICghZW1wdHkoJHplbV9jb250YWN0X2Vy cm9yKSkKCXsKCQlpZiAoJHNob3dfZXJyb3Igb3IgISRzaG93X2lucHV0KQoJCXsKCQkJJG91 dCAuPSBuLic8dWwgY2xhc3M9InplbUVycm9yIj4nOwoKCQkJZm9yZWFjaCAoYXJyYXlfdW5p cXVlKCR6ZW1fY29udGFjdF9lcnJvcikgYXMgJGVycm9yKQoJCQl7CgkJCQkkb3V0IC49IG4u dC4nPGxpPicuJGVycm9yLic8L2xpPic7CgkJCX0KCgkJCSRvdXQgLj0gbi4nPC91bD4nOwoK CQkJaWYgKCEkc2hvd19pbnB1dCkgcmV0dXJuICRvdXQ7CgkJfQoJfQoKCWVsc2VpZiAoJHNo b3dfaW5wdXQgYW5kIGlzX2FycmF5KCR6ZW1fY29udGFjdF9mb3JtKSkKCXsKCQkvLy8gbG9h ZCBhbmQgY2hlY2sgc3BhbSBwbHVnaW5zLwoJCWNhbGxiYWNrX2V2ZW50KCd6ZW1jb250YWN0 LnN1Ym1pdCcpOwoJCSRldmFsdWF0aW9uID0mIGdldF96ZW1jb250YWN0X2V2YWx1YXRvcigp OwoJCSRjbGVhbiA9ICRldmFsdWF0aW9uLT5nZXRfemVtY29udGFjdF9zdGF0dXMoKTsKCQlp ZiAoJGNsZWFuICE9IDApIHsKCQkJcmV0dXJuIHplbV9jb250YWN0X2dUeHQoJ3NwYW0nKTsK CQl9CgoJCWlmICgkZnJvbV9mb3JtKQoJCXsKCQkJJGZyb20gPSBwYXJzZShmZXRjaF9mb3Jt KCRmcm9tX2Zvcm0pKTsKCQl9CgoJCWlmICgkc3ViamVjdF9mb3JtKQoJCXsKCQkJJHN1Ympl Y3QgPSBwYXJzZShmZXRjaF9mb3JtKCRzdWJqZWN0X2Zvcm0pKTsKCQl9CgoJCSRzZXAgPSAh aXNfd2luZG93cygpID8gIlxuIiA6ICJcclxuIjsKCgkJJG1zZyA9IGFycmF5KCk7CgoJCWZv cmVhY2ggKCR6ZW1fY29udGFjdF9sYWJlbHMgYXMgJG5hbWUgPT4gJGxhYmVsKQoJCXsKCQkJ JG1zZ1tdID0gJGxhYmVsLic6ICcuJHplbV9jb250YWN0X3ZhbHVlc1skbmFtZV07CgkJfQoK CQlpZiAoJHNlbmRfYXJ0aWNsZSkKCQl7CgkJCWdsb2JhbCAkdGhpc2FydGljbGU7CgkJCSRz dWJqZWN0ID0gc3RyX3JlcGxhY2UoJyYjMzg7JywgJyYnLCAkdGhpc2FydGljbGVbJ3RpdGxl J10pOwoJCQkkbXNnW10gPSBwZXJtbGlua3VybCgkdGhpc2FydGljbGUpOwoJCQkkbXNnW10g PSAkc3ViamVjdDsKCQkJJHNfYXIgPSBhcnJheSgnJiM4MjE2OycsICcmIzgyMTc7JywgJyYj ODIyMDsnLCAnJiM4MjIxOycsICcmIzgyMTc7JywgJyYjODI0MjsnLCAnJiM4MjQzOycsICcm IzgyMzA7JywgJyYjODIxMTsnLCAnJiM4MjEyOycsICcmIzIxNTsnLCAnJiM4NDgyOycsICcm IzE3NDsnLCAnJiMxNjk7JywgJyZsdDsnLCAnJmd0OycsICcmcXVvdDsnLCAnJmFtcDsnLCAn JiMzODsnLCAiXHQiLCAnPHAnKTsKCQkJaWYgKCRwcmVmc1snb3ZlcnJpZGVfZW1haWxjaGFy c2V0J10gYW5kIGlzX2NhbGxhYmxlKCd1dGY4X2RlY29kZScpKSB7CgkJCQkkcl9hciA9IGFy cmF5KCInIiwgIiciLCAnIicsICciJywgIiciLCAiJyIsICciJywgJy4uLicsICctJywgJy0t JywgJ3gnLCAnW3RtXScsICcociknLCAnKGMpJywgJzwnLCAnPicsICciJywgJyYnLCAnJics ICcgJywgIlxuPHAiKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRyX2FyID0gYXJyYXkoJ+KA mCcsICfigJknLCAn4oCcJywgJ+KAnScsICfigJknLCAn4oCyJywgJ+KAsycsICfigKYnLCAn 4oCTJywgJ+KAlCcsICfDlycsICfihKInLCAnwq4nLCAnwqknLCAnPCcsICc+JywgJyInLCAn JicsICcmJywgJyAnLCAiXG48cCIpOwoJCQl9CgkJCSRtc2dbXSA9IHRyaW0oc3RyaXBfdGFn cyhzdHJfcmVwbGFjZSgkc19hciwkcl9hciwodHJpbShzdHJpcF90YWdzKCR0aGlzYXJ0aWNs ZVsnZXhjZXJwdCddKSkgPyAkdGhpc2FydGljbGVbJ2V4Y2VycHQnXSA6ICR0aGlzYXJ0aWNs ZVsnYm9keSddKSkpKTsKCQkJaWYgKGVtcHR5KCR6ZW1fY29udGFjdF9yZWNpcGllbnQpKQoJ CQl7CgkJCQlyZXR1cm4gemVtX2NvbnRhY3RfZ1R4dCgnZmllbGRfbWlzc2luZycsIGh0bWxz cGVjaWFsY2hhcnMoemVtX2NvbnRhY3RfZ1R4dCgncmVjaXBpZW50JykpKTsKCQkJfQoJCQll bHNlCgkJCXsKCQkJCSR0byA9ICR6ZW1fY29udGFjdF9yZWNpcGllbnQ7CgkJCX0KCQl9CgoJ CSRtc2cgPSBqb2luKCJcblxuIiwgJG1zZyk7CgkJJG1zZyA9IHN0cl9yZXBsYWNlKCJcclxu IiwgIlxuIiwgJG1zZyk7CgkJJG1zZyA9IHN0cl9yZXBsYWNlKCJcciIsICJcbiIsICRtc2cp OwoJCSRtc2cgPSBzdHJfcmVwbGFjZSgiXG4iLCAkc2VwLCAkbXNnKTsKCgkJaWYgKCRmcm9t KQoJCXsKCQkJJHJlcGx5ID0gJHplbV9jb250YWN0X2Zyb207CgkJfQoKCQllbHNlCgkJewoJ CQkkZnJvbSA9ICR6ZW1fY29udGFjdF9mcm9tOwoJCQkkcmVwbHkgPSAnJzsKCQl9CgoJCSRm cm9tICAgID0gemVtX2NvbnRhY3Rfc3RyaXAoJGZyb20pOwoJCSR0byAgICAgID0gemVtX2Nv bnRhY3Rfc3RyaXAoJHRvKTsKCQkkc3ViamVjdCA9IHplbV9jb250YWN0X3N0cmlwKCRzdWJq ZWN0KTsKCQkkcmVwbHkgICA9IHplbV9jb250YWN0X3N0cmlwKCRyZXBseSk7CgkJJG1zZyAg ICAgPSB6ZW1fY29udGFjdF9zdHJpcCgkbXNnLCBGQUxTRSk7CgoJCWlmICgkcHJlZnNbJ292 ZXJyaWRlX2VtYWlsY2hhcnNldCddIGFuZCBpc19jYWxsYWJsZSgndXRmOF9kZWNvZGUnKSkK CQl7CgkJCSRjaGFyc2V0ID0gJ0lTTy04NTk5LTEnOwoJCQkkdG8gICAgICA9IHV0ZjhfZGVj b2RlKCR0byk7CgkJCSRzdWJqZWN0ID0gdXRmOF9kZWNvZGUoJHN1YmplY3QpOwoJCQkkbXNn ICAgICA9IHV0ZjhfZGVjb2RlKCRtc2cpOwoJCQkkZnJvbSAgICA9IHV0ZjhfZGVjb2RlKCRm cm9tKTsKCQkJJHJlcGx5ICAgPSB1dGY4X2RlY29kZSgkcmVwbHkpOwoJCX0KCgkJZWxzZQoJ CXsKCQkJJGNoYXJzZXQgPSAnVVRGLTgnOwoJCX0KCgkJJHN1YmplY3QgPSB6ZW1fY29udGFj dF9tYWlsaGVhZGVyKCRzdWJqZWN0LCAndGV4dCcpOwoKCQkkaGVhZGVycyA9ICdGcm9tOiAn LiRmcm9tLgoJCQkoJHJlcGx5ID8gKCRzZXAuJ1JlcGx5LVRvOiAnLiRyZXBseSkgOiAnJyku CgkJCSRzZXAuJ1gtTWFpbGVyOiBUZXh0cGF0dGVybiAoemVtX2NvbnRhY3RfcmVib3JuKScu CgkJCSRzZXAuJ1gtT3JpZ2luYXRpbmctSVA6ICcuKCFlbXB0eSgkX1NFUlZFUlsnSFRUUF9Y X0ZPUldBUkRFRF9GT1InXSkgPyAkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9GT1InXS4n IHZpYSAnIDogJycpLiRfU0VSVkVSWydSRU1PVEVfQUREUiddLgoJCQkkc2VwLidDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Jy4KCQkJJHNlcC4nQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PSInLiRjaGFyc2V0LiciJzsKCgkJc2FmZV91cGRhdGUoJ3R4cF9k aXNjdXNzX25vbmNlJywgInVzZWQgPSAnMScsIGlzc3VlX3RpbWUgPSBub3coKSIsICJub25j ZSA9ICckbm9uY2UnIik7CgoJCWlmIChtYWlsKCR0bywgJHN1YmplY3QsICRtc2csICRoZWFk ZXJzKSkKCQl7CgkJCSRfUE9TVCA9IGFycmF5KCk7CgoJCQlpZiAoJGNvcHlzZW5kZXIgYW5k ICR6ZW1fY29udGFjdF9mcm9tKQoJCQl7CgkJCQltYWlsKCRmcm9tLCAkc3ViamVjdCwgJG1z ZywgJGhlYWRlcnMpOwoJCQl9CgoJCQlpZiAoJHJlZGlyZWN0KQoJCQl7CgkJCQl3aGlsZSAo QG9iX2VuZF9jbGVhbigpKTsKCQkJCSR1cmkgPSBodS5sdHJpbSgkcmVkaXJlY3QsJy8nKTsK CQkJCWlmIChlbXB0eSgkX1NFUlZFUlsnRkNHSV9ST0xFJ10pIGFuZCBlbXB0eSgkX0VOVlsn RkNHSV9ST0xFJ10pKQoJCQkJewoJCQkJCXR4cF9zdGF0dXNfaGVhZGVyKCczMDMgU2VlIE90 aGVyJyk7CgkJCQkJaGVhZGVyKCdMb2NhdGlvbjogJy4kdXJpKTsKCQkJCQloZWFkZXIoJ0Nv bm5lY3Rpb246IGNsb3NlJyk7CgkJCQkJaGVhZGVyKCdDb250ZW50LUxlbmd0aDogMCcpOwoJ CQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSR1cmkgPSBodG1sc3BlY2lhbGNoYXJzKCR1cmkp OwoJCQkJCSRyZWZyZXNoID0gemVtX2NvbnRhY3RfZ1R4dCgncmVmcmVzaCcpOwoJCQkJCWVj aG8gPDw8RU5ECjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w IFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3ho dG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgo8aGVhZD4KCTx0aXRsZT4k c2l0ZW5hbWU8L3RpdGxlPgoJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250 ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cgk8bWV0YSBodHRwLWVxdWl2PSJy ZWZyZXNoIiBjb250ZW50PSIwO3VybD0kdXJpIiAvPgo8L2hlYWQ+Cjxib2R5Pgo8YSBocmVm PSIkdXJpIj4kcmVmcmVzaDwvYT4KPC9ib2R5Pgo8L2h0bWw+CkVORDsKCQkJCX0KCQkJCWV4 aXQ7CgkJCX0KCgkJCWVsc2UKCQkJewoJCQkJcmV0dXJuICc8ZGl2IGNsYXNzPSJ6ZW1UaGFu a3MiIGlkPSJ6Y3InLiR6ZW1fY29udGFjdF9mb3JtX2lkLiciPicgLgoJCQkJCSgkdGhhbmtz X2Zvcm0gPyBmZXRjaF9mb3JtKCR0aGFua3NfZm9ybSkgOiAkdGhhbmtzKSAuCgkJCQkJJzwv ZGl2Pic7CgkJCX0KCQl9CgoJCWVsc2UKCQl7CgkJCSRvdXQgLj0gZ3JhZih6ZW1fY29udGFj dF9nVHh0KCdtYWlsX3NvcnJ5JykpOwoJCX0KCX0KCglpZiAoJHNob3dfaW5wdXQgYW5kICEk c2VuZF9hcnRpY2xlIG9yIGdwcygnemVtX2NvbnRhY3Rfc2VuZF9hcnRpY2xlJykpCgl7CgkJ cmV0dXJuICc8Zm9ybSBtZXRob2Q9InBvc3QiJy4oKCEkc2hvd19lcnJvciBhbmQgJHplbV9j b250YWN0X2Vycm9yKSA/ICcnIDogJyBpZD0iemNyJy4kemVtX2NvbnRhY3RfZm9ybV9pZC4n IicpLicgY2xhc3M9InplbUNvbnRhY3RGb3JtIiBhY3Rpb249Iicuc2VydmVyU2V0KCdSRVFV RVNUX1VSSScpLicjemNyJy4kemVtX2NvbnRhY3RfZm9ybV9pZC4nIj4nLgoJCQkoICRsYWJl bCA/IG4uJzxmaWVsZHNldD4nIDogbi4nPGRpdj4nICkuCgkJCSggJGxhYmVsID8gbi4nPGxl Z2VuZD4nLiRsYWJlbC4nPC9sZWdlbmQ+JyA6ICcnICkuCgkJCSRvdXQuCgkJCW4uJzxpbnB1 dCB0eXBlPSJoaWRkZW4iIG5hbWU9InplbV9jb250YWN0X25vbmNlIiB2YWx1ZT0iJy4kemVt X2NvbnRhY3Rfbm9uY2UuJyIgLz4nLgoJCQluLic8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1l PSJ6ZW1fY29udGFjdF9mb3JtX2lkIiB2YWx1ZT0iJy4kemVtX2NvbnRhY3RfZm9ybV9pZC4n IiAvPicuCgkJCSRmb3JtLgoJCQljYWxsYmFja19ldmVudCgnemVtY29udGFjdC5mb3JtJyku CgkJCSggJGxhYmVsID8gKG4uJzwvZmllbGRzZXQ+JykgOiAobi4nPC9kaXY+JykgKS4KCQkJ bi4nPC9mb3JtPic7Cgl9CgoJcmV0dXJuICcnOwp9CgpmdW5jdGlvbiB6ZW1fY29udGFjdF9z dHJpcCgkc3RyLCAkaGVhZGVyID0gVFJVRSkgewoJaWYgKCRoZWFkZXIpICRzdHIgPSBzdHJp cF9ybigkc3RyKTsKCXJldHVybiBwcmVnX3JlcGxhY2UoJy9bXHgwMF0vJywgJyAnLCAkc3Ry KTsKfQoKZnVuY3Rpb24gemVtX2NvbnRhY3RfdGV4dCgkYXR0cykKewoJZ2xvYmFsICR6ZW1f Y29udGFjdF9lcnJvciwgJHplbV9jb250YWN0X3N1Ym1pdDsKCglleHRyYWN0KHplbV9jb250 YWN0X2xBdHRzKGFycmF5KAoJCSdicmVhaycJCT0+IGJyLAoJCSdkZWZhdWx0Jwk9PiAnJywK CQknaXNFcnJvcicJPT4gJycsCgkJJ2xhYmVsJwkJPT4gemVtX2NvbnRhY3RfZ1R4dCgndGV4 dCcpLAoJCSdtYXgnCQk9PiAxMDAsCgkJJ21pbicJCT0+IDAsCgkJJ25hbWUnCQk9PiAnJywK CQkncmVxdWlyZWQnCT0+IDEsCgkJJ3NpemUnCQk9PiAnJwoJKSwgJGF0dHMpKTsKCgkkbWlu ID0gaW50dmFsKCRtaW4pOwoJJG1heCA9IGludHZhbCgkbWF4KTsKCSRzaXplID0gaW50dmFs KCRzaXplKTsKCglpZiAoZW1wdHkoJG5hbWUpKSAkbmFtZSA9IHplbV9jb250YWN0X2xhYmVs Mm5hbWUoJGxhYmVsKTsKCglpZiAoJHplbV9jb250YWN0X3N1Ym1pdCkKCXsKCQkkdmFsdWUg PSBwcygkbmFtZSk7CgkJJHV0ZjhsZW4gPSBwcmVnX21hdGNoX2FsbCgiLy4vc3UiLCAkdmFs dWUsICR1dGY4YXIpOwoJCSRobGFiZWwgPSBodG1sc3BlY2lhbGNoYXJzKCRsYWJlbCk7CgoJ CWlmIChzdHJsZW4oJHZhbHVlKSkKCQl7CgkJCWlmICghJHV0ZjhsZW4pCgkJCXsKCQkJCSR6 ZW1fY29udGFjdF9lcnJvcltdID0gemVtX2NvbnRhY3RfZ1R4dCgnaW52YWxpZF91dGY4Jywg JGhsYWJlbCk7CgkJCQkkaXNFcnJvciA9ICJlcnJvckVsZW1lbnQiOwoJCQl9CgoJCQllbHNl aWYgKCRtaW4gYW5kICR1dGY4bGVuIDwgJG1pbikKCQkJewoJCQkJJHplbV9jb250YWN0X2Vy cm9yW10gPSB6ZW1fY29udGFjdF9nVHh0KCdtaW5fd2FybmluZycsICRobGFiZWwsICRtaW4p OwoJCQkJJGlzRXJyb3IgPSAiZXJyb3JFbGVtZW50IjsKCQkJfQoKCQkJZWxzZWlmICgkbWF4 IGFuZCAkdXRmOGxlbiA+ICRtYXgpCgkJCXsKCQkJCSR6ZW1fY29udGFjdF9lcnJvcltdID0g emVtX2NvbnRhY3RfZ1R4dCgnbWF4X3dhcm5pbmcnLCAkaGxhYmVsLCAkbWF4KTsKCQkJCSRp c0Vycm9yID0gImVycm9yRWxlbWVudCI7CgkJCQkjJHZhbHVlID0gam9pbignJyxhcnJheV9z bGljZSgkYXJbMF0sMCwkbWF4KSk7CgkJCX0KCgkJCWVsc2UKCQkJewoJCQkJemVtX2NvbnRh Y3Rfc3RvcmUoJG5hbWUsICRsYWJlbCwgJHZhbHVlKTsKCQkJfQoJCX0KCQllbHNlaWYgKCRy ZXF1aXJlZCkKCQl7CgkJCSR6ZW1fY29udGFjdF9lcnJvcltdID0gemVtX2NvbnRhY3RfZ1R4 dCgnZmllbGRfbWlzc2luZycsICRobGFiZWwpOwoJCQkkaXNFcnJvciA9ICJlcnJvckVsZW1l bnQiOwoJCX0KCX0KCgllbHNlCgl7CgkJJHZhbHVlID0gJGRlZmF1bHQ7Cgl9CgoJJHNpemUg PSAoJHNpemUpID8gJyBzaXplPSInLiRzaXplLiciJyA6ICcnOwoJJG1heGxlbmd0aCA9ICgk bWF4KSA/ICcgbWF4bGVuZ3RoPSInLiRtYXguJyInIDogJyc7CgoJJHplbVJlcXVpcmVkID0g JHJlcXVpcmVkID8gJ3plbVJlcXVpcmVkJyA6ICcnOwoKICAgICAgICByZXR1cm4gJzxsYWJl bCBmb3I9IicuJG5hbWUuJyIgY2xhc3M9InplbVRleHQgJy4kemVtUmVxdWlyZWQuJGlzRXJy b3IuJyAnLiRuYW1lLiciPicuJGxhYmVsLic8L2xhYmVsPicuJGJyZWFrLgoJCSc8aW5wdXQg dHlwZT0idGV4dCIgaWQ9IicuJG5hbWUuJyIgY2xhc3M9InplbVRleHQgJy4kemVtUmVxdWly ZWQuJGlzRXJyb3IuJyIgbmFtZT0iJy4kbmFtZS4nIiB2YWx1ZT0iJy5odG1sc3BlY2lhbGNo YXJzKCR2YWx1ZSkuJyInLiRzaXplLiRtYXhsZW5ndGguJyAvPic7Cn0KCmZ1bmN0aW9uIHpl bV9jb250YWN0X3RleHRhcmVhKCRhdHRzKQp7CglnbG9iYWwgJHplbV9jb250YWN0X2Vycm9y LCAkemVtX2NvbnRhY3Rfc3VibWl0OwoKCWV4dHJhY3QoemVtX2NvbnRhY3RfbEF0dHMoYXJy YXkoCgkJJ2JyZWFrJwkJPT4gYnIsCgkJJ2NvbHMnCQk9PiA1OCwKCQknZGVmYXVsdCcJPT4g JycsCgkJJ2lzRXJyb3InCT0+ICcnLAoJCSdsYWJlbCcJCT0+IHplbV9jb250YWN0X2dUeHQo J21lc3NhZ2UnKSwKCQknbWF4JwkJPT4gMTAwMDAsCgkJJ21pbicJCT0+IDAsCgkJJ25hbWUn CQk9PiAnJywKCQkncmVxdWlyZWQnCT0+IDEsCgkJJ3Jvd3MnCQk9PiA4CgkpLCAkYXR0cykp OwoKCSRtaW4gPSBpbnR2YWwoJG1pbik7CgkkbWF4ID0gaW50dmFsKCRtYXgpOwoJJGNvbHMg PSBpbnR2YWwoJGNvbHMpOwoJJHJvd3MgPSBpbnR2YWwoJHJvd3MpOwoKCWlmIChlbXB0eSgk bmFtZSkpICRuYW1lID0gemVtX2NvbnRhY3RfbGFiZWwybmFtZSgkbGFiZWwpOwoKCWlmICgk emVtX2NvbnRhY3Rfc3VibWl0KQoJewoJCSR2YWx1ZSA9IHBzKCRuYW1lKTsKCQkkdXRmOGxl biA9IHByZWdfbWF0Y2hfYWxsKCIvLi9zdSIsICR2YWx1ZSwgJHV0Zjhhcik7CgkJJGhsYWJl bCA9IGh0bWxzcGVjaWFsY2hhcnMoJGxhYmVsKTsKCgkJaWYgKHN0cmxlbigkdmFsdWUpKQoJ CXsKCQkJaWYgKCEkdXRmOGxlbikKCQkJewoJCQkJJHplbV9jb250YWN0X2Vycm9yW10gPSB6 ZW1fY29udGFjdF9nVHh0KCdpbnZhbGlkX3V0ZjgnLCAkaGxhYmVsKTsKCQkJCSRpc0Vycm9y ID0gImVycm9yRWxlbWVudCI7CgkJCX0KCgkJCWVsc2VpZiAoJG1pbiBhbmQgJHV0ZjhsZW4g PCAkbWluKQoJCQl7CgkJCQkkemVtX2NvbnRhY3RfZXJyb3JbXSA9IHplbV9jb250YWN0X2dU eHQoJ21pbl93YXJuaW5nJywgJGhsYWJlbCwgJG1pbik7CgkJCQkkaXNFcnJvciA9ICJlcnJv ckVsZW1lbnQiOwoJCQl9CgoJCQllbHNlaWYgKCRtYXggYW5kICR1dGY4bGVuID4gJG1heCkK CQkJewoJCQkJJHplbV9jb250YWN0X2Vycm9yW10gPSB6ZW1fY29udGFjdF9nVHh0KCdtYXhf d2FybmluZycsICRobGFiZWwsICRtYXgpOwoJCQkJJGlzRXJyb3IgPSAiZXJyb3JFbGVtZW50 IjsKCQkJCSMkdmFsdWUgPSBqb2luKCcnLGFycmF5X3NsaWNlKCR1dGY4YXJbMF0sMCwkbWF4 KSk7CgkJCX0KCgkJCWVsc2UKCQkJewoJCQkJemVtX2NvbnRhY3Rfc3RvcmUoJG5hbWUsICRs YWJlbCwgJHZhbHVlKTsKCQkJfQoJCX0KCgkJZWxzZWlmICgkcmVxdWlyZWQpCgkJewoJCQkk emVtX2NvbnRhY3RfZXJyb3JbXSA9IHplbV9jb250YWN0X2dUeHQoJ2ZpZWxkX21pc3Npbmcn LCAkaGxhYmVsKTsKCQkJJGlzRXJyb3IgPSAiZXJyb3JFbGVtZW50IjsKCQl9Cgl9CgoJZWxz ZQoJewoJCSR2YWx1ZSA9ICRkZWZhdWx0OwoJfQoKCSR6ZW1SZXF1aXJlZCA9ICRyZXF1aXJl ZCA/ICd6ZW1SZXF1aXJlZCcgOiAnJzsKCglyZXR1cm4gJzxsYWJlbCBmb3I9IicuJG5hbWUu JyIgY2xhc3M9InplbVRleHRhcmVhICcuJHplbVJlcXVpcmVkLiRpc0Vycm9yLicgJy4kbmFt ZS4nIj4nLiRsYWJlbC4nPC9sYWJlbD4nLiRicmVhay4KCQknPHRleHRhcmVhIGlkPSInLiRu YW1lLiciIGNsYXNzPSJ6ZW1UZXh0YXJlYSAnLiR6ZW1SZXF1aXJlZC4kaXNFcnJvci4nIiBu YW1lPSInLiRuYW1lLiciIGNvbHM9IicuJGNvbHMuJyIgcm93cz0iJy4kcm93cy4nIj4nLmh0 bWxzcGVjaWFsY2hhcnMoJHZhbHVlKS4nPC90ZXh0YXJlYT4nOwp9CgpmdW5jdGlvbiB6ZW1f Y29udGFjdF9lbWFpbCgkYXR0cykKewoJZ2xvYmFsICR6ZW1fY29udGFjdF9lcnJvciwgJHpl bV9jb250YWN0X3N1Ym1pdCwgJHplbV9jb250YWN0X2Zyb20sICR6ZW1fY29udGFjdF9yZWNp cGllbnQ7CgoJZXh0cmFjdCh6ZW1fY29udGFjdF9sQXR0cyhhcnJheSgKCQknZGVmYXVsdCcJ PT4gJycsCgkJJ2lzRXJyb3InCT0+ICcnLAoJCSdsYWJlbCcJCT0+IHplbV9jb250YWN0X2dU eHQoJ2VtYWlsJyksCgkJJ21heCcJCT0+IDEwMCwKCQknbWluJwkJPT4gMCwKCQknbmFtZScJ CT0+ICcnLAoJCSdyZXF1aXJlZCcJPT4gMSwKCQknYnJlYWsnCQk9PiBiciwKCQknc2l6ZScJ CT0+ICcnLAoJCSdzZW5kX2FydGljbGUnCT0+IDAKCSksICRhdHRzKSk7CgoJaWYgKGVtcHR5 KCRuYW1lKSkgJG5hbWUgPSB6ZW1fY29udGFjdF9sYWJlbDJuYW1lKCRsYWJlbCk7CgoJJGVt YWlsID0gJHplbV9jb250YWN0X3N1Ym1pdCA/IHBzKCRuYW1lKSA6ICRkZWZhdWx0OwoKCWlm ICgkemVtX2NvbnRhY3Rfc3VibWl0IGFuZCBzdHJsZW4oJGVtYWlsKSkKCXsKCQlpZiAoIXBy ZWdfbWF0Y2goJy9eW1x3Ll8tXStAKFtcdy1dK1wuKStbXHctXSskLycsICRlbWFpbCkpCgkJ ewoJCQkkemVtX2NvbnRhY3RfZXJyb3JbXSA9IHplbV9jb250YWN0X2dUeHQoJ2ludmFsaWRf ZW1haWwnLCBodG1sc3BlY2lhbGNoYXJzKCRlbWFpbCkpOwoJCQkkaXNFcnJvciA9ICJlcnJv ckVsZW1lbnQiOwoJCX0KCgkJZWxzZQoJCXsKCQkJcHJlZ19tYXRjaCgiL0AoLispJC8iLCAk ZW1haWwsICRtYXRjaCk7CgkJCSRkb21haW4gPSAkbWF0Y2hbMV07CgoJCQlpZiAoaXNfY2Fs bGFibGUoJ2NoZWNrZG5zcnInKSBhbmQgY2hlY2tkbnNycigndGV4dHBhdHRlcm4uY29tLics J0EnKSBhbmQgIWNoZWNrZG5zcnIoJGRvbWFpbi4nLicsJ01YJykgYW5kICFjaGVja2Ruc3Jy KCRkb21haW4uJy4nLCdBJykpCgkJCXsKCQkJCSR6ZW1fY29udGFjdF9lcnJvcltdID0gemVt X2NvbnRhY3RfZ1R4dCgnaW52YWxpZF9ob3N0JywgaHRtbHNwZWNpYWxjaGFycygkZG9tYWlu KSk7CgkJCQkkaXNFcnJvciA9ICJlcnJvckVsZW1lbnQiOwoJCQl9CgoJCQllbHNlCgkJCXsK CQkJCWlmICgkc2VuZF9hcnRpY2xlKSB7CgkJCQkJJHplbV9jb250YWN0X3JlY2lwaWVudCA9 ICRlbWFpbDsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCSR6ZW1fY29udGFjdF9mcm9tID0gJGVt YWlsOwoJCQkJfQoJCQl9CgkJfQoJfQoKCXJldHVybiB6ZW1fY29udGFjdF90ZXh0KGFycmF5 KAoJCSdkZWZhdWx0Jwk9PiAkZW1haWwsCgkJJ2lzRXJyb3InCT0+ICRpc0Vycm9yLAoJCSds YWJlbCcJCT0+ICRsYWJlbCwKCQknbWF4JwkJPT4gJG1heCwKCQknbWluJwkJPT4gJG1pbiwK CQknbmFtZScJCT0+ICRuYW1lLAoJCSdyZXF1aXJlZCcJPT4gJHJlcXVpcmVkLAoJCSdicmVh aycJCT0+ICRicmVhaywKCQknc2l6ZScJCT0+ICRzaXplCgkpKTsKfQoKZnVuY3Rpb24gemVt X2NvbnRhY3Rfc2VsZWN0KCRhdHRzKQp7CglnbG9iYWwgJHplbV9jb250YWN0X2Vycm9yLCAk emVtX2NvbnRhY3Rfc3VibWl0OwoKCWV4dHJhY3QoemVtX2NvbnRhY3RfbEF0dHMoYXJyYXko CgkJJ25hbWUnCQk9PiAnJywKCQknYnJlYWsnCQk9PiAnICcsCgkJJ2RlbGltaXRlcicJPT4g JywnLAoJCSdpc0Vycm9yJwk9PiAnJywKCQknbGFiZWwnCQk9PiB6ZW1fY29udGFjdF9nVHh0 KCdvcHRpb24nKSwKCQknbGlzdCcJCT0+IHplbV9jb250YWN0X2dUeHQoJ2dlbmVyYWxfaW5x dWlyeScpLAoJCSdyZXF1aXJlZCcJPT4gMSwKCQknc2VsZWN0ZWQnCT0+ICcnCgkpLCAkYXR0 cykpOwoKCWlmIChlbXB0eSgkbmFtZSkpICRuYW1lID0gemVtX2NvbnRhY3RfbGFiZWwybmFt ZSgkbGFiZWwpOwoKCSRsaXN0ID0gYXJyYXlfbWFwKCd0cmltJywgc3BsaXQoJGRlbGltaXRl ciwgcHJlZ19yZXBsYWNlKCcvW1xyXG5cdFxzXSsvJywgJyAnLCRsaXN0KSkpOwoKCWlmICgk emVtX2NvbnRhY3Rfc3VibWl0KQoJewoJCSR2YWx1ZSA9IHRyaW0ocHMoJG5hbWUpKTsKCgkJ aWYgKHN0cmxlbigkdmFsdWUpKQoJCXsKCQkJaWYgKGluX2FycmF5KCR2YWx1ZSwgJGxpc3Qp KQoJCQl7CgkJCQl6ZW1fY29udGFjdF9zdG9yZSgkbmFtZSwgJGxhYmVsLCAkdmFsdWUpOwoJ CQl9CgoJCQllbHNlCgkJCXsKCQkJCSR6ZW1fY29udGFjdF9lcnJvcltdID0gemVtX2NvbnRh Y3RfZ1R4dCgnaW52YWxpZF92YWx1ZScsIGh0bWxzcGVjaWFsY2hhcnMoJGxhYmVsKSwgaHRt bHNwZWNpYWxjaGFycygkdmFsdWUpKTsKCQkJCSRpc0Vycm9yID0gImVycm9yRWxlbWVudCI7 CgkJCX0KCQl9CgoJCWVsc2VpZiAoJHJlcXVpcmVkKQoJCXsKCQkJJHplbV9jb250YWN0X2Vy cm9yW10gPSB6ZW1fY29udGFjdF9nVHh0KCdmaWVsZF9taXNzaW5nJywgaHRtbHNwZWNpYWxj aGFycygkbGFiZWwpKTsKCQkJJGlzRXJyb3IgPSAiZXJyb3JFbGVtZW50IjsKCQl9Cgl9Cgll bHNlCgl7CgkJJHZhbHVlID0gJHNlbGVjdGVkOwoJfQoKCSRvdXQgPSAnJzsKCglmb3JlYWNo ICgkbGlzdCBhcyAkaXRlbSkKCXsKCQkkb3V0IC49IG4udC4nPG9wdGlvbicuKCRpdGVtID09 ICR2YWx1ZSA/ICcgc2VsZWN0ZWQ9InNlbGVjdGVkIj4nIDogJz4nKS4oc3RybGVuKCRpdGVt KSA/IGh0bWxzcGVjaWFsY2hhcnMoJGl0ZW0pIDogJyAnKS4nPC9vcHRpb24+JzsKCX0KCgkk emVtUmVxdWlyZWQgPSAkcmVxdWlyZWQgPyAnemVtUmVxdWlyZWQnIDogJyc7CgoJcmV0dXJu ICc8bGFiZWwgZm9yPSInLiRuYW1lLiciIGNsYXNzPSJ6ZW1TZWxlY3QgJy4kemVtUmVxdWly ZWQuJGlzRXJyb3IuJyAnLiRuYW1lLiciPicuJGxhYmVsLic8L2xhYmVsPicuJGJyZWFrLgoJ CW4uJzxzZWxlY3QgaWQ9IicuJG5hbWUuJyIgbmFtZT0iJy4kbmFtZS4nIiBjbGFzcz0iemVt U2VsZWN0ICcuJHplbVJlcXVpcmVkLiRpc0Vycm9yLiciPicuCgkJCSRvdXQuCgkJbi4nPC9z ZWxlY3Q+JzsKfQoKZnVuY3Rpb24gemVtX2NvbnRhY3RfY2hlY2tib3goJGF0dHMpCnsKCWds b2JhbCAkemVtX2NvbnRhY3RfZXJyb3IsICR6ZW1fY29udGFjdF9zdWJtaXQ7CgoJZXh0cmFj dCh6ZW1fY29udGFjdF9sQXR0cyhhcnJheSgKCQknYnJlYWsnCQk9PiAnICcsCgkJJ2NoZWNr ZWQnCT0+IDAsCgkJJ2lzRXJyb3InCT0+ICcnLAoJCSdsYWJlbCcJCT0+IHplbV9jb250YWN0 X2dUeHQoJ2NoZWNrYm94JyksCgkJJ25hbWUnCQk9PiAnJywKCQkncmVxdWlyZWQnCT0+IDEK CSksICRhdHRzKSk7CgoJaWYgKGVtcHR5KCRuYW1lKSkgJG5hbWUgPSB6ZW1fY29udGFjdF9s YWJlbDJuYW1lKCRsYWJlbCk7CgoJaWYgKCR6ZW1fY29udGFjdF9zdWJtaXQpCgl7CgkJJHZh bHVlID0gKGJvb2wpIHBzKCRuYW1lKTsKCgkJaWYgKCRyZXF1aXJlZCBhbmQgISR2YWx1ZSkK CQl7CgkJCSR6ZW1fY29udGFjdF9lcnJvcltdID0gemVtX2NvbnRhY3RfZ1R4dCgnZmllbGRf bWlzc2luZycsIGh0bWxzcGVjaWFsY2hhcnMoJGxhYmVsKSk7CgkJCSRpc0Vycm9yID0gImVy cm9yRWxlbWVudCI7CgkJfQoKCQllbHNlCgkJewoJCQl6ZW1fY29udGFjdF9zdG9yZSgkbmFt ZSwgJGxhYmVsLCAkdmFsdWUgPyBnVHh0KCd5ZXMnKSA6IGdUeHQoJ25vJykpOwoJCX0KCX0K CgllbHNlIHsKCQkkdmFsdWUgPSAkY2hlY2tlZDsKCX0KCgkkemVtUmVxdWlyZWQgPSAkcmVx dWlyZWQgPyAnemVtUmVxdWlyZWQnIDogJyc7CgoJcmV0dXJuICc8aW5wdXQgdHlwZT0iY2hl Y2tib3giIGlkPSInLiRuYW1lLiciIGNsYXNzPSJ6ZW1DaGVja2JveCAnLiR6ZW1SZXF1aXJl ZC4kaXNFcnJvci4nIiBuYW1lPSInLiRuYW1lLiciJy4KCQkoJHZhbHVlID8gJyBjaGVja2Vk PSJjaGVja2VkIicgOiAnJykuJyAvPicuJGJyZWFrLgoJCSc8bGFiZWwgZm9yPSInLiRuYW1l LiciIGNsYXNzPSJ6ZW1DaGVja2JveCAnLiR6ZW1SZXF1aXJlZC4kaXNFcnJvci4nICcuJG5h bWUuJyI+Jy4kbGFiZWwuJzwvbGFiZWw+JzsKfQoKZnVuY3Rpb24gemVtX2NvbnRhY3Rfc2Vy dmVyaW5mbygkYXR0cykKewoJZ2xvYmFsICR6ZW1fY29udGFjdF9zdWJtaXQ7CgoJZXh0cmFj dCh6ZW1fY29udGFjdF9sQXR0cyhhcnJheSgKCQknbGFiZWwnCQk9PiAnJywKCQknbmFtZScJ CT0+ICcnCgkpLCAkYXR0cykpOwoKCWlmIChlbXB0eSgkbmFtZSkpICRuYW1lID0gemVtX2Nv bnRhY3RfbGFiZWwybmFtZSgkbGFiZWwpOwoKCWlmIChzdHJsZW4oJG5hbWUpIGFuZCAkemVt X2NvbnRhY3Rfc3VibWl0KQoJewoJCWlmICghJGxhYmVsKSAkbGFiZWwgPSAkbmFtZTsKCQl6 ZW1fY29udGFjdF9zdG9yZSgkbmFtZSwgJGxhYmVsLCBzZXJ2ZXJTZXQoJG5hbWUpKTsKCX0K fQoKZnVuY3Rpb24gemVtX2NvbnRhY3Rfc2VjcmV0KCRhdHRzLCAkdGhpbmcgPSAnJykKewoJ Z2xvYmFsICR6ZW1fY29udGFjdF9zdWJtaXQ7CgoJZXh0cmFjdCh6ZW1fY29udGFjdF9sQXR0 cyhhcnJheSgKCQknbmFtZScJPT4gJycsCgkJJ2xhYmVsJwk9PiB6ZW1fY29udGFjdF9nVHh0 KCdzZWNyZXQnKSwKCQkndmFsdWUnCT0+ICcnCgkpLCAkYXR0cykpOwoKCSRuYW1lID0gemVt X2NvbnRhY3RfbGFiZWwybmFtZSgkbmFtZSA/ICRuYW1lIDogJGxhYmVsKTsKCglpZiAoJHpl bV9jb250YWN0X3N1Ym1pdCkKCXsKCQlpZiAoJHRoaW5nKSAkdmFsdWUgPSB0cmltKHBhcnNl KCR0aGluZykpOwoJCXplbV9jb250YWN0X3N0b3JlKCRuYW1lLCAkbGFiZWwsICR2YWx1ZSk7 Cgl9CgoJcmV0dXJuICcnOwp9CgpmdW5jdGlvbiB6ZW1fY29udGFjdF9yYWRpbygkYXR0cykK ewoJZ2xvYmFsICR6ZW1fY29udGFjdF9lcnJvciwgJHplbV9jb250YWN0X3N1Ym1pdCwgJHpl bV9jb250YWN0X3ZhbHVlczsKCglleHRyYWN0KHplbV9jb250YWN0X2xBdHRzKGFycmF5KAoJ CSdicmVhaycJCT0+ICcgJywKCQknY2hlY2tlZCcJPT4gMCwKCQknZ3JvdXAnCQk9PiAnJywK CQknbGFiZWwnCQk9PiB6ZW1fY29udGFjdF9nVHh0KCdvcHRpb24nKSwKCQknbmFtZScJCT0+ ICcnCgkpLCAkYXR0cykpOwoKCXN0YXRpYyAkY3VyX25hbWUgPSAnJzsKCXN0YXRpYyAkY3Vy X2dyb3VwID0gJyc7CgoJaWYgKCEkbmFtZSBhbmQgISRncm91cCBhbmQgISRjdXJfbmFtZSBh bmQgISRjdXJfZ3JvdXApIHsKCQkkY3VyX2dyb3VwID0gemVtX2NvbnRhY3RfZ1R4dCgncmFk aW8nKTsKCQkkY3VyX25hbWUgPSAkY3VyX2dyb3VwOwoJfQoJaWYgKCRncm91cCBhbmQgISRu YW1lIGFuZCAkZ3JvdXAgIT0gJGN1cl9ncm91cCkgJG5hbWUgPSAkZ3JvdXA7CgoJaWYgKCRu YW1lKSAkY3VyX25hbWUgPSAkbmFtZTsKCWVsc2UgJG5hbWUgPSAkY3VyX25hbWU7CgoJaWYg KCRncm91cCkgJGN1cl9ncm91cCA9ICRncm91cDsKCWVsc2UgJGdyb3VwID0gJGN1cl9ncm91 cDsKCgkkaWQgICA9ICdxJy5tZDUoJG5hbWUuJz0+Jy4kbGFiZWwpOwoJJG5hbWUgPSB6ZW1f Y29udGFjdF9sYWJlbDJuYW1lKCRuYW1lKTsKCglpZiAoJHplbV9jb250YWN0X3N1Ym1pdCkK CXsKCQkkaXNfY2hlY2tlZCA9IChwcygkbmFtZSkgPT0gJGlkKTsKCgkJaWYgKCRpc19jaGVj a2VkIG9yICRjaGVja2VkIGFuZCAhaXNzZXQoJHplbV9jb250YWN0X3ZhbHVlc1skbmFtZV0p KQoJCXsKCQkJemVtX2NvbnRhY3Rfc3RvcmUoJG5hbWUsICRncm91cCwgJGxhYmVsKTsKCQl9 Cgl9CgoJZWxzZQoJewoJCSRpc19jaGVja2VkID0gJGNoZWNrZWQ7Cgl9CgoJcmV0dXJuICc8 aW5wdXQgdmFsdWU9IicuJGlkLiciIHR5cGU9InJhZGlvIiBpZD0iJy4kaWQuJyIgY2xhc3M9 InplbVJhZGlvICcuJG5hbWUuJyIgbmFtZT0iJy4kbmFtZS4nIicuCgkJKCAkaXNfY2hlY2tl ZCA/ICcgY2hlY2tlZD0iY2hlY2tlZCIgLz4nIDogJyAvPicpLiRicmVhay4KCQknPGxhYmVs IGZvcj0iJy4kaWQuJyIgY2xhc3M9InplbVJhZGlvICcuJG5hbWUuJyI+Jy4kbGFiZWwuJzwv bGFiZWw+JzsKfQoKZnVuY3Rpb24gemVtX2NvbnRhY3Rfc2VuZF9hcnRpY2xlKCRhdHRzKQp7 CglpZiAoIWlzc2V0KCRfUkVRVUVTVFsnemVtX2NvbnRhY3Rfc2VuZF9hcnRpY2xlJ10pKSB7 CgkJJGxpbmt0ZXh0ID0gKGVtcHR5KCRhdHRzWydsaW5rdGV4dCddKSkgPyB6ZW1fY29udGFj dF9nVHh0KCdzZW5kX2FydGljbGUnKSA6ICRhdHRzWydsaW5rdGV4dCddOwoJCSRqb2luID0g KGVtcHR5KCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSkpID8gJz8nIDogJyZhbXA7JzsKCQkk aHJlZiA9ICRfU0VSVkVSWydSRVFVRVNUX1VSSSddLiRqb2luLid6ZW1fY29udGFjdF9zZW5k X2FydGljbGU9eWVzJzsKCQlyZXR1cm4gJzxhIGhyZWY9IicuJGhyZWYuJyI+Jy4kbGlua3Rl eHQuJzwvYT4nOwoJfQoJcmV0dXJuOwp9CgpmdW5jdGlvbiB6ZW1fY29udGFjdF9zdWJtaXQo JGF0dHMsICR0aGluZykKewoJZXh0cmFjdCh6ZW1fY29udGFjdF9sQXR0cyhhcnJheSgKCQkn YnV0dG9uJwk9PiAwLAoJCSdsYWJlbCcJCT0+IHplbV9jb250YWN0X2dUeHQoJ3NlbmQnKQoJ KSwgJGF0dHMpKTsKCglpZiAoJGJ1dHRvbiBvciBzdHJsZW4oJHRoaW5nKSkKCXsKCQlyZXR1 cm4gJzxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iemVtU3VibWl0IiBuYW1lPSJ6ZW1f Y29udGFjdF9zdWJtaXQiIHZhbHVlPSInLiRsYWJlbC4nIj4nLigkdGhpbmcgPyB0cmltKHBh cnNlKCR0aGluZykpIDogJGxhYmVsKS4nPC9idXR0b24+JzsKCX0KCWVsc2UKCXsKCQlyZXR1 cm4gJzxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJ6ZW1TdWJtaXQiIG5hbWU9InplbV9j b250YWN0X3N1Ym1pdCIgdmFsdWU9IicuJGxhYmVsLiciIC8+JzsKCX0KfQoKZnVuY3Rpb24g emVtX2NvbnRhY3RfbEF0dHMoJGFyciwgJGF0dHMpCnsKCWZvcmVhY2goYXJyYXkoJ2J1dHRv bicsICdjb3B5c2VuZGVyJywgJ2NoZWNrZWQnLCAncmVxdWlyZWQnLCAnc2VuZF9hcnRpY2xl JywgJ3Nob3dfaW5wdXQnLCAnc2hvd19lcnJvcicpIGFzICRrZXkpCgl7CgkJaWYgKGlzc2V0 KCRhdHRzWyRrZXldKSkKCQl7CgkJCWlmICgkYXR0c1ska2V5XSA9PSAneWVzJykgJGF0dHNb JGtleV0gPSAxOwoJCQllbHNlaWYgKCRhdHRzWyRrZXldID09ICdubycpICRhdHRzWyRrZXld ID0gMDsKCQkJZWxzZSAkYXR0c1ska2V5XSA9IGludHZhbCgkYXR0c1ska2V5XSk7CgkJfQoJ fQoJaWYgKGlzc2V0KCRhdHRzWydicmVhayddKSBhbmQgJGF0dHNbJ2JyZWFrJ10gPT0gJ2Jy JykgJGF0dHNbJ2JyZWFrJ10gPSAnPGJyIC8+JzsKCXJldHVybiBsQXR0cygkYXJyLCAkYXR0 cyk7Cn0KCmNsYXNzIHplbWNvbnRhY3RfZXZhbHVhdGlvbgp7Cgl2YXIgJHN0YXR1czsKCglm dW5jdGlvbiB6ZW1jb250YWN0X2V2YWx1YXRpb24oKSB7CgkJJHRoaXMtPnN0YXR1cyA9IDA7 Cgl9CgoJZnVuY3Rpb24gYWRkX3plbWNvbnRhY3Rfc3RhdHVzKCRjaGVjaykgewoJCSR0aGlz LT5zdGF0dXMgKz0gJGNoZWNrOwoJfQoKCWZ1bmN0aW9uIGdldF96ZW1jb250YWN0X3N0YXR1 cygpIHsKCQlyZXR1cm4gJHRoaXMtPnN0YXR1czsKCX0KfQoKZnVuY3Rpb24gJmdldF96ZW1j b250YWN0X2V2YWx1YXRvcigpCnsKCXN0YXRpYyAkaW5zdGFuY2U7CgoJaWYoIWlzc2V0KCRp bnN0YW5jZSkpIHsKCQkkaW5zdGFuY2UgPSBuZXcgemVtY29udGFjdF9ldmFsdWF0aW9uKCk7 Cgl9CglyZXR1cm4gJGluc3RhbmNlOwp9CgpmdW5jdGlvbiB6ZW1fY29udGFjdF9sYWJlbDJu YW1lKCRsYWJlbCkKewoJJGxhYmVsID0gdHJpbSgkbGFiZWwpOwoJaWYgKHN0cmxlbigkbGFi ZWwpID09IDApIHJldHVybiAnaW52YWxpZCc7CglpZiAoc3RybGVuKCRsYWJlbCkgPD0gMzIg YW5kIHByZWdfbWF0Y2goJy9eW2EtekEtWl1bQS1aYS16MC05Ol8tXSokLycsICRsYWJlbCkp IHJldHVybiAkbGFiZWw7CgllbHNlIHJldHVybiAncScubWQ1KCRsYWJlbCk7Cn0KCmZ1bmN0 aW9uIHplbV9jb250YWN0X3N0b3JlKCRuYW1lLCAkbGFiZWwsICR2YWx1ZSkKewoJZ2xvYmFs ICR6ZW1fY29udGFjdF9mb3JtLCAkemVtX2NvbnRhY3RfbGFiZWxzLCAkemVtX2NvbnRhY3Rf dmFsdWVzOwoJJHplbV9jb250YWN0X2Zvcm1bJGxhYmVsXSA9ICR2YWx1ZTsKCSR6ZW1fY29u dGFjdF9sYWJlbHNbJG5hbWVdID0gJGxhYmVsOwoJJHplbV9jb250YWN0X3ZhbHVlc1skbmFt ZV0gPSAkdmFsdWU7Cn0KCmZ1bmN0aW9uIHplbV9jb250YWN0X21haWxoZWFkZXIoJHN0cmlu ZywgJHR5cGUpCnsKCWdsb2JhbCAkcHJlZnM7CglpZiAoIXN0cnN0cigkc3RyaW5nLCc9Pycp IGFuZCAhcHJlZ19tYXRjaCgnL1tceDAwLVx4MUZceDdGLVx4RkZdLycsICRzdHJpbmcpKSB7 CgkJaWYgKCJwaHJhc2UiID09ICR0eXBlKSB7CgkJCWlmIChwcmVnX21hdGNoKCcvW11bKCk8 PkAsOzoiLlx4NUNdLycsICRzdHJpbmcpKSB7CgkJCQkkc3RyaW5nID0gJyInLiBzdHJ0cigk c3RyaW5nLCBhcnJheSgiXFwiID0+ICJcXFxcIiwgJyInID0+ICdcIicpKSAuICciJzsKCQkJ fQoJCX0KCQllbHNlaWYgKCJ0ZXh0IiAhPSAkdHlwZSkgewoJCQl0cmlnZ2VyX2Vycm9yKCdV bmtub3duIGVuY29kZV9tYWlsaGVhZGVyIHR5cGUnLCBFX1VTRVJfV0FSTklORyk7CgkJfQoJ CXJldHVybiAkc3RyaW5nOwoJfQoJaWYgKCRwcmVmc1snb3ZlcnJpZGVfZW1haWxjaGFyc2V0 J10pIHsKCQkkc3RhcnQgPSAnPT9JU08tODg1OS0xP0I/JzsKCQkkcGNyZSAgPSAnLy57MSw0 Mn0vcyc7Cgl9CgllbHNlIHsKCQkkc3RhcnQgPSAnPT9VVEYtOD9CPyc7CgkJJHBjcmUgID0g Jy8uezEsNDV9KD89W1x4MDAtXHg3Rlx4QzAtXHhGRl18JCkvcyc7Cgl9CgkkZW5kID0gJz89 JzsKCSRzZXAgPSBpc193aW5kb3dzKCkgPyAiXHJcbiIgOiAiXG4iOwoJcHJlZ19tYXRjaF9h bGwoJHBjcmUsICRzdHJpbmcsICRtYXRjaGVzKTsKCXJldHVybiAkc3RhcnQgLiBqb2luKCRl bmQuJHNlcC4nICcuJHN0YXJ0LCBhcnJheV9tYXAoJ2Jhc2U2NF9lbmNvZGUnLCRtYXRjaGVz WzBdKSkgLiAkZW5kOwp9CiI7czozOiJtZDUiO3M6MzI6IjNkOWU1ZGRmYmQyN2VmZjc3ZTgw M2NhMzYxODllMjQzIjt9