Content-Type: multipart/related; start=; boundary=----------nFj1yVgoqg3AiAn1ZqsUe1 Content-Location: http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8_DNS Subject: =?utf-8?Q?=D0=A0=D0=B5=D1=81=D1=83=D1=80=D1=81=D0=BD=D1=8B=D0=B5=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20DNS=20=E2=80=94=20=D0=92=D0=B8=D0=BA=D0=B8=D0=BF=D0=B5=D0=B4=D0=B8=D1=8F?= MIME-Version: 1.0 ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename*0*=utf-8''%D0%A0%D0%B5%D1%81%D1%83%D1%80%D1; filename*1*=%81%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%BF; filename*2*=%D0%B8%D1%81%D0%B8_DNS.htm Content-Type: text/html; charset=utf-8; name*0*=utf-8''%D0%A0%D0%B5%D1%81%D1%83%D1%80%D1; name*1*=%81%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%BF; name*2*=%D0%B8%D1%81%D0%B8_DNS.htm Content-ID: Content-Location: http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8_DNS Content-Transfer-Encoding: Base64 PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJh bnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv eGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3 dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9InJ1IiBsYW5nPSJydSIgZGly PSJsdHIiPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPG1ldGEg aHR0cC1lcXVpdj0iQ29udGVudC1TdHlsZS1UeXBlIiBjb250ZW50PSJ0ZXh0L2Nz cyIgLz4KCQk8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9Ik1lZGlhV2lr aSAxLjE2YWxwaGEtd21mIiAvPgoJCTxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250 ZW50PSLQoNC10YHRg9GA0YHQvdGL0LUg0LfQsNC/0LjRgdC4IEROUyxBY3RpdmUg RGlyZWN0b3J5LEROUyxJQU5BLElQdjYsSVNETixJbi1hZGRyLmFycGEsSmFiYmVy LE1YLdC30LDQv9C40YHRjCxTTVRQLFNQRiIgLz4KCQk8bGluayByZWw9ImFsdGVy bmF0ZSIgdHlwZT0iYXBwbGljYXRpb24veC13aWtpIiB0aXRsZT0i0J/RgNCw0LLQ uNGC0YwiIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT0lRDAlQTAlRDAlQjUlRDEl ODElRDElODMlRDElODAlRDElODElRDAlQkQlRDElOEIlRDAlQjVfJUQwJUI3JUQw JUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUI4X0ROUyZhbXA7YWN0aW9uPWVkaXQi IC8+CgkJPGxpbmsgcmVsPSJlZGl0IiB0aXRsZT0i0J/RgNCw0LLQuNGC0YwiIGhy ZWY9Ii93L2luZGV4LnBocD90aXRsZT0lRDAlQTAlRDAlQjUlRDElODElRDElODMl RDElODAlRDElODElRDAlQkQlRDElOEIlRDAlQjVfJUQwJUI3JUQwJUIwJUQwJUJG JUQwJUI4JUQxJTgxJUQwJUI4X0ROUyZhbXA7YWN0aW9uPWVkaXQiIC8+CgkJPGxp bmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSJodHRwOi8vcnUud2lraXBl ZGlhLm9yZy9hcHBsZS10b3VjaC1pY29uLnBuZyIgLz4KCQk8bGluayByZWw9InNo b3J0Y3V0IGljb24iIGhyZWY9Ii9mYXZpY29uLmljbyIgLz4KCQk8bGluayByZWw9 InNlYXJjaCIgdHlwZT0iYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9u K3htbCIgaHJlZj0iL3cvb3BlbnNlYXJjaF9kZXNjLnBocCIgdGl0bGU9ItCS0LjQ utC40L/QtdC00LjRjyAocnUpIiAvPgoJCTxsaW5rIHJlbD0iY29weXJpZ2h0IiBo cmVmPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8z LjAvIiAvPgoJCTxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlv bi9yc3MreG1sIiB0aXRsZT0i0JLQuNC60LjQv9C10LTQuNGPIOKAlCBSU1Mt0LvQ tdC90YLQsCIgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPSVEMCVBMSVEMCVCQiVE MSU4MyVEMCVCNiVEMCVCNSVEMCVCMSVEMCVCRCVEMCVCMCVEMSU4RjpSZWNlbnRD aGFuZ2VzJmFtcDtmZWVkPXJzcyIgLz4KCQk8bGluayByZWw9ImFsdGVybmF0ZSIg dHlwZT0iYXBwbGljYXRpb24vYXRvbSt4bWwiIHRpdGxlPSLQktC40LrQuNC/0LXQ tNC40Y/CoOKAlCBBdG9tLdC70LXQvdGC0LAiIGhyZWY9Ii93L2luZGV4LnBocD90 aXRsZT0lRDAlQTElRDAlQkIlRDElODMlRDAlQjYlRDAlQjUlRDAlQjElRDAlQkQl RDAlQjAlRDElOEY6UmVjZW50Q2hhbmdlcyZhbXA7ZmVlZD1hdG9tIiAvPgoJCTx0 aXRsZT7QoNC10YHRg9GA0YHQvdGL0LUg0LfQsNC/0LjRgdC4IEROUyDigJQg0JLQ uNC60LjQv9C10LTQuNGPPC90aXRsZT4KCQk8bGluayByZWw9InN0eWxlc2hlZXQi IGhyZWY9Ii9za2lucy0xLjUvY29tbW9uL3NoYXJlZC5jc3M/MjMzenoyIiB0eXBl PSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiIgLz4KCQk8bGluayByZWw9InN0eWxl c2hlZXQiIGhyZWY9Ii9za2lucy0xLjUvY29tbW9uL2NvbW1vblByaW50LmNzcz8y MzN6ejIiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0icHJpbnQiIC8+CgkJPGxpbmsg cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc2tpbnMtMS41L21vbm9ib29rL21haW4u Y3NzPzIzM3p6MiIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iIC8+CgkJ PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc2tpbnMtMS41L2NoaWNrL21h aW4uY3NzPzIzM3p6MiIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJoYW5kaGVsZCIg Lz4KCQk8IS0tW2lmIGx0IElFIDUuNTAwMF0+PGxpbmsgcmVsPSJzdHlsZXNoZWV0 IiBocmVmPSIvc2tpbnMtMS41L21vbm9ib29rL0lFNTBGaXhlcy5jc3M/MjMzenoy IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiIgLz48IVtlbmRpZl0tLT4K CQk8IS0tW2lmIElFIDUuNTAwMF0+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm PSIvc2tpbnMtMS41L21vbm9ib29rL0lFNTVGaXhlcy5jc3M/MjMzenoyIiB0eXBl PSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiIgLz48IVtlbmRpZl0tLT4KCQk8IS0t W2lmIElFIDZdPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3NraW5zLTEu NS9tb25vYm9vay9JRTYwRml4ZXMuY3NzPzIzM3p6MiIgdHlwZT0idGV4dC9jc3Mi IG1lZGlhPSJzY3JlZW4iIC8+PCFbZW5kaWZdLS0+CgkJPCEtLVtpZiBJRSA3XT48 bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9za2lucy0xLjUvbW9ub2Jvb2sv SUU3MEZpeGVzLmNzcz8yMzN6ejIiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2Ny ZWVuIiAvPjwhW2VuZGlmXS0tPgoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl Zj0iL3cvZXh0ZW5zaW9ucy9GbGFnZ2VkUmV2cy9mbGFnZ2VkcmV2cy5jc3M/NTki IHR5cGU9InRleHQvY3NzIiAvPgoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl Zj0iL3cvaW5kZXgucGhwP3RpdGxlPU1lZGlhV2lraTpDb21tb24uY3NzJmFtcDt1 c2Vtc2djYWNoZT15ZXMmYW1wO2N0eXBlPXRleHQlMkZjc3MmYW1wO3NtYXhhZ2U9 MjY3ODQwMCZhbXA7YWN0aW9uPXJhdyZhbXA7bWF4YWdlPTI2Nzg0MDAiIHR5cGU9 InRleHQvY3NzIiAvPgoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3cv aW5kZXgucGhwP3RpdGxlPU1lZGlhV2lraTpQcmludC5jc3MmYW1wO3VzZW1zZ2Nh Y2hlPXllcyZhbXA7Y3R5cGU9dGV4dCUyRmNzcyZhbXA7c21heGFnZT0yNjc4NDAw JmFtcDthY3Rpb249cmF3JmFtcDttYXhhZ2U9MjY3ODQwMCIgdHlwZT0idGV4dC9j c3MiIG1lZGlhPSJwcmludCIgLz4KCQk8bGluayByZWw9InN0eWxlc2hlZXQiIGhy ZWY9Ii93L2luZGV4LnBocD90aXRsZT1NZWRpYVdpa2k6SGFuZGhlbGQuY3NzJmFt cDt1c2Vtc2djYWNoZT15ZXMmYW1wO2N0eXBlPXRleHQlMkZjc3MmYW1wO3NtYXhh Z2U9MjY3ODQwMCZhbXA7YWN0aW9uPXJhdyZhbXA7bWF4YWdlPTI2Nzg0MDAiIHR5 cGU9InRleHQvY3NzIiBtZWRpYT0iaGFuZGhlbGQiIC8+CgkJPGxpbmsgcmVsPSJz dHlsZXNoZWV0IiBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9TWVkaWFXaWtpOk1v bm9ib29rLmNzcyZhbXA7dXNlbXNnY2FjaGU9eWVzJmFtcDtjdHlwZT10ZXh0JTJG Y3NzJmFtcDtzbWF4YWdlPTI2Nzg0MDAmYW1wO2FjdGlvbj1yYXcmYW1wO21heGFn ZT0yNjc4NDAwIiB0eXBlPSJ0ZXh0L2NzcyIgLz4KCQk8bGluayByZWw9InN0eWxl c2hlZXQiIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT0tJmFtcDthY3Rpb249cmF3 JmFtcDttYXhhZ2U9MjY3ODQwMCZhbXA7Z2VuPWNzcyIgdHlwZT0idGV4dC9jc3Mi IC8+CgkJPCEtLVtpZiBsdCBJRSA3XT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj cmlwdCIgc3JjPSIvc2tpbnMtMS41L2NvbW1vbi9JRUZpeGVzLmpzPzIzM3p6MiI+ PC9zY3JpcHQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iaW1hZ2V0b29sYmFyIiBjb250 ZW50PSJubyIgLz48IVtlbmRpZl0tLT4KCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph dmFzY3JpcHQiPi8qPCFbQ0RBVEFbKi8KCQl2YXIgc2tpbiA9ICJtb25vYm9vayI7 CgkJdmFyIHN0eWxlcGF0aCA9ICIvc2tpbnMtMS41IjsKCQl2YXIgd2dBcnRpY2xl UGF0aCA9ICIvd2lraS8kMSI7CgkJdmFyIHdnU2NyaXB0UGF0aCA9ICIvdyI7CgkJ dmFyIHdnU2NyaXB0ID0gIi93L2luZGV4LnBocCI7CgkJdmFyIHdnVmFyaWFudEFy dGljbGVQYXRoID0gZmFsc2U7CgkJdmFyIHdnQWN0aW9uUGF0aHMgPSB7fTsKCQl2 YXIgd2dTZXJ2ZXIgPSAiaHR0cDovL3J1Lndpa2lwZWRpYS5vcmciOwoJCXZhciB3 Z0Nhbm9uaWNhbE5hbWVzcGFjZSA9ICIiOwoJCXZhciB3Z0Nhbm9uaWNhbFNwZWNp YWxQYWdlTmFtZSA9IGZhbHNlOwoJCXZhciB3Z05hbWVzcGFjZU51bWJlciA9IDA7 CgkJdmFyIHdnUGFnZU5hbWUgPSAi0KDQtdGB0YPRgNGB0L3Ri9C1X9C30LDQv9C4 0YHQuF9ETlMiOwoJCXZhciB3Z1RpdGxlID0gItCg0LXRgdGD0YDRgdC90YvQtSDQ t9Cw0L/QuNGB0LggRE5TIjsKCQl2YXIgd2dBY3Rpb24gPSAidmlldyI7CgkJdmFy IHdnQXJ0aWNsZUlkID0gIjEzOTc0NDkiOwoJCXZhciB3Z0lzQXJ0aWNsZSA9IHRy dWU7CgkJdmFyIHdnVXNlck5hbWUgPSBudWxsOwoJCXZhciB3Z1VzZXJHcm91cHMg PSBudWxsOwoJCXZhciB3Z1VzZXJMYW5ndWFnZSA9ICJydSI7CgkJdmFyIHdnQ29u dGVudExhbmd1YWdlID0gInJ1IjsKCQl2YXIgd2dCcmVha0ZyYW1lcyA9IGZhbHNl OwoJCXZhciB3Z0N1clJldmlzaW9uSWQgPSAxNjk2MjgzMzsKCQl2YXIgd2dWZXJz aW9uID0gIjEuMTZhbHBoYS13bWYiOwoJCXZhciB3Z0VuYWJsZUFQSSA9IHRydWU7 CgkJdmFyIHdnRW5hYmxlV3JpdGVBUEkgPSB0cnVlOwoJCXZhciB3Z1NlcGFyYXRv clRyYW5zZm9ybVRhYmxlID0gWyIsCS4iLCAiwqAJLCJdOwoJCXZhciB3Z0RpZ2l0 VHJhbnNmb3JtVGFibGUgPSBbIiIsICIiXTsKCQl2YXIgd2dNYWluUGFnZVRpdGxl ID0gItCX0LDQs9C70LDQstC90LDRjyDRgdGC0YDQsNC90LjRhtCwIjsKCQl2YXIg d2dNV1N1Z2dlc3RUZW1wbGF0ZSA9ICJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93 L2FwaS5waHA/YWN0aW9uPW9wZW5zZWFyY2hceDI2c2VhcmNoPXtzZWFyY2hUZXJt c31ceDI2bmFtZXNwYWNlPXtuYW1lc3BhY2VzfVx4MjZzdWdnZXN0IjsKCQl2YXIg d2dEQm5hbWUgPSAicnV3aWtpIjsKCQl2YXIgd2dTZWFyY2hOYW1lc3BhY2VzID0g WzBdOwoJCXZhciB3Z01XU3VnZ2VzdE1lc3NhZ2VzID0gWyLRgSDRgdC+0LLQtdGC 0LDQvNC4IiwgItCx0LXQtyDRgdC+0LLQtdGC0L7QsiJdOwoJCXZhciB3Z1Jlc3Ry aWN0aW9uRWRpdCA9IFtdOwoJCXZhciB3Z1Jlc3RyaWN0aW9uTW92ZSA9IFtdOwoJ CS8qXV0+Ki88L3NjcmlwdD4KCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiIHNyYz0iL3NraW5zLTEuNS9jb21tb24vd2lraWJpdHMuanM/MjMzenoyIj48 IS0tIHdpa2liaXRzIGpzIC0tPjwvc2NyaXB0PgoJCTwhLS0gSGVhZCBTY3JpcHRz IC0tPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9za2lu cy0xLjUvY29tbW9uL2FqYXguanM/MjMzenoyIj48L3NjcmlwdD4KCQk8c2NyaXB0 IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvc2tpbnMtMS41L2NvbW1vbi9t d3N1Z2dlc3QuanM/MjMzenoyIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRl eHQvamF2YXNjcmlwdCI+Lyo8IVtDREFUQVsqLwoJCXZhciB3Z05vdGljZT0nJzt2 YXIgd2dOb3RpY2VMb2NhbD0nJzsKCQkvKl1dPiovPC9zY3JpcHQ+CgkJPHNjcmlw dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3VwbG9hZC53aWtp bWVkaWEub3JnL2NlbnRyYWxub3RpY2Uvd2lraXBlZGlhL3J1L2NlbnRyYWxub3Rp Y2UuanM/MjMzenoyIj48L3NjcmlwdD4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh c2NyaXB0Ij4KdmFyIHdnRmxhZ2dlZFJldnNQYXJhbXMgPSB7InRhZ3MiOiB7ImFj Y3VyYWN5IjogMn19Owp2YXIgd2dGbGFnZ2VkUmV2c1BhcmFtczIgPSB7InRhZ3Mi OiB7InJlbGlhYmlsaXR5IjogMywgImNvbXBsZXRlbmVzcyI6IDIsICJucG92Ijog MiwgInByZXNlbnRhdGlvbiI6IDF9fTsKdmFyIHdnU3RhYmxlUmV2aXNpb25JZCA9 IDE0NjI1NjA3Owp2YXIgd2dBamF4RmVlZGJhY2sgPSB7InNlbmRpbmdNc2ciOiAi 0J7RgtC/0YDQsNCy0LrQsOKApiIsICJzZW50TXNnIjogItCh0L/QsNGB0LjQsdC+ ISJ9CnZhciB3Z0FqYXhSZXZpZXcgPSB7InNlbmRpbmdNc2ciOiAi0J7RgtC/0YDQ sNCy0LrQsOKApiIsICJzZW50TXNnIjogItCf0YDQvtCy0LXRgNC60LAg0LLRi9C/ 0L7Qu9C90LXQvdCwISIsICJhY3Rpb25jb21wbGV0ZSI6ICLQlNC10LnRgdGC0LLQ uNC1INCy0YvQv9C+0LvQvdC10L3QviIsICJhY3Rpb25mYWlsZWQiOiAi0JTQtdC5 0YHRgtCy0LjQtSDQvdC1INCy0YvQv9C+0LvQvdC10L3QviJ9Cjwvc2NyaXB0Pgo8 c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvdy9leHRlbnNpb25z L0ZsYWdnZWRSZXZzL2ZsYWdnZWRyZXZzLmpzPzU5Ij48L3NjcmlwdD4KCQk8c2Ny aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvdy9pbmRleC5waHA/dGl0 bGU9LSZhbXA7YWN0aW9uPXJhdyZhbXA7Z2VuPWpzJmFtcDt1c2Vza2luPW1vbm9i b29rIj48IS0tIHNpdGUganMgLS0+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cjxib2R5IGNs YXNzPSJtZWRpYXdpa2kgbHRyIG5zLTAgbnMtc3ViamVjdCBwYWdlLdCg0LXRgdGD 0YDRgdC90YvQtV/Qt9Cw0L/QuNGB0LhfRE5TIHNraW4tbW9ub2Jvb2siPgoJPGRp diBpZD0iZ2xvYmFsV3JhcHBlciI+CgkJPGRpdiBpZD0iY29sdW1uLWNvbnRlbnQi PgoJPGRpdiBpZD0iY29udGVudCI+CgkJPGEgbmFtZT0idG9wIiBpZD0idG9wIj48 L2E+CgkJPGRpdiBpZD0ic2l0ZU5vdGljZSI+PHNjcmlwdCB0eXBlPSd0ZXh0L2ph dmFzY3JpcHQnPmlmICh3Z05vdGljZSAhPSAnJykgZG9jdW1lbnQud3JpdGVsbih3 Z05vdGljZSk7PC9zY3JpcHQ+PC9kaXY+CQk8aDEgaWQ9ImZpcnN0SGVhZGluZyIg Y2xhc3M9ImZpcnN0SGVhZGluZyI+0KDQtdGB0YPRgNGB0L3Ri9C1INC30LDQv9C4 0YHQuCBETlM8L2gxPgoJCTxkaXYgaWQ9ImJvZHlDb250ZW50Ij4KCQkJPGgzIGlk PSJzaXRlU3ViIj7QnNCw0YLQtdGA0LjQsNC7INC40Lcg0JLQuNC60LjQv9C10LTQ uNC4IOKAlCDRgdCy0L7QsdC+0LTQvdC+0Lkg0Y3QvdGG0LjQutC70L7Qv9C10LTQ uNC4PC9oMz4KCQkJPGRpdiBpZD0iY29udGVudFN1YiI+PGRpdiBpZD0nbXctcmV2 aXNpb250YWcnIGNsYXNzPSdmbGFnZ2VkcmV2c19zaG9ydCBwbGFpbmxpbmtzIG5v cHJpbnQnPjx0YWJsZSBib3JkZXI9JzAnIGNlbGxzcGFjaW5nPScwJyBzdHlsZT0n YmFja2dyb3VuZDogbm9uZTsnPjx0ciBzdHlsZT0nd2hpdGUtc3BhY2U6bm93cmFw Oyc+PHRkPjxzcGFuIGNsYXNzPSdmci1pY29uLWN1cnJlbnQnIHRpdGxlPSLQotC1 0LrRg9GJ0LDRjyDQstC10YDRgdC40Y8iPjwvc3Bhbj48Yj48YSBocmVmPSIvd2lr aS8lRDAlOTIlRDAlQjglRDAlQkElRDAlQjglRDAlQkYlRDAlQjUlRDAlQjQlRDAl QjglRDElOEY6JUQwJTlGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQw JUJBJUQwJUIwXyVEMSU4MSVEMSU4MiVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCOS8l RDAlOUYlRDAlQkUlRDElOEYlRDElODElRDAlQkQlRDAlQjUlRDAlQkQlRDAlQjgl RDAlQjVfJUQwJUI0JUQwJUJCJUQxJThGXyVEMSU4NyVEMCVCOCVEMSU4MiVEMCVC MCVEMSU4MiVEMCVCNSVEMCVCQiVEMCVCNSVEMCVCOSIgdGl0bGU9ItCS0LjQutC4 0L/QtdC00LjRjzrQn9GA0L7QstC10YDQutCwINGB0YLQsNGC0LXQuS/Qn9C+0Y/R gdC90LXQvdC40LUg0LTQu9GPINGH0LjRgtCw0YLQtdC70LXQuSI+0KLQtdC60YPR idCw0Y8g0LLQtdGA0YHQuNGPPC9hPjwvYj4gWzxhIGhyZWY9Imh0dHA6Ly9ydS53 aWtpcGVkaWEub3JnL3cvaW5kZXgucGhwP3RpdGxlPSVEMCVBMCVEMCVCNSVEMSU4 MSVEMSU4MyVEMSU4MCVEMSU4MSVEMCVCRCVEMSU4QiVEMCVCNV8lRDAlQjclRDAl QjAlRDAlQkYlRDAlQjglRDElODElRDAlQjhfRE5TJmFtcDtzdGFibGU9MSIgY2xh c3M9ImV4dGVybmFsIHRleHQiIHRpdGxlPSJodHRwOi8vcnUud2lraXBlZGlhLm9y Zy93L2luZGV4LnBocD90aXRsZT0lRDAlQTAlRDAlQjUlRDElODElRDElODMlRDEl ODAlRDElODElRDAlQkQlRDElOEIlRDAlQjVfJUQwJUI3JUQwJUIwJUQwJUJGJUQw JUI4JUQxJTgxJUQwJUI4X0ROUyZhbXA7c3RhYmxlPTEiIHJlbD0ibm9mb2xsb3ci PtC/0L7QutCw0LfQsNGC0Ywg0YHRgtCw0LHQuNC70YzQvdGD0Y4g0LLQtdGA0YHQ uNGOPC9hPl0KKDxhIGhyZWY9Imh0dHA6Ly9ydS53aWtpcGVkaWEub3JnL3cvaW5k ZXgucGhwP3RpdGxlPSVEMCVBMCVEMCVCNSVEMSU4MSVEMSU4MyVEMSU4MCVEMSU4 MSVEMCVCRCVEMSU4QiVEMCVCNV8lRDAlQjclRDAlQjAlRDAlQkYlRDAlQjglRDEl ODElRDAlQjhfRE5TJmFtcDtvbGRpZD0xNDYyNTYwNyZhbXA7ZGlmZj1jdXImYW1w O2RpZmZvbmx5PTAiIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiB0aXRsZT0iaHR0cDov L3J1Lndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9JUQwJUEwJUQwJUI1 JUQxJTgxJUQxJTgzJUQxJTgwJUQxJTgxJUQwJUJEJUQxJThCJUQwJUI1XyVEMCVC NyVEMCVCMCVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCOF9ETlMmYW1wO29sZGlkPTE0 NjI1NjA3JmFtcDtkaWZmPWN1ciZhbXA7ZGlmZm9ubHk9MCIgcmVsPSJub2ZvbGxv dyI+0YHRgNCw0LLQvdC40YLRjDwvYT4pJm5ic3A7Jm5ic3A7PC90ZD48dGQgYWxp Z249J3JpZ2h0Jz48YSBpZD0nbXctcmV2aXNpb250b2dnbGUnIGNsYXNzPSdmbGFn Z2VkcmV2c190b2dnbGUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBvbmNsaWNrPSd0 b2dnbGVSZXZSYXRpbmdzKCknIHRpdGxlPSfQv9C+0LrQsNC30LDRgtGML9GB0LrR gNGL0YLRjCDQv9C+0LTRgNC+0LHQvdC+0YHRgtC4JyA+KCsvLSk8L2E+PC90ZD48 L3RyPgo8dHI+PHRkIGlkPSdtdy1yZXZpc2lvbnJhdGluZ3MnPtCU0LDQvdC90LDR jyDQstC10YDRgdC40Y8g0YHRgtGA0LDQvdC40YbRiyA8YSBocmVmPSIvd2lraS8l RDAlOTIlRDAlQjglRDAlQkElRDAlQjglRDAlQkYlRDAlQjUlRDAlQjQlRDAlQjgl RDElOEY6JUQwJTlGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJB JUQwJUIwXyVEMSU4MSVEMSU4MiVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCOS8lRDAl OUYlRDAlQkUlRDElOEYlRDElODElRDAlQkQlRDAlQjUlRDAlQkQlRDAlQjglRDAl QjVfJUQwJUI0JUQwJUJCJUQxJThGXyVEMSU4NyVEMCVCOCVEMSU4MiVEMCVCMCVE MSU4MiVEMCVCNSVEMCVCQiVEMCVCNSVEMCVCOSIgdGl0bGU9ItCS0LjQutC40L/Q tdC00LjRjzrQn9GA0L7QstC10YDQutCwINGB0YLQsNGC0LXQuS/Qn9C+0Y/RgdC9 0LXQvdC40LUg0LTQu9GPINGH0LjRgtCw0YLQtdC70LXQuSI+0L3QtSDQv9GA0L7Q stC10YDRj9C70LDRgdGMPC9hPiDRg9GH0LDRgdGC0L3QuNC60LDQvNC4INGBINGB 0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQvNC4INC/0YDQsNCy0LDQvNC4LgrQ ktGLINC80L7QttC10YLQtSDQv9GA0L7Rh9C40YLQsNGC0Ywg0L/QvtGB0LvQtdC0 0L3RjtGOINC/0YDQvtCy0LXRgNC10L3QvdGD0Y4g0LjQu9C4INGCLiDQvS4gPGEg aHJlZj0iaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9 JUQwJUEwJUQwJUI1JUQxJTgxJUQxJTgzJUQxJTgwJUQxJTgxJUQwJUJEJUQxJThC JUQwJUI1XyVEMCVCNyVEMCVCMCVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCOF9ETlMm YW1wO3N0YWJsZT0xIiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgdGl0bGU9Imh0dHA6 Ly9ydS53aWtpcGVkaWEub3JnL3cvaW5kZXgucGhwP3RpdGxlPSVEMCVBMCVEMCVC NSVEMSU4MSVEMSU4MyVEMSU4MCVEMSU4MSVEMCVCRCVEMSU4QiVEMCVCNV8lRDAl QjclRDAlQjAlRDAlQkYlRDAlQjglRDElODElRDAlQjhfRE5TJmFtcDtzdGFibGU9 MSIgcmVsPSJub2ZvbGxvdyI+0YHRgtCw0LHQuNC70YzQvdGD0Y4g0LLQtdGA0YHQ uNGOPC9hPiDQvtGCIDI1INC80LDRgNGC0LAgMjAwOSwg0L7QtNC90LDQutC+INC+ 0L3QsCDQvNC+0LbQtdGCINC30L3QsNGH0LjRgtC10LvRjNC90L4g0L7RgtC70LjR h9Cw0YLRjNGB0Y8g0L7RgiDRgtC10LrRg9GJ0LXQuSDQstC10YDRgdC40LguCtCf 0YDQvtCy0LXRgNC60Lgg0YLRgNC10LHRg9GO0YIgPGEgaHJlZj0iaHR0cDovL3J1 Lndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9JUQwJUEwJUQwJUI1JUQx JTgxJUQxJTgzJUQxJTgwJUQxJTgxJUQwJUJEJUQxJThCJUQwJUI1XyVEMCVCNyVE MCVCMCVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCOF9ETlMmYW1wO29sZGlkPTE0NjI1 NjA3JmFtcDtkaWZmPWN1ciZhbXA7ZGlmZm9ubHk9MCIgY2xhc3M9ImV4dGVybmFs IHRleHQiIHRpdGxlPSJodHRwOi8vcnUud2lraXBlZGlhLm9yZy93L2luZGV4LnBo cD90aXRsZT0lRDAlQTAlRDAlQjUlRDElODElRDElODMlRDElODAlRDElODElRDAl QkQlRDElOEIlRDAlQjVfJUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQw JUI4X0ROUyZhbXA7b2xkaWQ9MTQ2MjU2MDcmYW1wO2RpZmY9Y3VyJmFtcDtkaWZm b25seT0wIiByZWw9Im5vZm9sbG93Ij4zINC/0YDQsNCy0LrQuDwvYT4uPGJyLz48 L3RkPjx0ZD48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2Rpdj4KCQkJCQkJCQkJ PGRpdiBpZD0ianVtcC10by1uYXYiPtCf0LXRgNC10LnRgtC4INC6OiA8YSBocmVm PSIjY29sdW1uLW9uZSI+0L3QsNCy0LjQs9Cw0YbQuNGPPC9hPiwgPGEgaHJlZj0i I3NlYXJjaElucHV0Ij7Qv9C+0LjRgdC6PC9hPjwvZGl2PgkJCTwhLS0gc3RhcnQg Y29udGVudCAtLT4KCQkJPHA+PGI+0KDQtdGB0YPRgNGB0L3Ri9C1INC30LDQv9C4 0YHQuCBETlM8L2I+JiMxNjA74oCUINC30LDQv9C40YHQuCDQviDRgdC+0L7RgtCy 0LXRgtGB0YLQstC40Lgg0LjQvNC10L3QuCDQuCDRgdC70YPQttC10LHQvdC+0Lkg 0LjQvdGE0L7RgNC80LDRhtC40Lgg0LIgPGEgaHJlZj0iL3dpa2kvRE5TIiB0aXRs ZT0iRE5TIj7RgdC40YHRgtC10LzQtSDQtNC+0LzQtdC90L3Ri9GFINC40LzRkdC9 PC9hPi48L3A+CjxwPtCSINC90LDRgdGC0L7Rj9GJ0LjQuSDQvNC+0LzQtdC90YIg 0YHRg9GJ0LXRgdGC0LLRg9GO0YIg0YHQu9C10LTRg9GO0YnQuNC1INGA0LXRgdGD 0YDRgdC90YvQtSDQt9Cw0L/QuNGB0Lg8c3VwIGlkPSJjaXRlX3JlZi0wIiBjbGFz cz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTAiPlsxXTwvYT48L3N1 cD4gKNC20LjRgNC90YvQvCDQstGL0LTQtdC70LXQvdGLINC90LDQuNCx0L7Qu9C1 0LUg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C1INC30LDQv9C40YHQuCk6PC9wPgo8 dGFibGUgY2xhc3M9InN0YW5kYXJkIj4KPHRyPgo8dGg+0JjQvNGPPC90aD4KPHRo PtCg0LDRgdGI0LjRhNGA0L7QstC60LAg0L3QsNC30LLQsNC90LjRjyAo0LDQvdCz 0LsuKTwvdGg+Cjx0aD7QmtC+0LQ8L3RoPgo8dGg+0J7Qv9C40YHQsNC90LjQtTwv dGg+Cjx0aD7Qo9C/0L7RgtGA0LXQsdC40LzQvtGB0YLRjDwvdGg+Cjx0aD5SRkM8 L3RoPgo8L3RyPgo8dHI+Cjx0ZD48Yj5BPC9iPjwvdGQ+Cjx0ZD5BZGRyZXNzPC90 ZD4KPHRkPjE8L3RkPgo8dGQ+0JDQtNGA0LXRgdC90LDRjyDQt9Cw0L/QuNGB0Yws INGB0L7QvtGC0LLQtdGC0YHRgtCy0LjQtSDQvNC10LbQtNGDINC40LzQtdC90LXQ vCDQuCBJUC3QsNC00YDQtdGB0L7QvDwvdGQ+Cjx0ZD7QvtC00L3QsCDQuNC3INGB 0LDQvNGL0YUg0YfQsNGB0YLQviDQuNGB0L/QvtC70YzQt9GD0LXQvNGL0YUg0LfQ sNC/0LjRgdC10Lk8L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xzLmlldGYu b3JnL2h0bWwvcmZjMTAzNSIgY2xhc3M9ImV4dGVybmFsIiB0aXRsZT0iaHR0cDov L3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTAzNSI+UkZDIDEwMzU8L2E+PC90ZD4K PC90cj4KPHRyPgo8dGQ+QTY8L3RkPgo8dGQ+QWRkcmVzcyB2ZXJzaW9uIDY8L3Rk Pgo8dGQ+Mzg8L3RkPgo8dGQ+0JDQtNGA0LXRgSDQsiDRhNC+0YDQvNCw0YLQtSA8 YSBocmVmPSIvd2lraS9JUHY2IiB0aXRsZT0iSVB2NiI+SVB2NjwvYT48L3RkPgo8 dGQ+0LfQsNC80LXQvdC10L3QsCDQvdCwIEFBQUEg0LjQty3Qt9CwINGH0YDQtdC3 0LzQtdGA0L3QvtC5INGB0LvQvtC20L3QvtGB0YLQuCDQsiDRgNC10LDQu9C40LfQ sNGG0LjQuCwg0YHRgtCw0YLRg9GBIMKr0Y3QutGB0L/QtdGA0LjQvNC10L3RgtCw 0LvRjNC90L7QucK7LiA8c3VwIGlkPSJjaXRlX3JlZi0xIiBjbGFzcz0icmVmZXJl bmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTEiPlsyXTwvYT48L3N1cD48L3RkPgo8 dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzM2MyIg Y2xhc3M9ImV4dGVybmFsIiB0aXRsZT0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0 bWwvcmZjMzM2MyI+UkZDIDMzNjM8L2E+LCA8YSBocmVmPSJodHRwOi8vdG9vbHMu aWV0Zi5vcmcvaHRtbC9yZmMyODc0IiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJo dHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyODc0Ij5SRkMgMjg3NDwvYT48 L3RkPgo8L3RyPgo8dHI+Cjx0ZD48Yj5BQUFBPC9iPjwvdGQ+Cjx0ZD5BKzErMSsx IChBINC40YHQv9C+0LvRjNC30L7QstCw0LvRgdGPINC00LvRjyBJUHY0LCBBQUFB INC00LvRjyBJUHY2KTwvdGQ+Cjx0ZD4yODwvdGQ+Cjx0ZD7QkNC00YDQtdGBINCy INGE0L7RgNC80LDRgtC1IDxhIGhyZWY9Ii93aWtpL0lQdjYiIHRpdGxlPSJJUHY2 Ij5JUHY2PC9hPjwvdGQ+Cjx0ZD7RjdC60LLQuNCy0LDQu9C10L3RgtCwINCQINC0 0LvRjyBJUFY2PC90ZD4KPHRkPjxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRmLm9y Zy9odG1sL3JmYzM1OTYiIGNsYXNzPSJleHRlcm5hbCIgdGl0bGU9Imh0dHA6Ly90 b29scy5pZXRmLm9yZy9odG1sL3JmYzM1OTYiPlJGQyAzNTk2PC9hPjwvdGQ+Cjwv dHI+Cjx0cj4KPHRkPkFGU0RCPC90ZD4KPHRkPkFGUyBkYXRhYmFzZTwvdGQ+Cjx0 ZD4xODwvdGQ+Cjx0ZD7QoNCw0YHQv9C+0LvQvtC20LXQvdC40LUg0LHQsNC30Ysg 0LTQsNC90L3Ri9GFIDxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1BRlMmYW1w O2FjdGlvbj1lZGl0JmFtcDtyZWRsaW5rPTEiIGNsYXNzPSJuZXciIHRpdGxlPSJB RlMgKNGB0YLRgNCw0L3QuNGG0LAg0L7RgtGB0YPRgtGB0YLQstGD0LXRgikiPkFG UzwvYT48L3RkPgo8dGQ+0YDQtdC00LrQvtGD0L/QvtGC0YDQtdCx0LjQvNCw0Y8s INGH0LDRidC1INC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyBTUlYt0LfQsNC/0LjR gdGMPC90ZD4KPHRkPjxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1s L3JmYzExODMiIGNsYXNzPSJleHRlcm5hbCIgdGl0bGU9Imh0dHA6Ly90b29scy5p ZXRmLm9yZy9odG1sL3JmYzExODMiPlJGQyAxMTgzPC9hPjwvdGQ+CjwvdHI+Cjx0 cj4KPHRkPjxiPkNOQU1FPC9iPjwvdGQ+Cjx0ZD5DYW5vbmljYWwgbmFtZTwvdGQ+ Cjx0ZD41PC90ZD4KPHRkPtCa0LDQvdC+0L3QuNGH0LXRgdC60L7QtSDQuNC80Y8g 0LTQu9GPINC/0YHQtdCy0LTQvtC90LjQvNCwICjQvtC00L3QvtGD0YDQvtCy0L3Q tdCy0LDRjyDQv9C10YDQtdCw0LTRgNC10YHQsNGG0LjRjyk8L3RkPgo8dGQ+0YjQ uNGA0L7QutC+INC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyAo0L3QviDQuNC80LXQ tdGCINC+0LPRgNCw0L3QuNGH0LXQvdC40Y8g0L/QviDQv9GA0LjQvNC10L3QtdC9 0LjRjik8L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0 bWwvcmZjMTAzNSIgY2xhc3M9ImV4dGVybmFsIiB0aXRsZT0iaHR0cDovL3Rvb2xz LmlldGYub3JnL2h0bWwvcmZjMTAzNSI+UkZDIDEwMzU8L2E+PC90ZD4KPC90cj4K PHRyPgo8dGQ+RE5BTUU8L3RkPgo8dGQ+RG9tYWluIE5hbWU8L3RkPgo8dGQ+Mzk8 L3RkPgo8dGQ+0J/RgdC10LLQtNC+0L3QuNC8INC00LvRjyDQtNC+0LzQtdC90LA8 L3RkPgo8dGQ+PzwvdGQ+Cjx0ZD48YSBocmVmPSJodHRwOi8vdG9vbHMuaWV0Zi5v cmcvaHRtbC9yZmMyNjcyIiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJodHRwOi8v dG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNjcyIj5SRkMgMjY3MjwvYT48L3RkPgo8 L3RyPgo8dHI+Cjx0ZD5EUzwvdGQ+Cjx0ZD5EZWxlZ2F0aW9uIHNpZ25lcjwvdGQ+ Cjx0ZD40MzwvdGQ+Cjx0ZD4o0YHQstGP0LfQsNC90LAg0YEg0YDQsNCx0L7RgtC+ 0LkgPGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPUROU1NlYyZhbXA7YWN0aW9u PWVkaXQmYW1wO3JlZGxpbms9MSIgY2xhc3M9Im5ldyIgdGl0bGU9IkROU1NlYyAo 0YHRgtGA0LDQvdC40YbQsCDQvtGC0YHRg9GC0YHRgtCy0YPQtdGCKSI+RE5TU2Vj PC9hPik8L3RkPgo8dGQ+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPUROU1Nl YyZhbXA7YWN0aW9uPWVkaXQmYW1wO3JlZGxpbms9MSIgY2xhc3M9Im5ldyIgdGl0 bGU9IkROU1NlYyAo0YHRgtGA0LDQvdC40YbQsCDQvtGC0YHRg9GC0YHRgtCy0YPQ tdGCKSI+RE5TU2VjPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJodHRwOi8vdG9vbHMu aWV0Zi5vcmcvaHRtbC9yZmMzNjU4IiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJo dHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzNjU4Ij5SRkMgMzY1ODwvYT48 L3RkPgo8L3RyPgo8dHI+Cjx0ZD5HSUQ8L3RkPgo8dGQ+PzwvdGQ+Cjx0ZD4xMDI8 L3RkPgo8dGQ+0JfQsNGA0LXQt9C10YDQstC40YDQvtCy0LDQvdC+IDxhIGhyZWY9 Ii93aWtpL0lBTkEiIHRpdGxlPSJJQU5BIj5JQU5BPC9hPjwvdGQ+Cjx0ZD4/PC90 ZD4KPHRkPj88L3RkPgo8L3RyPgo8dHI+Cjx0ZD5HUE9TPC90ZD4KPHRkPkdlb2dy YXBoaWNhbCBwb3NpdGlvbjwvdGQ+Cjx0ZD4yNzwvdGQ+Cjx0ZD7Qk9C10L7Qs9GA 0LDRhNC40YfQtdGB0LrQvtC1INC/0L7Qu9C+0LbQtdC90LjQtTwvdGQ+Cjx0ZD7R g9GB0YLQsNGA0LXQu9CwLCDRgdC8IExPQzwvdGQ+Cjx0ZD48YSBocmVmPSJodHRw Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxNzEyIiBjbGFzcz0iZXh0ZXJuYWwi IHRpdGxlPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxNzEyIj5SRkMg MTcxMjwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD5ISU5GTzwvdGQ+Cjx0ZD5Ib3N0 IEluZm9ybWF0aW9uPC90ZD4KPHRkPjEzPC90ZD4KPHRkPtCY0L3RhNC+0YDQvNCw 0YbQuNGPINC+0LEg0YPQt9C70LU8L3RkPgo8dGQ+0YDQtdC00LrQvtGD0L/QvtGC 0LXQsdC40LzQsDwvdGQ+Cjx0ZD48YSBocmVmPSJodHRwOi8vdG9vbHMuaWV0Zi5v cmcvaHRtbC9yZmMxMDM1IiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJodHRwOi8v dG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxMDM1Ij5SRkMgMTAzNTwvYT48L3RkPgo8 L3RyPgo8dHI+Cjx0ZD5JU0ROPC90ZD4KPHRkPklTRE4gYWRkcmVzczwvdGQ+Cjx0 ZD4yMDwvdGQ+Cjx0ZD7QkNC00YDQtdGBINCyINGE0L7RgNC80LDRgtC1IDxhIGhy ZWY9Ii93aWtpL0lTRE4iIHRpdGxlPSJJU0ROIj5JU0ROPC9hPjwvdGQ+Cjx0ZD7R gNC10LTQutC+0YPQv9C+0YLRgNC10LHQuNC80LAgKNC40Lct0LfQsCDQvNCw0LvQ vtC5INC/0L7Qv9GD0LvRj9GA0L3QvtGB0YLQuCDRgdC10YLQtdC5IElTRE4g0LHQ tdC3IElQLdC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4KTwvdGQ+Cjx0ZD48YSBo cmVmPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxMTgzIiBjbGFzcz0i ZXh0ZXJuYWwiIHRpdGxlPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMx MTgzIj5SRkMgMTE4MzwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD5LRVk8L3RkPgo8 dGQ+UHVibGljIGtleTwvdGQ+Cjx0ZD4yNTwvdGQ+Cjx0ZD7Qn9GD0LHQu9C40YfQ vdGL0Lkg0LrQu9GO0YcsINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQsiA8YSBo cmVmPSIvdy9pbmRleC5waHA/dGl0bGU9RE5TU2VjJmFtcDthY3Rpb249ZWRpdCZh bXA7cmVkbGluaz0xIiBjbGFzcz0ibmV3IiB0aXRsZT0iRE5TU2VjICjRgdGC0YDQ sNC90LjRhtCwINC+0YLRgdGD0YLRgdGC0LLRg9C10YIpIj5ETlNTZWM8L2E+PC90 ZD4KPHRkPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1ETlNTZWMmYW1wO2Fj dGlvbj1lZGl0JmFtcDtyZWRsaW5rPTEiIGNsYXNzPSJuZXciIHRpdGxlPSJETlNT ZWMgKNGB0YLRgNCw0L3QuNGG0LAg0L7RgtGB0YPRgtGB0YLQstGD0LXRgikiPkRO U1NlYzwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xzLmlldGYub3Jn L2h0bWwvcmZjMjUzNSIgY2xhc3M9ImV4dGVybmFsIiB0aXRsZT0iaHR0cDovL3Rv b2xzLmlldGYub3JnL2h0bWwvcmZjMjUzNSI+UkZDIDI1MzU8L2E+LCA8YSBocmVm PSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzNDQ1IiBjbGFzcz0iZXh0 ZXJuYWwiIHRpdGxlPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzNDQ1 Ij5SRkMgMzQ0NTwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD5LWDwvdGQ+Cjx0ZD5L ZXkgRXhjaGFuZ2VyPC90ZD4KPHRkPjM2PC90ZD4KPHRkPj88L3RkPgo8dGQ+Pzwv dGQ+Cjx0ZD48YSBocmVmPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMy MjMwIiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJodHRwOi8vdG9vbHMuaWV0Zi5v cmcvaHRtbC9yZmMyMjMwIj5SRkMgMjIzMDwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0 ZD5MT0M8L3RkPgo8dGQ+TG9jYXRpb24gaW5mb3JtYXRpb248L3RkPgo8dGQ+Mjk8 L3RkPgo8dGQ+0JPQtdC+0LPRgNCw0YTQuNGH0LXRgdC60L7QtSDQvNC10YHRgtC+ 0L/QvtC70L7QttC10L3QuNC1INC00L7QvNC10L3QsDwvdGQ+Cjx0ZD4/PC90ZD4K PHRkPjxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzE4NzYi IGNsYXNzPSJleHRlcm5hbCIgdGl0bGU9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9o dG1sL3JmYzE4NzYiPlJGQyAxODc2PC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPk1C PC90ZD4KPHRkPk1haWxib3g8L3RkPgo8dGQ+NzwvdGQ+Cjx0ZD7Qn9C+0YfRgtC+ 0LLRi9C5INGP0YnQuNC6PC90ZD4KPHRkPtGA0LXQtNC60L7Rg9C/0L7RgtGA0LXQ sdC40LzQsDwvdGQ+Cjx0ZD48YSBocmVmPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcv aHRtbC9yZmMxMDM1IiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJodHRwOi8vdG9v bHMuaWV0Zi5vcmcvaHRtbC9yZmMxMDM1Ij5SRkMgMTAzNTwvYT48L3RkPgo8L3Ry Pgo8dHI+Cjx0ZD5NRDwvdGQ+Cjx0ZD5NYWlsIGRlc3RpbmF0aW9uPC90ZD4KPHRk PjM8L3RkPgo8dGQ+0J/QvtGH0YLQvtCy0YvQuSDQsNC00YDQtdGBPC90ZD4KPHRk PtGD0YHRgtCw0YDQtdC70LA8L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xz LmlldGYub3JnL2h0bWwvcmZjMTAzNSIgY2xhc3M9ImV4dGVybmFsIiB0aXRsZT0i aHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTAzNSI+UkZDIDEwMzU8L2E+ PC90ZD4KPC90cj4KPHRyPgo8dGQ+TUY8L3RkPgo8dGQ+TWFpbCBmb3J3YXJkZXI8 L3RkPgo8dGQ+NDwvdGQ+Cjx0ZD7Qn9C10YDQtdC90LDQv9GA0LDQstC70LXQvdC4 0LUg0L/QvtGH0YLRizwvdGQ+Cjx0ZD7Rg9GB0YLQsNGA0LXQu9CwPC90ZD4KPHRk PjxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzEwMzUiIGNs YXNzPSJleHRlcm5hbCIgdGl0bGU9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1s L3JmYzEwMzUiPlJGQyAxMDM1PC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPk1HPC90 ZD4KPHRkPk1haWwgZ3JvdXAgbWVtYmVyPC90ZD4KPHRkPjg8L3RkPgo8dGQ+0J3Q vtC80LXRgCDQv9C+0YfRgtC+0LLQvtC5INCz0YDRg9C/0L/RizwvdGQ+Cjx0ZD7R gNC10LTQutC+0YPQv9C+0YLRgNC10LHQuNC80LA8L3RkPgo8dGQ+PGEgaHJlZj0i aHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTAzNSIgY2xhc3M9ImV4dGVy bmFsIiB0aXRsZT0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTAzNSI+ UkZDIDEwMzU8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+TUlORk88L3RkPgo8dGQ+ TWFpbGJveCBvciBtYWlsaW5nIGxpc3QgaW5mb3JtYXRpb248L3RkPgo8dGQ+MTQ8 L3RkPgo8dGQ+0JjQvdGE0L7RgNC80LDRhtC40Y8g0L4g0L/QvtGH0YLQvtCy0L7Q vCDRj9GJ0LjQutC1INC40LvQuCDRgNCw0YHRgdGL0LvQutC1PC90ZD4KPHRkPj88 L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZj MTAzNSIgY2xhc3M9ImV4dGVybmFsIiB0aXRsZT0iaHR0cDovL3Rvb2xzLmlldGYu b3JnL2h0bWwvcmZjMTAzNSI+UkZDIDEwMzU8L2E+PC90ZD4KPC90cj4KPHRyPgo8 dGQ+TVI8L3RkPgo8dGQ+TWFpbCByZW5hbWUgZG9tYWluIG5hbWU8L3RkPgo8dGQ+ OTwvdGQ+Cjx0ZD4/PC90ZD4KPHRkPtGA0LXQtNC60L7Rg9C/0YLRgNC10LHQuNC8 0LA8L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwv cmZjMTAzNSIgY2xhc3M9ImV4dGVybmFsIiB0aXRsZT0iaHR0cDovL3Rvb2xzLmll dGYub3JnL2h0bWwvcmZjMTAzNSI+UkZDIDEwMzU8L2E+PC90ZD4KPC90cj4KPHRy Pgo8dGQ+PGI+PGEgaHJlZj0iL3dpa2kvTVgtJUQwJUI3JUQwJUIwJUQwJUJGJUQw JUI4JUQxJTgxJUQxJThDIiB0aXRsZT0iTVgt0LfQsNC/0LjRgdGMIiBjbGFzcz0i bXctcmVkaXJlY3QiPk1YPC9hPjwvYj48L3RkPgo8dGQ+TWFpbCBFeGNoYW5nZXI8 L3RkPgo8dGQ+MTU8L3RkPgo8dGQ+0JDQtNGA0LXRgSDQv9C+0YfRgtC+0LLQvtCz 0L4g0YjQu9GO0LfQsCDQtNC70Y8g0LTQvtC80LXQvdCwLiDQodC+0YHRgtC+0LjR giDQuNC3INC00LLRg9GFINGH0LDRgdGC0LXQuSYjMTYwO+KAlCDQv9GA0LjQvtGA 0LjRgtC10YLQsCAo0YfQtdC8INGH0LjRgdC70L4g0LHQvtC70YzRiNC1LCDRgtC1 0Lwg0L3QuNC20LUg0L/RgNC40L7RgNC40YLQtdGCKSwg0Lgg0LDQtNGA0LXRgdCw INGD0LfQu9CwPC90ZD4KPHRkPtC60YDQuNGC0LjRh9C10YHQutC4INCy0LDQttC9 0LAg0LTQu9GPIDxhIGhyZWY9Ii93aWtpL1NNVFAiIHRpdGxlPSJTTVRQIj5TTVRQ PC9hPi3Qv9GA0L7RgtC+0LrQvtC70LAsINC+0YHQvdC+0LLQsCDQvNCw0YDRiNGA 0YPRgtC40LfQsNGG0LjQuCA8YSBocmVmPSIvd2lraS8lRDAlQUQlRDAlQkIlRDAl QjUlRDAlQkElRDElODIlRDElODAlRDAlQkUlRDAlQkQlRDAlQkQlRDAlQjAlRDEl OEZfJUQwJUJGJUQwJUJFJUQxJTg3JUQxJTgyJUQwJUIwIiB0aXRsZT0i0K3Qu9C1 0LrRgtGA0L7QvdC90LDRjyDQv9C+0YfRgtCwIj7Qv9C+0YfRgtGLPC9hPiDQsiDQ mNC90YLQtdGA0L3QtdGC0LU8L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xz LmlldGYub3JnL2h0bWwvcmZjMTAzNSIgY2xhc3M9ImV4dGVybmFsIiB0aXRsZT0i aHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTAzNSI+UkZDIDEwMzU8L2E+ PC90ZD4KPC90cj4KPHRyPgo8dGQ+TkFQVFI8L3RkPgo8dGQ+TmFtaW5nIGF1dGhv cml0eSBwb2ludGVyPC90ZD4KPHRkPjM1PC90ZD4KPHRkPtCj0LrQsNC30LDRgtC1 0LvRjCDQvdCwINCw0LLRgtC+0YDQuNGC0LXRgtC90YvQuSDRg9C30LXQuyDQuNC8 0LXQvdC+0LLQsNC90LjRjyAo0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvR jyBJUC3RgtC10LvQtdGE0L7QvdC40LgpPC90ZD4KPHRkPj88L3RkPgo8dGQ+PGEg aHJlZj0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzI2MyIgY2xhc3M9 ImV4dGVybmFsIiB0aXRsZT0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZj MzI2MyI+UkZDIDMyNjM8L2E+LCA8YSBocmVmPSJodHRwOi8vdG9vbHMuaWV0Zi5v cmcvaHRtbC9yZmMzNDAzIiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJodHRwOi8v dG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzNDAzIj5SRkMgMzQwMzwvYT48L3RkPgo8 L3RyPgo8dHI+Cjx0ZD5OVUxMPC90ZD4KPHRkPk51bGwgcmVjb3JkPC90ZD4KPHRk PjEwPC90ZD4KPHRkPtCf0YPRgdGC0LDRjyDQt9Cw0L/QuNGB0Yw8L3RkPgo8dGQ+ 0YDQtdC00LrQvtGD0L/QvtGC0YDQtdCx0LjQvNCwPC90ZD4KPHRkPjxhIGhyZWY9 Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzEwMzUiIGNsYXNzPSJleHRl cm5hbCIgdGl0bGU9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzEwMzUi PlJGQyAxMDM1PC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPjxiPk5TPC9iPjwvdGQ+ Cjx0ZD5BdXRob3JpdGF0aXZlIG5hbWUgc2VydmVyPC90ZD4KPHRkPjI8L3RkPgo8 dGQ+0JDQtNGA0LXRgSDRg9C30LvQsCwg0L7RgtCy0LXRh9Cw0Y7RidC10LPQviDQ t9CwINC00L7QvNC10L3QvdGD0Y4g0LfQvtC90YMuINCa0YDQuNGC0LjRh9C10YHQ utC4INCy0LDQttC90LAg0LTQu9GPINGE0YPQvdC60YbQuNC+0L3QuNGA0L7QstCw 0L3QuNGPINGB0LDQvNC+0Lkg0YHQuNGB0YLQtdC80Ysg0LTQvtC80LXQvdC90YvR hSDQuNC80ZHQvTwvdGQ+Cjx0ZD48YSBocmVmPSIvd2lraS9ETlMiIHRpdGxlPSJE TlMiPkROUzwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xzLmlldGYu b3JnL2h0bWwvcmZjMTAzNSIgY2xhc3M9ImV4dGVybmFsIiB0aXRsZT0iaHR0cDov L3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTAzNSI+UkZDIDEwMzU8L2E+PC90ZD4K PC90cj4KPHRyPgo8dGQ+TlNBUDwvdGQ+Cjx0ZD5OZXR3b3JrIHNlcnZpY2UgYWNj ZXNzIHBvaW50IGFkZHJlc3M8L3RkPgo8dGQ+MjI8L3RkPgo8dGQ+0KPQutCw0LfQ sNGC0LXQu9C4INCyINGB0YLQuNC70LUgPGEgaHJlZj0iL3dpa2kvJUQwJTlDJUQw JUJFJUQwJUI0JUQwJUI1JUQwJUJCJUQxJThDX09TSSIgdGl0bGU9ItCc0L7QtNC1 0LvRjCBPU0kiIGNsYXNzPSJtdy1yZWRpcmVjdCI+T1NJPC9hPjwvdGQ+Cjx0ZD7R gNC10LTQutC+0YPQv9C+0YLRgNC10LHQuNC80LA8L3RkPgo8dGQ+PGEgaHJlZj0i aHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTcwNiIgY2xhc3M9ImV4dGVy bmFsIiB0aXRsZT0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTcwNiI+ UkZDIDE3MDY8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+TlNBUC1QVFI8L3RkPgo8 dGQ+TlNBUCBwb2ludGVyPC90ZD4KPHRkPjIzPC90ZD4KPHRkPtCj0LrQsNC30LDR gtC10LvRjCDQvdCwIE5TQVA8L3RkPgo8dGQ+0YPRgdGC0LDRgNC10LvQsDwvdGQ+ Cjx0ZD48YSBocmVmPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxMzQ4 IiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcv aHRtbC9yZmMxMzQ4Ij5SRkMgMTM0ODwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD5O WFQ8L3RkPgo8dGQ+TmV4dCBkb21haW48L3RkPgo8dGQ+MzA8L3RkPgo8dGQ+0KPQ utCw0LfQsNGC0LXQu9GMINC90LAg0YHQu9C10LTRg9GO0YnQuNC5INC00L7QvNC1 0L0gKD8pPC90ZD4KPHRkPtGD0YHRgtCw0YDQtdC70LA8L3RkPgo8dGQ+PGEgaHJl Zj0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjA2NSIgY2xhc3M9ImV4 dGVybmFsIiB0aXRsZT0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjA2 NSI+UkZDIDIwNjU8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+PGI+UFRSPC9iPjwv dGQ+Cjx0ZD5Eb21haW4gbmFtZSBwb2ludGVyPC90ZD4KPHRkPjEyPC90ZD4KPHRk PtCg0LXQsNC70LjQt9GD0LXRgiDQvNC10YXQsNC90LjQt9C8INC/0LXRgNC10LDQ tNGA0LXRgdCw0YbQuNC4PC90ZD4KPHRkPtGI0LjRgNC+0LrQviDQuNGB0L/QvtC7 0YzQt9GD0LXRgtGB0Y8g0LTQu9GPIElQdjQt0LDQtNGA0LXRgdC+0LIg0LIg0LTQ vtC80LXQvdC1IDxhIGhyZWY9Ii93aWtpL0luLWFkZHIuYXJwYSIgdGl0bGU9Iklu LWFkZHIuYXJwYSI+aW4tYWRkci5hcnBhPC9hPjwvdGQ+Cjx0ZD48YSBocmVmPSJo dHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxMDM1IiBjbGFzcz0iZXh0ZXJu YWwiIHRpdGxlPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxMDM1Ij5S RkMgMTAzNTwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD5QWDwvdGQ+Cjx0ZD5Qb2lu dGVyIHRvIFguNDAwPC90ZD4KPHRkPj88L3RkPgo8dGQ+0KPQutCw0LfQsNGC0LXQ u9GMINC90LAg0YHQuNGB0YLQtdC80YMg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC4 0Lgg0L/QvtGH0YLRiyBYLjQwMDwvdGQ+Cjx0ZD48YSBocmVmPSIvd2lraS9YLjQw MCIgdGl0bGU9IlguNDAwIj5YLjQwMDwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaHR0 cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODIyIiBjbGFzcz0iZXh0ZXJuYWwi IHRpdGxlPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4MjIiPlJGQyA4 MjI8L2E+LCA8YSBocmVmPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMy MTYzIiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJodHRwOi8vdG9vbHMuaWV0Zi5v cmcvaHRtbC9yZmMyMTYzIj5SRkMgMjE2MzwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0 ZD5SUDwvdGQ+Cjx0ZD5SZXNwb25zaWJsZSBwZXJzb248L3RkPgo8dGQ+MTc8L3Rk Pgo8dGQ+0J7RgtCy0LXRgtGB0YLQstC10L3QvdGL0Lk8L3RkPgo8dGQ+PzwvdGQ+ Cjx0ZD48YSBocmVmPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxMTgz IiBjbGFzcz0iZXh0ZXJuYWwiIHRpdGxlPSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcv aHRtbC9yZmMxMTgzIj5SRkMgMTE4MzwvYT48L3RkPgo8L3RyPgo8dHI+Cjx0ZD5S VDwvdGQ+Cjx0ZD5Sb3V0ZSB0aHJvdWdoPC90ZD4KPHRkPjIxPC90ZD4KPHRkPtCj 0LrQsNC30LDQvdC40LUg0L3QsCDRg9C30LXQuywg0YfQtdGA0LXQtyDQutC+0YLQ vtGA0YvQuSDRgdC70LXQtNGD0LXRgiDQvtGB0YPRidC10YHRgtCy0LvRj9GC0Ywg 0LzQsNGA0YjRgNGD0YLQuNCw0YbQuNGPPC90ZD4KPHRkPtC80LDQu9C+0YPQv9C+ 0YLRgNC10LHQuNC80LA8L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xzLmll dGYub3JnL2h0bWwvcmZjMTE4MyIgY2xhc3M9ImV4dGVybmFsIiB0aXRsZT0iaHR0 cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTE4MyI+UkZDIDExODM8L2E+PC90 ZD4KPC90cj4KPHRyPgo8dGQ+U0lHPC90ZD4KPHRkPkNyeXB0b2dyYXBoaWMgcHVi bGljIGtleSBzaWduYXR1cmU8L3RkPgo8dGQ+MjQ8L3RkPgo8dGQ+0KHQuNCz0L3Q sNGC0YPRgNCwINC/0YPQsdC70LjRh9C90L7QuSDQv9C+0LTQv9C40YHQuDwvdGQ+ Cjx0ZD4/PC90ZD4KPHRkPjxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9o dG1sL3JmYzI5MzEiIGNsYXNzPSJleHRlcm5hbCIgdGl0bGU9Imh0dHA6Ly90b29s cy5pZXRmLm9yZy9odG1sL3JmYzI5MzEiPlJGQyAyOTMxPC9hPjwvdGQ+CjwvdHI+ Cjx0cj4KPHRkPjxiPlNPQTwvYj48L3RkPgo8dGQ+U3RhcnQgb2YgYXV0aG9yaXR5 PC90ZD4KPHRkPjY8L3RkPgo8dGQ+0KPQutCw0LfQsNC90LjQtSDQvdCwINCw0LLR gtC+0YDQuNGC0LXRgtC90L7RgdGC0Ywg0LjQvdGE0L7RgNC80LDRhtC40LgsINC4 0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YPQutCw0LfQsNC90LjRjyDQ vdCwINC90L7QstGD0Y4g0LfQvtC90YM8L3RkPgo8dGQ+PGEgaHJlZj0iL3dpa2kv RE5TIiB0aXRsZT0iRE5TIj5ETlM8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imh0dHA6 Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzEwMzUiIGNsYXNzPSJleHRlcm5hbCIg dGl0bGU9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzEwMzUiPlJGQyAx MDM1PC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPlNSVjwvdGQ+Cjx0ZD5TZXJ2ZXIg c2VsZWN0aW9uPC90ZD4KPHRkPjMzPC90ZD4KPHRkPtCj0LrQsNC30LDQvdC40LUg 0L3QsCDQvNC10YHRgtC+0L/QvtC70L7QttC10L3QuNC1INGB0LXRgNCy0LXRgNC+ 0LIg0LTQu9GPINGB0LXRgNCy0LjRgdC+0LI8L3RkPgo8dGQ+PGEgaHJlZj0iL3dp a2kvSmFiYmVyIiB0aXRsZT0iSmFiYmVyIj5KYWJiZXI8L2E+LCA8YSBocmVmPSIv d2lraS9BY3RpdmVfRGlyZWN0b3J5IiB0aXRsZT0iQWN0aXZlIERpcmVjdG9yeSI+ QWN0aXZlIERpcmVjdG9yeTwvYT48L3RkPgo8dGQ+PGEgaHJlZj0iaHR0cDovL3Rv b2xzLmlldGYub3JnL2h0bWwvcmZjMjc4MiIgY2xhc3M9ImV4dGVybmFsIiB0aXRs ZT0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjc4MiI+UkZDIDI3ODI8 L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+VEtFWTwvdGQ+Cjx0ZD5UcmFuc2FjdGlv biBrZXk8L3RkPgo8dGQ+MjQ5PC90ZD4KPHRkPtCc0LXRgtC+0LQg0YDQsNGB0L/R gNC+0YHRgtGA0LDQvdC10L3QuNGPINC60LvRjtGH0LXQuSDQtNC70Y8gVFNJRy3Q t9Cw0L/QuNGB0LXQuTwvdGQ+Cjx0ZD48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0 bGU9RE5TU2VjJmFtcDthY3Rpb249ZWRpdCZhbXA7cmVkbGluaz0xIiBjbGFzcz0i bmV3IiB0aXRsZT0iRE5TU2VjICjRgdGC0YDQsNC90LjRhtCwINC+0YLRgdGD0YLR gdGC0LLRg9C10YIpIj5ETlNTZWM8L2E+PC90ZD4KPHRkPjxhIGhyZWY9Imh0dHA6 Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI5MzAiIGNsYXNzPSJleHRlcm5hbCIg dGl0bGU9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI5MzAiPlJGQyAy OTMwPC9hPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkPlRTSUc8L3RkPgo8dGQ+VHJhbnNh Y3Rpb24gc2lnbmF0dXJlPC90ZD4KPHRkPjI1MDwvdGQ+Cjx0ZD7QmNC00LXQvdGC 0LjRhNC40LrQsNGG0LjRjyDQtNC70Y8gRE5TLdC+0L/QtdGA0LDRhtC40Lkg0YEg 0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXQvCDQvtCx0YnQuNGFINGB0LXQutGA 0LXRgtC90YvRhSDQutC70Y7Rh9C10Lkg0Lgg0YXRjdGI0LXQuTwvdGQ+Cjx0ZD48 YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9RE5TU2VjJmFtcDthY3Rpb249ZWRp dCZhbXA7cmVkbGluaz0xIiBjbGFzcz0ibmV3IiB0aXRsZT0iRE5TU2VjICjRgdGC 0YDQsNC90LjRhtCwINC+0YLRgdGD0YLRgdGC0LLRg9C10YIpIj5ETlNTZWM8L2E+ PC90ZD4KPHRkPjxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3Jm YzI4NDUiIGNsYXNzPSJleHRlcm5hbCIgdGl0bGU9Imh0dHA6Ly90b29scy5pZXRm Lm9yZy9odG1sL3JmYzI4NDUiPlJGQyAyODQ1PC9hPjwvdGQ+CjwvdHI+Cjx0cj4K PHRkPlRYVDwvdGQ+Cjx0ZD5UZXh0IHN0cmluZzwvdGQ+Cjx0ZD4xNjwvdGQ+Cjx0 ZD7Ql9Cw0L/QuNGB0Ywg0L/RgNC+0LjQt9Cy0L7Qu9GM0L3QvtCz0L4g0LTQstC+ 0LjRh9C10YHQutC+0LPQviDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+LCDQtNC+IDI1 NSDQsdCw0LnRgiDQsiDRgNCw0LfQvNC10YDQtTwvdGQ+Cjx0ZD48YSBocmVmPSIv d2lraS9TUEYiIHRpdGxlPSJTUEYiPlNQRjwvYT4sIDxhIGhyZWY9Ii93L2luZGV4 LnBocD90aXRsZT1ETlNfJUQxJTgyJUQxJTgzJUQwJUJEJUQwJUJEJUQwJUI1JUQw JUJCJUQxJThDJmFtcDthY3Rpb249ZWRpdCZhbXA7cmVkbGluaz0xIiBjbGFzcz0i bmV3IiB0aXRsZT0iRE5TINGC0YPQvdC90LXQu9GMICjRgdGC0YDQsNC90LjRhtCw INC+0YLRgdGD0YLRgdGC0LLRg9C10YIpIj5ETlMt0YLRg9C90L3QtdC70Lg8L2E+ PC90ZD4KPHRkPjxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3Jm YzEwMzUiIGNsYXNzPSJleHRlcm5hbCIgdGl0bGU9Imh0dHA6Ly90b29scy5pZXRm Lm9yZy9odG1sL3JmYzEwMzUiPlJGQyAxMDM1PC9hPjwvdGQ+CjwvdHI+Cjx0cj4K PHRkPlVJRDwvdGQ+Cjx0ZD4/PC90ZD4KPHRkPjEwMTwvdGQ+Cjx0ZD7Ql9Cw0YDQ tdC30LXRgNCy0LjRgNC+0LLQsNC90L4gPGEgaHJlZj0iL3dpa2kvSUFOQSIgdGl0 bGU9IklBTkEiPklBTkE8L2E+PC90ZD4KPHRkPj88L3RkPgo8dGQ+PzwvdGQ+Cjwv dHI+Cjx0cj4KPHRkPlVJTkZPPC90ZD4KPHRkPj88L3RkPgo8dGQ+MTAwPC90ZD4K PHRkPtCX0LDRgNC10LfQtdGA0LLQuNGA0L7QstCw0L3QviA8YSBocmVmPSIvd2lr aS9JQU5BIiB0aXRsZT0iSUFOQSI+SUFOQTwvYT48L3RkPgo8dGQ+PzwvdGQ+Cjx0 ZD4/PC90ZD4KPC90cj4KPHRyPgo8dGQ+VU5TUEVDPC90ZD4KPHRkPj88L3RkPgo8 dGQ+MTAzPC90ZD4KPHRkPtCX0LDRgNC10LfQtdGA0LLQuNGA0L7QstCw0L3QviA8 YSBocmVmPSIvd2lraS9JQU5BIiB0aXRsZT0iSUFOQSI+SUFOQTwvYT48L3RkPgo8 dGQ+PzwvdGQ+Cjx0ZD4/PC90ZD4KPC90cj4KPHRyPgo8dGQ+V0tTPC90ZD4KPHRk PldlbGwta25vd24gc2VydmljZTwvdGQ+Cjx0ZD4xMTwvdGQ+Cjx0ZD7QodC/0LjR gdC+0Log0LTQvtGB0YLRg9C/0L3Ri9GFINC+0LHRidC10LjQt9Cy0LXRgdGC0L3R i9GFINGB0LXRgNCy0LjRgdC+0LIgKNC+0LHRidC10LjQt9Cy0LXRgdGC0L3Ri9C1 JiMxNjA74oCUINGBINGA0LXQs9C40YHRgtGA0LjRgNC+0LLQsNC90L3Ri9C80Lgg 0L3QvtC80LXRgNCw0LzQuCDQv9C+0YDRgtC+0LIpPC90ZD4KPHRkPj88L3RkPgo8 dGQ+PGEgaHJlZj0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMTAzNSIg Y2xhc3M9ImV4dGVybmFsIiB0aXRsZT0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0 bWwvcmZjMTAzNSI+UkZDIDEwMzU8L2E+PC90ZD4KPC90cj4KPHRyPgo8dGQ+WDI1 PC90ZD4KPHRkPlBTRE4gYWRkcmVzczwvdGQ+Cjx0ZD4xOTwvdGQ+Cjx0ZD7QkNC0 0YDQtdGBINCyINGE0L7RgNC80LDRgtC1IDxhIGhyZWY9Ii93L2luZGV4LnBocD90 aXRsZT1YMjUmYW1wO2FjdGlvbj1lZGl0JmFtcDtyZWRsaW5rPTEiIGNsYXNzPSJu ZXciIHRpdGxlPSJYMjUgKNGB0YLRgNCw0L3QuNGG0LAg0L7RgtGB0YPRgtGB0YLQ stGD0LXRgikiPlgyNTwvYT48L3RkPgo8dGQ+0YDQtdC00LrQvtGD0L/QvtGC0YDQ tdCx0LjQvNCwPC90ZD4KPHRkPjxhIGhyZWY9Imh0dHA6Ly90b29scy5pZXRmLm9y Zy9odG1sL3JmYzExODMiIGNsYXNzPSJleHRlcm5hbCIgdGl0bGU9Imh0dHA6Ly90 b29scy5pZXRmLm9yZy9odG1sL3JmYzExODMiPlJGQyAxMTgzPC9hPjwvdGQ+Cjwv dHI+CjwvdGFibGU+CjxwPjxhIG5hbWU9Ii5EMC45OC5EMS44MS5EMS44Mi5EMC5C RS5EMS44Ny5EMC5CRC5EMC5COC5EMC5CQS5EMC5COCIgaWQ9Ii5EMC45OC5EMS44 MS5EMS44Mi5EMC5CRS5EMS44Ny5EMC5CRC5EMC5COC5EMC5CQS5EMC5COCI+PC9h PjwvcD4KPGgyPjxzcGFuIGNsYXNzPSJlZGl0c2VjdGlvbiI+WzxhIGhyZWY9Ii93 L2luZGV4LnBocD90aXRsZT0lRDAlQTAlRDAlQjUlRDElODElRDElODMlRDElODAl RDElODElRDAlQkQlRDElOEIlRDAlQjVfJUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4 JUQxJTgxJUQwJUI4X0ROUyZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249MSIg dGl0bGU9ItCf0YDQsNCy0LjRgtGMINGB0LXQutGG0LjRjjog0JjRgdGC0L7Rh9C9 0LjQutC4Ij7Qv9GA0LDQstC40YLRjDwvYT5dPC9zcGFuPiA8c3BhbiBjbGFzcz0i bXctaGVhZGxpbmUiPtCY0YHRgtC+0YfQvdC40LrQuDwvc3Bhbj48L2gyPgo8b2wg Y2xhc3M9InJlZmVyZW5jZXMiPgo8bGkgaWQ9ImNpdGVfbm90ZS0wIj48Yj48YSBo cmVmPSIjY2l0ZV9yZWYtMCI+4oaRPC9hPjwvYj4gPGEgaHJlZj0iaHR0cDovL3d3 dy5kbnMubmV0L2Ruc3JkL3JyLmh0bWwiIGNsYXNzPSJleHRlcm5hbCBmcmVlIiB0 aXRsZT0iaHR0cDovL3d3dy5kbnMubmV0L2Ruc3JkL3JyLmh0bWwiIHJlbD0ibm9m b2xsb3ciPmh0dHA6Ly93d3cuZG5zLm5ldC9kbnNyZC9yci5odG1sPC9hPjwvbGk+ CjxsaSBpZD0iY2l0ZV9ub3RlLTEiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0xIj7i hpE8L2E+PC9iPiA8YSBocmVmPSJodHRwOi8vd3d3LmV4aW0ub3JnL2V4aW0taHRt bC1jdXJyZW50L2RvYy9odG1sL3NwZWNfaHRtbC9jaDA0Lmh0bWwiIGNsYXNzPSJl eHRlcm5hbCBmcmVlIiB0aXRsZT0iaHR0cDovL3d3dy5leGltLm9yZy9leGltLWh0 bWwtY3VycmVudC9kb2MvaHRtbC9zcGVjX2h0bWwvY2gwNC5odG1sIiByZWw9Im5v Zm9sbG93Ij5odHRwOi8vd3d3LmV4aW0ub3JnL2V4aW0taHRtbC1jdXJyZW50L2Rv Yy9odG1sL3NwZWNfaHRtbC9jaDA0Lmh0bWw8L2E+PC9saT4KPC9vbD4KCgo8IS0t IApOZXdQUCBsaW1pdCByZXBvcnQKUHJlcHJvY2Vzc29yIG5vZGUgY291bnQ6IDMw LzEwMDAwMDAKUG9zdC1leHBhbmQgaW5jbHVkZSBzaXplOiAwLzIwNDgwMDAgYnl0 ZXMKVGVtcGxhdGUgYXJndW1lbnQgc2l6ZTogMC8yMDQ4MDAwIGJ5dGVzCkV4cGVu c2l2ZSBwYXJzZXIgZnVuY3Rpb24gY291bnQ6IDAvNTAwCi0tPgoKPCEtLSBTYXZl ZCBpbiBwYXJzZXIgY2FjaGUgd2l0aCBrZXkgcnV3aWtpOnBjYWNoZTppZGhhc2g6 MTM5NzQ0OS0wITEhMCEhcnUhMiBhbmQgdGltZXN0YW1wIDIwMDkwOTExMDc0NDI4 IC0tPgo8ZGl2IGNsYXNzPSJwcmludGZvb3RlciI+CtCY0YHRgtC+0YfQvdC40Log 4oCUIMKrPGEgaHJlZj0iaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8lRDAl QTAlRDAlQjUlRDElODElRDElODMlRDElODAlRDElODElRDAlQkQlRDElOEIlRDAl QjVfJUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUI4X0ROUyI+aHR0 cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8lRDAlQTAlRDAlQjUlRDElODElRDEl ODMlRDElODAlRDElODElRDAlQkQlRDElOEIlRDAlQjVfJUQwJUI3JUQwJUIwJUQw JUJGJUQwJUI4JUQxJTgxJUQwJUI4X0ROUzwvYT7CuzwvZGl2PgoJCQk8ZGl2IGlk PSdjYXRsaW5rcycgY2xhc3M9J2NhdGxpbmtzJz48ZGl2IGlkPSJtdy1ub3JtYWwt Y2F0bGlua3MiPjxhIGhyZWY9Ii93aWtpLyVEMCVBMSVEMCVCQiVEMSU4MyVEMCVC NiVEMCVCNSVEMCVCMSVEMCVCRCVEMCVCMCVEMSU4RjpDYXRlZ29yaWVzIiB0aXRs ZT0i0KHQu9GD0LbQtdCx0L3QsNGPOkNhdGVnb3JpZXMiPtCa0LDRgtC10LPQvtGA 0LjRjzwvYT46IDxzcGFuIGRpcj0nbHRyJz48YSBocmVmPSIvd2lraS8lRDAlOUEl RDAlQjAlRDElODIlRDAlQjUlRDAlQjMlRDAlQkUlRDElODAlRDAlQjglRDElOEY6 JUQwJUEwJUQwJUI1JUQxJTgxJUQxJTgzJUQxJTgwJUQxJTgxJUQwJUJEJUQxJThC JUQwJUI1XyVEMCVCNyVEMCVCMCVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCOF9ETlMi IHRpdGxlPSLQmtCw0YLQtdCz0L7RgNC40Y860KDQtdGB0YPRgNGB0L3Ri9C1INC3 0LDQv9C40YHQuCBETlMiPtCg0LXRgdGD0YDRgdC90YvQtSDQt9Cw0L/QuNGB0Lgg RE5TPC9hPjwvc3Bhbj48L2Rpdj48L2Rpdj4JCQk8IS0tIGVuZCBjb250ZW50IC0t PgoJCQkJCQk8ZGl2IGNsYXNzPSJ2aXN1YWxDbGVhciI+PC9kaXY+CgkJPC9kaXY+ Cgk8L2Rpdj4KCQk8L2Rpdj4KCQk8ZGl2IGlkPSJjb2x1bW4tb25lIj4KCTxkaXYg aWQ9InAtY2FjdGlvbnMiIGNsYXNzPSJwb3J0bGV0Ij4KCQk8aDU+0J/RgNC+0YHQ vNC+0YLRgNGLPC9oNT4KCQk8ZGl2IGNsYXNzPSJwQm9keSI+CgkJCTx1bCBsYW5n PSJydSIgeG1sOmxhbmc9InJ1Ij4KCQoJCQkJIDxsaSBpZD0iY2Etc3RhYmxlIj48 YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9JUQwJUEwJUQwJUI1JUQxJTgxJUQx JTgzJUQxJTgwJUQxJTgxJUQwJUJEJUQxJThCJUQwJUI1XyVEMCVCNyVEMCVCMCVE MCVCRiVEMCVCOCVEMSU4MSVEMCVCOF9ETlMmYW1wO3N0YWJsZT0xIiB0aXRsZT0i 0J/QvtC60LDQt9Cw0YLRjCDRgdGC0LDQsdC40LvRjNC90YPRjiDQstC10YDRgdC4 0Y4g0Y3RgtC+0Lkg0YHRgtGA0LDQvdC40YbRiyBbY10iIGFjY2Vzc2tleT0iYyI+ 0KHRgtCw0LHQuNC70YzQvdCw0Y8g0LLQtdGA0YHQuNGPPC9hPjwvbGk+CgkJCQkg PGxpIGlkPSJjYS1jdXJyZW50IiBjbGFzcz0ic2VsZWN0ZWQiPjxhIGhyZWY9Ii93 L2luZGV4LnBocD90aXRsZT0lRDAlQTAlRDAlQjUlRDElODElRDElODMlRDElODAl RDElODElRDAlQkQlRDElOEIlRDAlQjVfJUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4 JUQxJTgxJUQwJUI4X0ROUyZhbXA7c3RhYmxlPTAmYW1wO3JlZGlyZWN0PW5vIiB0 aXRsZT0i0J/QvtC60LDQt9Cw0YLRjCDRgtC10LrRg9GJ0YPRjiDQstC10YDRgdC4 0Y4g0Y3RgtC+0Lkg0YHRgtGA0LDQvdC40YbRiyBbdl0iIGFjY2Vzc2tleT0idiI+ 0KLQtdC60YPRidCw0Y8g0LLQtdGA0YHQuNGPPC9hPjwvbGk+CgkJCQkgPGxpIGlk PSJjYS10YWxrIiBjbGFzcz0ibmV3Ij48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0 bGU9JUQwJTlFJUQwJUIxJUQxJTgxJUQxJTgzJUQwJUI2JUQwJUI0JUQwJUI1JUQw JUJEJUQwJUI4JUQwJUI1OiVEMCVBMCVEMCVCNSVEMSU4MSVEMSU4MyVEMSU4MCVE MSU4MSVEMCVCRCVEMSU4QiVEMCVCNV8lRDAlQjclRDAlQjAlRDAlQkYlRDAlQjgl RDElODElRDAlQjhfRE5TJmFtcDthY3Rpb249ZWRpdCZhbXA7cmVkbGluaz0xIiB0 aXRsZT0i0J7QsdGB0YPQttC00LXQvdC40LUg0YHQvtC00LXRgNC20LDQvdC40Y8g 0YHRgtGA0LDQvdC40YbRiyBbdF0iIGFjY2Vzc2tleT0idCI+0J7QsdGB0YPQttC0 0LXQvdC40LU8L2E+PC9saT4KCQkJCSA8bGkgaWQ9ImNhLWVkaXQiPjxhIGhyZWY9 Ii93L2luZGV4LnBocD90aXRsZT0lRDAlQTAlRDAlQjUlRDElODElRDElODMlRDEl ODAlRDElODElRDAlQkQlRDElOEIlRDAlQjVfJUQwJUI3JUQwJUIwJUQwJUJGJUQw JUI4JUQxJTgxJUQwJUI4X0ROUyZhbXA7YWN0aW9uPWVkaXQiIHRpdGxlPSLQrdGC 0YMg0YHRgtCw0YLRjNGOINC80L7QttC90L4g0LjQt9C80LXQvdGP0YLRjC4g0J/Q tdGA0LXQtCDRgdC+0YXRgNCw0L3QtdC90LjQtdC8INC40LfQvNC10L3QtdC90LjQ uSwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC90LDQttC80LjRgtC1INC60L3QvtC/ 0LrRgyDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0LPQviDQv9GA0L7RgdC8 0L7RgtGA0LAg0LTQu9GPINCy0LjQt9GD0LDQu9GM0L3QvtC5INC/0YDQvtCy0LXR gNC60Lgg0YDQtdC30YPQu9GM0YLQsNGC0LAgW2VdIiBhY2Nlc3NrZXk9ImUiPtCf 0YDQsNCy0LjRgtGMPC9hPjwvbGk+CgkJCQkgPGxpIGlkPSJjYS1oaXN0b3J5Ij48 YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9JUQwJUEwJUQwJUI1JUQxJTgxJUQx JTgzJUQxJTgwJUQxJTgxJUQwJUJEJUQxJThCJUQwJUI1XyVEMCVCNyVEMCVCMCVE MCVCRiVEMCVCOCVEMSU4MSVEMCVCOF9ETlMmYW1wO2FjdGlvbj1oaXN0b3J5IiB0 aXRsZT0i0JbRg9GA0L3QsNC7INC40LfQvNC10L3QtdC90LjQuSDRgdGC0YDQsNC9 0LjRhtGLIFtoXSIgYWNjZXNza2V5PSJoIj7QuNGB0YLQvtGA0LjRjzwvYT48L2xp PgkJCTwvdWw+CgkJPC9kaXY+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBvcnRsZXQi IGlkPSJwLXBlcnNvbmFsIj4KCQk8aDU+0JvQuNGH0L3Ri9C1INC40L3RgdGC0YDR g9C80LXQvdGC0Ys8L2g1PgoJCTxkaXYgY2xhc3M9InBCb2R5Ij4KCQkJPHVsIGxh bmc9InJ1IiB4bWw6bGFuZz0icnUiPgoJCQkJPGxpIGlkPSJwdC1hY2FpYmV0YSI+ PGEgaHJlZj0iaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0 bGU9JUQwJUExJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUI1JUQwJUIxJUQwJUJEJUQw JUIwJUQxJThGOlVzYWJpbGl0eUluaXRpYXRpdmVPcHRJbiZhbXA7ZnJvbT0lRDAl QTAlRDAlQjUlRDElODElRDElODMlRDElODAlRDElODElRDAlQkQlRDElOEIlRDAl QjVfJUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUI4X0ROUyIgY2xh c3M9Im5vLXRleHQtdHJhbnNmb3JtIj7QntC/0YDQvtCx0L7QstCw0YLRjCDQkdC1 0YLQsC3QstC10YDRgdC40Y48L2E+PC9saT4KCQkJCTxsaSBpZD0icHQtbG9naW4i PjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT0lRDAlQTElRDAlQkIlRDElODMl RDAlQjYlRDAlQjUlRDAlQjElRDAlQkQlRDAlQjAlRDElOEY6VXNlckxvZ2luJmFt cDtyZXR1cm50bz0lRDAlQTAlRDAlQjUlRDElODElRDElODMlRDElODAlRDElODEl RDAlQkQlRDElOEIlRDAlQjVfJUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgx JUQwJUI4X0ROUyIgdGl0bGU9ItCX0LTQtdGB0Ywg0LzQvtC20L3QviDQt9Cw0YDQ tdCz0LjRgdGC0YDQuNGA0L7QstCw0YLRjNGB0Y8g0LIg0YHQuNGB0YLQtdC80LUs INC90L4g0Y3RgtC+INC90LXQvtCx0Y/Qt9Cw0YLQtdC70YzQvdC+LiBbb10iIGFj Y2Vzc2tleT0ibyI+0J/RgNC10LTRgdGC0LDQstC40YLRjNGB0Y8gLyDQt9Cw0YDQ tdCz0LjRgdGC0YDQuNGA0L7QstCw0YLRjNGB0Y88L2E+PC9saT4KCQkJPC91bD4K CQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icG9ydGxldCIgaWQ9InAtbG9n byI+CgkJPGEgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vdXBs b2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL3J1L2IvYmMvV2lraS5wbmcpOyIg aHJlZj0iL3dpa2kvJUQwJTk3JUQwJUIwJUQwJUIzJUQwJUJCJUQwJUIwJUQwJUIy JUQwJUJEJUQwJUIwJUQxJThGXyVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCMCVEMCVC RCVEMCVCOCVEMSU4NiVEMCVCMCIgdGl0bGU9ItCX0LDQs9C70LDQstC90LDRjyDR gdGC0YDQsNC90LjRhtCwIFt6XSIgYWNjZXNza2V5PSJ6Ij48L2E+Cgk8L2Rpdj4K CTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gaWYgKHdpbmRvdy5pc01T SUU1NSkgZml4YWxwaGEoKTsgPC9zY3JpcHQ+Cgk8ZGl2IGNsYXNzPSdnZW5lcmF0 ZWQtc2lkZWJhciBwb3J0bGV0JyBpZD0ncC1uYXZpZ2F0aW9uJz4KCQk8aDUgbGFu Zz0icnUiIHhtbDpsYW5nPSJydSI+0J3QsNCy0LjQs9Cw0YbQuNGPPC9oNT4KCQk8 ZGl2IGNsYXNzPSdwQm9keSc+CgkJCTx1bD4KCQkJCTxsaSBpZD0ibi1tYWlucGFn ZSI+PGEgaHJlZj0iL3dpa2kvJUQwJTk3JUQwJUIwJUQwJUIzJUQwJUJCJUQwJUIw JUQwJUIyJUQwJUJEJUQwJUIwJUQxJThGXyVEMSU4MSVEMSU4MiVEMSU4MCVEMCVC MCVEMCVCRCVEMCVCOCVEMSU4NiVEMCVCMCIgdGl0bGU9ItCf0LXRgNC10LnRgtC4 INC90LAg0LfQsNCz0LvQsNCy0L3Rg9GOINGB0YLRgNCw0L3QuNGG0YMiPtCX0LDQ s9C70LDQstC90LDRjyDRgdGC0YDQsNC90LjRhtCwPC9hPjwvbGk+CgkJCQk8bGkg aWQ9Im4tYnJvd3NlIj48YSBocmVmPSIvd2lraS8lRDAlOTIlRDAlQjglRDAlQkEl RDAlQjglRDAlQkYlRDAlQjUlRDAlQjQlRDAlQjglRDElOEY6JUQwJTlGJUQwJUJF JUQwJUI4JUQxJTgxJUQwJUJBXyVEMCVCRiVEMCVCRV8lRDAlQkElRDAlQjAlRDEl ODIlRDAlQjUlRDAlQjMlRDAlQkUlRDElODAlRDAlQjglRDElOEYlRDAlQkMiIHRp dGxlPSLQn9C+0LjRgdC6INC/0L4g0LrQsNGC0LXQs9C+0YDQuNGP0LwiPtCg0YPQ sdGA0LjQutCw0YbQuNGPPC9hPjwvbGk+CgkJCQk8bGkgaWQ9Im4taW5kZXgiPjxh IGhyZWY9Ii93aWtpLyVEMCU5MiVEMCVCOCVEMCVCQSVEMCVCOCVEMCVCRiVEMCVC NSVEMCVCNCVEMCVCOCVEMSU4RjolRDAlOTAlRDAlQkIlRDElODQlRDAlQjAlRDAl QjIlRDAlQjglRDElODIlRDAlQkQlRDElOEIlRDAlQjlfJUQxJTgzJUQwJUJBJUQw JUIwJUQwJUI3JUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQxJThDIiB0aXRsZT0i 0J/QvtC40YHQuiDQv9C+INC00LLRg9C8INC/0LXRgNCy0YvQvCDQsdGD0LrQstCw 0LwiPtCj0LrQsNC30LDRgtC10LvRjCDQkOKAieKAlOKAidCvPC9hPjwvbGk+CgkJ CQk8bGkgaWQ9Im4tZmVhdHVyZWQiPjxhIGhyZWY9Ii93aWtpLyVEMCU5MiVEMCVC OCVEMCVCQSVEMCVCOCVEMCVCRiVEMCVCNSVEMCVCNCVEMCVCOCVEMSU4RjolRDAl OTglRDAlQjclRDAlQjElRDElODAlRDAlQjAlRDAlQkQlRDAlQkQlRDElOEIlRDAl QjVfJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgyJUQxJThDJUQwJUI4IiB0aXRsZT0i 0KHRgtCw0YLRjNC4LCDRgdGH0LjRgtCw0Y7RidC40LXRgdGPINC70YPRh9GI0LjQ vNC4INGB0YLQsNGC0YzRj9C80Lgg0L/RgNC+0LXQutGC0LAiPtCY0LfQsdGA0LDQ vdC90YvQtSDRgdGC0LDRgtGM0Lg8L2E+PC9saT4KCQkJCTxsaSBpZD0ibi1yYW5k b21wYWdlIj48YSBocmVmPSIvd2lraS8lRDAlQTElRDAlQkIlRDElODMlRDAlQjYl RDAlQjUlRDAlQjElRDAlQkQlRDAlQjAlRDElOEY6UmFuZG9tIiB0aXRsZT0i0J/Q vtGB0LzQvtGC0YDQtdGC0Ywg0YHQu9GD0YfQsNC50L3Rg9GOINGB0YLRgNCw0L3Q uNGG0YMgW3hdIiBhY2Nlc3NrZXk9IngiPtCh0LvRg9GH0LDQudC90LDRjyDRgdGC 0LDRgtGM0Y88L2E+PC9saT4KCQkJCTxsaSBpZD0ibi1jdXJyZW50ZXZlbnRzIj48 YSBocmVmPSIvd2lraS8lRDAlOUYlRDAlQkUlRDElODAlRDElODIlRDAlQjAlRDAl QkI6JUQwJUEyJUQwJUI1JUQwJUJBJUQxJTgzJUQxJTg5JUQwJUI4JUQwJUI1XyVE MSU4MSVEMCVCRSVEMCVCMSVEMSU4QiVEMSU4MiVEMCVCOCVEMSU4RiIgdGl0bGU9 ItCh0YLQsNGC0YzQuCDQviDRgtC10LrRg9GJ0LjRhSDRgdC+0LHRi9GC0LjRj9GF INCyINC80LjRgNC1Ij7QotC10LrRg9GJ0LjQtSDRgdC+0LHRi9GC0LjRjzwvYT48 L2xpPgoJCQk8L3VsPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGlkPSJwLXNlYXJj aCIgY2xhc3M9InBvcnRsZXQiPgoJCTxoNSBsYW5nPSJydSIgeG1sOmxhbmc9InJ1 Ij48bGFiZWwgZm9yPSJzZWFyY2hJbnB1dCI+0J/QvtC40YHQujwvbGFiZWw+PC9o NT4KCQk8ZGl2IGlkPSJzZWFyY2hCb2R5IiBjbGFzcz0icEJvZHkiPgoJCQk8Zm9y bSBhY3Rpb249Ii93L2luZGV4LnBocCIgaWQ9InNlYXJjaGZvcm0iPjxkaXY+CgkJ CQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSJ0aXRsZSIgdmFsdWU9ItCh0LvR g9C20LXQsdC90LDRjzpTZWFyY2giLz4KCQkJCTxpbnB1dCBpZD0ic2VhcmNoSW5w dXQiIG5hbWU9InNlYXJjaCIgdHlwZT0idGV4dCIgdGl0bGU9ItCY0YHQutCw0YLR jCDRjdGC0L4g0YHQu9C+0LLQviBbZl0iIGFjY2Vzc2tleT0iZiIgdmFsdWU9IiIg Lz4KCQkJCTxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9ImdvIiBjbGFzcz0ic2Vh cmNoQnV0dG9uIiBpZD0ic2VhcmNoR29CdXR0b24iCXZhbHVlPSLQn9C10YDQtdC5 0YLQuCIgdGl0bGU9ItCf0LXRgNC10LnRgtC4INC6INGB0YLRgNCw0L3QuNGG0LUs INC40LzQtdGO0YnQtdC5INCyINGC0L7Rh9C90L7RgdGC0Lgg0YLQsNC60L7QtSDQ vdCw0LfQstCw0L3QuNC1IiAvPiZuYnNwOwoJCQkJPGlucHV0IHR5cGU9J3N1Ym1p dCcgbmFtZT0iZnVsbHRleHQiIGNsYXNzPSJzZWFyY2hCdXR0b24iIGlkPSJtdy1z ZWFyY2hCdXR0b24iIHZhbHVlPSLQndCw0LnRgtC4IiB0aXRsZT0i0J3QsNC50YLQ uCDRgdGC0YDQsNC90LjRhtGLLCDRgdC+0LTQtdGA0LbQsNGJ0LjQtSDRg9C60LDQ t9Cw0L3QvdGL0Lkg0YLQtdC60YHRgiIgLz4KCQkJPC9kaXY+PC9mb3JtPgoJCTwv ZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSdnZW5lcmF0ZWQtc2lkZWJhciBwb3J0 bGV0JyBpZD0ncC1wYXJ0aWNpcGF0aW9uJz4KCQk8aDUgbGFuZz0icnUiIHhtbDps YW5nPSJydSI+0KPRh9Cw0YHRgtC40LU8L2g1PgoJCTxkaXYgY2xhc3M9J3BCb2R5 Jz4KCQkJPHVsPgoJCQkJPGxpIGlkPSJuLWJ1Z19pbl9hcnRpY2xlIj48YSBocmVm PSIvd2lraS8lRDAlOTIlRDAlQjglRDAlQkElRDAlQjglRDAlQkYlRDAlQjUlRDAl QjQlRDAlQjglRDElOEY6JUQwJUExJUQwJUJFJUQwJUJFJUQwJUIxJUQxJTg5JUQw JUI1JUQwJUJEJUQwJUI4JUQxJThGXyVEMCVCRSVEMCVCMV8lRDAlQkUlRDElODgl RDAlQjglRDAlQjElRDAlQkElRDAlQjAlRDElODUiPtCh0L7QvtCx0YnQuNGC0Ywg 0L7QsSDQvtGI0LjQsdC60LU8L2E+PC9saT4KCQkJCTxsaSBpZD0ibi1wb3J0YWwi PjxhIGhyZWY9Ii93aWtpLyVEMCU5MiVEMCVCOCVEMCVCQSVEMCVCOCVEMCVCRiVE MCVCNSVEMCVCNCVEMCVCOCVEMSU4RjolRDAlOUYlRDAlQkUlRDElODAlRDElODIl RDAlQjAlRDAlQkJfJUQxJTgxJUQwJUJFJUQwJUJFJUQwJUIxJUQxJTg5JUQwJUI1 JUQxJTgxJUQxJTgyJUQwJUIyJUQwJUIwIiB0aXRsZT0i0J4g0L/RgNC+0LXQutGC 0LUsINC+INGC0L7QvCwg0YfRgtC+INCy0Ysg0LzQvtC20LXRgtC1INGB0LTQtdC7 0LDRgtGMLCDQs9C00LUg0YfRgtC+INC90LDRhdC+0LTQuNGC0YHRjyI+0J/QvtGA 0YLQsNC7INGB0L7QvtCx0YnQtdGB0YLQstCwPC9hPjwvbGk+CgkJCQk8bGkgaWQ9 Im4tZm9ydW0iPjxhIGhyZWY9Ii93aWtpLyVEMCU5MiVEMCVCOCVEMCVCQSVEMCVC OCVEMCVCRiVEMCVCNSVEMCVCNCVEMCVCOCVEMSU4RjolRDAlQTQlRDAlQkUlRDEl ODAlRDElODMlRDAlQkMiIHRpdGxlPSLQpNC+0YDRg9C8INGD0YfQsNGB0YLQvdC4 0LrQvtCyINCS0LjQutC40L/QtdC00LjQuCI+0KTQvtGA0YPQvDwvYT48L2xpPgoJ CQkJPGxpIGlkPSJuLXJlY2VudGNoYW5nZXMiPjxhIGhyZWY9Ii93aWtpLyVEMCVB MSVEMCVCQiVEMSU4MyVEMCVCNiVEMCVCNSVEMCVCMSVEMCVCRCVEMCVCMCVEMSU4 RjpSZWNlbnRDaGFuZ2VzIiB0aXRsZT0i0KHQv9C40YHQvtC6INC/0L7RgdC70LXQ tNC90LjRhSDQuNC30LzQtdC90LXQvdC40LkgW3JdIiBhY2Nlc3NrZXk9InIiPtCh 0LLQtdC20LjQtSDQv9GA0LDQstC60Lg8L2E+PC9saT4KCQkJCTxsaSBpZD0ibi1u ZXdwYWdlcyI+PGEgaHJlZj0iL3dpa2kvJUQwJUExJUQwJUJCJUQxJTgzJUQwJUI2 JUQwJUI1JUQwJUIxJUQwJUJEJUQwJUIwJUQxJThGOk5ld1BhZ2VzIiB0aXRsZT0i 0KHQv9C40YHQvtC6INC90LXQtNCw0LLQvdC+INGB0L7Qt9C00LDQvdC90YvRhSDR gdGC0YDQsNC90LjRhiI+0J3QvtCy0YvQtSDRgdGC0YDQsNC90LjRhtGLPC9hPjwv bGk+CgkJCQk8bGkgaWQ9Im4taGVscCI+PGEgaHJlZj0iL3dpa2kvJUQwJTkyJUQw JUI4JUQwJUJBJUQwJUI4JUQwJUJGJUQwJUI1JUQwJUI0JUQwJUI4JUQxJThGOiVE MCVBMSVEMCVCRiVEMSU4MCVEMCVCMCVEMCVCMiVEMCVCQSVEMCVCMCIgdGl0bGU9 ItCh0L/RgNCw0LLQvtGH0L3QuNC6INC/0L4g0L/RgNC+0LXQutGC0YMgwqvQktC4 0LrQuNC/0LXQtNC40Y/CuyI+0KHQv9GA0LDQstC60LA8L2E+PC9saT4KCQkJCTxs aSBpZD0ibi1zaXRlc3VwcG9ydCI+PGEgaHJlZj0iaHR0cDovL3dpa2ltZWRpYWZv dW5kYXRpb24ub3JnL3dpa2kvJUQwJUExJUQwJUI0JUQwJUI1JUQwJUJCJUQwJUIw JUQxJTgyJUQxJThDXyVEMCVCRiVEMCVCRSVEMCVCNiVEMCVCNSVEMSU4MCVEMSU4 MiVEMCVCMiVEMCVCRSVEMCVCMiVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCNSIgdGl0 bGU9ItCf0L7QtNC00LXRgNC20LjRgtC1INC90LDRgSI+0J/QvtC20LXRgNGC0LLQ vtCy0LDQvdC40Y88L2E+PC9saT4KCQkJPC91bD4KCQk8L2Rpdj4KCTwvZGl2PgoJ PGRpdiBjbGFzcz0icG9ydGxldCIgaWQ9InAtdGIiPgoJCTxoNSBsYW5nPSJydSIg eG1sOmxhbmc9InJ1Ij7QmNC90YHRgtGA0YPQvNC10L3RgtGLPC9oNT4KCQk8ZGl2 IGNsYXNzPSJwQm9keSI+CgkJCTx1bD4KCQkJCTxsaSBpZD0idC13aGF0bGlua3No ZXJlIj48YSBocmVmPSIvd2lraS8lRDAlQTElRDAlQkIlRDElODMlRDAlQjYlRDAl QjUlRDAlQjElRDAlQkQlRDAlQjAlRDElOEY6V2hhdExpbmtzSGVyZS8lRDAlQTAl RDAlQjUlRDElODElRDElODMlRDElODAlRDElODElRDAlQkQlRDElOEIlRDAlQjVf JUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUI4X0ROUyIgdGl0bGU9 ItCh0L/QuNGB0L7QuiDQstGB0LXRhSDRgdGC0YDQsNC90LjRhiwg0LrQvtGC0L7R gNGL0LUg0YHRgdGL0LvQsNGO0YLRgdGPINC90LAg0Y3RgtGDINGB0YLRgNCw0L3Q uNGG0YMgW2pdIiBhY2Nlc3NrZXk9ImoiPtCh0YHRi9C70LrQuCDRgdGO0LTQsDwv YT48L2xpPgoJCQkJPGxpIGlkPSJ0LXJlY2VudGNoYW5nZXNsaW5rZWQiPjxhIGhy ZWY9Ii93aWtpLyVEMCVBMSVEMCVCQiVEMSU4MyVEMCVCNiVEMCVCNSVEMCVCMSVE MCVCRCVEMCVCMCVEMSU4RjpSZWNlbnRDaGFuZ2VzTGlua2VkLyVEMCVBMCVEMCVC NSVEMSU4MSVEMSU4MyVEMSU4MCVEMSU4MSVEMCVCRCVEMSU4QiVEMCVCNV8lRDAl QjclRDAlQjAlRDAlQkYlRDAlQjglRDElODElRDAlQjhfRE5TIiB0aXRsZT0i0J/Q vtGB0LvQtdC00L3QuNC1INC40LfQvNC10L3QtdC90LjRjyDQsiDRgdGC0YDQsNC9 0LjRhtCw0YUsINC90LAg0LrQvtGC0L7RgNGL0LUg0YHRgdGL0LvQsNC10YLRgdGP INGN0YLQsCDRgdGC0YDQsNC90LjRhtCwIFtrXSIgYWNjZXNza2V5PSJrIj7QodCy 0Y/Qt9Cw0L3QvdGL0LUg0L/RgNCw0LLQutC4PC9hPjwvbGk+CjxsaSBpZD0idC1z cGVjaWFscGFnZXMiPjxhIGhyZWY9Ii93aWtpLyVEMCVBMSVEMCVCQiVEMSU4MyVE MCVCNiVEMCVCNSVEMCVCMSVEMCVCRCVEMCVCMCVEMSU4RjpTcGVjaWFsUGFnZXMi IHRpdGxlPSLQodC/0LjRgdC+0Log0YHQu9GD0LbQtdCx0L3Ri9GFINGB0YLRgNCw 0L3QuNGGIFtxXSIgYWNjZXNza2V5PSJxIj7QodC/0LXRhtGB0YLRgNCw0L3QuNGG 0Ys8L2E+PC9saT4KCQkJCTxsaSBpZD0idC1wcmludCI+PGEgaHJlZj0iL3cvaW5k ZXgucGhwP3RpdGxlPSVEMCVBMCVEMCVCNSVEMSU4MSVEMSU4MyVEMSU4MCVEMSU4 MSVEMCVCRCVEMSU4QiVEMCVCNV8lRDAlQjclRDAlQjAlRDAlQkYlRDAlQjglRDEl ODElRDAlQjhfRE5TJmFtcDtwcmludGFibGU9eWVzIiByZWw9ImFsdGVybmF0ZSIg dGl0bGU9ItCS0LXRgNGB0LjRjyDRjdGC0L7QuSDRgdGC0YDQsNC90LjRhtGLINC0 0LvRjyDQv9C10YfQsNGC0LggW3BdIiBhY2Nlc3NrZXk9InAiPtCS0LXRgNGB0LjR jyDQtNC70Y8g0L/QtdGH0LDRgtC4PC9hPjwvbGk+CQkJCTxsaSBpZD0idC1wZXJt YWxpbmsiPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT0lRDAlQTAlRDAlQjUl RDElODElRDElODMlRDElODAlRDElODElRDAlQkQlRDElOEIlRDAlQjVfJUQwJUI3 JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUI4X0ROUyZhbXA7b2xkaWQ9MTY5 NjI4MzMiIHRpdGxlPSLQn9C+0YHRgtC+0Y/QvdC90LDRjyDRgdGB0YvQu9C60LAg 0L3QsCDRjdGC0YMg0LLQtdGA0YHQuNGOINGB0YLRgNCw0L3QuNGG0YsiPtCf0L7R gdGC0L7Rj9C90L3QsNGPINGB0YHRi9C70LrQsDwvYT48L2xpPjxsaSBpZD0idC1j aXRlIj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9JUQwJUExJUQwJUJCJUQx JTgzJUQwJUI2JUQwJUI1JUQwJUIxJUQwJUJEJUQwJUIwJUQxJThGOkNpdGUmYW1w O3BhZ2U9JUQwJUEwJUQwJUI1JUQxJTgxJUQxJTgzJUQxJTgwJUQxJTgxJUQwJUJE JUQxJThCJUQwJUI1XyVEMCVCNyVEMCVCMCVEMCVCRiVEMCVCOCVEMSU4MSVEMCVC OF9ETlMmYW1wO2lkPTE2OTYyODMzIj7QptC40YLQuNGA0L7QstCw0YLRjCDRgdGC 0YDQsNC90LjRhtGDPC9hPjwvbGk+CQkJPC91bD4KCQk8L2Rpdj4KCTwvZGl2PgoJ PGRpdiBpZD0icC1sYW5nIiBjbGFzcz0icG9ydGxldCI+CgkJPGg1IGxhbmc9InJ1 IiB4bWw6bGFuZz0icnUiPtCd0LAg0LTRgNGD0LPQuNGFINGP0LfRi9C60LDRhTwv aDU+CgkJPGRpdiBjbGFzcz0icEJvZHkiPgoJCQk8dWw+CgkJCQk8bGkgY2xhc3M9 ImludGVyd2lraS1kZSI+PGEgaHJlZj0iaHR0cDovL2RlLndpa2lwZWRpYS5vcmcv d2lraS9SZXNvdXJjZV9SZWNvcmQiPkRldXRzY2g8L2E+PC9saT4KCQkJCTxsaSBj bGFzcz0iaW50ZXJ3aWtpLWVuIj48YSBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlh Lm9yZy93aWtpL0xpc3Rfb2ZfRE5TX3JlY29yZF90eXBlcyI+RW5nbGlzaDwvYT48 L2xpPgoJCQkJPGxpIGNsYXNzPSJpbnRlcndpa2ktaXQiPjxhIGhyZWY9Imh0dHA6 Ly9pdC53aWtpcGVkaWEub3JnL3dpa2kvVGlwaV9kaV9yZWNvcmRfRE5TIj5JdGFs aWFubzwvYT48L2xpPgoJCQk8L3VsPgoJCTwvZGl2PgoJPC9kaXY+CgkJPC9kaXY+ PCEtLSBlbmQgb2YgdGhlIGxlZnQgKGJ5IGRlZmF1bHQgYXQgbGVhc3QpIGNvbHVt biAtLT4KCQkJPGRpdiBjbGFzcz0idmlzdWFsQ2xlYXIiPjwvZGl2PgoJCQk8ZGl2 IGlkPSJmb290ZXIiPgoJCQkJPGRpdiBpZD0iZi1wb3dlcmVkYnlpY28iPjxhIGhy ZWY9Imh0dHA6Ly93d3cubWVkaWF3aWtpLm9yZy8iPjxpbWcgc3JjPSIvc2tpbnMt MS41L2NvbW1vbi9pbWFnZXMvcG93ZXJlZGJ5X21lZGlhd2lraV84OHgzMS5wbmci IGFsdD0iUG93ZXJlZCBieSBNZWRpYVdpa2kiIC8+PC9hPjwvZGl2PgoJCQkJPGRp diBpZD0iZi1jb3B5cmlnaHRpY28iPjxhIGhyZWY9Imh0dHA6Ly93aWtpbWVkaWFm b3VuZGF0aW9uLm9yZy8iPjxpbWcgc3JjPSIvaW1hZ2VzL3dpa2ltZWRpYS1idXR0 b24ucG5nIiB3aWR0aD0iODgiIGhlaWdodD0iMzEiIGFsdD0iV2lraW1lZGlhIEZv dW5kYXRpb24iLz48L2E+PC9kaXY+CgkJCTx1bCBpZD0iZi1saXN0Ij4KCQkJCQk8 bGkgaWQ9Imxhc3Rtb2QiPiDQn9C+0YHQu9C10LTQvdC10LUg0LjQt9C80LXQvdC1 0L3QuNC1INGN0YLQvtC5INGB0YLRgNCw0L3QuNGG0Ys6IDA5OjM5LCA5INC40Y7Q u9GPIDIwMDkuPC9saT4KCQkJCQk8bGkgaWQ9ImNvcHlyaWdodCI+0KLQtdC60YHR giDQtNC+0YHRgtGD0L/QtdC9INC90LAg0YPRgdC70L7QstC40Y/RhSDQu9C40YbQ tdC90LfQuNC4IDxhIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xp Y2Vuc2VzL2J5LXNhLzMuMC8iPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24v U2hhcmUtQWxpa2U8L2E+LCDQsiDQvtGC0LTQtdC70YzQvdGL0YUg0YHQu9GD0YfQ sNGP0YUg0LzQvtCz0YPRgiDQtNC10LnRgdGC0LLQvtCy0LDRgtGMINC00L7Qv9C+ 0LvQvdC40YLQtdC70YzQvdGL0LUg0YPRgdC70L7QstC40Y8uINCf0L7QtNGA0L7Q sdC90LXQtSDRgdC8LiA8YSBocmVmPSJodHRwOi8vd2lraW1lZGlhZm91bmRhdGlv bi5vcmcvd2lraS9UZXJtc19vZl9Vc2UiPlRlcm1zIG9mIFVzZTwvYT4uPC9saT4K CQkJCQk8bGkgaWQ9InByaXZhY3kiPjxhIGhyZWY9Imh0dHA6Ly93aWtpbWVkaWFm b3VuZGF0aW9uLm9yZy93aWtpLyVEMCU5RiVEMCVCRSVEMCVCQiVEMCVCOCVEMSU4 MiVEMCVCOCVEMCVCQSVEMCVCMF8lRDAlQkElRDAlQkUlRDAlQkQlRDElODQlRDAl QjglRDAlQjQlRDAlQjUlRDAlQkQlRDElODYlRDAlQjglRDAlQjAlRDAlQkIlRDEl OEMlRDAlQkQlRDAlQkUlRDElODElRDElODIlRDAlQjgiIHRpdGxlPSJ3aWtpbWVk aWE60J/QvtC70LjRgtC40LrQsCDQutC+0L3RhNC40LTQtdC90YbQuNCw0LvRjNC9 0L7RgdGC0LgiPtCf0L7Qu9C40YLQuNC60LAg0LrQvtC90YTQuNC00LXQvdGG0LjQ sNC70YzQvdC+0YHRgtC4PC9hPjwvbGk+CgkJCQkJPGxpIGlkPSJhYm91dCI+PGEg aHJlZj0iL3dpa2kvJUQwJTkyJUQwJUI4JUQwJUJBJUQwJUI4JUQwJUJGJUQwJUI1 JUQwJUI0JUQwJUI4JUQxJThGOiVEMCU5RSVEMCVCRiVEMCVCOCVEMSU4MSVEMCVC MCVEMCVCRCVEMCVCOCVEMCVCNSIgdGl0bGU9ItCS0LjQutC40L/QtdC00LjRjzrQ ntC/0LjRgdCw0L3QuNC1Ij7QntC/0LjRgdCw0L3QuNC1INCS0LjQutC40L/QtdC0 0LjQuDwvYT48L2xpPgoJCQkJCTxsaSBpZD0iZGlzY2xhaW1lciI+PGEgaHJlZj0i L3dpa2kvJUQwJTkyJUQwJUI4JUQwJUJBJUQwJUI4JUQwJUJGJUQwJUI1JUQwJUI0 JUQwJUI4JUQxJThGOiVEMCU5RSVEMSU4MiVEMCVCQSVEMCVCMCVEMCVCN18lRDAl QkUlRDElODJfJUQwJUJFJUQxJTgyJUQwJUIyJUQwJUI1JUQxJTgyJUQxJTgxJUQx JTgyJUQwJUIyJUQwJUI1JUQwJUJEJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQw JUI4IiB0aXRsZT0i0JLQuNC60LjQv9C10LTQuNGPOtCe0YLQutCw0Lcg0L7RgiDQ vtGC0LLQtdGC0YHRgtCy0LXQvdC90L7RgdGC0LgiPtCe0YLQutCw0Lcg0L7RgiDQ vtGC0LLQtdGC0YHRgtCy0LXQvdC90L7RgdGC0Lg8L2E+PC9saT4KCQkJPC91bD4K CQk8L2Rpdj4KPC9kaXY+CgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0 Ij5pZiAod2luZG93LnJ1bk9ubG9hZEhvb2spIHJ1bk9ubG9hZEhvb2soKTs8L3Nj cmlwdD4KPCEtLSBTZXJ2ZWQgYnkgc3J2MTExIGluIDAuMjE1IHNlY3MuIC0tPjwv Ym9keT48L2h0bWw+Cg== ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=favicon.ico Content-Type: image/x-icon; name=favicon.ico Content-Location: http://ru.wikipedia.org/favicon.ico Content-Transfer-Encoding: Base64 AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAA AAAAAAAAEAAAAAAAAAAEAgQAhIOEAMjHyABIR0gA6ejpAGlqaQCpqKkAKCgoAPz9 /AAZGBkAmJiYANjZ2ABXWFcAent6ALm6uQA8OjwAiIiIiIiIiIiIiI4oiL6IiIiI gzuIV4iIiIhndo53KIiIiB/WvXoYiIiIfEZfWBSIiIEGi/foqoiIgzuL84i9iIjp GIoMiEHoiMkos3FojmiLlUipYliEWIF+iDe0GoRa7D6GPbjcu1yIiIiIiIiIiIiI iIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=shared.css Content-Type: text/css; charset=utf-8; name=shared.css Content-Location: http://ru.wikipedia.org/skins-1.5/common/shared.css?233zz2 Content-Transfer-Encoding: 8bit /** * CSS in this file is used by *all* skins (that have any CSS at all). Be * careful what you put in here, since what looks good in one skin may not in * another, but don't ignore the poor non-Monobook users either. */ .mw-plusminus-null { color: #aaa; } .texvc { direction: ltr; unicode-bidi: embed; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } /* add a bit of margin space between the preview and the toolbar */ /* this replaces the ugly


we used to insert into the page source */ #wikiPreview.ontop { margin-bottom: 1em; } /* Stop floats from intruding into edit area in previews */ #editform, #toolbar, #wpTextbox1 { clear: both; } div#mw-js-message { margin: 1em 5%; padding: 0.5em 2.5%; border: solid 1px #ddd; background-color: #fcfcfc; } /* Edit section links */ .editsection { float: right; margin-left: 5px; } /** * File histories */ table.filehistory th, table.filehistory td { vertical-align:top; } table.filehistory th { text-align: left; } table.filehistory td.mw-imagepage-filesize, table.filehistory th.mw-imagepage-filesize { white-space:nowrap; } table.filehistory td.filehistory-selected { font-weight: bold; } /* * rev_deleted stuff */ li span.deleted, span.history-deleted { text-decoration: line-through; color: #888; font-style: italic; } /** * Patrol stuff */ .not-patrolled { background-color: #ffa; } span.unpatrolled { font-weight: bold; color: red; } div.patrollink { font-size: 75%; text-align: right; } /** * Forms */ body.ltr td.mw-label { text-align: right; } body.ltr td.mw-input { text-align: left; } body.ltr td.mw-submit { text-align: left; } body.rtl td.mw-label { text-align: left; } body.rtl td.mw-input { text-align: right; } body.rtl td.mw-submit { text-align: right; } td.mw-label { vertical-align: top; } .prefsection td.mw-label { width: 20%; } .prefsection table { width: 100%; } td.mw-submit { white-space: nowrap; } table.mw-htmlform-nolabel td.mw-label { width: 0 !important; } /** * Image captions */ body.rtl .thumbcaption { text-align:right; } body.rtl .magnify { float:left; } body.ltr .thumbcaption { text-align:left; } body.ltr .magnify { float:right; } /** * Hidden categories */ .mw-hidden-cats-hidden { display: none; } .catlinks-allhidden { display: none; } /* Convenience links to edit block, delete and protect reasons */ p.mw-ipb-conveniencelinks, p.mw-protect-editreasons, p.mw-filedelete-editreasons, p.mw-delete-editreasons { font-size: 90%; float: right; } /* Search results */ .searchresults { } .searchresults p { margin-left: 0.4em; margin-top: 1em; margin-bottom: 1.2em; } div.searchresult { font-size: 95%; width:38em; } .mw-search-results { margin-left: 0.4em; } .mw-search-results li { padding-bottom: 1em; list-style:none; list-style-image:none; } .mw-search-results li a { font-size: 108%; } .mw-search-result-data { color: green; font-size: 97%; } .mw-search-formheader { background-color: #f3f3f3; margin-top: 1em; border: 1px solid silver; } .mw-search-formheader div.search-types { float:left; padding-left: 0.25em; } .mw-search-formheader div.search-types ul { margin: 0 !important; padding: 0 !important; list-style: none !important; } .mw-search-formheader div.search-types ul li { float: left; margin: 0; padding: 0; } .mw-search-formheader div.search-types ul li a { display: block; padding: 0.5em; } .mw-search-formheader div.search-types ul li.current a { color: #333333; cursor: default; } .mw-search-formheader div.search-types ul li.current a:hover { text-decoration: none; } .mw-search-formheader div.results-info { float: right; padding: 0.5em; padding-right: 0.75em; } .mw-search-formheader div.results-info ul { margin: 0 !important; padding: 0 !important; list-style: none !important; } .mw-search-formheader div.results-info ul li { float: right; margin: 0; padding: 0; } fieldset#mw-searchoptions { margin: 0; padding-left: 0.75em !important; padding-right: 0.75em !important; padding-bottom: 0.5em !important; padding-top: 0.5em !important; border: none; background-color: #f9f9f9; border: 1px solid silver !important; border-top-width: 0 !important; } fieldset#mw-searchoptions legend { display: none; } fieldset#mw-searchoptions h4 { padding: 0; margin: 0; float: left; } fieldset#mw-searchoptions div#mw-search-togglebox { float: right; } fieldset#mw-searchoptions div#mw-search-togglebox label { margin-right: 0.25em; } fieldset#mw-searchoptions div#mw-search-togglebox input { margin-left: 0.25em; } fieldset#mw-searchoptions table { float: left; margin-right: 3em; } fieldset#mw-searchoptions table td { padding-right: 1em; } body.rtl fieldset#mw-searchoptions table { float: right; } fieldset#mw-searchoptions div.divider { clear: both; border-bottom: 1px solid #DDDDDD; padding-top: 0.5em; margin-bottom: 0.5em; } td#mw-search-menu { padding-left:6em; font-size:85%; } div#mw-search-interwiki { float: right; width: 18em; border-style: solid; border-color: #AAAAAA; border-width: 1px; margin-top: 2ex; } .rtl div#mw-search-interwiki { float: left; } div#mw-search-interwiki li { font-size: 95%; } .mw-search-interwiki-more { float: right; font-size: 90%; } .rtl .mw-search-interwiki-more { float: left; } div#mw-search-interwiki-caption { text-align: center; font-weight: bold; font-size: 95%; } .mw-search-interwiki-project { font-size: 97%; text-align: left; padding-left: 0.2em; padding-right: 0.15em; padding-bottom: 0.2em; padding-top: 0.15em; background-color:#ececec; border-top:1px solid #BBBBBB; } .rtl .mw-search-interwiki-project { text-align: right; } span.searchalttitle { font-size: 95%; } div.searchdidyoumean { font-size: 127%; margin-bottom: 1ex; margin-top: 1ex; /* Note that this color won't affect the link, as desired. */ color: #c00; } div.searchdidyoumean em { font-weight: bold; } .searchmatch { font-weight: bold; } table#mw-search-top-table { background-color:inherit; } /* * Advanced PowerSearch box */ td#mw-search-togglebox { text-align: right; } table#mw-search-powertable { width:100%; } form#powersearch { clear: both; } /* * UserRights stuff */ .mw-userrights-disabled { color: #888; } table.mw-userrights-groups * td,table.mw-userrights-groups * th { padding-right: 1.5em; } /* * OpenSearch ajax suggestions */ .os-suggest { overflow: auto; overflow-x: hidden; position: absolute; top: 0px; left: 0px; width: 0px; background-color: white; background-color: Window; border-style: solid; border-color: #AAAAAA; border-width: 1px; z-index:99; visibility:hidden; font-size:95%; } table.os-suggest-results { font-size: 95%; cursor: pointer; border: 0; border-collapse: collapse; width: 100%; } td.os-suggest-result, td.os-suggest-result-hl { white-space: nowrap; background-color: white; background-color: Window; color: black; color: WindowText; padding: 2px; } td.os-suggest-result-hl, td.os-suggest-result-hl-webkit { background-color: #4C59A6; color: white; } td.os-suggest-result-hl { /* System colors are misimplemented in Safari 3.0 and earlier, making highlighted text illegible... */ background-color: Highlight; color: HighlightText; } .os-suggest-toggle { position: relative; left: 1ex; font-size: 65%; } .os-suggest-toggle-def { position: absolute; top: 0px; left: 0px; font-size: 65%; visibility: hidden; } /* Page history styling */ /* the auto-generated edit comments */ .autocomment { color: gray; } #pagehistory .history-user { margin-left: 0.4em; margin-right: 0.2em; } #pagehistory span.minor { font-weight: bold; } #pagehistory li { border: 1px solid white; } #pagehistory li.selected { background-color: #f9f9f9; border: 1px dashed #aaa; } /* Special:Contributions styling */ .mw-uctop { font-weight: bold; } /* Special:ListGroupRights styling */ table.mw-listgrouprights-table tr { vertical-align: top; } .listgrouprights-revoked { text-decoration: line-through; } /* Special:Statistics styling */ td.mw-statistics-numbers { text-align: right; } /* Special:SpecialPages styling */ h4.mw-specialpagesgroup { background-color: #dcdcdc; padding: 2px; margin: .3em 0em 0em 0em; } .mw-specialpagerestricted { font-weight: bold; } #shared-image-dup, #shared-image-conflict { font-style: italic; } /* Special:EmailUser styling */ table.mw-emailuser-table { width: 98%; } td#mw-emailuser-sender, td#mw-emailuser-recipient { font-weight: bold; } /* Special:Allpages styling */ table.allpageslist { background-color: transparent; } table.mw-allpages-table-form, table.mw-allpages-table-chunk { background-color: transparent; width: 100%; } td.mw-allpages-alphaindexline { text-align: right; } td.mw-allpages-nav, p.mw-allpages-nav { text-align: right; font-size: smaller; margin-bottom: 1em; } table.mw-allpages-table-form tr { vertical-align: top; } /* Special:Prefixindex styling */ table#mw-prefixindex-list-table, table#mw-prefixindex-nav-table { width: 98%; background-color: transparent; } td#mw-prefixindex-nav-form { font-size: smaller; margin-bottom: 1em; text-align: right; vertical-align: top; } /* * Recreating deleted page warning * Reupload file warning * Page protection warning * incl. log entries for these warnings */ div.mw-warning-with-logexcerpt { padding: 3px; margin-bottom: 3px; border: 2px solid #2F6FAB; } div.mw-warning-with-logexcerpt ul li { font-size: 90%; } /* (show/hide) revision deletion links */ span.mw-revdelundel-link, strong.mw-revdelundel-link { font-size: 90%; } /* feed links */ a.feedlink { background: url("images/feed-icon.png") center left no-repeat; padding-left: 16px; } /* Plainlinks - this can be used to switch * off special external link styling */ .plainlinks a { background: none !important; padding: 0 !important; } /* wikitable class for skinning normal tables */ table.wikitable { margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; } .wikitable th, .wikitable td { border: 1px #aaa solid; padding: 0.2em; } .wikitable th { background: #f2f2f2; text-align: center; } .wikitable caption { font-weight: bold; } /* hide initially collapsed collapsable tables */ table.collapsed tr.collapsable { display: none; } /* success and error messages */ .success { color: green; font-size: larger; } .error { color: red; font-size: larger; } .errorbox, .successbox { font-size: larger; border: 2px solid; padding: .5em 1em; float: left; margin-bottom: 2em; color: #000; } .errorbox { border-color: red; background-color: #fff2f2; } .successbox { border-color: green; background-color: #dfd; } .errorbox h2, .successbox h2 { font-size: 1em; font-weight: bold; display: inline; margin: 0 .5em 0 0; border: none; } .visualClear { clear: both; } #mw_trackbacks { border: solid 1px #bbbbff; background-color: #eeeeff; padding: 0.2em; } /* Table pager (e.g. Special:Imagelist) - remove underlines from the navigation link - collapse borders - set the borders to outsets (similar to Special:Allmessages) - remove line wrapping for all td and th, set background color - restore line wrapping for the last two table cells (description and size) */ .TablePager { min-width: 80%; } .TablePager_nav a { text-decoration: none; } .TablePager { border-collapse: collapse; } .TablePager, .TablePager td, .TablePager th { border: 1px solid #aaaaaa; padding: 0 0.15em 0 0.15em; } .TablePager th { background-color: #eeeeff } .TablePager td { background-color: #ffffff } .TablePager tr:hover td { background-color: #eeeeff } .imagelist td, .imagelist th { white-space: nowrap } .imagelist .TablePager_col_links { background-color: #eeeeff } .imagelist .TablePager_col_img_description { white-space: normal } .imagelist th.TablePager_sort { background-color: #ccccff } /* filetoc */ ul#filetoc { text-align: center; border: 1px solid #aaaaaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; margin-bottom: 0.5em; margin-left: 0; margin-right: 0; } #filetoc li { display: inline; list-style-type: none; padding-right: 2em; } /* Classes for EXIF data display */ table.mw_metadata { font-size: 0.8em; margin-left: 0.5em; margin-bottom: 0.5em; width: 300px; } table.mw_metadata caption { font-weight: bold; } table.mw_metadata th { font-weight: normal; } table.mw_metadata td { padding: 0.1em; } table.mw_metadata { border: none; border-collapse: collapse; } table.mw_metadata td, table.mw_metadata th { text-align: center; border: 1px solid #aaaaaa; padding-left: 0.1em; padding-right: 0.1em; } table.mw_metadata th { background-color: #f9f9f9; } table.mw_metadata td { background-color: #fcfcfc; } ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=commonPrint.css Content-Type: text/css; charset=utf-8; name=commonPrint.css Content-Location: http://ru.wikipedia.org/skins-1.5/common/commonPrint.css?233zz2 Content-Transfer-Encoding: 8bit /* ** MediaWiki Print style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke, http://www.aulinx.de/ ** ** Derived from the plone (http://plone.org/) styles ** Copyright Alexander Limi */ /* Thanks to A List Apart (http://alistapart.com/) for useful extras */ a.stub, a.new{ color:#ba0000; text-decoration:none; } #toc { /*border:1px solid #2f6fab;*/ border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; } .tocindent { margin-left: 2em; } .tocline { margin-bottom: 0px; } /* images */ div.floatright { float: right; clear: right; margin: 0; position:relative; border: 0.5em solid White; border-width: 0.5em 0 0.8em 1.4em; } div.floatright p { font-style: italic;} div.floatleft { float: left; margin: 0.3em 0.5em 0.5em 0; position:relative; border: 0.5em solid White; border-width: 0.5em 1.4em 0.8em 0; } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: 0.5em; border-style: solid; border-color: White; width: auto; overflow: hidden; } div.thumb div { border:1px solid #cccccc; padding: 3px !important; background-color:#f9f9f9; font-size: 94%; text-align: center; } div.thumb div a img { border:1px solid #cccccc; } div.thumb div div.thumbcaption { border: none; padding: 0.3em 0 0.1em 0; } div.magnify { display: none; } div.tright { float: right; clear: right; border-width: 0.5em 0 0.8em 1.4em; } div.tleft { float: left; margin-right:0.5em; border-width: 0.5em 1.4em 0.8em 0; } img.thumbborder { border: 1px solid #dddddd; } /* table standards */ table.rimage { float:right; width:1pt; position:relative; margin-left:1em; margin-bottom:1em; text-align:center; } body { background: White; /*font-size: 11pt !important;*/ color: Black; margin: 0; padding: 0; } .noprint, div#jump-to-nav, div.top, div#column-one, #colophon, .editsection, .toctoggle, .tochidden, div#f-poweredbyico, div#f-copyrightico, li#viewcount, li#about, li#disclaimer, li#privacy { /* Hides all the elements irrelevant for printing */ display: none; } ul { list-style-type: square; } #content { background: none; border: none ! important; padding: 0 ! important; margin: 0 ! important; } #footer { background : white; color : black; border-top: 1px solid black; } h1, h2, h3, h4, h5, h6 { font-weight: bold; } p, .documentDescription { margin: 1em 0 ! important; line-height: 1.2em; } .tocindent p { margin: 0 0 0 0 ! important; } pre { border: 1pt dashed black; white-space: pre; font-size: 8pt; overflow: auto; padding: 1em 0; background : white; color : black; } table.listing, table.listing td { border: 1pt solid black; border-collapse: collapse; } a { color: Black !important; background: none !important; padding: 0 !important; } a:link, a:visited { color: #520; background: transparent; text-decoration: underline; } #content a.external.text:after, #content a.external.autonumber:after { /* Expand URLs for printing */ content: " (" attr(href) ") "; } #globalWrapper { width: 100% !important; min-width: 0 !important; } #content { background : white; color : black; } #column-content { margin: 0 !important; } #column-content #content { padding: 1em; margin: 0 !important; } /* MSIE/Win doesn't understand 'inherit' */ a, a.external, a.new, a.stub { color: black ! important; text-decoration: none ! important; } /* Continue ... */ a, a.external, a.new, a.stub { color: inherit ! important; text-decoration: inherit ! important; } img { border: none; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } #siteNotice { display: none; } table.gallery { border: 1px solid #cccccc; margin: 2px; padding: 2px; background-color:#ffffff; } table.gallery tr { vertical-align:top; } div.gallerybox { border: 1px solid #cccccc; margin: 2px; background-color:#f9f9f9; width: 150px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #cccccc; margin: 2px; } div.gallerytext { font-size: 94%; padding: 2px 4px; } /* ** Diff rendering */ table.diff { background:white; } td.diff-otitle { background:#ffffff; } td.diff-ntitle { background:#ffffff; } td.diff-addedline { background:#ccffcc; font-size: smaller; border: solid 2px black; } td.diff-deletedline { background:#ffffaa; font-size: smaller; border: dotted 2px black; } td.diff-context { background:#eeeeee; font-size: smaller; } .diffchange { color: silver; font-weight: bold; text-decoration: underline; } ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline Content-Type: image/jpeg Content-Location: http://ru.wikipedia.org/skins-1.5/monobook/headbg.jpg Content-Transfer-Encoding: Base64 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 pqmqalFqtJUGrOhqk4mqUtJqampqa/RqapquqRhbcdOIbqoSWMoZnG01aiZjs3Gf tdoO6lFFFFFFFFJRRRRRytyX9LwVBqmpqUclytrcHACgBSUqKJRRQALZYAFFABQB SUUUlFFHK2XClAAAFABCoUAAAABQAFACoFAqKAhl2c6KXHu6AiZdkpKWkprGFopR FSlAEUAARQAAABFEVAAAKKKKKKAKKTU1TU1KkAoqDWDWE1NTU0NTQ1NV1gqFSWZT WzU1NTU1KWpOVv6WxSiiiiiikoooooooXkDgoopKWjkF4ABRAoACgABQBAUAEKKK KSiilLAoAFBBQAAAAAARQAQUAAAEyZoopfLVgkpRQUsKAAAAAAAAAAAAAFAUUUUU UUUUUUUAAAUUUmpRRRQFFFFFAJRRqUUUUUUUUUUampRSgBRRRRRRRRRRRRRQKBRS UUUoAABRQAUAFAAAFFABRRRRQFFFAFFFAUUAUACoUUFAABQAUAAUAoIqSlFFFLEK gUUUUAAoAioqCoKICiCgAAAAAAAAAAAAAAAIogKAAAAIoAigAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAD//Z ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline Content-Type: image/gif Content-Location: http://ru.wikipedia.org/skins-1.5/monobook/bullet.gif Content-Transfer-Encoding: Base64 R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4Sp ADs= ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline Content-Type: image/png Content-Location: http://ru.wikipedia.org/skins-1.5/monobook/external.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZ zP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcl y0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4 AVnsAZubxDVmAAAAAElFTkSuQmCC ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline Content-Type: image/gif Content-Location: http://ru.wikipedia.org/skins-1.5/monobook/lock_icon.gif Content-Transfer-Encoding: Base64 R0lGODlhEAANAPcAAEVFRZmXO62qOLCtOLm2N765NsbCNcnFNNHOM93YI9/bL9TQ M9rWMdvYMeDbMODcMODcMs3KW+TgR+TgSubiWufkXejkZ5KSkqKioq6urtjWnO3r i+/tofDup/Hup/HwsNHR0dLS0vX0zfj32+np6fn55Pv76/Dw8Pv78P399P/+/f// //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAACwALAAAAAAQAA0AAAhzAFkIFJihYMGBCAdmGKEC xQgNABIqHLECgEUOESJKzFBRIQWNCTOYAJlBAUiEC0kmOCkQRICXMGFiCLkiRQkR HzZYmPCAZYYBBQ4saPDgQQUPPmvezGlBQs+QAggYQMDAgdEOSW3i1DkBAssQFsOK vTAwIAA7 ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline Content-Type: image/gif Content-Location: http://ru.wikipedia.org/skins-1.5/monobook/user.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAPcAAFtJMlpJNFxIMU5OTm2XH3aIVJNkK5FmMJZnPbt6NIZzXId0 XpVwQZRzR5p7VI1+baZ3Tdl+Kt1/LIO2JYe5K4q8M4idYZKBbJK/QLqddZfDR5rF TZ/HVqfMZanNacKVWuKVQ+ejVuelVu21bPC/e5+XjKOjo7rXhr3aiM+1kNi4icff m8rio83jqNHmrtXotOPEl/HDg/LKjvfaq/ngut3Z1Nvrwd/tx/vqz+Hh4erq6v// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAADsALAAAAAAQABAAAAh4AHcIHEiwoMEdFxRcOFhQ QQMGBwQwFLjAQQoYHwwAmPggA40ZMRIEmFhChQwSISIMmLjDhAgQEhCwFAih5kwT JkbgIDFg5UETL1gUIGFBQwWfBE3ccLHihAUOGChMQCrQhI0WE1B02OCBwNSCPcOK 7TmzrNmzOwICADs= ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=main.css Content-Type: text/css; charset=utf-8; name=main.css Content-Location: http://ru.wikipedia.org/skins-1.5/monobook/main.css?233zz2 Content-Transfer-Encoding: 8bit /* ** MediaWiki 'monobook' style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke - http://wikidev.net/ ** License: GPL (http://www.gnu.org/copyleft/gpl.html) ** ** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John ** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, ** Michael Zeltner and Geir Bækholt) ** All you guys rock :) */ #column-content { width: 100%; float: right; margin: 0 0 .6em -12.2em; padding: 0; } #content { margin: 2.8em 0 0 12.2em; padding: 0 1em 1em 1em; position: relative; z-index: 2; } #column-one { padding-top: 160px; } #content { background: white; color: black; border: 1px solid #aaa; border-right: none; line-height: 1.5em; } /* the left column width is specified in class .portlet */ /* Font size: ** We take advantage of keyword scaling- browsers won't go below 9px ** More at http://www.w3.org/2003/07/30-font-size ** http://style.cleverchimp.com/font_size_intervals/altintervals.html */ body { font: x-small sans-serif; background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; color: black; margin: 0; padding: 0; } /* scale back up to a sane default */ #globalWrapper { font-size: 127%; width: 100%; margin: 0; padding: 0; } /* general styles */ table { font-size: 100%; color: black; /* we don't want the bottom borders of

s to be visible through floated tables */ background-color: white; } fieldset table { /* but keep table layouts in forms clean... */ background: none; } a { text-decoration: none; color: #002bb8; background: none; } a:visited { color: #5a3696; } a:active { color: #faa700; } a:hover { text-decoration: underline; } a.stub { color: #772233; } a.new, #p-personal a.new { color: #ba0000; } a.new:visited, #p-personal a.new:visited { color: #a55858; } img { border: none; vertical-align: middle; } p { margin: .4em 0 .5em 0; line-height: 1.5em; } p img { margin: 0; } hr { height: 1px; color: #aaa; background-color: #aaa; border: 0; margin: .2em 0 .2em 0; } h1, h2, h3, h4, h5, h6 { color: black; background: none; font-weight: normal; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: 1px solid #aaa; } h1 { font-size: 188%; } h1 .editsection { font-size: 53%; } h2 { font-size: 150%; } h2 .editsection { font-size: 67%; } h3, h4, h5, h6 { border-bottom: none; font-weight: bold; } h3 { font-size: 132%; } h3 .editsection { font-size: 76%; font-weight: normal; } h4 { font-size: 116%; } h4 .editsection { font-size: 86%; font-weight: normal; } h5 { font-size: 100%; } h5 .editsection { font-weight: normal; } h6 { font-size: 80%; } h6 .editsection { font-size: 125%; font-weight: normal; } ul { line-height: 1.5em; list-style-type: square; margin: .3em 0 0 1.5em; padding: 0; list-style-image: url(bullet.gif); } ol { line-height: 1.5em; margin: .3em 0 0 3.2em; padding: 0; list-style-image: none; } li { margin-bottom: .1em; } dt { font-weight: bold; margin-bottom: .1em; } dl { margin-top: .2em; margin-bottom: .5em; } dd { line-height: 1.5em; margin-left: 2em; margin-bottom: .1em; } fieldset { border: 1px solid #2f6fab; margin: 1em 0 1em 0; padding: 0 1em 1em; line-height: 1.5em; } fieldset.nested { margin: 0 0 0.5em 0; padding: 0 0.5em 0.5em; } legend { padding: .5em; font-size: 95%; } form { border: none; margin: 0; } textarea { width: 100%; padding: .1em; } input.historysubmit { padding: 0 .3em .3em .3em !important; font-size: 94%; cursor: pointer; height: 1.7em !important; margin-left: 1.6em; } select { vertical-align: top; } abbr, acronym, .explain { border-bottom: 1px dotted black; color: black; background: none; cursor: help; } q { font-family: Times, "Times New Roman", serif; font-style: italic; } /* disabled for now blockquote { font-family: Times, "Times New Roman", serif; font-style: italic; }*/ code { background-color: #f9f9f9; } pre { padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; } /* ** the main content area */ #siteSub { display: none; } #jump-to-nav { display: none; } #contentSub, #contentSub2 { font-size: 84%; line-height: 1.2em; margin: 0 0 1.4em 1em; color: #7d7d7d; width: auto; } span.subpages { display: block; } /* Some space under the headers in the content area */ #bodyContent h1, #bodyContent h2 { margin-bottom: .6em; } #bodyContent h3, #bodyContent h4, #bodyContent h5 { margin-bottom: .3em; } #firstHeading { margin-bottom: .1em; /* These two rules hack around bug 2013 (fix for more limited bug 11325). When bug 2013 is fixed properly, they should be removed. */ line-height: 1.2em; padding-bottom: 0; } /* user notification thing */ .usermessage { background-color: #ffce7b; border: 1px solid #ffa500; color: black; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; } #siteNotice { text-align: center; font-size: 95%; padding-top: 0.9em; } #siteNotice p { margin: 0; padding: 0; } .catlinks { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; margin-top: 1em; clear: both; } /* currently unused, intended to be used by a metadata box in the bottom-right corner of the content area */ .documentDescription { /* The summary text describing the document */ font-weight: bold; display: block; margin: 1em 0; line-height: 1.5em; } .documentByLine { text-align: right; font-size: 90%; clear: both; font-weight: normal; color: #76797c; } /* emulate center */ .center { width: 100%; text-align: center; } *.center * { margin-left: auto; margin-right: auto; } /* small for tables and similar */ .small, .small * { font-size: 94%; } table.small { font-size: 100%; } /* ** content styles */ #toc, .toc, .mw-warning { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } #toc h2, .toc h2 { display: inline; border: none; padding: 0; font-size: 100%; font-weight: bold; } #toc #toctitle, .toc #toctitle, #toc .toctitle, .toc .toctitle { text-align: center; } #toc ul, .toc ul { list-style-type: none; list-style-image: none; margin-left: 0; padding-left: 0; text-align: left; } #toc ul ul, .toc ul ul { margin: 0 0 0 2em; } #toc .toctoggle, .toc .toctoggle { font-size: 94%; } .mw-warning { margin-left: 50px; margin-right: 50px; text-align: center; } /* images */ div.floatright, table.floatright { clear: right; float: right; position: relative; margin: 0 0 .5em .5em; border: 0; /* border: .5em solid white; border-width: .5em 0 .8em 1.4em; */ } div.floatright p { font-style: italic; } div.floatleft, table.floatleft { float: left; clear: left; position: relative; margin: 0 .5em .5em 0; border: 0; /* margin: .3em .5em .5em 0; border: .5em solid white; border-width: .5em 1.4em .8em 0; */ } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: .5em; border-style: solid; border-color: white; width: auto; } div.thumbinner { border: 1px solid #ccc; padding: 3px !important; background-color: #f9f9f9; font-size: 94%; text-align: center; overflow: hidden; } html .thumbimage { border: 1px solid #ccc; } html .thumbcaption { border: none; text-align: left; line-height: 1.4em; padding: 3px !important; font-size: 94%; } div.magnify { float: right; border: none !important; background: none !important; } div.magnify a, div.magnify img { display: block; border: none !important; background: none !important; } div.tright { clear: right; float: right; border-width: .5em 0 .8em 1.4em; } div.tleft { float: left; clear: left; margin-right: .5em; border-width: .5em 1.4em .8em 0; } img.thumbborder { border: 1px solid #dddddd; } .hiddenStructure { display: none; } /* ** classes for special content elements like town boxes ** intended to be referenced directly from the wiki src */ /* ** User styles */ /* table standards */ table.rimage { float: right; position: relative; margin-left: 1em; margin-bottom: 1em; text-align: center; } .toccolours { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } /* ** edit views etc */ .special li { line-height: 1.4em; margin: 0; padding: 0; } /* ** keep the whitespace in front of the ^=, hides rule from konqueror ** this is css3, the validator doesn't like it when validating as css2 */ #bodyContent a.external, #bodyContent a.external[href ^="gopher://"] { background: url(external.png) center right no-repeat; padding: 0 13px; } .rtl #bodyContent a.external, .rtl #bodyContent a.external[href ^="gopher://"] { background-image: url(external-rtl.png); } #bodyContent a.external[href ^="https://"], .link-https { background: url(lock_icon.gif) center right no-repeat; padding: 0 16px; } #bodyContent a.external[href ^="mailto:"], .link-mailto { background: url(mail_icon.gif) center right no-repeat; padding: 0 18px; } #bodyContent a.external[href ^="news://"] { background: url(news_icon.png) center right no-repeat; padding: 0 18px; } #bodyContent a.external[href ^="ftp://"], .link-ftp { background: url(file_icon.gif) center right no-repeat; padding: 0 18px; } #bodyContent a.external[href ^="irc://"], .link-irc { background: url(discussionitem_icon.gif) center right no-repeat; padding: 0 18px; } #bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"], #bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"], #bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"], #bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"], #bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"], #bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"], .link-audio { background: url("audio.png") center right no-repeat; padding: 0 13px; } #bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"], #bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"], #bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"], #bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"], .link-video { background: url("video.png") center right no-repeat; padding: 0 13px; } #bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"], #bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"], #bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"], .link-document { background: url("document.png") center right no-repeat; padding: 0 12px; } /* for rtl wikis */ .rtl #bodyContent a.external { background-position: left; padding-right: 0; } .rtl a.feedlink { background-position: right; padding-right: 16px; padding-left: 0; } /* correction for ltr wikis */ .ltr #bodyContent a.external { padding-left: 0; } /* disable interwiki styling */ #bodyContent a.extiw, #bodyContent a.extiw:active { color: #36b; } #bodyContent a.external { color: #36b; } /* ** Structural Elements */ /* ** general portlet styles (elements in the quickbar) */ .portlet { border: none; margin: 0 0 .5em; padding: 0; float: none; width: 11.6em; overflow: hidden; } .portlet h4 { font-size: 95%; font-weight: normal; white-space: nowrap; } .portlet h5 { background: transparent; padding: 0 1em 0 .5em; display: inline; height: 1em; text-transform: lowercase; font-size: 91%; font-weight: normal; white-space: nowrap; } .portlet h6 { background: #ffae2e; border: 1px solid #2f6fab; border-style: solid solid none solid; padding: 0 1em 0 1em; text-transform: lowercase; display: block; font-size: 1em; height: 1.2em; font-weight: normal; white-space: nowrap; } .pBody { font-size: 95%; background-color: white; color: black; border-collapse: collapse; border: 1px solid #aaa; padding: 0 .8em .3em .5em; } .portlet h1, .portlet h2, .portlet h3, .portlet h4 { margin: 0; padding: 0; } .portlet ul { line-height: 1.5em; list-style-type: square; list-style-image: url(bullet.gif); font-size: 95%; } .portlet li { padding: 0; margin: 0; } /* ** Logo properties */ #p-logo { top: 0; left: 0; position: absolute; /*needed to use z-index */ z-index: 3; height: 155px; width: 12em; overflow: visible; } #p-logo h5 { display: none; } #p-logo a, #p-logo a:hover { display: block; height: 155px; width: 12.2em; background-repeat: no-repeat; background-position: 35% 50% !important; text-decoration: none; } /* ** Search portlet */ #p-search { position: relative; z-index: 3; } input.searchButton { margin-top: 1px; font-size: 95%; } #searchGoButton { padding-left: .5em; padding-right: .5em; font-weight: bold; } #searchInput { width: 10.9em; margin: 0; font-size: 95%; } #p-search .pBody { padding: .5em .4em .4em .4em; text-align: center; } #p-search #searchform div div { margin-top: .4em; font-size: 95%; } /* ** the personal toolbar */ #p-personal { position: absolute; left: 0; top: 0; z-index: 0; } #p-personal { width: 100%; white-space: nowrap; padding: 0; margin: 0; border: none; background: none; overflow: visible; line-height: 1.2em; } #p-personal h5 { display: none; } #p-personal .portlet, #p-personal .pBody { z-index: 0; padding: 0; margin: 0; border: none; overflow: visible; background: none; } /* this is the ul contained in the portlet */ #p-personal ul { border: none; line-height: 1.4em; color: #2f6fab; padding: 0 2em 0 3em; margin: 0; text-align: right; list-style: none; z-index: 0; background: none; cursor: default; } #p-personal li { z-index: 0; border: none; padding: 0; display: inline; color: #2f6fab; margin-left: 1em; line-height: 1.2em; background: none; } #p-personal li a { text-decoration: none; color: #005896; padding-bottom: .2em; background: none; } #p-personal li a:hover { background-color: white; padding-bottom: .2em; text-decoration: none; } #p-personal li.active a:hover { background-color: transparent; } /* the icon in front of the user name, single quotes in bg url to hide it from iemac */ li#pt-userpage, li#pt-anonuserpage, li#pt-login { background: url(user.gif) top left no-repeat; padding-left: 20px; text-transform: none; } #p-personal ul { text-transform: lowercase; } #p-personal li.active { font-weight: bold; } /* ** the page-related actions- page/talk, edit etc */ #p-cactions { position: absolute; top: 1.3em; left: 11.5em; margin: 0; white-space: nowrap; width: 76%; line-height: 1.1em; overflow: visible; background: none; border-collapse: collapse; padding-left: 1em; list-style: none; font-size: 95%; } #p-cactions ul { list-style: none; } #p-cactions li { display: inline; border: 1px solid #aaa; border-bottom: none; padding: 0 0 .1em 0; margin: 0 .3em 0 0; overflow: visible; background: white; } #p-cactions li.selected { border-color: #fabd23; padding: 0 0 .2em 0; font-weight: bold; } #p-cactions li a { background-color: #fbfbfb; color: #002bb8; border: none; padding: 0 .8em .3em; position: relative; z-index: 0; margin: 0; text-decoration: none; } #p-cactions li.selected a { z-index: 3; padding: 0 1em .2em!important; background-color: white; } #p-cactions .new a { color: #ba0000; } #p-cactions li a:hover { z-index: 3; text-decoration: none; background-color: white; } #p-cactions h5 { display: none; } #p-cactions li.istalk { margin-right: 0; } #p-cactions li.istalk a { padding-right: .5em; } #p-cactions #ca-addsection a { padding-left: .4em; padding-right: .4em; } /* offsets to distinguish the tab groups */ li#ca-talk { margin-right: 1.6em; } li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { margin-left: 1.6em; } #p-cactions .pBody { font-size: 1em; background-color: transparent; color: inherit; border-collapse: inherit; border: 0; padding: 0; } #p-cactions .hiddenStructure { display: none; } #p-cactions li a { text-transform: lowercase; } #p-lang { position: relative; z-index: 3; } /* Override text-transform on languages where capitalization is significant */ .capitalize-all-nouns .portlet h5, .capitalize-all-nouns .portlet h6, .capitalize-all-nouns #p-personal ul, .capitalize-all-nouns #p-cactions ul li a { text-transform: none; } /* TODO: #t-iscite is only used by the Cite extension, come up with some * system which allows extensions to add to this file on the fly */ #t-ispermalink, #t-iscite { color: #999; } /* ** footer */ #footer { background-color: white; border-top: 1px solid #fabd23; border-bottom: 1px solid #fabd23; margin: .6em 0 1em 0; padding: .4em 0 1.2em 0; text-align: center; font-size: 90%; } #footer li { display: inline; margin: 0 1.3em; } #f-poweredbyico, #f-copyrightico { margin: 0 8px; position: relative; top: -2px; /* Bump it up just a tad */ } #f-poweredbyico { float: right; height: 1%; } #f-copyrightico { float: left; height: 1%; } .mw-htmlform-submit { font-weight: bold; padding-left: .3em; padding-right: .3em; margin-right: 2em; } /* js pref toc */ #preftoc { margin: 0; padding: 0; width: 100%; clear: both; } #preftoc li { background-color: #f0f0f0; color: #000; } #preftoc li { margin: 1px -2px 1px 2px; float: left; padding: 2px 0 3px 0; border: 1px solid #fff; border-right-color: #716f64; border-bottom: 0; position: relative; white-space: nowrap; list-style-type: none; list-style-image: none; z-index: 3; } #preftoc li.selected { font-weight: bold; background-color: #f9f9f9; border: 1px solid #aaa; border-bottom: none; cursor: default; top: 1px; padding-top: 2px; margin-right: -3px; } #preftoc > li.selected { top: 2px; } #preftoc a, #preftoc a:active { display: block; color: #000; padding: 0 .7em; position: relative; text-decoration: none; } #preftoc li.selected a { cursor: default; text-decoration: none; } #preferences { margin: 0; border: 1px solid #aaa; clear: both; padding: 1.5em; background-color: #F9F9F9; } .prefsection { border: none; padding: 0; margin: 0; } .prefsection legend { font-weight: bold; } .prefsection table, .prefsection legend { background-color: #F9F9F9; } .mainLegend { display: none; } td.htmlform-tip { font-size: x-small; padding: .2em 2em; color: #666; } .preferences-login { clear: both; margin-bottom: 1.5em; } .prefcache { font-size: 90%; margin-top: 2em; } div#userloginForm form, div#userlogin form#userlogin2 { margin: 0 3em 1em 0; border: 1px solid #aaa; clear: both; padding: 1.5em 2em; background-color: #f9f9f9; float: left; } .rtl div#userloginForm form, .rtl div#userlogin form#userlogin2 { float: right; } div#userloginForm table, div#userlogin form#userlogin2 table { background-color: #f9f9f9; } div#userloginForm h2, div#userlogin form#userlogin2 h2 { padding-top: 0; } div#userlogin .captcha, div#userloginForm .captcha { border: 1px solid #bbb; padding: 1.5em 2em; background-color: white; } #loginend, #signupend { clear: both; } #userloginprompt, #languagelinks { font-size: 85%; } #login-sectiontip { font-size: 85%; line-height: 1.2; padding-top: 2em; } #userlogin .loginText, #userlogin .loginPassword { width: 12em; } #userloginlink a, #wpLoginattempt, #wpCreateaccount { font-weight: bold; } /* ** IE/Mac fixes, hope to find a validating way to move this ** to a separate stylesheet. This would work but doesn't validate: ** @import("IEMacFixes.css"); */ /* tabs: border on the a, not the div */ * > html #p-cactions li { border: none; } * > html #p-cactions li a { border: 1px solid #aaa; border-bottom: none; } * > html #p-cactions li.selected a { border-color: #fabd23; } /* footer icons need a fixed width */ * > html #f-poweredbyico, * > html #f-copyrightico { width: 88px; } * > html #bodyContent, * > html #bodyContent pre { overflow-x: auto; width: 100%; padding-bottom: 25px; } /* more IE fixes */ /* float/negative margin brokenness */ * html #footer {margin-top: 0;} * html #column-content { display: inline; margin-bottom: 0; } * html div.editsection { font-size: smaller; } #pagehistory li.selected { position: relative; } /* Mac IE 5.0 fix; floated content turns invisible */ * > html #column-content { float: none; } * > html #column-one { position: absolute; left: 0; top: 0; } * > html #footer { margin-left: 13.2em; } .redirectText { font-size: 150%; margin: 5px; } .printfooter { display: none; } div.patrollink { clear: both; } span.newpage, span.minor, span.bot { font-weight: bold; } .sharedUploadNotice { font-style: italic; } span.updatedmarker { color: black; background-color: #0f0; } table.gallery { border: 1px solid #ccc; margin: 2px; padding: 2px; background-color: white; } table.gallery tr { vertical-align: top; } table.gallery td { vertical-align: top; background-color: #f9f9f9; border: solid 2px white; } /* Keep this temporarily so that cached pages will display right */ table.gallery td.galleryheader { text-align: center; font-weight: bold; } table.gallery caption { font-weight: bold; } div.gallerybox { margin: 2px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #ccc; margin: 2px; } div.gallerytext { overflow: hidden; font-size: 94%; padding: 2px 4px; } span.comment { font-style: italic; } span.changedby { font-size: 95%; } .previewnote { color: #c00; margin-bottom: 1em; } .previewnote p { text-indent: 3em; margin: 0.8em 0; } .editExternally { border: 1px solid gray; background-color: #ffffff; padding: 3px; margin-top: 0.5em; float: left; font-size: small; text-align: center; } .editExternallyHelp { font-style: italic; color: gray; } .toggle { margin-left: 2em; text-indent: -2em; } input#wpSummary { width: 80%; } /* @bug 1714 */ input#wpSave, input#wpDiff { margin-right: 0.33em; } #wpSave { font-weight: bold; } /* Classes for article validation */ table.revisionform_default { border: 1px solid #000000; } table.revisionform_focus { border: 1px solid #000000; background-color:#00BBFF; } tr.revision_tr_default { background-color:#EEEEEE; } tr.revision_tr_first { background-color:#DDDDDD; } p.revision_saved { color: green; font-weight:bold; } /* Allmessages table */ #allmessagestable th { background-color: #b2b2ff; } #allmessagestable tr.orig { background-color: #ffe2e2; } #allmessagestable tr.new { background-color: #e2ffe2; } #allmessagestable tr.def { background-color: #f0f0ff; } /* noarticletext */ div.noarticletext { border: 1px solid #ccc; background: #fff; padding: .2em 1em; color: #000; } div#searchTargetContainer { left: 10px; top: 10px; width: 90%; background: white; } div#searchTarget { padding: 3px; margin: 5px; background: #F0F0F0; border: solid 1px blue; } div#searchTarget ul li { list-style: none; } div#searchTarget ul li:before { color: orange; content: "\00BB \0020"; } div#searchTargetHide { float:right; border:solid 1px black; background:#DCDCDC; padding:2px; } #powersearch p { margin-top:0px; } div.multipageimagenavbox { border: solid 1px silver; padding: 4px; margin: 1em; background: #f0f0f0; } div.multipageimagenavbox div.thumb { border: none; margin-left: 2em; margin-right: 2em; } div.multipageimagenavbox hr { margin: 6px; } table.multipageimage td { text-align: center; } .templatesUsed { margin-top: 1.5em; } .mw-summary-preview { margin: 0.1em 0; } /* Friendlier slave lag warnings */ div.mw-lag-warn-normal, div.mw-lag-warn-high { padding: 3px; text-align: center; margin: 3px auto; } div.mw-lag-warn-normal { border: 1px solid #FFCC66; background-color: #FFFFCC; } div.mw-lag-warn-high { font-weight: bold; border: 2px solid #FF0033; background-color: #FFCCCC; } .MediaTransformError { background-color: #ccc; padding: 0.1em; } .MediaTransformError td { text-align: center; vertical-align: middle; font-size: 90%; } /* God-damned hack for the crappy layout */ .os-suggest { font-size: 127%; } /* Sometimes people don't want personal tools to be lowercase! */ .no-text-transform { text-transform: none; } ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=main.css Content-Type: text/css; charset=utf-8; name=main.css Content-Location: http://ru.wikipedia.org/skins-1.5/chick/main.css?233zz2 Content-Transfer-Encoding: 8bit /* ** MediaWiki 'chick' style sheet for PDAs or other small-screen devices. ** Copyright Timwi ** License: GPL (http://www.gnu.org/copyleft/gpl.html) ** ** Loosely based on Monobook by Gabriel Wicke */ body { font-family: sans-serif; color: Black; margin: 0; padding: 0.3em; } a { color: #002bb8; } a:visited { color: #5a3696; } a:active { color: #ffa500; } a.stub { color: #772233; } a.new, #p-personal a.new { color:#ba0000; } a.new:visited, #p-personal a.new:visited { color:#a55858; } img { border: none; vertical-align: middle; } p { margin: 0.4em 0em 0.5em 0em; line-height: 1.5em; } p img { margin: 0; } hr { height: 1px; color: #aaaaaa; background-color: #aaaaaa; border: 0; margin: 0.2em 0 0.2em 0; } h1, h2, h3, h4, h5, h6 { color: Black; background: none; font-weight: normal; margin: 0; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom: 1px solid #aaaaaa; } .editsection { font-weight: normal; } h1 { font-size: 188%; } h1 .editsection { font-size: 53.2%; } h2 { font-size: 150%; } h2 .editsection { font-size: 66.7%; } h3, h4, h5, h6 { border-bottom: none; font-weight: bold; } h3 { font-size: 132%; } h3 .editsection { font-size: 75.8%; } h4 { font-size: 116%; } h4 .editsection { font-size: 86.2%; } h5 { font-size: 100%; } h6 { font-size: 80%; } h6 .editsection { font-size: 125%; } ul { line-height: 1.5em; margin: 0.3em 0 0 1.5em; padding:0; } ol { line-height: 1.5em; margin: 0.3em 0 0 3.2em; padding:0; list-style-image: none; } li { margin-bottom: 0.1em; } dt { font-weight: bold; margin-bottom: 0.1em; } dl{ margin-top: 0.2em; margin-bottom: 0.5em; } dd { line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; } fieldset { border: 1px solid #2f6fab; margin: 1em 0em 1em 0em; padding: 0em 1em 1em 1em; line-height: 1.5em; } legend { background: White; padding: 0.5em; font-size: 95%; } form { border: none; margin: 0; } textarea { border: 1px solid #2f6fab; color: Black; background-color: white; width: 100%; padding: 0.1em; overflow: auto; } /* hide this from ie/mac and konq2.2 */ @media All { head:first-child+body input { visibility: visible; border: 1px solid #2f6fab; color: Black; background-color: white; vertical-align: middle; padding: 0.2em; } } input.historysubmit { padding: 0 0.3em 0.3em 0.3em !important; font-size: 94%; cursor: pointer; height: 1.7em !important; margin-left: 1.6em; } input[type="radio"], input[type="checkbox"] { border:none; } select { border: 1px solid #2f6fab; color: Black; vertical-align: top; } abbr, acronym, .explain { border-bottom: 1px dotted Black; color: Black; background: none; cursor: help; } q { font-family: Times, "Times New Roman", serif; font-style: italic; } code { background-color: #f9f9f9; } pre { padding: 1em; border: 1px dashed #2f6fab; color: Black; background-color: #f9f9f9; line-height: 1.1em; } /* ** the main content area */ span.subpages { display: block; } /* Some space under the headers in the content area */ #bodyContent h1, #bodyContent h2 { margin-bottom:0.6em; } #bodyContent h3, #bodyContent h4, #bodyContent h5 { margin-bottom: 0.3em; } #firstHeading { margin-bottom:0.1em; } /* user notification thing */ .usermessage { background-color: #ffce7b; border: 1px solid #ffa500; color: Black; font-weight: bold; margin: 0.1em 0 0 0; padding: 2px 5px; vertical-align: middle; } #siteNotice { text-align: center; font-size: 95%; padding: 0 0.9em 0 0.9em; } #siteNotice p { margin: 0; padding: 0; } .error { color: red; font-size: larger; } .catlinks { border:1px solid #aaaaaa; background-color:#f9f9f9; padding: 2px 5px; margin: 0.1em 0 0 0; clear: both; } .catlinks { margin: 0; padding: 0; } /* currently unused, intended to be used by a metadata box in the bottom-right corner of the content area */ .documentDescription { /* The summary text describing the document */ font-weight: bold; display: block; margin: 1em 0em; line-height: 1.5em; } .documentByLine { text-align: right; font-size: 90%; clear: both; font-weight: normal; color: #76797c; } /* emulate center */ .center { width: 100%; text-align: center; } *.center * { margin-left: auto; margin-right: auto; } /* small for tables and similar */ .small, .small * { font-size: 94%; } table.small { font-size: 100% } /* ** content styles */ #toc { /*border:1px solid #2f6fab;*/ border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; font-size: 95%; } #toc ul { margin-left: 2em; } #toc .toctoggle { font-size: 94%; } #toc .editsection { margin-top: 0.7em; font-size: 94%; } /* images */ div.floatright, table.floatright { clear: right; float: right; margin: 0; position: relative; border: 0.5em solid White; border-width: 0.5em 0 0.8em 1.4em; } div.floatright p { font-style: italic; } div.floatleft, table.floatleft { float: left; clear: left; margin: 0.3em 0.5em 0.5em 0; position: relative; border: 0.5em solid White; border-width: 0.5em 1.4em 0.8em 0; } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: 0.5em; border-style: solid; border-color: White; width: auto; } div.thumb div { border:1px solid #cccccc; padding: 3px !important; background-color:#f9f9f9; font-size: 94%; text-align: center; overflow: hidden; } div.thumb div a img { border:1px solid #cccccc; } div.thumb div div.thumbcaption { border: none; text-align: left; line-height: 1.4em; padding: 0.3em 0 0.1em 0; } div.magnify { float: right; border: none !important; background: none !important; } div.magnify a, div.magnify img { display: block; border: none !important; background: none !important; } div.tright { clear: right; float: right; border-width: 0.5em 0 0.8em 1.4em; } div.tleft { float: left; clear: left; margin-right:0.5em; border-width: 0.5em 1.4em 0.8em 0; } img.thumbborder { border: 1px solid #dddddd; } .hiddenStructure { display: none; } /* ** classes for special content elements like town boxes ** intended to be referenced directly from the wiki src */ /* ** User styles */ /* table standards */ table.rimage { float:right; position:relative; margin-left:1em; margin-bottom:1em; text-align:center; } .toccolours { border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; font-size: 95%; } /* ** edit views etc */ .special li { line-height: 1.4em; margin: 0; padding: 0; } a.external { color: #3366bb; } div#footer { text-align: center; } ul#f-list li { list-style: none; text-align: center; } div.portlet { margin: 0.5em 0; } .redirectText { font-size:150%; margin:5px; } ul.special li.not-patrolled, ol.special li.not-patrolled { background-color: #ffa; } div.patrollink { font-size: 75%; text-align: right; } span.newpage, span.minor { font-weight: bold; } span.updatedmarker { color:black; background-color:#00FF00; } table.gallery { border: 1px solid #cccccc; margin: 2px; padding: 2px; background-color:#ffffff; } table.gallery tr { vertical-align:top; } table.gallery td { vertical-align:top; background-color:#f9f9f9; border: solid 2px white; } div.gallerybox { margin: 2px; width: 150px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #cccccc; margin: 2px; } div.gallerytext { overflow: hidden; font-size: 94%; padding: 2px 4px; } #xjump-to-nav { display: none; } .templatesUsed { margin-top: 1.5em; } .printfooter { display: none; } #footer { background-color: white; border-top: 1px solid #fabd23; border-bottom: 1px solid #fabd23; margin: .6em 0 1em 0; padding: .4em 0 1.2em 0; text-align: center; font-size: 90%; } #f-poweredbyico, #f-copyrightico { display: inline; } ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=flaggedrevs.css Content-Type: text/css; charset=utf-8; name=flaggedrevs.css Content-Location: http://ru.wikipedia.org/w/extensions/FlaggedRevs/flaggedrevs.css?59 Content-Transfer-Encoding: 8bit /* Every time you change this CSS please bump $wgFlaggedRevStyleVersion in FlaggedRevs.php */ /* Standard User Interface */ .flaggedrevs_basic, .flaggedrevs_quality, .flaggedrevs_pristine, .flaggedrevs_notice, .flaggedrevs_editnotice, .flaggedrevs_diffnotice, .flaggedrevs_warning, .flaggedrevs_preview { border: 1px solid #aaa; padding: 5px; font-weight: normal; line-height: 1.5em; margin: .5em 1em 0em 0em; text-align: center; clear: both; } .flaggedrevs_basic { background-color: #f0f8ff; } .flaggedrevs_quality { background-color: #f0fff0; } .flaggedrevs_pristine { background-color: #fffff0; } .flaggedrevs_notice { background-color: #f9f9f9; } .flaggedrevs_preview { background-color: #f9f9f9; color: #8b0000; } .flaggedrevs_warning { font-size: 85%; background-color: #fffff0; margin: 0em 1em 0em 0em; } .flaggedrevs_editnotice { font-size: 85%; background-color: #f9f9f9; } .flaggedrevs_diffnotice { font-size: 85%; background-color: #f9f9f9; } .flaggedrevs_notes { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 85%; margin-left: 50px; margin-right: 50px; text-align: center; } .fr-text-value { width: 100px; } .fr-checkbox { padding: 0px; width: 16px; height: 16px; position: relative; float: left; top: 0px; right: 0px; background-repeat: no-repeat; background-position: 0px 0px; background-image: url(../FlaggedRevs/img/boxC.png); } .fr-marker-20, .fr-marker-40, .fr-marker-60, .fr-marker-80, .fr-marker-100 { background-position: bottom left; background-repeat: no-repeat; padding-bottom: 3px; } .fr-marker-20 { background-image: url(../FlaggedRevs/img/bar_20.png); } .fr-marker-40 { background-image: url(../FlaggedRevs/img/bar_40.png); } .fr-marker-60 { background-image: url(../FlaggedRevs/img/bar_60.png); } .fr-marker-80 { background-image: url(../FlaggedRevs/img/bar_80.png); } .fr-marker-100 { background-image: url(../FlaggedRevs/img/bar_100.png); } /* Short User Interface */ .flaggedrevs_short { border: 0px; background-color: #f9f9f9; padding: 1px; font-size: 95%; font-weight: normal; margin: 0em 0em 0em 1em; float: right; text-align: left; max-width: 450px; line-height: 16px; } .fr-text { height: 1em; line-height: 1em; margin: 0px 7px 0px 0px; padding: 0px; font-weight: bold; width: 80px; } .fr-value20, .fr-value40, .fr-value60, .fr-value80, .fr-value100 { height: 1em; line-height: 1em; width: 95px; float: left; background-repeat: no-repeat; background-position: 50% 50%; text-align: center; } .fr-value20 { background-image: url(../FlaggedRevs/img/fr-marker-20.png); } .fr-value40 { background-image: url(../FlaggedRevs/img/fr-marker-40.png); } .fr-value60 { background-image: url(../FlaggedRevs/img/fr-marker-60.png); } .fr-value80 { background-image: url(../FlaggedRevs/img/fr-marker-80.png); } .fr-value100 { background-image: url(../FlaggedRevs/img/fr-marker-100.png); } .flaggedrevs-box0, .flaggedrevs-box1, .flaggedrevs-box2, .flaggedrevs-box3 { border: 1px solid #aaa; text-align: center; font-size: 85%; clear: both; } .flaggedrevs-box0 { background-color: #f9f9f9; } .flaggedrevs-box1 { background-color: #f0f8ff; } .flaggedrevs-box2 { background-color: #f0fff0; } .flaggedrevs-box3 { background-color: #fffff0; } /* Both User Interfaces */ .flaggedrevs-color-0 { background-color: #f9f9f9; } .flaggedrevs-color-1 { background-color: #f0f8ff; } .flaggedrevs-color-2 { background-color: #f0fff0; } .flaggedrevs-color-3 { background-color: #fffff0; } .flaggedrevs-unreviewed { background-color: #fffff0; } .flaggedrevs-unreviewed2 { background-color: #faebd7; } .flaggedrevs_toggle { color: blue; white-space: nowrap; cursor:pointer; } .fr-icon-current, .fr-icon-stable, .fr-icon-quality, .fr-icon-locked, .fr-icon-unlocked { padding: 0px; margin: 0em .2em 0em 0em; width: 16px; height: 16px; float: left; background-repeat: no-repeat; background-position: center center; } .fr-icon-current { background-image: url(../FlaggedRevs/img/1.png); } .fr-icon-stable { background-image: url(../FlaggedRevs/img/2.png); } .fr-icon-quality { background-image: url(../FlaggedRevs/img/3.png); } .fr-icon-locked { background-image: url(../FlaggedRevs/img/lock-closed.png); } .fr-icon-unlocked { width: 23px; background-image: url(../FlaggedRevs/img/lock-open.png); } .fr-diff-ratings { font-size: 90%; line-height: 1em; } .fr-diff-to-stable { line-height: 1em; } .fr-hist-stable-user, .fr-hist-quality-user, .fr-hist-autoreviewed { font-weight: bold; } /* Site notices */ .fr-backlognotice { padding: 3px; margin: 5px; border: 1px solid #990000; background-color: #f5ecec; } .fr-watchlist-old-notice { padding: 3px; margin: 5px; border: 1px solid #990000; background-color: #FEECD7; } /* Special pages */ .fr-pending-long { background-color: #f5ecec; } .fr-pending-long2 { background-color: #f5dddd; } .fr-pending-long3 { background-color: #e2caca; } .fr-unreviewed-unwatched { background-color: #faebd7; } .fr-under-review { background-color: yellow; } /* Review form */ .flaggedrevs_reviewform { background-color: #f9f9f9; font-size: 90%; clear: both; } .fr-rating-controls, .fr-rating-controls-disabled { vertical-align: middle; line-height: 1em; } .fr-rating-controls-disabled { color: GrayText; } .fr-rating-options { margin-right: 1.5em; } .fr-rating-option-0 { background-color: #f5ecec; } .fr-rating-option-1 { background-color: #f0f8ff; } .fr-rating-option-2 { background-color: #f0fff0; } .fr-rating-option-3 { background-color: #fef0db; } .fr-rating-option-4 { background-color: #fffff0; } .fr-diff-patrollink { text-align: center; } .fr-notes-box { width: 95%; margin: 0em 1em 0em .5em; } .fr-comment-box { margin-top: .25em; } .fr-rating-dave { background-color: #E0ECF8; } .fr-rating-rave { background-color: #E0F8EC; } .fr-hiddenform { display: none; } /* Reader feedback form */ .fr_reader_feedback_plot { background-color: #F8F8F8; } .fr_reader_feedback_graph, .fr_reader_feedback_ratings, .fr_reader_feedback_users { width: 100%; overflow: auto; } .fr_reader_feedback_users { background-color: #F0F0F0; max-height:410px; font-size: 90%; } .fr_reader_feedback_table { margin: .5em .5em .5em .5em; background: #f9f9f9; border: 1px #AAA solid; border-collapse: collapse; font-size: 85%; } .fr_reader_feedback_table th, .fr_reader_feedback_table td { border: 1px #AAA solid; padding: 0.3em; } ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://ru.wikipedia.org/w/index.php?title=MediaWiki:Common.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit /*MediaWiki interface*/ .mw-plusminus-pos {color:#006400} .mw-plusminus-neg {color:#8B0000} .portlet li.FA {list-style-image:url('http://upload.wikimedia.org/wikipedia/en/d/d4/Monobook-bullet-star.png')} .portlet li.GA {list-style-image:url('http://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/QS_blue_star_small.png/9px-QS_blue_star_small.png')} .allpagesredirect {font-style:italic} #file img {background:url("http://upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png") repeat;} #wpSave {font-weight:bold} #userSummaryButtonsA a { white-space:nowrap; background: #C2F2FF; border: 1px solid #9BD5F5; padding: 0px 2px; margin: 2px; cursor: pointer; font-size: 80%; line-height: 17px; color: #5B5B5B } #userSummaryButtonsA a:hover { background: #B1EBFF; border: 1px solid #64BDF0; color: black; text-decoration: none } .warningbox { background: #FFFF99; border: 1px solid #EEEE00; background-image: url('http://upload.wikimedia.org/wikipedia/commons/thumb/6/62/Nuvola_apps_important.png/30px-Nuvola_apps_important.png') } .informationbox { background: #F4FBFF; border: 1px solid #D5D9E6; background-image: url('http://upload.wikimedia.org/wikipedia/commons/thumb/2/28/Information.svg/30px-Information.svg.png') } .warningbox, .informationbox { padding: 10px 10px 10px 50px; background-position: 10px center; background-repeat: no-repeat; vertical-align: middle; font-size: smaller; } /* [[Википедия:Оформление таблиц]] */ table.standard, table.wide {border:1px solid #AAAAAA; border-collapse: collapse} table.standard th, table.wide th, table.wikitable th {border:1px solid #AAAAAA; padding-left:0.2em; padding-right:0.2em; background-color:#EEEEFF} table.standard td, table.wide td {border: 1px solid #AAAAAA; padding-left:0.2em; padding-right:0.2em} table.standard caption, table.wide caption, table.tiles caption {font-weight:bold; padding-top: 0.2em; padding-bottom:0.2em} table.wide {width: 100%} table.simple {border-color:#AAAAAA; border-collapse:collapse} table.simple th, table.simple td {border-color:#AAAAAA; padding-left:0.2em; padding-right:0.2em} table.tiles {border-collapse:separate; border-spacing:2px} table.tiles th {padding-left:0.2em; padding-right:0.2em; background-color: #EEEEFF} table.tiles td {padding-left:0.2em; padding-right:0.2em; background-color: #F0F0F0} table.graytable {background:#f0f0f0; padding:1em; width: 100%} table.graytable caption {padding:0.5em 0 0 0; background:#f0f0f0; font-size:100%; font-weight:bold} table.graytable caption span.subcaption {font-size:80%; font-weight:normal} table.graytable th, table.graytable td {font-size:80%} table.wikitable, table.prettytable {margin:1em 1em 1em 0; background:#F9F9F9; border:1px solid #AAAAAA; border-collapse:collapse} table.wikitable th, table.wikitable td, table.prettytable th, table.prettytable td {border:1px solid #AAAAAA; padding:0.2em} table.wikitable caption, table.prettytable caption {margin-left:inherit; margin-right:inherit; font-size:larger; font-weight:bold} table.prettytable th {background:#f2f2f2} tr.highlight th {background-color: #EEEEFF} tr.highlight td {background-color: #FFFFEE} tr.bright th {background-color: #CCCCFF} tr.bright td {background-color: #FFEECC} tr.shadow th, tr.shadow td {background-color: #F0F0F0} tr.dark th, tr.dark td {background-color: #CCCCCC} table th.highlight {background-color: #EEEEFF} table td.highlight {background-color: #FFFFEE} table th.bright {background-color: #CCCCFF} table td.bright {background-color: #FFEECC} table th.shadow, table td.shadow {background-color: #F0F0F0} table th.dark, table td.dark {background-color: #CCCCCC} table th.transparent, table td.transparent, .transparent {background-color: transparent} table.toccolours th {background-color: #ccccff} /* {ambox} */ table.ambox { width: auto; margin: 0 10%; border-collapse: collapse; background: #FBFBFB; border: 1px solid #AAAAAA; border-left: 10px solid #1E90FF } table.ambox th, table.ambox td { padding: 0.25em 0.5em; } table.ambox td.ambox-widthhack { padding: 0; } table.ambox td.ambox-text { width:100%; } table.ambox td.ambox-text .ambox-text-small { font-size:smaller; } table.ambox td.ambox-image { width: 52px; padding: 2px 0px 2px 0.5em; text-align: center; } table.ambox td.ambox-imageright { width: 52px; padding: 2px 4px 2px 0px; text-align: center; } table.ambox td.ambox-image div, table.ambox td.ambox-imageright div {width:52px} /* Фикс для изображений разной ширины */ table.ambox-delete, table.ambox-serious { border-left: 10px solid #B22222 } table.ambox-content { border-left: 10px solid #F28500 } table.ambox-style { border-left: 10px solid #F4C430 } table.ambox-good { border-left: 10px solid #66CC44 } table.ambox-discussion { border-left: 10px solid #339966 } table.ambox-notice { border-left: 10px solid #1E90ff } table.ambox-merge { border-left: 10px solid #9932CC } table.ambox.ambox-mini { float: right; clear: right; margin: 0 0 0.5em 1em; width: 20%; } .infobox { border: 1px solid #aaaaaa; background-color: #f9f9f9; margin-bottom: 0.5em; margin-left: 1em; padding:.4em; float: right; clear: right; font-size: 90%; width: 18em; vertical-align: middle; } .infobox td, .infobox th {vertical-align:top} table.infobox td p {margin:0} /* temporarily for [[Template:Карточка]]*/ .notice { text-align: justify; margin: 1em 0.5em; padding: 0.5em; } .messagebox { border: thin solid #aaaaaa; background-color: #f9f9f9; width: 88%; margin: 0 auto 1em auto; padding:.4em; vertical-align: middle; font-size: 90% } blockquote { margin:0.7em 0 0.7em 5%; padding:0.7em 2% 0.7em 4%; background-color:#F5F5F5; } ol.references {font-size:100%} .references-small {font-size:90%} /* highlight focused footnotes and references in some browsers */ sup.reference:target, ol.references li:target, cite:target {background-color:#DEF} sup.reference:target {font-weight:bold} /* scrollable references */ .references-scroll { overflow: auto; padding: 3px; } /* fix for line-breaking references */ sup, sub {line-height:1em} .plainlinksneverexpand, .plainlinksneverexpand a {background:none !important; padding:0 !important} .plainlinksneverexpand a.external.text:after, .plainlinksneverexpand a.external.autonumber:after, .plainlinksneverexpand .urlexpansion {display:none !important} .clickable-image a:hover {text-decoration: none} .hiddenStructure {display:none; speak:none} .dablink, .rellink {font-style:italic; padding-left:2em} #disambig {border-top: 3px double #cccccc; border-bottom: 3px double #cccccc} /*{TOClimit}*/ .toclimit-2 .toclevel-2, .toclimit-3 .toclevel-3, .toclimit-4 .toclevel-4, .toclimit-5 .toclevel-5, .toclimit-6 .toclevel-6, .toclimit-7 .toclevel-7 {display:none} /* {IPA}, {Unicode} and {Polytonic} */ .IPA { font-family: "Chrysanthi Unicode", "Doulos SIL", Gentium, GentiumAlt, Code2000, "TITUS Cyberbit Basic", "DejaVu Sans", "Bitstream Cyberbit", "Arial Unicode MS", "Lucida Sans Unicode", "Hiragino Kaku Gothic Pro", "Matrix Unicode"; font-family /**/:inherit; } .Unicode { font-family: Code2000, Code2001, "Free Serif", "TITUS Cyberbit Basic", "Doulos SIL", "Chrysanthi Unicode", "Bitstream Cyberbit", "Bitstream CyberBase", Thryomanes, Gentium, GentiumAlt, "Lucida Grande", "Free Sans", "Arial Unicode MS", "Microsoft Sans Serif", "Lucida Sans Unicode"; font-family /**/:inherit; } .polytonic { font-family: "Athena Unicode", Gentium, "Palatino Linotype", "Arial Unicode MS", "Lucida Sans Unicode", "Lucida Grande", Code2000; font-family /**/:inherit; } /* PDF icon next to external PDF link for Mozilla and Opera and for {PDFlink} template */ a[href$=".pdf"].external, a[href*=".pdf?"].external, a[href*=".pdf#"].external, a[href$=".PDF"].external, a[href*=".PDF?"].external, a[href*=".PDF#"].external, span.PDFlink a {background: url(http://upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif) center right no-repeat !important; padding-right: 18px !important} /* Clickable speaker in {Template:Audio} ... */ .audiolink a { background: url("http://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Loudspeaker.svg/11px-Loudspeaker.svg.png") center left no-repeat !important; padding-left: 16px !important; padding-right: 0 !important; } /* Medialist templates {Listen}, {Multi-listen_start}, {Video}, {Multi-video_start} */ div.listenlist { background: url("http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/Gnome-speakernotes.png/30px-Gnome-speakernotes.png"); padding-left: 40px; } div.videolist, div.multivideolist { background: url("http://upload.wikimedia.org/wikipedia/en/thumb/2/20/Tango-video-x-generic.png/40px-Tango-video-x-generic.png"); padding-left: 50px; } div.medialist { min-height: 50px; margin: 1em; background-position: top left; background-repeat: no-repeat; } div.medialist ul { list-style-type: none; list-style-image: none; margin: 0; } div.medialist ul li { padding-bottom: 0.5em; } div.medialist ul li li { font-size: 91%; padding-bottom: 0; } /* {Навигация} */ table.navigation-box th, table.navigation-box td { vertical-align: middle; height: 30px; } /* {Навигационная таблица} */ table.navbox { background-color: #f9f9f9; border: 1px solid #aaa; clear: both; font-size: 90%; margin: 1em 0em 0em; padding: 2px; width: 100%; } table.navbox th { background-color: #ccf; padding-left: 1em; padding-right: 1em; text-align: right; } /*{Навигационная полоса}, {Hider}, ... */ div.Boxmerge, div.NavFrame { margin: 0px; padding: 2px; border: 1px solid #aaa; text-align: center; border-collapse: collapse; font-size: 95%; } div.Boxmerge div.NavFrame { border-style: none; border-style: hidden; } div.NavFrame + div.NavFrame { border-top-style: none; border-top-style: hidden; } div.NavPic { background-color: #fff; margin: 0px; padding: 2px; float: left; } div.NavFrame div.NavHead { height: 1.6em; font-weight: bold; font-size: 100%; background-color: #efefef; position:relative; } div.NavFrame p, div.NavFrame div.NavContent, div.NavFrame div.NavContent p { font-size: 100% } div.NavEnd { margin: 0px; padding: 0px; line-height: 1px; clear: both; } div.NavShow, div.NavHide { display: none; } a.NavToggle { position:absolute; top:0px; right:3px; font-weight:normal; font-size:smaller; } .messagebox.standard-talk { border: 1px solid #c0c090; background-color: #f8eaba } .messagebox .floatleft { vertical-align: middle; clear: both; margin: 2px; padding: 0 } .messagebox .image { margin: 0; padding: 0 } /* {coord}s */ #coordinates { position:absolute; z-index:1; right:9em; top:3.7em; float:right; line-height:1.5em; text-align:right; font-size:85%; white-space:nowrap; } #coordinates, .coordinates { text-transform:none; margin:0; padding:0; } .geo-google { font-family:serif; font-weight:bold; line-height:1em; } .geo-geo-dec .geo-dec, .geo-geo-dms .geo-dms {display:inline} .geo-geo-dec .geo-dms, .geo-geo-dms .geo-dec, .geo-multi-punct {display:none} .geo {white-space:nowrap} /* FlaggedRevs */ #mw-revisiontag, #mw-revisiontag-edit, #mw-oldreviewed-notice, li#ca-stable, .fr-diff-ratings, div.fr-diff-to-stable, ul#pagehistory small {display:none} .unpatrolled {visibility:hidden} .flaggedrevs-unreviewed, .flaggedrevs-unreviewed2, .flaggedrevs-color-1 {background-color:transparent} /*Special:Statistics*/ .statistics-group-import, .statistics-group-transwiki, .statistics-group-developer, .statistics-group-boardvote, .statistics-group-reviewer, .statistics-group-steward {display:none} /* Thumbnail fixes */ div.thumbinner img { background-color: #FFFFFF } div.thumb { border-color: transparent } ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://ru.wikipedia.org/w/index.php?title=MediaWiki:Print.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit body.ns-0 .navbox, body.ns-0 .NavFrame, body.ns-0 .metadata, .dablink, #catlinks {display: none} .toccolours {border: 1px solid #aaa} .reflist4 {height:auto !important} .references-scroll { max-height: none !important; overflow: visible !important; } ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://ru.wikipedia.org/w/index.php?title=MediaWiki:Handheld.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit /* CSS placed here will affect handheld devices based on the skin configured in $wgHandheldStyle */ ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline Content-Type: image/png Content-Location: http://upload.wikimedia.org/wikipedia/en/1/18/Monobook-bullet.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAkAAAANAQMAAABBztZFAAAABlBMVEUAAwBjjJzG 2b5OAAAAAXRSTlMAQObYZgAAABBJREFUCNdjYMAG7FARAwMADXkBNzRuJgIAAAAA SUVORK5CYII= ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://ru.wikipedia.org/w/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit #siteSub { /* "From Wikipedia, the free encyclopedia" */ display: inline; font-size: 92%; font-weight: normal; } #toc {margin-top: 0.5em} #ca-edit a {font-weight: bold} /* encourage newcomers */ /* Light blue background except on articles and portals; need 32bit color to see difference */ #content, #p-cactions li a {background: #F8FCFF} .ns-0 #content, .ns-100 #content, .ns-0 #p-cactions li a, .ns-100 #p-cactions li a {background-color: white} div.thumb {border-color: #F8FCFF} .ns-0 div.thumb, .ns-100 div.thumb {border-color: white} body.ns--1 table, form table {background: transparent} /* Hide some stuff on the main page */ body.page-Заглавная_страница #t-cite, body.page-Заглавная_страница #lastmod, body.page-Заглавная_страница #siteSub, body.page-Заглавная_страница #contentSub, body.page-Заглавная_страница h1.firstHeading, body.page-Портал_Заглавная_страница #t-cite, body.page-Портал_Заглавная_страница #lastmod, body.page-Портал_Заглавная_страница #siteSub, body.page-Портал_Заглавная_страница #contentSub, body.page-Портал_Заглавная_страница h1.firstHeading { display: none !important } /* Smaller "Перейти" (Go) button, so buttons fit on one line */ #searchGoButton {padding: 0} .portlet li { /* slightly different bullet, compat. with li.FA star */ list-style-image: url('http://upload.wikimedia.org/wikipedia/en/1/18/Monobook-bullet.png') } /* См. Шаблон:Right-uppermost image */ div#floating_object.metadata { position: absolute; right: 10px; top: 10px; z-index: 100; } ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://ru.wikipedia.org/w/index.php?title=-&action=raw&maxage=2678400&gen=css Content-Transfer-Encoding: 8bit /* generated user stylesheet */ a.new, #quickbar a.new { color: #CC2200; } ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=wikibits.js Content-Type: application/x-javascript; charset=utf-8; name=wikibits.js Content-Location: http://ru.wikipedia.org/skins-1.5/common/wikibits.js?233zz2 Content-Transfer-Encoding: Base64 Ly8gTWVkaWFXaWtpIEphdmFTY3JpcHQgc3VwcG9ydCBmdW5jdGlvbnMKCnZhciBj bGllbnRQQyA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTsgLy8g R2V0IGNsaWVudCBpbmZvCnZhciBpc19nZWNrbyA9IC9nZWNrby8udGVzdCggY2xp ZW50UEMgKSAmJgoJIS9raHRtbHxzcG9vZmVyfG5ldHNjYXBlXC83XC4wLy50ZXN0 KGNsaWVudFBDKTsKdmFyIHdlYmtpdF9tYXRjaCA9IGNsaWVudFBDLm1hdGNoKC9h cHBsZXdlYmtpdFwvKFxkKykvKTsKaWYgKHdlYmtpdF9tYXRjaCkgewoJdmFyIGlz X3NhZmFyaSA9IGNsaWVudFBDLmluZGV4T2YoJ2FwcGxld2Via2l0JykgIT0gLTEg JiYKCQljbGllbnRQQy5pbmRleE9mKCdzcG9vZmVyJykgPT0gLTE7Cgl2YXIgaXNf c2FmYXJpX3dpbiA9IGlzX3NhZmFyaSAmJiBjbGllbnRQQy5pbmRleE9mKCd3aW5k b3dzJykgIT0gLTE7Cgl2YXIgd2Via2l0X3ZlcnNpb24gPSBwYXJzZUludCh3ZWJr aXRfbWF0Y2hbMV0pOwp9CnZhciBpc19raHRtbCA9IG5hdmlnYXRvci52ZW5kb3Ig PT0gJ0tERScgfHwKCSggZG9jdW1lbnQuY2hpbGROb2RlcyAmJiAhZG9jdW1lbnQu YWxsICYmICFuYXZpZ2F0b3IudGFpbnRFbmFibGVkICk7Ci8vIEZvciBhY2Nlc3Nr ZXlzOyBub3RlIHRoYXQgRkYzKyBpcyBpbmNsdWRlZCBoZXJlIQp2YXIgaXNfZmYy ID0gL2ZpcmVmb3hcL1syLTldfG1pbmVmaWVsZFwvMy8udGVzdCggY2xpZW50UEMg KTsKdmFyIGlzX2ZmMl8gPSAvZmlyZWZveFwvMi8udGVzdCggY2xpZW50UEMgKTsK Ly8gVGhlc2UgYXJlbid0IHVzZWQgaGVyZSwgYnV0IHNvbWUgY3VzdG9tIHNjcmlw dHMgcmVseSBvbiB0aGVtCnZhciBpc19mZjJfd2luID0gaXNfZmYyICYmIGNsaWVu dFBDLmluZGV4T2YoJ3dpbmRvd3MnKSAhPSAtMTsKdmFyIGlzX2ZmMl94MTEgPSBp c19mZjIgJiYgY2xpZW50UEMuaW5kZXhPZigneDExJykgIT0gLTE7CmlmIChjbGll bnRQQy5pbmRleE9mKCdvcGVyYScpICE9IC0xKSB7Cgl2YXIgaXNfb3BlcmEgPSB0 cnVlOwoJdmFyIGlzX29wZXJhX3ByZXNldmVuID0gd2luZG93Lm9wZXJhICYmICFk b2N1bWVudC5jaGlsZE5vZGVzOwoJdmFyIGlzX29wZXJhX3NldmVuID0gd2luZG93 Lm9wZXJhICYmIGRvY3VtZW50LmNoaWxkTm9kZXM7Cgl2YXIgaXNfb3BlcmFfOTUg PSAvb3BlcmFcLyg5Lls1LTldfFsxLTldWzAtOV0pLy50ZXN0KCBjbGllbnRQQyAp Owp9CgovLyBHbG9iYWwgZXh0ZXJuYWwgb2JqZWN0cyB1c2VkIGJ5IHRoaXMgc2Ny aXB0LgovKmV4dGVybiB0YSwgc3R5bGVwYXRoLCBza2luICovCgovLyBhZGQgYW55 IG9ubG9hZCBmdW5jdGlvbnMgaW4gdGhpcyBob29rIChwbGVhc2UgZG9uJ3QgaGFy ZC1jb2RlIGFueSBldmVudHMgaW4gdGhlIHhodG1sIHNvdXJjZSkKdmFyIGRvbmVP bmxvYWRIb29rOwoKaWYgKCF3aW5kb3cub25sb2FkRnVuY3RzKSB7Cgl2YXIgb25s b2FkRnVuY3RzID0gW107Cn0KCmZ1bmN0aW9uIGFkZE9ubG9hZEhvb2soaG9va0Z1 bmN0KSB7CgkvLyBBbGxvd3MgYWRkLW9uIHNjcmlwdHMgdG8gYWRkIG9ubG9hZCBm dW5jdGlvbnMKCWlmKCFkb25lT25sb2FkSG9vaykgewoJCW9ubG9hZEZ1bmN0c1tv bmxvYWRGdW5jdHMubGVuZ3RoXSA9IGhvb2tGdW5jdDsKCX0gZWxzZSB7CgkJaG9v a0Z1bmN0KCk7ICAvLyBidWcgaW4gTVNJRSBzY3JpcHQgbG9hZGluZwoJfQp9Cgpm dW5jdGlvbiBob29rRXZlbnQoaG9va05hbWUsIGhvb2tGdW5jdCkgewoJYWRkSGFu ZGxlcih3aW5kb3csIGhvb2tOYW1lLCBob29rRnVuY3QpOwp9CgpmdW5jdGlvbiBp bXBvcnRTY3JpcHQocGFnZSkgewoJLy8gVE9ETzogbWlnaHQgd2FudCB0byBpbnRy b2R1Y2UgYSB1dGlsaXR5IGZ1bmN0aW9uIHRvIG1hdGNoIHdmVXJsZW5jb2RlKCkg aW4gUEhQCgl2YXIgdXJpID0gd2dTY3JpcHQgKyAnP3RpdGxlPScgKwoJCWVuY29k ZVVSSUNvbXBvbmVudChwYWdlLnJlcGxhY2UoLyAvZywnXycpKS5yZXBsYWNlKC8l MkYvaWcsJy8nKS5yZXBsYWNlKC8lM0EvaWcsJzonKSArCgkJJyZhY3Rpb249cmF3 JmN0eXBlPXRleHQvamF2YXNjcmlwdCc7CglyZXR1cm4gaW1wb3J0U2NyaXB0VVJJ KHVyaSk7Cn0KIAp2YXIgbG9hZGVkU2NyaXB0cyA9IHt9OyAvLyBpbmNsdWRlZC1z Y3JpcHRzIHRyYWNrZXIKZnVuY3Rpb24gaW1wb3J0U2NyaXB0VVJJKHVybCkgewoJ aWYgKGxvYWRlZFNjcmlwdHNbdXJsXSkgewoJCXJldHVybiBudWxsOwoJfQoJbG9h ZGVkU2NyaXB0c1t1cmxdID0gdHJ1ZTsKCXZhciBzID0gZG9jdW1lbnQuY3JlYXRl RWxlbWVudCgnc2NyaXB0Jyk7CglzLnNldEF0dHJpYnV0ZSgnc3JjJyx1cmwpOwoJ cy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L2phdmFzY3JpcHQnKTsKCWRvY3Vt ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQo cyk7CglyZXR1cm4gczsKfQogCmZ1bmN0aW9uIGltcG9ydFN0eWxlc2hlZXQocGFn ZSkgewoJcmV0dXJuIGltcG9ydFN0eWxlc2hlZXRVUkkod2dTY3JpcHQgKyAnP2Fj dGlvbj1yYXcmY3R5cGU9dGV4dC9jc3MmdGl0bGU9JyArIGVuY29kZVVSSUNvbXBv bmVudChwYWdlLnJlcGxhY2UoLyAvZywnXycpKSk7Cn0KIApmdW5jdGlvbiBpbXBv cnRTdHlsZXNoZWV0VVJJKHVybCkgewoJcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVN0 eWxlU2hlZXQgPyBkb2N1bWVudC5jcmVhdGVTdHlsZVNoZWV0KHVybCkgOiBhcHBl bmRDU1MoJ0BpbXBvcnQgIicgKyB1cmwgKyAnIjsnKTsKfQogCmZ1bmN0aW9uIGFw cGVuZENTUyh0ZXh0KSB7Cgl2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo J3N0eWxlJyk7CglzLnR5cGUgPSAndGV4dC9jc3MnOwoJcy5yZWwgPSAnc3R5bGVz aGVldCc7CglpZiAocy5zdHlsZVNoZWV0KSBzLnN0eWxlU2hlZXQuY3NzVGV4dCA9 IHRleHQgLy9JRQoJZWxzZSBzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl eHROb2RlKHRleHQgKyAnJykpIC8vU2FmYXJpIHNvbWV0aW1lcyBib3JrcyBvbiBu dWxsCglkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFw cGVuZENoaWxkKHMpOwoJcmV0dXJuIHM7Cn0KCi8vIHNwZWNpYWwgc3R5bGVzaGVl dCBsaW5rcwppZiAodHlwZW9mIHN0eWxlcGF0aCAhPSAndW5kZWZpbmVkJyAmJiB0 eXBlb2Ygc2tpbiAhPSAndW5kZWZpbmVkJykgewoJaWYgKGlzX29wZXJhX3ByZXNl dmVuKSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSShzdHlsZXBhdGgrJy8nK3NraW4r Jy9PcGVyYTZGaXhlcy5jc3MnKTsKCX0gZWxzZSBpZiAoaXNfb3BlcmFfc2V2ZW4g JiYgIWlzX29wZXJhXzk1KSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSShzdHlsZXBh dGgrJy8nK3NraW4rJy9PcGVyYTdGaXhlcy5jc3MnKTsKCX0gZWxzZSBpZiAoaXNf b3BlcmFfOTUpIHsKCQlpbXBvcnRTdHlsZXNoZWV0VVJJKHN0eWxlcGF0aCsnLycr c2tpbisnL09wZXJhOUZpeGVzLmNzcycpOwoJfSBlbHNlIGlmIChpc19raHRtbCkg ewoJCWltcG9ydFN0eWxlc2hlZXRVUkkoc3R5bGVwYXRoKycvJytza2luKycvS0hU TUxGaXhlcy5jc3MnKTsKCX0gZWxzZSBpZiAoaXNfZmYyXykgewoJCWltcG9ydFN0 eWxlc2hlZXRVUkkoc3R5bGVwYXRoKycvJytza2luKycvRkYyRml4ZXMuY3NzJyk7 Cgl9Cn0KCmlmICh3Z0JyZWFrRnJhbWVzKSB7CgkvLyBVbi10cmFwIHVzIGZyb20g ZnJhbWVzZXRzCglpZiAod2luZG93LnRvcCAhPSB3aW5kb3cpIHsKCQl3aW5kb3cu dG9wLmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uOwoJfQp9CgpmdW5jdGlvbiBz aG93VG9jVG9nZ2xlKCkgewoJaWYgKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKSB7 CgkJLy8gVXNlcyBET00gY2FsbHMgdG8gYXZvaWQgZG9jdW1lbnQud3JpdGUgKyBY SFRNTCBpc3N1ZXMKCgkJdmFyIGxpbmtIb2xkZXIgPSBkb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgndG9jdGl0bGUnKTsKCQlpZiAoIWxpbmtIb2xkZXIpIHsKCQkJcmV0 dXJuOwoJCX0KCgkJdmFyIG91dGVyU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l bnQoJ3NwYW4nKTsKCQlvdXRlclNwYW4uY2xhc3NOYW1lID0gJ3RvY3RvZ2dsZSc7 CgoJCXZhciB0b2dnbGVMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScp OwoJCXRvZ2dsZUxpbmsuaWQgPSAndG9nZ2xlbGluayc7CgkJdG9nZ2xlTGluay5j bGFzc05hbWUgPSAnaW50ZXJuYWwnOwoJCXRvZ2dsZUxpbmsuaHJlZiA9ICdqYXZh c2NyaXB0OnRvZ2dsZVRvYygpJzsKCQl0b2dnbGVMaW5rLmFwcGVuZENoaWxkKGRv Y3VtZW50LmNyZWF0ZVRleHROb2RlKHRvY0hpZGVUZXh0KSk7CgoJCW91dGVyU3Bh bi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnWycpKTsKCQlv dXRlclNwYW4uYXBwZW5kQ2hpbGQodG9nZ2xlTGluayk7CgkJb3V0ZXJTcGFuLmFw cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCddJykpOwoKCQlsaW5r SG9sZGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykp OwoJCWxpbmtIb2xkZXIuYXBwZW5kQ2hpbGQob3V0ZXJTcGFuKTsKCgkJdmFyIGNv b2tpZVBvcyA9IGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJoaWRldG9jPSIpOwoJ CWlmIChjb29raWVQb3MgPiAtMSAmJiBkb2N1bWVudC5jb29raWUuY2hhckF0KGNv b2tpZVBvcyArIDgpID09IDEpIHsKCQkJdG9nZ2xlVG9jKCk7CgkJfQoJfQp9Cgpm dW5jdGlvbiBjaGFuZ2VUZXh0KGVsLCBuZXdUZXh0KSB7CgkvLyBTYWZhcmkgd29y ayBhcm91bmQKCWlmIChlbC5pbm5lclRleHQpIHsKCQllbC5pbm5lclRleHQgPSBu ZXdUZXh0OwoJfSBlbHNlIGlmIChlbC5maXJzdENoaWxkICYmIGVsLmZpcnN0Q2hp bGQubm9kZVZhbHVlKSB7CgkJZWwuZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSBuZXdU ZXh0OwoJfQp9CgpmdW5jdGlvbiB0b2dnbGVUb2MoKSB7Cgl2YXIgdG9jID0gZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvYycpLmdldEVsZW1lbnRzQnlUYWdOYW1l KCd1bCcpWzBdOwoJdmFyIHRvZ2dsZUxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgndG9nZ2xlbGluaycpOwoKCWlmICh0b2MgJiYgdG9nZ2xlTGluayAmJiB0 b2Muc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpIHsKCQljaGFuZ2VUZXh0KHRvZ2ds ZUxpbmssIHRvY0hpZGVUZXh0KTsKCQl0b2Muc3R5bGUuZGlzcGxheSA9ICdibG9j ayc7CgkJZG9jdW1lbnQuY29va2llID0gImhpZGV0b2M9MCI7Cgl9IGVsc2UgewoJ CWNoYW5nZVRleHQodG9nZ2xlTGluaywgdG9jU2hvd1RleHQpOwoJCXRvYy5zdHls ZS5kaXNwbGF5ID0gJ25vbmUnOwoJCWRvY3VtZW50LmNvb2tpZSA9ICJoaWRldG9j PTEiOwoJfQp9Cgp2YXIgbXdFZGl0QnV0dG9ucyA9IFtdOwp2YXIgbXdDdXN0b21F ZGl0QnV0dG9ucyA9IFtdOyAvLyBlZyB0byBhZGQgaW4gTWVkaWFXaWtpOkNvbW1v bi5qcwoKZnVuY3Rpb24gZXNjYXBlUXVvdGVzKHRleHQpIHsKCXZhciByZSA9IG5l dyBSZWdFeHAoIiciLCJnIik7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCJcXCci KTsKCXJlID0gbmV3IFJlZ0V4cCgiXFxuIiwiZyIpOwoJdGV4dCA9IHRleHQucmVw bGFjZShyZSwiXFxuIik7CglyZXR1cm4gZXNjYXBlUXVvdGVzSFRNTCh0ZXh0KTsK fQoKZnVuY3Rpb24gZXNjYXBlUXVvdGVzSFRNTCh0ZXh0KSB7Cgl2YXIgcmUgPSBu ZXcgUmVnRXhwKCcmJywiZyIpOwoJdGV4dCA9IHRleHQucmVwbGFjZShyZSwiJmFt cDsiKTsKCXJlID0gbmV3IFJlZ0V4cCgnIicsImciKTsKCXRleHQgPSB0ZXh0LnJl cGxhY2UocmUsIiZxdW90OyIpOwoJcmUgPSBuZXcgUmVnRXhwKCc8JywiZyIpOwoJ dGV4dCA9IHRleHQucmVwbGFjZShyZSwiJmx0OyIpOwoJcmUgPSBuZXcgUmVnRXhw KCc+JywiZyIpOwoJdGV4dCA9IHRleHQucmVwbGFjZShyZSwiJmd0OyIpOwoJcmV0 dXJuIHRleHQ7Cn0KCgovKioKICogU2V0IHRoZSBhY2Nlc3NrZXkgcHJlZml4IGJh c2VkIG9uIGJyb3dzZXIgZGV0ZWN0aW9uLgogKi8KdmFyIHRvb2x0aXBBY2Nlc3NL ZXlQcmVmaXggPSAnYWx0LSc7CmlmIChpc19vcGVyYSkgewoJdG9vbHRpcEFjY2Vz c0tleVByZWZpeCA9ICdzaGlmdC1lc2MtJzsKfSBlbHNlIGlmICghaXNfc2FmYXJp X3dpbiAmJiBpc19zYWZhcmkgJiYgd2Via2l0X3ZlcnNpb24gPiA1MjYpIHsKCXRv b2x0aXBBY2Nlc3NLZXlQcmVmaXggPSAnY3RybC1hbHQtJzsKfSBlbHNlIGlmICgh aXNfc2FmYXJpX3dpbiAmJiAoaXNfc2FmYXJpCgkJfHwgY2xpZW50UEMuaW5kZXhP ZignbWFjJykgIT0gLTEKCQl8fCBjbGllbnRQQy5pbmRleE9mKCdrb25xdWVyb3In KSAhPSAtMSApKSB7Cgl0b29sdGlwQWNjZXNzS2V5UHJlZml4ID0gJ2N0cmwtJzsK fSBlbHNlIGlmIChpc19mZjIpIHsKCXRvb2x0aXBBY2Nlc3NLZXlQcmVmaXggPSAn YWx0LXNoaWZ0LSc7Cn0KdmFyIHRvb2x0aXBBY2Nlc3NLZXlSZWdleHAgPSAvXFso Y3RybC0pPyhhbHQtKT8oc2hpZnQtKT8oZXNjLSk/KC4pXF0kLzsKCi8qKgogKiBB ZGQgdGhlIGFwcHJvcHJpYXRlIHByZWZpeCB0byB0aGUgYWNjZXNza2V5IHNob3du IGluIHRoZSB0b29sdGlwLgogKiBJZiB0aGUgbm9kZUxpc3QgcGFyYW1ldGVyIGlz IGdpdmVuLCBvbmx5IHRob3NlIG5vZGVzIGFyZSB1cGRhdGVkOwogKiBvdGhlcndp c2UsIGFsbCB0aGUgbm9kZXMgdGhhdCB3aWxsIHByb2JhYmx5IGhhdmUgYWNjZXNz a2V5cyBieQogKiBkZWZhdWx0IGFyZSB1cGRhdGVkLgogKgogKiBAcGFyYW0gQXJy YXkgbm9kZUxpc3QgLS0gbGlzdCBvZiBlbGVtZW50cyB0byB1cGRhdGUKICovCmZ1 bmN0aW9uIHVwZGF0ZVRvb2x0aXBBY2Nlc3NLZXlzKCBub2RlTGlzdCApIHsKCWlm ICggIW5vZGVMaXN0ICkgewoJCS8vIFJhdGhlciB0aGFuIHNjYW4gYWxsIGxpbmtz IG9uIHRoZSB3aG9sZSBwYWdlLCB3ZSBjYW4ganVzdCBzY2FuIHRoZXNlCgkJLy8g Y29udGFpbmVycyB3aGljaCBjb250YWluIHRoZSByZWxldmFudCBsaW5rcy4gVGhp cyBpcyByZWFsbHkganVzdCBhbgoJCS8vIG9wdGltaXphdGlvbiB0ZWNobmlxdWUu CgkJdmFyIGxpbmtDb250YWluZXJzID0gWwoJCQkiY29sdW1uLW9uZSIsIC8vIE1v bm9ib29rIGFuZCBNb2Rlcm4KCQkJImhlYWQiLCAicGFuZWwiLCAicC1sb2dvIiAv LyBWZWN0b3IKCQldOwoJCWZvciAoIHZhciBpIGluIGxpbmtDb250YWluZXJzICkg ewoJCQl2YXIgbGlua0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCBsaW5rQ29udGFpbmVyc1tpXSApOwoJCQlpZiAoIGxpbmtDb250YWluZXIgKSB7 CgkJCQl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggbGlua0NvbnRhaW5lci5nZXRF bGVtZW50c0J5VGFnTmFtZSgiYSIpICk7CgkJCX0KCQl9CgkJLy8gdGhlc2UgYXJl IHJhcmUgZW5vdWdoIHRoYXQgbm8gc3VjaCBvcHRpbWl6YXRpb24gaXMgbmVlZGVk CgkJdXBkYXRlVG9vbHRpcEFjY2Vzc0tleXMoIGRvY3VtZW50LmdldEVsZW1lbnRz QnlUYWdOYW1lKCJpbnB1dCIpICk7CgkJdXBkYXRlVG9vbHRpcEFjY2Vzc0tleXMo IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsYWJlbCIpICk7CgkJcmV0 dXJuOwoJfQoKCWZvciAoIHZhciBpID0gMDsgaSA8IG5vZGVMaXN0Lmxlbmd0aDsg aSsrICkgewoJCXZhciBlbGVtZW50ID0gbm9kZUxpc3RbaV07CgkJdmFyIHRpcCA9 IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpOwoJCWlmICggdGlwICYmIHRv b2x0aXBBY2Nlc3NLZXlSZWdleHAuZXhlYyh0aXApICkgewoJCQl0aXAgPSB0aXAu cmVwbGFjZSh0b29sdGlwQWNjZXNzS2V5UmVnZXhwLAoJCQkJCSAgIlsiK3Rvb2x0 aXBBY2Nlc3NLZXlQcmVmaXgrIiQ1XSIpOwoJCQllbGVtZW50LnNldEF0dHJpYnV0 ZSgidGl0bGUiLCB0aXAgKTsKCQl9Cgl9Cn0KCi8qKgogKiBBZGQgYSBsaW5rIHRv IG9uZSBvZiB0aGUgcG9ydGxldCBtZW51cyBvbiB0aGUgcGFnZSwgaW5jbHVkaW5n OgogKgogKiBwLWNhY3Rpb25zOiBDb250ZW50IGFjdGlvbnMgKHNob3duIGFzIHRh YnMgYWJvdmUgdGhlIG1haW4gY29udGVudCBpbiBNb25vYm9vaykKICogcC1wZXJz b25hbDogUGVyc29uYWwgdG9vbHMgKHNob3duIGF0IHRoZSB0b3AgcmlnaHQgb2Yg dGhlIHBhZ2UgaW4gTW9ub2Jvb2spCiAqIHAtbmF2aWdhdGlvbjogTmF2aWdhdGlv bgogKiBwLXRiOiBUb29sYm94CiAqCiAqIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGZv ciB0aGUgY29udmVuaWVuY2Ugb2YgY3VzdG9tIEpTIGF1dGhvcnMuICBBbGwKICog YnV0IHRoZSBmaXJzdCB0aHJlZSBwYXJhbWV0ZXJzIGFyZSBvcHRpb25hbCwgdGhv dWdoIHByb3ZpZGluZyBhdAogKiBsZWFzdCBhbiBpZCBhbmQgYSB0b29sdGlwIGlz IHJlY29tbWVuZGVkLgogKgogKiBCeSBkZWZhdWx0IHRoZSBuZXcgbGluayB3aWxs IGJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuICBUbwogKiBhZGQgdGhl IGxpbmsgYmVmb3JlIGEgZ2l2ZW4gZXhpc3RpbmcgaXRlbSwgcGFzcyB0aGUgRE9N IG5vZGUgb2YKICogdGhhdCBpdGVtIChlYXNpbHkgb2J0YWluZWQgd2l0aCBkb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgpKSBhcyB0aGUKICogbmV4dG5vZGUgcGFyYW1l dGVyOyB0byBhZGQgdGhlIGxpbmsgX2FmdGVyXyBhbiBleGlzdGluZyBpdGVtLCBw YXNzCiAqIHRoZSBub2RlJ3MgbmV4dFNpYmxpbmcgaW5zdGVhZC4KICoKICogQHBh cmFtIFN0cmluZyBwb3J0bGV0IC0tIGlkIG9mIHRoZSB0YXJnZXQgcG9ydGxldCAo InAtY2FjdGlvbnMiLCAicC1wZXJzb25hbCIsICJwLW5hdmlnYXRpb24iIG9yICJw LXRiIikKICogQHBhcmFtIFN0cmluZyBocmVmIC0tIGxpbmsgVVJMCiAqIEBwYXJh bSBTdHJpbmcgdGV4dCAtLSBsaW5rIHRleHQgKHdpbGwgYmUgYXV0b21hdGljYWxs eSBsb3dlcmNhc2VkIGJ5IENTUyBmb3IgcC1jYWN0aW9ucyBpbiBNb25vYm9vaykK ICogQHBhcmFtIFN0cmluZyBpZCAtLSBpZCBvZiB0aGUgbmV3IGl0ZW0sIHNob3Vs ZCBiZSB1bmlxdWUgYW5kIHByZWZlcmFibHkgaGF2ZSB0aGUgYXBwcm9wcmlhdGUg cHJlZml4ICgiY2EtIiwgInB0LSIsICJuLSIgb3IgInQtIikKICogQHBhcmFtIFN0 cmluZyB0b29sdGlwIC0tIHRleHQgdG8gc2hvdyB3aGVuIGhvdmVyaW5nIG92ZXIg dGhlIGxpbmssIHdpdGhvdXQgYWNjZXNza2V5IHN1ZmZpeAogKiBAcGFyYW0gU3Ry aW5nIGFjY2Vzc2tleSAtLSBhY2Nlc3NrZXkgdG8gYWN0aXZhdGUgdGhpcyBsaW5r IChvbmUgY2hhcmFjdGVyLCB0cnkgdG8gYXZvaWQgY29uZmxpY3RzKQogKiBAcGFy YW0gTm9kZSBuZXh0bm9kZSAtLSB0aGUgRE9NIG5vZGUgYmVmb3JlIHdoaWNoIHRo ZSBuZXcgaXRlbSBzaG91bGQgYmUgYWRkZWQsIHNob3VsZCBiZSBhbm90aGVyIGl0 ZW0gaW4gdGhlIHNhbWUgbGlzdAogKgogKiBAcmV0dXJuIE5vZGUgLS0gdGhlIERP TSBub2RlIG9mIHRoZSBuZXcgaXRlbSAoYW4gTEkgZWxlbWVudCkgb3IgbnVsbAog Ki8KZnVuY3Rpb24gYWRkUG9ydGxldExpbmsocG9ydGxldCwgaHJlZiwgdGV4dCwg aWQsIHRvb2x0aXAsIGFjY2Vzc2tleSwgbmV4dG5vZGUpIHsKCXZhciBub2RlID0g ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocG9ydGxldCk7CglpZiAoICFub2RlICkg cmV0dXJuIG51bGw7Cglub2RlID0gbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgg InVsIiApWzBdOwoJaWYgKCAhbm9kZSApIHJldHVybiBudWxsOwoKCXZhciBsaW5r ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImEiICk7CglsaW5rLmFwcGVuZENo aWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggdGV4dCApICk7CglsaW5rLmhy ZWYgPSBocmVmOwoKCXZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgg ImxpIiApOwoJaXRlbS5hcHBlbmRDaGlsZCggbGluayApOwoJaWYgKCBpZCApIGl0 ZW0uaWQgPSBpZDsKCglpZiAoIGFjY2Vzc2tleSApIHsKCQlsaW5rLnNldEF0dHJp YnV0ZSggImFjY2Vzc2tleSIsIGFjY2Vzc2tleSApOwoJCXRvb2x0aXAgKz0gIiBb IithY2Nlc3NrZXkrIl0iOwoJfQoJaWYgKCB0b29sdGlwICkgewoJCWxpbmsuc2V0 QXR0cmlidXRlKCAidGl0bGUiLCB0b29sdGlwICk7Cgl9CglpZiAoIGFjY2Vzc2tl eSAmJiB0b29sdGlwICkgewoJCXVwZGF0ZVRvb2x0aXBBY2Nlc3NLZXlzKCBuZXcg QXJyYXkoIGxpbmsgKSApOwoJfQoKCWlmICggbmV4dG5vZGUgJiYgbmV4dG5vZGUu cGFyZW50Tm9kZSA9PSBub2RlICkKCQlub2RlLmluc2VydEJlZm9yZSggaXRlbSwg bmV4dG5vZGUgKTsKCWVsc2UKCQlub2RlLmFwcGVuZENoaWxkKCBpdGVtICk7ICAv LyBJRSBjb21wYXRpYmlsaXR5ICg/KQoKCXJldHVybiBpdGVtOwp9CgpmdW5jdGlv biBnZXRJbm5lclRleHQoZWwpIHsKCWlmICh0eXBlb2YgZWwgPT0gInN0cmluZyIp IHJldHVybiBlbDsKCWlmICh0eXBlb2YgZWwgPT0gInVuZGVmaW5lZCIpIHsgcmV0 dXJuIGVsIH07CglpZiAoZWwudGV4dENvbnRlbnQpIHJldHVybiBlbC50ZXh0Q29u dGVudDsgLy8gbm90IG5lZWRlZCBidXQgaXQgaXMgZmFzdGVyCglpZiAoZWwuaW5u ZXJUZXh0KSByZXR1cm4gZWwuaW5uZXJUZXh0OyAgICAgLy8gSUUgZG9lc24ndCBo YXZlIHRleHRDb250ZW50Cgl2YXIgc3RyID0gIiI7CgoJdmFyIGNzID0gZWwuY2hp bGROb2RlczsKCXZhciBsID0gY3MubGVuZ3RoOwoJZm9yICh2YXIgaSA9IDA7IGkg PCBsOyBpKyspIHsKCQlzd2l0Y2ggKGNzW2ldLm5vZGVUeXBlKSB7CgkJCWNhc2Ug MTogLy9FTEVNRU5UX05PREUKCQkJCXN0ciArPSB0c19nZXRJbm5lclRleHQoY3Nb aV0pOwoJCQkJYnJlYWs7CgkJCWNhc2UgMzoJLy9URVhUX05PREUKCQkJCXN0ciAr PSBjc1tpXS5ub2RlVmFsdWU7CgkJCQlicmVhazsKCQl9Cgl9CglyZXR1cm4gc3Ry Owp9CgoKLyoqCiAqIFNldCB1cCBhY2Nlc3NrZXlzL3Rvb2x0aXBzIGZyb20gdGhl IGRlcHJlY2F0ZWQgdGEgYXJyYXkuICBJZiBkb0lkCiAqIGlzIHNwZWNpZmllZCwg b25seSBzZXQgdXAgZm9yIHRoYXQgaWQuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlv biBpcwogKiBkZXByZWNhdGVkIGFuZCB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW5k ZWZpbml0ZWx5IC0tIHVzZQogKiB1cGRhdGVUb29sdGlwQWNjZXNzS2V5KCkgaW5z dGVhZC4KICoKICogQHBhcmFtIG1peGVkIGRvSWQgc3RyaW5nIG9yIG51bGwKICov CmZ1bmN0aW9uIGFrZXl0dCggZG9JZCApIHsKCS8vIEEgbG90IG9mIHVzZXIgc2Ny aXB0cyAoYW5kIHNvbWUgb2YgdGhlIGNvZGUgYmVsb3cpIGJyZWFrIGlmCgkvLyB0 YSBpc24ndCBkZWZpbmVkLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMuICBFeHBsaWN0 bHkgdXNpbmcKCS8vIHdpbmRvdy50YSBhdm9pZHMgYSAidGEgaXMgbm90IGRlZmlu ZWQiIGVycm9yLgoJaWYgKCF3aW5kb3cudGEpIHdpbmRvdy50YSA9IG5ldyBBcnJh eTsKCgkvLyBNYWtlIGEgbG9jYWwsIHBvc3NpYmx5IHJlc3RyaWN0ZWQsIGNvcHkg dG8gYXZvaWQgY2xvYmJlcmluZwoJLy8gdGhlIG9yaWdpbmFsLgoJdmFyIHRhOwoJ aWYgKCBkb0lkICkgewoJCXRhID0gW2RvSWRdOwoJfSBlbHNlIHsKCQl0YSA9IHdp bmRvdy50YTsKCX0KCgkvLyBOb3cgZGVhbCB3aXRoIGV2aWwgZGVwcmVjYXRlZCB0 YQoJdmFyIHdhdGNoQ2hlY2tib3hFeGlzdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCggJ3dwV2F0Y2h0aGlzJyApID8gdHJ1ZSA6IGZhbHNlOwoJZm9yICh2YXIg aWQgaW4gdGEpIHsKCQl2YXIgbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk KTsKCQlpZiAobikgewoJCQl2YXIgYSA9IG51bGw7CgkJCXZhciBhayA9ICcnOwoJ CQkvLyBBcmUgd2UgcHV0dGluZyBhY2Nlc3NrZXkgaW4gaXQKCQkJaWYgKHRhW2lk XVswXS5sZW5ndGggPiAwKSB7CgkJCQkvLyBJcyB0aGlzIG9iamVjdCBhIG9iamVj dD8gSWYgbm90IGFzc3VtZSBpdCdzIHRoZSBuZXh0IGNoaWxkLgoKCQkJCWlmIChu Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT0gImEiKSB7CgkJCQkJYSA9IG47CgkJ CQl9IGVsc2UgewoJCQkJCWEgPSBuLmNoaWxkTm9kZXNbMF07CgkJCQl9CgkJCSAJ Ly8gRG9uJ3QgYWRkIGFuIGFjY2Vzc2tleSBmb3IgdGhlIHdhdGNoIHRhYiBpZiB0 aGUgd2F0Y2gKCQkJIAkvLyBjaGVja2JveCBpcyBhbHNvIGF2YWlsYWJsZS4KCQkJ CWlmIChhICYmICgoaWQgIT0gJ2NhLXdhdGNoJyAmJiBpZCAhPSAnY2EtdW53YXRj aCcpIHx8ICF3YXRjaENoZWNrYm94RXhpc3RzKSkgewoJCQkJCWEuYWNjZXNzS2V5 ID0gdGFbaWRdWzBdOwoJCQkJCWFrID0gJyBbJyt0b29sdGlwQWNjZXNzS2V5UHJl Zml4K3RhW2lkXVswXSsnXSc7CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQkvLyBXZSBk b24ndCBjYXJlIHdoYXQgdHlwZSB0aGUgb2JqZWN0IGlzIHdoZW4gYXNzaWduaW5n IHRvb2x0aXAKCQkJCWEgPSBuOwoJCQkJYWsgPSAnJzsKCQkJfQoKCQkJaWYgKGEp IHsKCQkJCWEudGl0bGUgPSB0YVtpZF1bMV0rYWs7CgkJCX0KCQl9Cgl9Cn0KCnZh ciBjaGVja2JveGVzOwp2YXIgbGFzdENoZWNrYm94OwoKZnVuY3Rpb24gc2V0dXBD aGVja2JveFNoaWZ0Q2xpY2soKSB7CgljaGVja2JveGVzID0gW107CglsYXN0Q2hl Y2tib3ggPSBudWxsOwoJdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRz QnlUYWdOYW1lKCdpbnB1dCcpOwoJYWRkQ2hlY2tib3hDbGlja0hhbmRsZXJzKGlu cHV0cyk7Cn0KCmZ1bmN0aW9uIGFkZENoZWNrYm94Q2xpY2tIYW5kbGVycyhpbnB1 dHMsIHN0YXJ0KSB7CglpZiAoICFzdGFydCkgc3RhcnQgPSAwOwoKCXZhciBmaW5p c2ggPSBzdGFydCArIDI1MDsKCWlmICggZmluaXNoID4gaW5wdXRzLmxlbmd0aCAp CgkJZmluaXNoID0gaW5wdXRzLmxlbmd0aDsKCglmb3IgKCB2YXIgaSA9IHN0YXJ0 OyBpIDwgZmluaXNoOyBpKysgKSB7CgkJdmFyIGNiID0gaW5wdXRzW2ldOwoJCWlm ICggIWNiLnR5cGUgfHwgY2IudHlwZS50b0xvd2VyQ2FzZSgpICE9ICdjaGVja2Jv eCcgKQoJCQljb250aW51ZTsKCQl2YXIgZW5kID0gY2hlY2tib3hlcy5sZW5ndGg7 CgkJY2hlY2tib3hlc1tlbmRdID0gY2I7CgkJY2IuaW5kZXggPSBlbmQ7CgkJY2Iu b25jbGljayA9IGNoZWNrYm94Q2xpY2tIYW5kbGVyOwoJfQoKCWlmICggZmluaXNo IDwgaW5wdXRzLmxlbmd0aCApIHsKCQlzZXRUaW1lb3V0KCBmdW5jdGlvbiAoKSB7 CgkJCWFkZENoZWNrYm94Q2xpY2tIYW5kbGVycyhpbnB1dHMsIGZpbmlzaCk7CgkJ fSwgMjAwICk7Cgl9Cn0KCmZ1bmN0aW9uIGNoZWNrYm94Q2xpY2tIYW5kbGVyKGUp IHsKCWlmICh0eXBlb2YgZSA9PSAndW5kZWZpbmVkJykgewoJCWUgPSB3aW5kb3cu ZXZlbnQ7Cgl9CglpZiAoICFlLnNoaWZ0S2V5IHx8IGxhc3RDaGVja2JveCA9PT0g bnVsbCApIHsKCQlsYXN0Q2hlY2tib3ggPSB0aGlzLmluZGV4OwoJCXJldHVybiB0 cnVlOwoJfQoJdmFyIGVuZFN0YXRlID0gdGhpcy5jaGVja2VkOwoJdmFyIHN0YXJ0 LCBmaW5pc2g7CglpZiAoIHRoaXMuaW5kZXggPCBsYXN0Q2hlY2tib3ggKSB7CgkJ c3RhcnQgPSB0aGlzLmluZGV4ICsgMTsKCQlmaW5pc2ggPSBsYXN0Q2hlY2tib3g7 Cgl9IGVsc2UgewoJCXN0YXJ0ID0gbGFzdENoZWNrYm94OwoJCWZpbmlzaCA9IHRo aXMuaW5kZXggLSAxOwoJfQoJZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDw9IGZpbmlz aDsgKytpICkgewoJCWNoZWNrYm94ZXNbaV0uY2hlY2tlZCA9IGVuZFN0YXRlOwoJ CWlmKCBpID4gc3RhcnQgJiYgdHlwZW9mIGNoZWNrYm94ZXNbaV0ub25jaGFuZ2Ug PT0gJ2Z1bmN0aW9uJyApCgkJCWNoZWNrYm94ZXNbaV0ub25jaGFuZ2UoKTsgLy8g ZmlyZSB0cmlnZ2VycwoJfQoJbGFzdENoZWNrYm94ID0gdGhpcy5pbmRleDsKCXJl dHVybiB0cnVlOwp9CgpmdW5jdGlvbiB0b2dnbGVfZWxlbWVudF9hY3RpdmF0aW9u KGlkYSxpZGIpIHsKCWlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQpIHsKCQly ZXR1cm47Cgl9Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZGEpLmRpc2FibGVk PXRydWU7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZGIpLmRpc2FibGVkPWZh bHNlOwp9CgpmdW5jdGlvbiB0b2dnbGVfZWxlbWVudF9jaGVjayhpZGEsaWRiKSB7 CglpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKSB7CgkJcmV0dXJuOwoJfQoJ ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRhKS5jaGVja2VkPXRydWU7Cglkb2N1 bWVudC5nZXRFbGVtZW50QnlJZChpZGIpLmNoZWNrZWQ9ZmFsc2U7Cn0KCi8qCglX cml0dGVuIGJ5IEpvbmF0aGFuIFNub29rLCBodHRwOi8vd3d3LnNub29rLmNhL2pv bmF0aGFuCglBZGQtb25zIGJ5IFJvYmVydCBOeW1hbiwgaHR0cDovL3d3dy5yb2Jl cnRueW1hbi5jb20KCUF1dGhvciBzYXlzICJUaGUgY3JlZGl0IGNvbW1lbnQgaXMg YWxsIGl0IHRha2VzLCBubyBsaWNlbnNlLiBHbyBjcmF6eSB3aXRoIGl0ITotKSIK CUZyb20gaHR0cDovL3d3dy5yb2JlcnRueW1hbi5jb20vMjAwNS8xMS8wNy90aGUt dWx0aW1hdGUtZ2V0ZWxlbWVudHNieWNsYXNzbmFtZS8KKi8KZnVuY3Rpb24gZ2V0 RWxlbWVudHNCeUNsYXNzTmFtZShvRWxtLCBzdHJUYWdOYW1lLCBvQ2xhc3NOYW1l cyl7Cgl2YXIgYXJyUmV0dXJuRWxlbWVudHMgPSBuZXcgQXJyYXkoKTsKCWlmICgg dHlwZW9mKCBvRWxtLmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKSA9PSAiZnVuY3Rp b24iICkgewoJCS8qIFVzZSBhIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiB3aGVyZSBw b3NzaWJsZSBGRjMsIFNhZjMuMiwgT3BlcmEgOS41ICovCgkJdmFyIGFyck5hdGl2 ZVJldHVybiA9IG9FbG0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggb0NsYXNzTmFt ZXMgKTsKCQlpZiAoIHN0clRhZ05hbWUgPT0gIioiICkKCQkJcmV0dXJuIGFyck5h dGl2ZVJldHVybjsKCQlmb3IgKCB2YXIgaD0wOyBoIDwgYXJyTmF0aXZlUmV0dXJu Lmxlbmd0aDsgaCsrICkgewoJCQlpZiggYXJyTmF0aXZlUmV0dXJuW2hdLnRhZ05h bWUudG9Mb3dlckNhc2UoKSA9PSBzdHJUYWdOYW1lLnRvTG93ZXJDYXNlKCkgKQoJ CQkJYXJyUmV0dXJuRWxlbWVudHNbYXJyUmV0dXJuRWxlbWVudHMubGVuZ3RoXSA9 IGFyck5hdGl2ZVJldHVybltoXTsKCQl9CgkJcmV0dXJuIGFyclJldHVybkVsZW1l bnRzOwoJfQoJdmFyIGFyckVsZW1lbnRzID0gKHN0clRhZ05hbWUgPT0gIioiICYm IG9FbG0uYWxsKT8gb0VsbS5hbGwgOiBvRWxtLmdldEVsZW1lbnRzQnlUYWdOYW1l KHN0clRhZ05hbWUpOwoJdmFyIGFyclJlZ0V4cENsYXNzTmFtZXMgPSBuZXcgQXJy YXkoKTsKCWlmKHR5cGVvZiBvQ2xhc3NOYW1lcyA9PSAib2JqZWN0Iil7CgkJZm9y KHZhciBpPTA7IGk8b0NsYXNzTmFtZXMubGVuZ3RoOyBpKyspewoJCQlhcnJSZWdF eHBDbGFzc05hbWVzW2FyclJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJCQlu ZXcgUmVnRXhwKCIoXnxcXHMpIiArIG9DbGFzc05hbWVzW2ldLnJlcGxhY2UoL1wt L2csICJcXC0iKSArICIoXFxzfCQpIik7CgkJfQoJfQoJZWxzZXsKCQlhcnJSZWdF eHBDbGFzc05hbWVzW2FyclJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJCW5l dyBSZWdFeHAoIihefFxccykiICsgb0NsYXNzTmFtZXMucmVwbGFjZSgvXC0vZywg IlxcLSIpICsgIihcXHN8JCkiKTsKCX0KCXZhciBvRWxlbWVudDsKCXZhciBiTWF0 Y2hlc0FsbDsKCWZvcih2YXIgaj0wOyBqPGFyckVsZW1lbnRzLmxlbmd0aDsgaisr KXsKCQlvRWxlbWVudCA9IGFyckVsZW1lbnRzW2pdOwoJCWJNYXRjaGVzQWxsID0g dHJ1ZTsKCQlmb3IodmFyIGs9MDsgazxhcnJSZWdFeHBDbGFzc05hbWVzLmxlbmd0 aDsgaysrKXsKCQkJaWYoIWFyclJlZ0V4cENsYXNzTmFtZXNba10udGVzdChvRWxl bWVudC5jbGFzc05hbWUpKXsKCQkJCWJNYXRjaGVzQWxsID0gZmFsc2U7CgkJCQli cmVhazsKCQkJfQoJCX0KCQlpZihiTWF0Y2hlc0FsbCl7CgkJCWFyclJldHVybkVs ZW1lbnRzW2FyclJldHVybkVsZW1lbnRzLmxlbmd0aF0gPSBvRWxlbWVudDsKCQl9 Cgl9CglyZXR1cm4gKGFyclJldHVybkVsZW1lbnRzKQp9CgpmdW5jdGlvbiByZWRp cmVjdFRvRnJhZ21lbnQoZnJhZ21lbnQpIHsKCXZhciBtYXRjaCA9IG5hdmlnYXRv ci51c2VyQWdlbnQubWF0Y2goL0FwcGxlV2ViS2l0XC8oXGQrKS8pOwoJaWYgKG1h dGNoKSB7CgkJdmFyIHdlYktpdFZlcnNpb24gPSBwYXJzZUludChtYXRjaFsxXSk7 CgkJaWYgKHdlYktpdFZlcnNpb24gPCA0MjApIHsKCQkJLy8gUmVsZWFzZWQgU2Fm YXJpIHcvIFdlYktpdCA0MTguOS4xIG1lc3NlcyB1cCBob3JyaWJseQoJCQkvLyBO aWdodGxpZXMgb2YgNDIwKyBhcmUgb2sKCQkJcmV0dXJuOwoJCX0KCX0KCWlmIChp c19nZWNrbykgewoJCS8vIE1vemlsbGEgbmVlZHMgdG8gd2FpdCB1bnRpbCBhZnRl ciBsb2FkLCBvdGhlcndpc2UgdGhlIHdpbmRvdyBkb2Vzbid0IHNjcm9sbAoJCWFk ZE9ubG9hZEhvb2soZnVuY3Rpb24gKCkgewoJCQlpZiAod2luZG93LmxvY2F0aW9u Lmhhc2ggPT0gIiIpCgkJCQl3aW5kb3cubG9jYXRpb24uaGFzaCA9IGZyYWdtZW50 OwoJCX0pOwoJfSBlbHNlIHsKCQlpZiAod2luZG93LmxvY2F0aW9uLmhhc2ggPT0g IiIpCgkJCXdpbmRvdy5sb2NhdGlvbi5oYXNoID0gZnJhZ21lbnQ7Cgl9Cn0KCi8q CiAqIFRhYmxlIHNvcnRpbmcgc2NyaXB0IGJhc2VkIG9uIG9uZSAoYykgMTk5Ny0y MDA2IFN0dWFydCBMYW5ncmlkZ2UgYW5kIEpvb3N0CiAqIGRlIFZhbGs6CiAqIGh0 dHA6Ly93d3cuam9vc3RkZXZhbGsubmwvY29kZS9zb3J0YWJsZS10YWJsZS8KICog aHR0cDovL3d3dy5rcnlvZ2VuaXgub3JnL2NvZGUvYnJvd3Nlci9zb3J0dGFibGUv CiAqCiAqIEB0b2RvIGRvbid0IGJyZWFrIG9uIGNvbHNwYW5zL3Jvd3NwYW5zIChi dWcgODAyOCkKICogQHRvZG8gbGFuZ3VhZ2Utc3BlY2lmaWMgZGlnaXQgZ3JvdXBp bmcvZGVjaW1hbHMgKGJ1ZyA4MDYzKQogKiBAdG9kbyBzdXBwb3J0IGFsbCBhY2Nl cHRlZCBkYXRlIGZvcm1hdHMgKGJ1ZyA4MjI2KQogKi8KCnZhciB0c19pbWFnZV9w YXRoID0gc3R5bGVwYXRoKyIvY29tbW9uL2ltYWdlcy8iOwp2YXIgdHNfaW1hZ2Vf dXAgPSAic29ydF91cC5naWYiOwp2YXIgdHNfaW1hZ2VfZG93biA9ICJzb3J0X2Rv d24uZ2lmIjsKdmFyIHRzX2ltYWdlX25vbmUgPSAic29ydF9ub25lLmdpZiI7CnZh ciB0c19ldXJvcGVhbmRhdGUgPSB3Z0NvbnRlbnRMYW5ndWFnZSAhPSAiZW4iOyAv LyBUaGUgbm9uLUFtZXJpY2FuLWluY2xpbmVkIGNhbiBjaGFuZ2UgdG8gInRydWUi CnZhciB0c19hbHRlcm5hdGVfcm93X2NvbG9ycyA9IGZhbHNlOwp2YXIgdHNfbnVt YmVyX3RyYW5zZm9ybV90YWJsZSA9IG51bGw7CnZhciB0c19udW1iZXJfcmVnZXgg PSBudWxsOwoKZnVuY3Rpb24gc29ydGFibGVzX2luaXQoKSB7Cgl2YXIgaWRudW0g PSAwOwoJLy8gRmluZCBhbGwgdGFibGVzIHdpdGggY2xhc3Mgc29ydGFibGUgYW5k IG1ha2UgdGhlbSBzb3J0YWJsZQoJdmFyIHRhYmxlcyA9IGdldEVsZW1lbnRzQnlD bGFzc05hbWUoZG9jdW1lbnQsICJ0YWJsZSIsICJzb3J0YWJsZSIpOwoJZm9yICh2 YXIgdGkgPSAwOyB0aSA8IHRhYmxlcy5sZW5ndGggOyB0aSsrKSB7CgkJaWYgKCF0 YWJsZXNbdGldLmlkKSB7CgkJCXRhYmxlc1t0aV0uc2V0QXR0cmlidXRlKCdpZCcs J3NvcnRhYmxlX3RhYmxlX2lkXycraWRudW0pOwoJCQkrK2lkbnVtOwoJCX0KCQl0 c19tYWtlU29ydGFibGUodGFibGVzW3RpXSk7Cgl9Cn0KCmZ1bmN0aW9uIHRzX21h a2VTb3J0YWJsZSh0YWJsZSkgewoJdmFyIGZpcnN0Um93OwoJaWYgKHRhYmxlLnJv d3MgJiYgdGFibGUucm93cy5sZW5ndGggPiAwKSB7CgkJaWYgKHRhYmxlLnRIZWFk ICYmIHRhYmxlLnRIZWFkLnJvd3MubGVuZ3RoID4gMCkgewoJCQlmaXJzdFJvdyA9 IHRhYmxlLnRIZWFkLnJvd3NbdGFibGUudEhlYWQucm93cy5sZW5ndGgtMV07CgkJ fSBlbHNlIHsKCQkJZmlyc3RSb3cgPSB0YWJsZS5yb3dzWzBdOwoJCX0KCX0KCWlm ICghZmlyc3RSb3cpIHJldHVybjsKCgkvLyBXZSBoYXZlIGEgZmlyc3Qgcm93OiBh c3N1bWUgaXQncyB0aGUgaGVhZGVyLCBhbmQgbWFrZSBpdHMgY29udGVudHMgY2xp Y2thYmxlIGxpbmtzCglmb3IgKHZhciBpID0gMDsgaSA8IGZpcnN0Um93LmNlbGxz Lmxlbmd0aDsgaSsrKSB7CgkJdmFyIGNlbGwgPSBmaXJzdFJvdy5jZWxsc1tpXTsK CQlpZiAoKCIgIitjZWxsLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoIiB1bnNvcnRh YmxlICIpID09IC0xKSB7CgkJCWNlbGwuaW5uZXJIVE1MICs9ICcmbmJzcDsmbmJz cDsnCgkJCQkrICc8YSBocmVmPSIjIiBjbGFzcz0ic29ydGhlYWRlciIgJwoJCQkJ KyAnb25jbGljaz0idHNfcmVzb3J0VGFibGUodGhpcyk7cmV0dXJuIGZhbHNlOyI+ JwoJCQkJKyAnPHNwYW4gY2xhc3M9InNvcnRhcnJvdyI+JwoJCQkJKyAnPGltZyBz cmM9IicKCQkJCSsgdHNfaW1hZ2VfcGF0aAoJCQkJKyB0c19pbWFnZV9ub25lCgkJ CQkrICciIGFsdD0iJmRhcnI7Ii8+PC9zcGFuPjwvYT4nOwoJCX0KCX0KCWlmICh0 c19hbHRlcm5hdGVfcm93X2NvbG9ycykgewoJCXRzX2FsdGVybmF0ZSh0YWJsZSk7 Cgl9Cn0KCmZ1bmN0aW9uIHRzX2dldElubmVyVGV4dChlbCkgewoJcmV0dXJuIGdl dElubmVyVGV4dCggZWwgKTsKfQoKZnVuY3Rpb24gdHNfcmVzb3J0VGFibGUobG5r KSB7CgkvLyBnZXQgdGhlIHNwYW4KCXZhciBzcGFuID0gbG5rLmdldEVsZW1lbnRz QnlUYWdOYW1lKCdzcGFuJylbMF07CgoJdmFyIHRkID0gbG5rLnBhcmVudE5vZGU7 Cgl2YXIgdHIgPSB0ZC5wYXJlbnROb2RlOwoJdmFyIGNvbHVtbiA9IHRkLmNlbGxJ bmRleDsKCgl2YXIgdGFibGUgPSB0ci5wYXJlbnROb2RlOwoJd2hpbGUgKHRhYmxl ICYmICEodGFibGUudGFnTmFtZSAmJiB0YWJsZS50YWdOYW1lLnRvTG93ZXJDYXNl KCkgPT0gJ3RhYmxlJykpCgkJdGFibGUgPSB0YWJsZS5wYXJlbnROb2RlOwoJaWYg KCF0YWJsZSkgcmV0dXJuOwoKCWlmICh0YWJsZS5yb3dzLmxlbmd0aCA8PSAxKSBy ZXR1cm47CgoJLy8gR2VuZXJhdGUgdGhlIG51bWJlciB0cmFuc2Zvcm0gdGFibGUg aWYgaXQncyBub3QgZG9uZSBhbHJlYWR5CglpZiAodHNfbnVtYmVyX3RyYW5zZm9y bV90YWJsZSA9PSBudWxsKSB7CgkJdHNfaW5pdFRyYW5zZm9ybVRhYmxlKCk7Cgl9 CgoJLy8gV29yayBvdXQgYSB0eXBlIGZvciB0aGUgY29sdW1uCgkvLyBTa2lwIHRo ZSBmaXJzdCByb3cgaWYgdGhhdCdzIHdoZXJlIHRoZSBoZWFkaW5ncyBhcmUKCXZh ciByb3dTdGFydCA9ICh0YWJsZS50SGVhZCAmJiB0YWJsZS50SGVhZC5yb3dzLmxl bmd0aCA+IDAgPyAwIDogMSk7CgoJdmFyIGl0bSA9ICIiOwoJZm9yICh2YXIgaSA9 IHJvd1N0YXJ0OyBpIDwgdGFibGUucm93cy5sZW5ndGg7IGkrKykgewoJCWlmICh0 YWJsZS5yb3dzW2ldLmNlbGxzLmxlbmd0aCA+IGNvbHVtbikgewoJCQlpdG0gPSB0 c19nZXRJbm5lclRleHQodGFibGUucm93c1tpXS5jZWxsc1tjb2x1bW5dKTsKCQkJ aXRtID0gaXRtLnJlcGxhY2UoL15bXHNceGEwXSsvLCAiIikucmVwbGFjZSgvW1xz XHhhMF0rJC8sICIiKTsKCQkJaWYgKGl0bSAhPSAiIikgYnJlYWs7CgkJfQoJfQoK CS8vIFRPRE86IGJ1ZyA4MjI2LCBsb2NhbGlzZWQgZGF0ZSBmb3JtYXRzCgl2YXIg c29ydGZuID0gdHNfc29ydF9nZW5lcmljOwoJdmFyIHByZXByb2Nlc3NvciA9IHRz X3RvTG93ZXJDYXNlOwoJaWYgKC9eXGRcZFtcLy4gLV1bYS16QS1aXXszfVtcLy4g LV1cZFxkXGRcZCQvLnRlc3QoaXRtKSkgewoJCXByZXByb2Nlc3NvciA9IHRzX2Rh dGVUb1NvcnRLZXk7Cgl9IGVsc2UgaWYgKC9eXGRcZFtcLy4tXVxkXGRbXC8uLV1c ZFxkXGRcZCQvLnRlc3QoaXRtKSkgewoJCXByZXByb2Nlc3NvciA9IHRzX2RhdGVU b1NvcnRLZXk7Cgl9IGVsc2UgaWYgKC9eXGRcZFtcLy4tXVxkXGRbXC8uLV1cZFxk JC8udGVzdChpdG0pKSB7CgkJcHJlcHJvY2Vzc29yID0gdHNfZGF0ZVRvU29ydEtl eTsKCS8vIHBvdW5kIGRvbGxhciBldXJvIHllbiBjdXJyZW5jeSBjZW50cwoJfSBl bHNlIGlmICgvKF5bXHUwMGEzJFx1MjBhY1x1MDBhNFx1MDBhNV18XHUwMGEyJCkv LnRlc3QoaXRtKSkgewoJCXByZXByb2Nlc3NvciA9IHRzX2N1cnJlbmN5VG9Tb3J0 S2V5OwoJfSBlbHNlIGlmICh0c19udW1iZXJfcmVnZXgudGVzdChpdG0pKSB7CgkJ cHJlcHJvY2Vzc29yID0gdHNfcGFyc2VGbG9hdDsKCX0KCgl2YXIgcmV2ZXJzZSA9 IChzcGFuLmdldEF0dHJpYnV0ZSgic29ydGRpciIpID09ICdkb3duJyk7CgoJdmFy IG5ld1Jvd3MgPSBuZXcgQXJyYXkoKTsKCXZhciBzdGF0aWNSb3dzID0gbmV3IEFy cmF5KCk7Cglmb3IgKHZhciBqID0gcm93U3RhcnQ7IGogPCB0YWJsZS5yb3dzLmxl bmd0aDsgaisrKSB7CgkJdmFyIHJvdyA9IHRhYmxlLnJvd3Nbal07CgkJaWYoKCIg Iityb3cuY2xhc3NOYW1lKyIgIikuaW5kZXhPZigiIHVuc29ydGFibGUgIikgPCAw KSB7CgkJCXZhciBrZXlUZXh0ID0gdHNfZ2V0SW5uZXJUZXh0KHJvdy5jZWxsc1tj b2x1bW5dKTsKCQkJdmFyIG9sZEluZGV4ID0gKHJldmVyc2UgPyAtaiA6IGopOwoJ CQl2YXIgcHJlcHJvY2Vzc2VkID0gcHJlcHJvY2Vzc29yKCBrZXlUZXh0ICk7CgoJ CQluZXdSb3dzW25ld1Jvd3MubGVuZ3RoXSA9IG5ldyBBcnJheShyb3csIHByZXBy b2Nlc3NlZCwgb2xkSW5kZXgpOwoJCX0gZWxzZSBzdGF0aWNSb3dzW3N0YXRpY1Jv d3MubGVuZ3RoXSA9IG5ldyBBcnJheShyb3csIGZhbHNlLCBqLXJvd1N0YXJ0KTsK CX0KCgluZXdSb3dzLnNvcnQoc29ydGZuKTsKCgl2YXIgYXJyb3dIVE1MOwoJaWYg KHJldmVyc2UpIHsKCQlhcnJvd0hUTUwgPSAnPGltZyBzcmM9IicrIHRzX2ltYWdl X3BhdGggKyB0c19pbWFnZV9kb3duICsgJyIgYWx0PSImZGFycjsiLz4nOwoJCW5l d1Jvd3MucmV2ZXJzZSgpOwoJCXNwYW4uc2V0QXR0cmlidXRlKCdzb3J0ZGlyJywn dXAnKTsKCX0gZWxzZSB7CgkJYXJyb3dIVE1MID0gJzxpbWcgc3JjPSInKyB0c19p bWFnZV9wYXRoICsgdHNfaW1hZ2VfdXAgKyAnIiBhbHQ9IiZ1YXJyOyIvPic7CgkJ c3Bhbi5zZXRBdHRyaWJ1dGUoJ3NvcnRkaXInLCdkb3duJyk7Cgl9CgoJZm9yICh2 YXIgaSA9IDA7IGkgPCBzdGF0aWNSb3dzLmxlbmd0aDsgaSsrKSB7CgkJdmFyIHJv dyA9IHN0YXRpY1Jvd3NbaV07CgkJbmV3Um93cy5zcGxpY2Uocm93WzJdLCAwLCBy b3cpOwoJfQoKCS8vIFdlIGFwcGVuZENoaWxkIHJvd3MgdGhhdCBhbHJlYWR5IGV4 aXN0IHRvIHRoZSB0Ym9keSwgc28gaXQgbW92ZXMgdGhlbSByYXRoZXIgdGhhbiBj cmVhdGluZyBuZXcgb25lcwoJLy8gZG9uJ3QgZG8gc29ydGJvdHRvbSByb3dzCglm b3IgKHZhciBpID0gMDsgaSA8IG5ld1Jvd3MubGVuZ3RoOyBpKyspIHsKCQlpZiAo KCIgIituZXdSb3dzW2ldWzBdLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoIiBzb3J0 Ym90dG9tICIpID09IC0xKQoJCQl0YWJsZS50Qm9kaWVzWzBdLmFwcGVuZENoaWxk KG5ld1Jvd3NbaV1bMF0pOwoJfQoJLy8gZG8gc29ydGJvdHRvbSByb3dzIG9ubHkK CWZvciAodmFyIGkgPSAwOyBpIDwgbmV3Um93cy5sZW5ndGg7IGkrKykgewoJCWlm ICgoIiAiK25ld1Jvd3NbaV1bMF0uY2xhc3NOYW1lKyIgIikuaW5kZXhPZigiIHNv cnRib3R0b20gIikgIT0gLTEpCgkJCXRhYmxlLnRCb2RpZXNbMF0uYXBwZW5kQ2hp bGQobmV3Um93c1tpXVswXSk7Cgl9CgoJLy8gRGVsZXRlIGFueSBvdGhlciBhcnJv d3MgdGhlcmUgbWF5IGJlIHNob3dpbmcKCXZhciBzcGFucyA9IGdldEVsZW1lbnRz QnlDbGFzc05hbWUodHIsICJzcGFuIiwgInNvcnRhcnJvdyIpOwoJZm9yICh2YXIg aSA9IDA7IGkgPCBzcGFucy5sZW5ndGg7IGkrKykgewoJCXNwYW5zW2ldLmlubmVy SFRNTCA9ICc8aW1nIHNyYz0iJysgdHNfaW1hZ2VfcGF0aCArIHRzX2ltYWdlX25v bmUgKyAnIiBhbHQ9IiZkYXJyOyIvPic7Cgl9CglzcGFuLmlubmVySFRNTCA9IGFy cm93SFRNTDsKCglpZiAodHNfYWx0ZXJuYXRlX3Jvd19jb2xvcnMpIHsKCQl0c19h bHRlcm5hdGUodGFibGUpOwoJfQp9CgpmdW5jdGlvbiB0c19pbml0VHJhbnNmb3Jt VGFibGUoKSB7CglpZiAoIHR5cGVvZiB3Z1NlcGFyYXRvclRyYW5zZm9ybVRhYmxl ID09ICJ1bmRlZmluZWQiCgkJCXx8ICggd2dTZXBhcmF0b3JUcmFuc2Zvcm1UYWJs ZVswXSA9PSAnJyAmJiB3Z0RpZ2l0VHJhbnNmb3JtVGFibGVbMl0gPT0gJycgKSAp Cgl7CgkJZGlnaXRDbGFzcyA9ICJbMC05LC5dIjsKCQl0c19udW1iZXJfdHJhbnNm b3JtX3RhYmxlID0gZmFsc2U7Cgl9IGVsc2UgewoJCXRzX251bWJlcl90cmFuc2Zv cm1fdGFibGUgPSB7fTsKCQkvLyBVbnBhY2sgdGhlIHRyYW5zZm9ybSB0YWJsZQoJ CS8vIFNlcGFyYXRvcnMKCQlhc2NpaSA9IHdnU2VwYXJhdG9yVHJhbnNmb3JtVGFi bGVbMF0uc3BsaXQoIlx0Iik7CgkJbG9jYWxpc2VkID0gd2dTZXBhcmF0b3JUcmFu c2Zvcm1UYWJsZVsxXS5zcGxpdCgiXHQiKTsKCQlmb3IgKCB2YXIgaSA9IDA7IGkg PCBhc2NpaS5sZW5ndGg7IGkrKyApIHsgCgkJCXRzX251bWJlcl90cmFuc2Zvcm1f dGFibGVbbG9jYWxpc2VkW2ldXSA9IGFzY2lpW2ldOwoJCX0KCQkvLyBEaWdpdHMK CQlhc2NpaSA9IHdnRGlnaXRUcmFuc2Zvcm1UYWJsZVswXS5zcGxpdCgiXHQiKTsK CQlsb2NhbGlzZWQgPSB3Z0RpZ2l0VHJhbnNmb3JtVGFibGVbMV0uc3BsaXQoIlx0 Iik7CgkJZm9yICggdmFyIGkgPSAwOyBpIDwgYXNjaWkubGVuZ3RoOyBpKysgKSB7 IAoJCQl0c19udW1iZXJfdHJhbnNmb3JtX3RhYmxlW2xvY2FsaXNlZFtpXV0gPSBh c2NpaVtpXTsKCQl9CgoJCS8vIENvbnN0cnVjdCByZWdleCBmb3IgbnVtYmVyIGlk ZW50aWZpY2F0aW9uCgkJZGlnaXRzID0gWycwJywgJzEnLCAnMicsICczJywgJzQn LCAnNScsICc2JywgJzcnLCAnOCcsICc5JywgJywnLCAnXFwuJ107CgkJbWF4RGln aXRMZW5ndGggPSAxOwoJCWZvciAoIHZhciBkaWdpdCBpbiB0c19udW1iZXJfdHJh bnNmb3JtX3RhYmxlICkgewoJCQkvLyBFc2NhcGUgcmVnZXggbWV0YWNoYXJhY3Rl cnMKCQkJZGlnaXRzLnB1c2goIAoJCQkJZGlnaXQucmVwbGFjZSggL1tcXFxcJFwq XCtcP1wuXChcKVx8XHtcfVxbXF1cLV0vLAoJCQkJCWZ1bmN0aW9uKCBzICkgeyBy ZXR1cm4gJ1xcJyArIHM7IH0gKQoJCQkpOwoJCQlpZiAoZGlnaXQubGVuZ3RoID4g bWF4RGlnaXRMZW5ndGgpIHsKCQkJCW1heERpZ2l0TGVuZ3RoID0gZGlnaXQubGVu Z3RoOwoJCQl9CgkJfQoJCWlmICggbWF4RGlnaXRMZW5ndGggPiAxICkgewoJCQlk aWdpdENsYXNzID0gJ1snICsgZGlnaXRzLmpvaW4oICcnLCBkaWdpdHMgKSArICdd JzsKCQl9IGVsc2UgewoJCQlkaWdpdENsYXNzID0gJygnICsgZGlnaXRzLmpvaW4o ICd8JywgZGlnaXRzICkgKyAnKSc7CgkJfQoJfQoKCS8vIFdlIGFsbG93IGEgdHJh aWxpbmcgcGVyY2VudCBzaWduLCB3aGljaCB3ZSBqdXN0IHN0cmlwLiAgVGhpcyB3 b3JrcyBmaW5lCgkvLyBpZiBwZXJjZW50cyBhbmQgcmVndWxhciBudW1iZXJzIGFy ZW4ndCBiZWluZyBtaXhlZC4KCXRzX251bWJlcl9yZWdleCA9IG5ldyBSZWdFeHAo CgkJIl4oIiArCgkJCSJbKy1dP1swLTldWzAtOSxdKihcXC5bMC05LF0qKT8oRVsr LV0/WzAtOV1bMC05LF0qKT8iICsgLy8gRm9ydHJhbi1zdHlsZSBzY2llbnRpZmlj CgkJCSJ8IiArCgkJCSJbKy1dPyIgKyBkaWdpdENsYXNzICsgIislPyIgKyAvLyBH ZW5lcmljIGxvY2FsaXNlZAoJCSIpJCIsICJpIgoJKTsKfQoKZnVuY3Rpb24gdHNf dG9Mb3dlckNhc2UoIHMgKSB7CglyZXR1cm4gcy50b0xvd2VyQ2FzZSgpOwp9Cgpm dW5jdGlvbiB0c19kYXRlVG9Tb3J0S2V5KGRhdGUpIHsJCgkvLyB5Mmsgbm90ZXM6 IHR3byBkaWdpdCB5ZWFycyBsZXNzIHRoYW4gNTAgYXJlIHRyZWF0ZWQgYXMgMjBY WCwgZ3JlYXRlciB0aGFuIDUwIGFyZSB0cmVhdGVkIGFzIDE5WFgKCWlmIChkYXRl Lmxlbmd0aCA9PSAxMSkgewoJCXN3aXRjaCAoZGF0ZS5zdWJzdHIoMywzKS50b0xv d2VyQ2FzZSgpKSB7CgkJCWNhc2UgImphbiI6IHZhciBtb250aCA9ICIwMSI7IGJy ZWFrOwoJCQljYXNlICJmZWIiOiB2YXIgbW9udGggPSAiMDIiOyBicmVhazsKCQkJ Y2FzZSAibWFyIjogdmFyIG1vbnRoID0gIjAzIjsgYnJlYWs7CgkJCWNhc2UgImFw ciI6IHZhciBtb250aCA9ICIwNCI7IGJyZWFrOwoJCQljYXNlICJtYXkiOiB2YXIg bW9udGggPSAiMDUiOyBicmVhazsKCQkJY2FzZSAianVuIjogdmFyIG1vbnRoID0g IjA2IjsgYnJlYWs7CgkJCWNhc2UgImp1bCI6IHZhciBtb250aCA9ICIwNyI7IGJy ZWFrOwoJCQljYXNlICJhdWciOiB2YXIgbW9udGggPSAiMDgiOyBicmVhazsKCQkJ Y2FzZSAic2VwIjogdmFyIG1vbnRoID0gIjA5IjsgYnJlYWs7CgkJCWNhc2UgIm9j dCI6IHZhciBtb250aCA9ICIxMCI7IGJyZWFrOwoJCQljYXNlICJub3YiOiB2YXIg bW9udGggPSAiMTEiOyBicmVhazsKCQkJY2FzZSAiZGVjIjogdmFyIG1vbnRoID0g IjEyIjsgYnJlYWs7CgkJCS8vIGRlZmF1bHQ6IHZhciBtb250aCA9ICIwMCI7CgkJ fQoJCXJldHVybiBkYXRlLnN1YnN0cig3LDQpK21vbnRoK2RhdGUuc3Vic3RyKDAs Mik7Cgl9IGVsc2UgaWYgKGRhdGUubGVuZ3RoID09IDEwKSB7CgkJaWYgKHRzX2V1 cm9wZWFuZGF0ZSA9PSBmYWxzZSkgewoJCQlyZXR1cm4gZGF0ZS5zdWJzdHIoNiw0 KStkYXRlLnN1YnN0cigwLDIpK2RhdGUuc3Vic3RyKDMsMik7CgkJfSBlbHNlIHsK CQkJcmV0dXJuIGRhdGUuc3Vic3RyKDYsNCkrZGF0ZS5zdWJzdHIoMywyKStkYXRl LnN1YnN0cigwLDIpOwoJCX0KCX0gZWxzZSBpZiAoZGF0ZS5sZW5ndGggPT0gOCkg ewoJCXlyID0gZGF0ZS5zdWJzdHIoNiwyKTsKCQlpZiAocGFyc2VJbnQoeXIpIDwg NTApIHsgCgkJCXlyID0gJzIwJyt5cjsgCgkJfSBlbHNlIHsgCgkJCXlyID0gJzE5 Jyt5cjsgCgkJfQoJCWlmICh0c19ldXJvcGVhbmRhdGUgPT0gdHJ1ZSkgewoJCQly ZXR1cm4geXIrZGF0ZS5zdWJzdHIoMywyKStkYXRlLnN1YnN0cigwLDIpOwoJCX0g ZWxzZSB7CgkJCXJldHVybiB5citkYXRlLnN1YnN0cigwLDIpK2RhdGUuc3Vic3Ry KDMsMik7CgkJfQoJfQoJcmV0dXJuICIwMDAwMDAwMCI7Cn0KCmZ1bmN0aW9uIHRz X3BhcnNlRmxvYXQoIHMgKSB7CglpZiAoICFzICkgewoJCXJldHVybiAwOwoJfQoJ aWYgKHRzX251bWJlcl90cmFuc2Zvcm1fdGFibGUgIT0gZmFsc2UpIHsKCQl2YXIg bmV3TnVtID0gJycsIGM7CgkJCgkJZm9yICggdmFyIHAgPSAwOyBwIDwgcy5sZW5n dGg7IHArKyApIHsKCQkJYyA9IHMuY2hhckF0KCBwICk7CgkJCWlmIChjIGluIHRz X251bWJlcl90cmFuc2Zvcm1fdGFibGUpIHsKCQkJCW5ld051bSArPSB0c19udW1i ZXJfdHJhbnNmb3JtX3RhYmxlW2NdOwoJCQl9IGVsc2UgewoJCQkJbmV3TnVtICs9 IGM7CgkJCX0KCQl9CgkJcyA9IG5ld051bTsKCX0KCgludW0gPSBwYXJzZUZsb2F0 KHMucmVwbGFjZSgvLC9nLCAiIikpOwoJcmV0dXJuIChpc05hTihudW0pID8gMCA6 IG51bSk7Cn0KCmZ1bmN0aW9uIHRzX2N1cnJlbmN5VG9Tb3J0S2V5KCBzICkgewoJ cmV0dXJuIHRzX3BhcnNlRmxvYXQocy5yZXBsYWNlKC9bXjAtOS4sXS9nLCcnKSk7 Cn0KCmZ1bmN0aW9uIHRzX3NvcnRfZ2VuZXJpYyhhLCBiKSB7CglyZXR1cm4gYVsx XSA8IGJbMV0gPyAtMSA6IGFbMV0gPiBiWzFdID8gMSA6IGFbMl0gLSBiWzJdOwp9 CgpmdW5jdGlvbiB0c19hbHRlcm5hdGUodGFibGUpIHsKCS8vIFRha2Ugb2JqZWN0 IHRhYmxlIGFuZCBnZXQgYWxsIGl0J3MgdGJvZGllcy4KCXZhciB0YWJsZUJvZGll cyA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpOwoJLy8gTG9v cCB0aHJvdWdoIHRoZXNlIHRib2RpZXMKCWZvciAodmFyIGkgPSAwOyBpIDwgdGFi bGVCb2RpZXMubGVuZ3RoOyBpKyspIHsKCQkvLyBUYWtlIHRoZSB0Ym9keSwgYW5k IGdldCBhbGwgaXQncyByb3dzCgkJdmFyIHRhYmxlUm93cyA9IHRhYmxlQm9kaWVz W2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ciIpOwoJCS8vIExvb3AgdGhyb3Vn aCB0aGVzZSByb3dzCgkJLy8gU3RhcnQgYXQgMSBiZWNhdXNlIHdlIHdhbnQgdG8g bGVhdmUgdGhlIGhlYWRpbmcgcm93IHVudG91Y2hlZAoJCWZvciAodmFyIGogPSAw OyBqIDwgdGFibGVSb3dzLmxlbmd0aDsgaisrKSB7CgkJCS8vIENoZWNrIGlmIGog aXMgZXZlbiwgYW5kIGFwcGx5IGNsYXNzZXMgZm9yIGJvdGggcG9zc2libGUgcmVz dWx0cwoJCQl2YXIgb2xkQ2xhc3NlcyA9IHRhYmxlUm93c1tqXS5jbGFzc05hbWUu c3BsaXQoIiAiKTsKCQkJdmFyIG5ld0NsYXNzTmFtZSA9ICIiOwoJCQlmb3IgKHZh ciBrID0gMDsgayA8IG9sZENsYXNzZXMubGVuZ3RoOyBrKyspIHsKCQkJCWlmIChv bGRDbGFzc2VzW2tdICE9ICIiICYmIG9sZENsYXNzZXNba10gIT0gImV2ZW4iICYm IG9sZENsYXNzZXNba10gIT0gIm9kZCIpCgkJCQkJbmV3Q2xhc3NOYW1lICs9IG9s ZENsYXNzZXNba10gKyAiICI7CgkJCX0KCQkJdGFibGVSb3dzW2pdLmNsYXNzTmFt ZSA9IG5ld0NsYXNzTmFtZSArIChqICUgMiA9PSAwID8gImV2ZW4iIDogIm9kZCIp OwoJCX0KCX0KfQoKLyoKICogRW5kIG9mIHRhYmxlIHNvcnRpbmcgY29kZQogKi8K IAogCi8qKgogKiBBZGQgYSBjdXRlIGxpdHRsZSBib3ggYXQgdGhlIHRvcCBvZiB0 aGUgc2NyZWVuIHRvIGluZm9ybSB0aGUgdXNlciBvZgogKiBzb21ldGhpbmcsIHJl cGxhY2luZyBhbnkgcHJlZXhpc3RpbmcgbWVzc2FnZS4KICoKICogQHBhcmFtIFN0 cmluZyAtb3ItIERvbSBPYmplY3QgbWVzc2FnZSBIVE1MIHRvIGJlIHB1dCBpbnNp ZGUgdGhlIHJpZ2h0IGRpdgogKiBAcGFyYW0gU3RyaW5nIGNsYXNzTmFtZSAgIFVz ZWQgaW4gYWRkaW5nIGEgY2xhc3M7IHNob3VsZCBiZSBkaWZmZXJlbnQgZm9yIGVh Y2gKICogICBjYWxsIHRvIGFsbG93IENTUy9KUyB0byBoaWRlIGRpZmZlcmVudCBi b3hlcy4gIG51bGwgPSBubyBjbGFzcyB1c2VkLgogKiBAcmV0dXJuIEJvb2xlYW4g ICAgICAgVHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlCiAqLwpmdW5j dGlvbiBqc01zZyggbWVzc2FnZSwgY2xhc3NOYW1lICkgewoJaWYgKCAhZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQgKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJLy8gV2Ug c3BlY2lhbC1jYXNlIHNraW4gc3RydWN0dXJlcyBwcm92aWRlZCBieSB0aGUgc29m dHdhcmUuICBTa2lucyB0aGF0CgkvLyBjaG9vc2UgdG8gYWJhbmRvbiBvciBzaWdu aWZpY2FudGx5IG1vZGlmeSBvdXIgZm9ybWF0dGluZyBjYW4ganVzdCBkZWZpbmUK CS8vIGFuIG13LWpzLW1lc3NhZ2UgZGl2IHRvIHN0YXJ0IHdpdGguCgl2YXIgbWVz c2FnZURpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnbXctanMtbWVzc2Fn ZScgKTsKCWlmICggIW1lc3NhZ2VEaXYgKSB7CgkJbWVzc2FnZURpdiA9IGRvY3Vt ZW50LmNyZWF0ZUVsZW1lbnQoICdkaXYnICk7CgkJaWYgKCBkb2N1bWVudC5nZXRF bGVtZW50QnlJZCggJ2NvbHVtbi1jb250ZW50JyApCgkJJiYgZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoICdjb250ZW50JyApICkgewoJCQkvLyBNb25vQm9vaywgcHJl c3VtYWJseQoJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2NvbnRlbnQnICku aW5zZXJ0QmVmb3JlKAoJCQkJbWVzc2FnZURpdiwKCQkJCWRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCAnY29udGVudCcgKS5maXJzdENoaWxkCgkJCSk7CgkJfSBlbHNl IGlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRlbnQnKQoJCSYmIGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCAnYXJ0aWNsZScgKSApIHsKCQkJLy8gTm9u LU1vbm9ib29rIGJ1dCBzdGlsbCByZWNvZ25pemFibGUgKG9sZC1zdHlsZSkKCQkJ ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdhcnRpY2xlJykuaW5zZXJ0QmVmb3Jl KAoJCQkJbWVzc2FnZURpdiwKCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAn YXJ0aWNsZScgKS5maXJzdENoaWxkCgkJCSk7CgkJfSBlbHNlIHsKCQkJcmV0dXJu IGZhbHNlOwoJCX0KCX0KCgltZXNzYWdlRGl2LnNldEF0dHJpYnV0ZSggJ2lkJywg J213LWpzLW1lc3NhZ2UnICk7CgltZXNzYWdlRGl2LnN0eWxlLmRpc3BsYXkgPSAn YmxvY2snOwoJaWYoIGNsYXNzTmFtZSApIHsKCQltZXNzYWdlRGl2LnNldEF0dHJp YnV0ZSggJ2NsYXNzJywgJ213LWpzLW1lc3NhZ2UtJytjbGFzc05hbWUgKTsKCX0K CQoJaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0JykgewoJCXdoaWxlICht ZXNzYWdlRGl2Lmhhc0NoaWxkTm9kZXMoKSkgLy8gUmVtb3ZlIG9sZCBjb250ZW50 CgkJCW1lc3NhZ2VEaXYucmVtb3ZlQ2hpbGQobWVzc2FnZURpdi5maXJzdENoaWxk KTsKCQltZXNzYWdlRGl2LmFwcGVuZENoaWxkIChtZXNzYWdlKTsgLy8gQXBwZW5k IG5ldyBjb250ZW50Cgl9CgllbHNlIHsKCQltZXNzYWdlRGl2LmlubmVySFRNTCA9 IG1lc3NhZ2U7Cgl9CglyZXR1cm4gdHJ1ZTsKfQoKLyoqCiAqIEluamVjdCBhIGN1 dGUgbGl0dGxlIHByb2dyZXNzIHNwaW5uZXIgYWZ0ZXIgdGhlIHNwZWNpZmllZCBl bGVtZW50CiAqCiAqIEBwYXJhbSBlbGVtZW50IEVsZW1lbnQgdG8gaW5qZWN0IGFm dGVyCiAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIHN0cmluZyAoZm9yIHVzZSB3aXRo IHJlbW92ZVNwaW5uZXIoKSwgYmVsb3cpCiAqLwpmdW5jdGlvbiBpbmplY3RTcGlu bmVyKCBlbGVtZW50LCBpZCApIHsKCXZhciBzcGlubmVyID0gZG9jdW1lbnQuY3Jl YXRlRWxlbWVudCggImltZyIgKTsKCXNwaW5uZXIuaWQgPSAibXctc3Bpbm5lci0i ICsgaWQ7CglzcGlubmVyLnNyYyA9IHN0eWxlcGF0aCArICIvY29tbW9uL2ltYWdl cy9zcGlubmVyLmdpZiI7CglzcGlubmVyLmFsdCA9IHNwaW5uZXIudGl0bGUgPSAi Li4uIjsKCWlmKCBlbGVtZW50Lm5leHRTaWJsaW5nICkgewoJCWVsZW1lbnQucGFy ZW50Tm9kZS5pbnNlcnRCZWZvcmUoIHNwaW5uZXIsIGVsZW1lbnQubmV4dFNpYmxp bmcgKTsKCX0gZWxzZSB7CgkJZWxlbWVudC5wYXJlbnROb2RlLmFwcGVuZENoaWxk KCBzcGlubmVyICk7Cgl9Cn0KCi8qKgogKiBSZW1vdmUgYSBwcm9ncmVzcyBzcGlu bmVyIGFkZGVkIHdpdGggaW5qZWN0U3Bpbm5lcigpCiAqCiAqIEBwYXJhbSBpZCBJ ZGVudGlmaWVyIHN0cmluZwogKi8KZnVuY3Rpb24gcmVtb3ZlU3Bpbm5lciggaWQg KSB7Cgl2YXIgc3Bpbm5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAibXct c3Bpbm5lci0iICsgaWQgKTsKCWlmKCBzcGlubmVyICkgewoJCXNwaW5uZXIucGFy ZW50Tm9kZS5yZW1vdmVDaGlsZCggc3Bpbm5lciApOwoJfQp9CgpmdW5jdGlvbiBy dW5PbmxvYWRIb29rKCkgewoJLy8gZG9uJ3QgcnVuIGFueXRoaW5nIGJlbG93IHRo aXMgZm9yIG5vbi1kb20gYnJvd3NlcnMKCWlmIChkb25lT25sb2FkSG9vayB8fCAh KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkICYmIGRvY3VtZW50LmdldEVsZW1lbnRz QnlUYWdOYW1lKSkgewoJCXJldHVybjsKCX0KCgkvLyBzZXQgdGhpcyBiZWZvcmUg cnVubmluZyBhbnkgaG9va3MsIHNpbmNlIGFueSBlcnJvcnMgYmVsb3cKCS8vIG1p Z2h0IGNhdXNlIHRoZSBmdW5jdGlvbiB0byB0ZXJtaW5hdGUgcHJlbWF0dXJlbHkK CWRvbmVPbmxvYWRIb29rID0gdHJ1ZTsKCgl1cGRhdGVUb29sdGlwQWNjZXNzS2V5 cyggbnVsbCApOwoJYWtleXR0KCBudWxsICk7CglzZXR1cENoZWNrYm94U2hpZnRD bGljaygpOwoJc29ydGFibGVzX2luaXQoKTsKCgkvLyBSdW4gYW55IGFkZGVkLW9u IGZ1bmN0aW9ucwoJZm9yICh2YXIgaSA9IDA7IGkgPCBvbmxvYWRGdW5jdHMubGVu Z3RoOyBpKyspIHsKCQlvbmxvYWRGdW5jdHNbaV0oKTsKCX0KfQoKLyoqCiAqIEFk ZCBhbiBldmVudCBoYW5kbGVyIHRvIGFuIGVsZW1lbnQKICoKICogQHBhcmFtIEVs ZW1lbnQgZWxlbWVudCBFbGVtZW50IHRvIGFkZCBoYW5kbGVyIHRvCiAqIEBwYXJh bSBTdHJpbmcgYXR0YWNoIEV2ZW50IHRvIGF0dGFjaCB0bwogKiBAcGFyYW0gY2Fs bGFibGUgaGFuZGxlciBFdmVudCBoYW5kbGVyIGNhbGxiYWNrCiAqLwpmdW5jdGlv biBhZGRIYW5kbGVyKCBlbGVtZW50LCBhdHRhY2gsIGhhbmRsZXIgKSB7CglpZigg d2luZG93LmFkZEV2ZW50TGlzdGVuZXIgKSB7CgkJZWxlbWVudC5hZGRFdmVudExp c3RlbmVyKCBhdHRhY2gsIGhhbmRsZXIsIGZhbHNlICk7Cgl9IGVsc2UgaWYoIHdp bmRvdy5hdHRhY2hFdmVudCApIHsKCQllbGVtZW50LmF0dGFjaEV2ZW50KCAnb24n ICsgYXR0YWNoLCBoYW5kbGVyICk7Cgl9Cn0KCi8qKgogKiBBZGQgYSBjbGljayBl dmVudCBoYW5kbGVyIHRvIGFuIGVsZW1lbnQKICoKICogQHBhcmFtIEVsZW1lbnQg ZWxlbWVudCBFbGVtZW50IHRvIGFkZCBoYW5kbGVyIHRvCiAqIEBwYXJhbSBjYWxs YWJsZSBoYW5kbGVyIEV2ZW50IGhhbmRsZXIgY2FsbGJhY2sKICovCmZ1bmN0aW9u IGFkZENsaWNrSGFuZGxlciggZWxlbWVudCwgaGFuZGxlciApIHsKCWFkZEhhbmRs ZXIoIGVsZW1lbnQsICdjbGljaycsIGhhbmRsZXIgKTsKfQoKLyoqCiAqIFJlbW92 ZXMgYW4gZXZlbnQgaGFuZGxlciBmcm9tIGFuIGVsZW1lbnQKICoKICogQHBhcmFt IEVsZW1lbnQgZWxlbWVudCBFbGVtZW50IHRvIHJlbW92ZSBoYW5kbGVyIGZyb20K ICogQHBhcmFtIFN0cmluZyByZW1vdmUgRXZlbnQgdG8gcmVtb3ZlCiAqIEBwYXJh bSBjYWxsYWJsZSBoYW5kbGVyIEV2ZW50IGhhbmRsZXIgY2FsbGJhY2sgdG8gcmVt b3ZlCiAqLwpmdW5jdGlvbiByZW1vdmVIYW5kbGVyKCBlbGVtZW50LCByZW1vdmUs IGhhbmRsZXIgKSB7CglpZiggd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIgKSB7 CgkJZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCByZW1vdmUsIGhhbmRsZXIs IGZhbHNlICk7Cgl9IGVsc2UgaWYoIHdpbmRvdy5kZXRhY2hFdmVudCApIHsKCQll bGVtZW50LmRldGFjaEV2ZW50KCAnb24nICsgcmVtb3ZlLCBoYW5kbGVyICk7Cgl9 Cn0KLy9ub3RlOiBhbGwgc2tpbnMgc2hvdWxkIGNhbGwgcnVuT25sb2FkSG9vaygp IGF0IHRoZSBlbmQgb2YgaHRtbCBvdXRwdXQsCi8vICAgICAgc28gdGhlIGJlbG93 IHNob3VsZCBiZSByZWR1bmRhbnQuIEl0J3MgdGhlcmUganVzdCBpbiBjYXNlLgpo b29rRXZlbnQoImxvYWQiLCBydW5PbmxvYWRIb29rKTsK ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=ajax.js Content-Type: application/x-javascript; charset=utf-8; name=ajax.js Content-Location: http://ru.wikipedia.org/skins-1.5/common/ajax.js?233zz2 Content-Transfer-Encoding: Base64 Ly8gcmVtb3RlIHNjcmlwdGluZyBsaWJyYXJ5Ci8vIChjKSBjb3B5cmlnaHQgMjAw NSBtb2Rlcm5tZXRob2QsIGluYwp2YXIgc2FqYXhfZGVidWdfbW9kZSA9IGZhbHNl Owp2YXIgc2FqYXhfcmVxdWVzdF90eXBlID0gIkdFVCI7CgovKioKKiBpZiBzYWph eF9kZWJ1Z19tb2RlIGlzIHRydWUsIHRoaXMgZnVuY3Rpb24gb3V0cHV0cyBnaXZl biB0aGUgbWVzc2FnZSBpbnRvIAoqIHRoZSBlbGVtZW50IHdpdGggaWQgPSBzYWph eF9kZWJ1ZzsgaWYgbm8gc3VjaCBlbGVtZW50IGV4aXN0cyBpbiB0aGUgZG9jdW1l bnQsIAoqIGl0IGlzIGluamVjdGVkLgoqLwpmdW5jdGlvbiBzYWpheF9kZWJ1Zyh0 ZXh0KSB7CglpZiAoIXNhamF4X2RlYnVnX21vZGUpIHJldHVybiBmYWxzZTsKCgl2 YXIgZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhamF4X2RlYnVnJyk7CgoJ aWYgKCFlKSB7CgkJZT0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwoJCWUu Y2xhc3NOYW1lPSAnc2FqYXhfZGVidWcnOwoJCWUuaWQ9ICdzYWpheF9kZWJ1Zyc7 CgoJCXZhciBiPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIp WzBdOwoKCQlpZiAoYi5maXJzdENoaWxkKSBiLmluc2VydEJlZm9yZShlLCBiLmZp cnN0Q2hpbGQpOwoJCWVsc2UgYi5hcHBlbmRDaGlsZChlKTsKCX0KCgl2YXIgbT0g ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgltLmFwcGVuZENoaWxkKCBk b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggdGV4dCApICk7CgoJZS5hcHBlbmRDaGls ZCggbSApOwoKCXJldHVybiB0cnVlOwp9CgovKioKKiBjb21wYXRpYmlsaXR5IHdy YXBwZXIgZm9yIGNyZWF0aW5nIGEgbmV3IFhNTEh0dHBSZXF1ZXN0IG9iamVjdC4K Ki8KZnVuY3Rpb24gc2FqYXhfaW5pdF9vYmplY3QoKSB7CglzYWpheF9kZWJ1Zygi c2FqYXhfaW5pdF9vYmplY3QoKSBjYWxsZWQuLiIpCgl2YXIgQTsKCXRyeSB7CgkJ Ly8gVHJ5IHRoZSBuZXcgc3R5bGUgYmVmb3JlIEFjdGl2ZVggc28gd2UgZG9uJ3QK CQkvLyB1bm5lY2Vzc2FyaWx5IHRyaWdnZXIgd2FybmluZ3MgaW4gSUUgNyB3aGVu CgkJLy8gc2V0IHRvIHByb21wdCBhYm91dCBBY3RpdmVYIHVzYWdlCgkJQSA9IG5l dyBYTUxIdHRwUmVxdWVzdCgpOwoJfSBjYXRjaCAoZSkgewoJCXRyeSB7CgkJCUE9 bmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7CgkJfSBjYXRjaCAo ZSkgewoJCQl0cnkgewoJCQkJQT1uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0 LlhNTEhUVFAiKTsKCQkJfSBjYXRjaCAob2MpIHsKCQkJCUE9bnVsbDsKCQkJfQoJ CX0KCX0KCWlmICghQSkKCQlzYWpheF9kZWJ1ZygiQ291bGQgbm90IGNyZWF0ZSBj b25uZWN0aW9uIG9iamVjdC4iKTsKCglyZXR1cm4gQTsKfQoKLyoqCiogUGVyZm9y bSBhbiBhamF4IGNhbGwgdG8gbWVkaWF3aWtpLiBDYWxscyBhcmUgaGFuZGVsZWQg YnkgQWpheERpc3BhdGNoZXIucGhwCiogICBmdW5jX25hbWUgLSB0aGUgbmFtZSBv ZiB0aGUgZnVuY3Rpb24gdG8gY2FsbC4gTXVzdCBiZSByZWdpc3RlcmVkIGluICR3 Z0FqYXhFeHBvcnRMaXN0CiogICBhcmdzIC0gYW4gYXJyYXkgb2YgYXJndW1lbnRz IHRvIHRoYXQgZnVuY3Rpb24KKiAgIHRhcmdldCAtIHRoZSB0YXJnZXQgdGhhdCB3 aWxsIGhhbmRsZSB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsLiBJZiB0aGlzIGlzIGEg ZnVuY3Rpb24sCiogICAgICAgICAgICBpZiB3aWxsIGJlIGNhbGxlZCB3aXRoIHRo ZSBYTUxIdHRwUmVxdWVzdCBhcyBhIHBhcmFtZXRlcjsgaWYgaXQncyBhbiBpbnB1 dAoqICAgICAgICAgICAgZWxlbWVudCwgaXRzIHZhbHVlIHdpbGwgYmUgc2V0IHRv IHRoZSByZXN1bHRUZXh0OyBpZiBpdCdzIGFub3RoZXIgdHlwZSBvZgoqICAgICAg ICAgICAgZWxlbWVudCwgaXRzIGlubmVySFRNTCB3aWxsIGJlIHNldCB0byB0aGUg cmVzdWx0VGV4dC4KKgoqIEV4YW1wbGU6CiogICAgc2FqYXhfZG9fY2FsbCgnZG9G b28nLCBbMSwgMiwgM10sIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG93Rm9v IikpOwoqCiogVGhpcyB3aWxsIGNhbGwgdGhlIGRvRm9vIGZ1bmN0aW9uIHZpYSBN ZWRpYVdpa2kncyBBamF4RGlzcGF0Y2hlciwgd2l0aAoqICgxLCAyLCAzKSBhcyB0 aGUgcGFyYW1ldGVyIGxpc3QsIGFuZCB3aWxsIHNob3cgdGhlIHJlc3VsdCBpbiB0 aGUgZWxlbWVudAoqIHdpdGggaWQgPSBzaG93Rm9vCiovCmZ1bmN0aW9uIHNhamF4 X2RvX2NhbGwoZnVuY19uYW1lLCBhcmdzLCB0YXJnZXQpIHsKCXZhciBpLCB4LCBu OwoJdmFyIHVyaTsKCXZhciBwb3N0X2RhdGE7Cgl1cmkgPSB3Z1NlcnZlciArCgkJ KCh3Z1NjcmlwdCA9PSBudWxsKSA/ICh3Z1NjcmlwdFBhdGggKyAiL2luZGV4LnBo cCIpIDogd2dTY3JpcHQpICsKCQkiP2FjdGlvbj1hamF4IjsKCWlmIChzYWpheF9y ZXF1ZXN0X3R5cGUgPT0gIkdFVCIpIHsKCQlpZiAodXJpLmluZGV4T2YoIj8iKSA9 PSAtMSkKCQkJdXJpID0gdXJpICsgIj9ycz0iICsgZW5jb2RlVVJJQ29tcG9uZW50 KGZ1bmNfbmFtZSk7CgkJZWxzZQoJCQl1cmkgPSB1cmkgKyAiJnJzPSIgKyBlbmNv ZGVVUklDb21wb25lbnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJn cy5sZW5ndGg7IGkrKykKCQkJdXJpID0gdXJpICsgIiZyc2FyZ3NbXT0iICsgZW5j b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJCS8vdXJpID0gdXJpICsgIiZyc3Ju ZD0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJcG9zdF9kYXRhID0gbnVsbDsK CX0gZWxzZSB7CgkJcG9zdF9kYXRhID0gInJzPSIgKyBlbmNvZGVVUklDb21wb25l bnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkr KykKCQkJcG9zdF9kYXRhID0gcG9zdF9kYXRhICsgIiZyc2FyZ3NbXT0iICsgZW5j b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJfQoJeCA9IHNhamF4X2luaXRfb2Jq ZWN0KCk7CglpZiAoIXgpIHsKCQlhbGVydCgiQUpBWCBub3Qgc3VwcG9ydGVkIik7 CgkJcmV0dXJuIGZhbHNlOwoJfQoKCXRyeSB7CgkJeC5vcGVuKHNhamF4X3JlcXVl c3RfdHlwZSwgdXJpLCB0cnVlKTsKCX0gY2F0Y2ggKGUpIHsKCQlpZiAod2luZG93 LmxvY2F0aW9uLmhvc3RuYW1lID09ICJsb2NhbGhvc3QiKSB7CgkJCWFsZXJ0KCJZ b3VyIGJyb3dzZXIgYmxvY2tzIFhNTEh0dHBSZXF1ZXN0IHRvICdsb2NhbGhvc3Qn LCB0cnkgdXNpbmcgYSByZWFsIGhvc3RuYW1lIGZvciBkZXZlbG9wbWVudC90ZXN0 aW5nLiIpOwoJCX0KCQl0aHJvdyBlOwoJfQoJaWYgKHNhamF4X3JlcXVlc3RfdHlw ZSA9PSAiUE9TVCIpIHsKCQl4LnNldFJlcXVlc3RIZWFkZXIoIk1ldGhvZCIsICJQ T1NUICIgKyB1cmkgKyAiIEhUVFAvMS4xIik7CgkJeC5zZXRSZXF1ZXN0SGVhZGVy KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv ZGVkIik7Cgl9Cgl4LnNldFJlcXVlc3RIZWFkZXIoIlByYWdtYSIsICJjYWNoZT15 ZXMiKTsKCXguc2V0UmVxdWVzdEhlYWRlcigiQ2FjaGUtQ29udHJvbCIsICJuby10 cmFuc2Zvcm0iKTsKCXgub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7 CgkJaWYgKHgucmVhZHlTdGF0ZSAhPSA0KQoJCQlyZXR1cm47CgoJCXNhamF4X2Rl YnVnKCJyZWNlaXZlZCAoIiArIHguc3RhdHVzICsgIiAiICsgeC5zdGF0dXNUZXh0 ICsgIikgIiArIHgucmVzcG9uc2VUZXh0KTsKCgkJLy9pZiAoeC5zdGF0dXMgIT0g MjAwKQoJCS8vCWFsZXJ0KCJFcnJvcjogIiArIHguc3RhdHVzICsgIiAiICsgeC5z dGF0dXNUZXh0ICsgIjogIiArIHgucmVzcG9uc2VUZXh0KTsKCQkvL2Vsc2UKCgkJ aWYgKCB0eXBlb2YoIHRhcmdldCApID09ICdmdW5jdGlvbicgKSB7CgkJCXRhcmdl dCggeCApOwoJCX0KCQllbHNlIGlmICggdHlwZW9mKCB0YXJnZXQgKSA9PSAnb2Jq ZWN0JyApIHsKCQkJaWYgKCB0YXJnZXQudGFnTmFtZSA9PSAnSU5QVVQnICkgewoJ CQkJaWYgKHguc3RhdHVzID09IDIwMCkgdGFyZ2V0LnZhbHVlPSB4LnJlc3BvbnNl VGV4dDsKCQkJCS8vZWxzZSBhbGVydCgiRXJyb3I6ICIgKyB4LnN0YXR1cyArICIg IiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIpIik7 CgkJCX0KCQkJZWxzZSB7CgkJCQlpZiAoeC5zdGF0dXMgPT0gMjAwKSB0YXJnZXQu aW5uZXJIVE1MID0geC5yZXNwb25zZVRleHQ7CgkJCQllbHNlIHRhcmdldC5pbm5l ckhUTUw9ICI8ZGl2IGNsYXNzPSdlcnJvcic+RXJyb3I6ICIgKyB4LnN0YXR1cyAr ICIgIiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIp PC9kaXY+IjsKCQkJfQoJCX0KCQllbHNlIHsKCQkJYWxlcnQoImJhZCB0YXJnZXQg Zm9yIHNhamF4X2RvX2NhbGw6IG5vdCBhIGZ1bmN0aW9uIG9yIG9iamVjdDogIiAr IHRhcmdldCk7CgkJfQoKCQlyZXR1cm47Cgl9CgoJc2FqYXhfZGVidWcoZnVuY19u YW1lICsgIiB1cmkgPSAiICsgdXJpICsgIiAvIHBvc3QgPSAiICsgcG9zdF9kYXRh KTsKCXguc2VuZChwb3N0X2RhdGEpOwoJc2FqYXhfZGVidWcoZnVuY19uYW1lICsg IiB3YWl0aW5nLi4iKTsKCWRlbGV0ZSB4OwoKCXJldHVybiB0cnVlOwp9CgovKioK ICogQHJldHVybiBib29sZWFuIHdoZXRoZXIgdGhlIGJyb3dzZXIgc3VwcG9ydHMg WE1MSHR0cFJlcXVlc3QKICovCmZ1bmN0aW9uIHdmU3VwcG9ydHNBamF4KCkgewoJ dmFyIHJlcXVlc3QgPSBzYWpheF9pbml0X29iamVjdCgpOwoJdmFyIHN1cHBvcnRz QWpheCA9IHJlcXVlc3QgPyB0cnVlIDogZmFsc2U7CglkZWxldGUgcmVxdWVzdDsK CXJldHVybiBzdXBwb3J0c0FqYXg7Cn0KCg== ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=mwsuggest.js Content-Type: application/x-javascript; charset=utf-8; name=mwsuggest.js Content-Location: http://ru.wikipedia.org/skins-1.5/common/mwsuggest.js?233zz2 Content-Transfer-Encoding: Base64 LyoKICogT3BlblNlYXJjaCBhamF4IHN1Z2dlc3Rpb24gZW5naW5lIGZvciBNZWRp YVdpa2kKICoKICogdXNlcyBjb3JlIE1lZGlhV2lraSBvcGVuIHNlYXJjaCBzdXBw b3J0IHRvIGZldGNoIHN1Z2dlc3Rpb25zCiAqIGFuZCBzaG93IHRoZW0gYmVsb3cg c2VhcmNoIGJveGVzIGFuZCBvdGhlciBpbnB1dHMKICoKICogYnkgUm9iZXJ0IFN0 b2puaWMgKEFwcmlsIDIwMDgpCiAqLwoKLy8gc2VhcmNoX2JveF9pZCAtPiBSZXN1 bHRzIG9iamVjdAp2YXIgb3NfbWFwID0ge307Ci8vIGNhY2hlZCBkYXRhLCB1cmwg LT4ganNvbl90ZXh0CnZhciBvc19jYWNoZSA9IHt9OwovLyBnbG9iYWwgdmFyaWFi bGVzIGZvciBzdWdnZXN0X2tleXByZXNzCnZhciBvc19jdXJfa2V5cHJlc3NlZCA9 IDA7CnZhciBvc19sYXN0X2tleXByZXNzID0gMDsKdmFyIG9zX2tleXByZXNzZWRf Y291bnQgPSAwOwovLyB0eXBlOiBUaW1lcgp2YXIgb3NfdGltZXIgPSBudWxsOwov LyB0aWUgbW91c2Vkb3duL3VwIGV2ZW50cwp2YXIgb3NfbW91c2VfcHJlc3NlZCA9 IGZhbHNlOwp2YXIgb3NfbW91c2VfbnVtID0gLTE7Ci8vIGlmIHRydWUsIHRoZSBs YXN0IGNoYW5nZSB3YXMgbWFkZSBieSBtb3VzZSAoYW5kIG5vdCBrZXlib2FyZCkK dmFyIG9zX21vdXNlX21vdmVkID0gZmFsc2U7Ci8vIGRlbGF5IGJldHdlZW4ga2V5 cHJlc3MgYW5kIHN1Z2dlc3Rpb24gKGluIG1zKQp2YXIgb3Nfc2VhcmNoX3RpbWVv dXQgPSAyNTA7Ci8vIHRoZXNlIHBhaXJzIG9mIGlucHV0cy9mb3JtcyB3aWxsIGJl IGF1dG9sb2FkZWQgYXQgc3RhcnR1cAp2YXIgb3NfYXV0b2xvYWRfaW5wdXRzID0g bmV3IEFycmF5KCdzZWFyY2hJbnB1dCcsICdzZWFyY2hJbnB1dDInLCAncG93ZXJT ZWFyY2hUZXh0JywgJ3NlYXJjaFRleHQnKTsKdmFyIG9zX2F1dG9sb2FkX2Zvcm1z ID0gbmV3IEFycmF5KCdzZWFyY2hmb3JtJywgJ3NlYXJjaGZvcm0yJywgJ3Bvd2Vy c2VhcmNoJywgJ3NlYXJjaCcgKTsKLy8gaWYgd2Ugc3RvcHBlZCB0aGUgc2Vydmlj ZQp2YXIgb3NfaXNfc3RvcHBlZCA9IGZhbHNlOwovLyBtYXggbGluZXMgdG8gc2hv dyBpbiBzdWdnZXN0IHRhYmxlCnZhciBvc19tYXhfbGluZXNfcGVyX3N1Z2dlc3Qg PSA3OwovLyBudW1iZXIgb2Ygc3RlcHMgdG8gYW5pbWF0ZSBleHBhbnNpb24vY29u dHJhY3Rpb24gb2YgY29udGFpbmVyIHdpZHRoCnZhciBvc19hbmltYXRpb25fc3Rl cHMgPSA2OwovLyBudW0gb2YgcGl4ZWxzIG9mIHNtYWxsZXN0IHN0ZXAKdmFyIG9z X2FuaW1hdGlvbl9taW5fc3RlcCA9IDI7Ci8vIGRlbGF5IGJldHdlZW4gc3RlcHMg KGluIG1zKQp2YXIgb3NfYW5pbWF0aW9uX2RlbGF5ID0gMzA7Ci8vIG1heCB3aWR0 aCBvZiBjb250YWluZXIgaW4gcGVyY2VudCBvZiBub3JtYWwgc2l6ZSAoMSA9PSAx MDAlKQp2YXIgb3NfY29udGFpbmVyX21heF93aWR0aCA9IDI7Ci8vIGN1cnJlbnRs eSBhY3RpdmUgYW5pbWF0aW9uIHRpbWVyCnZhciBvc19hbmltYXRpb25fdGltZXIg PSBudWxsOwoKLyoqIFRpbWVvdXQgdGltZXIgY2xhc3MgdGhhdCB3aWxsIGZldGNo IHRoZSByZXN1bHRzICovCmZ1bmN0aW9uIG9zX1RpbWVyKGlkLHIscXVlcnkpewoJ dGhpcy5pZCA9IGlkOwoJdGhpcy5yID0gcjsKCXRoaXMucXVlcnkgPSBxdWVyeTsK fQoKLyoqIFRpbWVyIHVzZXIgdG8gYW5pbWF0ZSBleHBhbnNpb24vY29udHJhY3Rp b24gb2YgY29udGFpbmVyIHdpZHRoICovCmZ1bmN0aW9uIG9zX0FuaW1hdGlvblRp bWVyKHIsIHRhcmdldCl7Cgl0aGlzLnIgPSByOwoJdmFyIGN1cnJlbnQgPSBkb2N1 bWVudC5nZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcikub2Zmc2V0V2lkdGg7Cgl0 aGlzLmluYyA9IE1hdGgucm91bmQoKHRhcmdldC1jdXJyZW50KSAvIG9zX2FuaW1h dGlvbl9zdGVwcyk7CglpZih0aGlzLmluYyA8IG9zX2FuaW1hdGlvbl9taW5fc3Rl cCAmJiB0aGlzLmluYyA+PTApCgkJdGhpcy5pbmMgPSBvc19hbmltYXRpb25fbWlu X3N0ZXA7IC8vIG1pbmltYWwgYW5pbWF0aW9uIHN0ZXAKCWlmKHRoaXMuaW5jID4g LW9zX2FuaW1hdGlvbl9taW5fc3RlcCAmJiB0aGlzLmluYyA8MCkKCQl0aGlzLmlu YyA9IC1vc19hbmltYXRpb25fbWluX3N0ZXA7Cgl0aGlzLnRhcmdldCA9IHRhcmdl dDsKfQoKLyoqIFByb3BlcnR5IGNsYXNzIGZvciBzaW5nbGUgc2VhcmNoIGJveCAq LwpmdW5jdGlvbiBvc19SZXN1bHRzKG5hbWUsIGZvcm1uYW1lKXsKCXRoaXMuc2Vh cmNoZm9ybSA9IGZvcm1uYW1lOyAvLyBpZCBvZiB0aGUgc2VhcmNoZm9ybQoJdGhp cy5zZWFyY2hib3ggPSBuYW1lOyAvLyBpZCBvZiB0aGUgc2VhcmNoYm94Cgl0aGlz LmNvbnRhaW5lciA9IG5hbWUrIlN1Z2dlc3QiOyAvLyBkaXYgdGhhdCBob2xkcyBy ZXN1bHRzCgl0aGlzLnJlc3VsdFRhYmxlID0gbmFtZSsiUmVzdWx0IjsgLy8gaWQg YmFzZSBmb3IgdGhlIHJlc3VsdCB0YWJsZSAoK251bSA9IHRhYmxlIHJvdykKCXRo aXMucmVzdWx0VGV4dCA9IG5hbWUrIlJlc3VsdFRleHQiOyAvLyBpZCBiYXNlIGZv ciB0aGUgc3BhbnMgd2l0aGluIHJlc3VsdCB0YWJsZXMgKCtudW0pCgl0aGlzLnRv Z2dsZSA9IG5hbWUrIlRvZ2dsZSI7IC8vIGRpdiB0aGF0IGhhcyB0aGUgdG9nZ2xl IChlbmFibGUvZGlzYWJsZSkgbGluawoJdGhpcy5xdWVyeSA9IG51bGw7IC8vIGxh c3QgcHJvY2Vzc2VkIHF1ZXJ5Cgl0aGlzLnJlc3VsdHMgPSBudWxsOyAgLy8gcGFy c2VkIHRpdGxlcwoJdGhpcy5yZXN1bHRDb3VudCA9IDA7IC8vIG51bWJlciBvZiBy ZXN1bHRzCgl0aGlzLm9yaWdpbmFsID0gbnVsbDsgLy8gcXVlcnkgdGhhdCB1c2Vy IGVudGVyZWQKCXRoaXMuc2VsZWN0ZWQgPSAtMTsgLy8gd2hpY2ggcmVzdWx0IGlz IHNlbGVjdGVkCgl0aGlzLmNvbnRhaW5lckNvdW50ID0gMDsgLy8gbnVtYmVyIG9m IHJlc3VsdHMgdmlzaWJsZSBpbiBjb250YWluZXIKCXRoaXMuY29udGFpbmVyUm93 ID0gMDsgLy8gaGVpZ2h0IG9mIHJlc3VsdCBmaWVsZCBpbiB0aGUgY29udGFpbmVy Cgl0aGlzLmNvbnRhaW5lclRvdGFsID0gMDsgLy8gdG90YWwgaGVpZ2h0IG9mIHRo ZSBjb250YWluZXIgd2lsbCBhbGwgcmVzdWx0cwoJdGhpcy52aXNpYmxlID0gZmFs c2U7IC8vIGlmIGNvbnRhaW5lciBpcyB2aXNpYmxlCgl0aGlzLnN0YXlIaWRkZW4g PSBmYWxzZTsgLy8gZG9uJ3QgdHJ5IHRvIHNob3cgaWYgbG9zdCBmb2N1cwp9Cgov KiogSGlkZSByZXN1bHRzIGRpdiAqLwpmdW5jdGlvbiBvc19oaWRlUmVzdWx0cyhy KXsKCXZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5jb250YWluZXIp OwoJaWYoYyAhPSBudWxsKQoJCWMuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4i OwoJci52aXNpYmxlID0gZmFsc2U7CglyLnNlbGVjdGVkID0gLTE7Cn0KCi8qKiBT aG93IHJlc3VsdHMgZGl2ICovCmZ1bmN0aW9uIG9zX3Nob3dSZXN1bHRzKHIpewoJ aWYob3NfaXNfc3RvcHBlZCkKCQlyZXR1cm47CglpZihyLnN0YXlIaWRkZW4pCgkJ cmV0dXJuCglvc19maXRDb250YWluZXIocik7Cgl2YXIgYyA9IGRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKHIuY29udGFpbmVyKTsKCXIuc2VsZWN0ZWQgPSAtMTsKCWlm KGMgIT0gbnVsbCl7CgkJYy5zY3JvbGxUb3AgPSAwOwoJCWMuc3R5bGUudmlzaWJp bGl0eSA9ICJ2aXNpYmxlIjsKCQlyLnZpc2libGUgPSB0cnVlOwoJfQp9CgpmdW5j dGlvbiBvc19vcGVyYVdpZHRoRml4KHgpewoJLy8gVE9ETzogYmV0dGVyIGNzczIg aW5jb21wYXRpYmlsaXR5IGRldGVjdGlvbiBoZXJlCglpZihpc19vcGVyYSB8fCBp c19raHRtbCB8fCBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5k ZXhPZignZmlyZWZveC8xJykhPS0xKXsKCQlyZXR1cm4gMzA7IC8vIG9wZXJhJmtv bnF1ZXJvciAmIG9sZCBmaXJlZm94IGRvbid0IHVuZGVyc3RhbmQgb3ZlcmZsb3ct eCwgZXN0aW1hdGUgc2Nyb2xsYmFyIHdpZHRoCgl9CglyZXR1cm4gMDsKfQoKZnVu Y3Rpb24gb3NfZW5jb2RlUXVlcnkodmFsdWUpewogIGlmIChlbmNvZGVVUklDb21w b25lbnQpIHsKICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpOwog IH0KICBpZihlc2NhcGUpIHsKICAgIHJldHVybiBlc2NhcGUodmFsdWUpOwogIH0K ICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBvc19kZWNvZGVWYWx1ZSh2YWx1ZSl7 CiAgaWYgKGRlY29kZVVSSUNvbXBvbmVudCkgewogICAgcmV0dXJuIGRlY29kZVVS SUNvbXBvbmVudCh2YWx1ZSk7CiAgfQogIGlmKHVuZXNjYXBlKXsKICAJcmV0dXJu IHVuZXNjYXBlKHZhbHVlKTsKICB9CiAgcmV0dXJuIG51bGw7Cn0KCi8qKiBCcm93 ZXItZGVwZW5kZW50IGZ1bmN0aW9ucyB0byBmaW5kIHdpbmRvdyBpbm5lciBzaXpl LCBhbmQgc2Nyb2xsIHN0YXR1cyAqLwpmdW5jdGlvbiBmX2NsaWVudFdpZHRoKCkg ewoJcmV0dXJuIGZfZmlsdGVyUmVzdWx0cyAoCgkJd2luZG93LmlubmVyV2lkdGgg PyB3aW5kb3cuaW5uZXJXaWR0aCA6IDAsCgkJZG9jdW1lbnQuZG9jdW1lbnRFbGVt ZW50ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDogMCwK CQlkb2N1bWVudC5ib2R5ID8gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCA6IDAK CSk7Cn0KZnVuY3Rpb24gZl9jbGllbnRIZWlnaHQoKSB7CglyZXR1cm4gZl9maWx0 ZXJSZXN1bHRzICgKCQl3aW5kb3cuaW5uZXJIZWlnaHQgPyB3aW5kb3cuaW5uZXJI ZWlnaHQgOiAwLAoJCWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA/IGRvY3VtZW50 LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgOiAwLAoJCWRvY3VtZW50LmJv ZHkgPyBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCA6IDAKCSk7Cn0KZnVuY3Rp b24gZl9zY3JvbGxMZWZ0KCkgewoJcmV0dXJuIGZfZmlsdGVyUmVzdWx0cyAoCgkJ d2luZG93LnBhZ2VYT2Zmc2V0ID8gd2luZG93LnBhZ2VYT2Zmc2V0IDogMCwKCQlk b2N1bWVudC5kb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1l bnQuc2Nyb2xsTGVmdCA6IDAsCgkJZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJv ZHkuc2Nyb2xsTGVmdCA6IDAKCSk7Cn0KZnVuY3Rpb24gZl9zY3JvbGxUb3AoKSB7 CglyZXR1cm4gZl9maWx0ZXJSZXN1bHRzICgKCQl3aW5kb3cucGFnZVlPZmZzZXQg PyB3aW5kb3cucGFnZVlPZmZzZXQgOiAwLAoJCWRvY3VtZW50LmRvY3VtZW50RWxl bWVudCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgOiAwLAoJ CWRvY3VtZW50LmJvZHkgPyBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA6IDAKCSk7 Cn0KZnVuY3Rpb24gZl9maWx0ZXJSZXN1bHRzKG5fd2luLCBuX2RvY2VsLCBuX2Jv ZHkpIHsKCXZhciBuX3Jlc3VsdCA9IG5fd2luID8gbl93aW4gOiAwOwoJaWYgKG5f ZG9jZWwgJiYgKCFuX3Jlc3VsdCB8fCAobl9yZXN1bHQgPiBuX2RvY2VsKSkpCgkJ bl9yZXN1bHQgPSBuX2RvY2VsOwoJcmV0dXJuIG5fYm9keSAmJiAoIW5fcmVzdWx0 IHx8IChuX3Jlc3VsdCA+IG5fYm9keSkpID8gbl9ib2R5IDogbl9yZXN1bHQ7Cn0K Ci8qKiBHZXQgdGhlIGhlaWdodCBhdmFpbGFibGUgZm9yIHRoZSByZXN1bHRzIGNv bnRhaW5lciAqLwpmdW5jdGlvbiBvc19hdmFpbGFibGVIZWlnaHQocil7Cgl2YXIg YWJzVG9wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5jb250YWluZXIpLnN0 eWxlLnRvcDsKCXZhciBweCA9IGFic1RvcC5sYXN0SW5kZXhPZigicHgiKTsKCWlm KHB4ID4gMCkKCQlhYnNUb3AgPSBhYnNUb3Auc3Vic3RyaW5nKDAscHgpOwoJcmV0 dXJuIGZfY2xpZW50SGVpZ2h0KCkgLSAoYWJzVG9wIC0gZl9zY3JvbGxUb3AoKSk7 Cn0KCgovKiogR2V0IGVsZW1lbnQgYWJzb2x1dGUgcG9zaXRpb24ge2xlZnQsdG9w fSAqLwpmdW5jdGlvbiBvc19nZXRFbGVtZW50UG9zaXRpb24oZWxlbUlEKXsKCXZh ciBvZmZzZXRUcmFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1JRCk7 Cgl2YXIgb2Zmc2V0TGVmdCA9IDA7Cgl2YXIgb2Zmc2V0VG9wID0gMDsKCXdoaWxl IChvZmZzZXRUcmFpbCl7CgkJb2Zmc2V0TGVmdCArPSBvZmZzZXRUcmFpbC5vZmZz ZXRMZWZ0OwoJCW9mZnNldFRvcCArPSBvZmZzZXRUcmFpbC5vZmZzZXRUb3A7CgkJ b2Zmc2V0VHJhaWwgPSBvZmZzZXRUcmFpbC5vZmZzZXRQYXJlbnQ7Cgl9CglpZiAo bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdNYWMnKSAhPSAtMSAmJiB0eXBl b2YgZG9jdW1lbnQuYm9keS5sZWZ0TWFyZ2luICE9ICd1bmRlZmluZWQnKXsKCQlv ZmZzZXRMZWZ0ICs9IGRvY3VtZW50LmJvZHkubGVmdE1hcmdpbjsKCQlvZmZzZXRU b3AgKz0gZG9jdW1lbnQuYm9keS50b3BNYXJnaW47Cgl9CglyZXR1cm4ge2xlZnQ6 b2Zmc2V0TGVmdCx0b3A6b2Zmc2V0VG9wfTsKfQoKLyoqIENyZWF0ZSB0aGUgY29u dGFpbmVyIGRpdiB0aGF0IHdpbGwgaG9sZCB0aGUgc3VnZ2VzdGVkIHRpdGxlcyAq LwpmdW5jdGlvbiBvc19jcmVhdGVDb250YWluZXIocil7Cgl2YXIgYyA9IGRvY3Vt ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoJdmFyIHMgPSBkb2N1bWVudC5nZXRF bGVtZW50QnlJZChyLnNlYXJjaGJveCk7Cgl2YXIgcG9zID0gb3NfZ2V0RWxlbWVu dFBvc2l0aW9uKHIuc2VhcmNoYm94KTsKCXZhciBsZWZ0ID0gcG9zLmxlZnQ7Cgl2 YXIgdG9wID0gcG9zLnRvcCArIHMub2Zmc2V0SGVpZ2h0OwoJYy5jbGFzc05hbWUg PSAib3Mtc3VnZ2VzdCI7CgljLnNldEF0dHJpYnV0ZSgiaWQiLCByLmNvbnRhaW5l cik7Cglkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpOwoKCS8vIGR5bmFtaWNh bGx5IGdlbmVyYXRlZCBzdHlsZSBwYXJhbXMKCS8vIElFIHdvcmthcm91bmQsIGNh bm5vdCBleHBsaWNpdGVseSBzZXQgInN0eWxlIiBhdHRyaWJ1dGUKCWMgPSBkb2N1 bWVudC5nZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcik7CgljLnN0eWxlLnRvcCA9 IHRvcCsicHgiOwoJYy5zdHlsZS5sZWZ0ID0gbGVmdCsicHgiOwoJYy5zdHlsZS53 aWR0aCA9IHMub2Zmc2V0V2lkdGgrInB4IjsKCgkvLyBtb3VzZSBldmVudCBoYW5k bGVycwoJYy5vbm1vdXNlb3ZlciA9IGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2ZW50 TW91c2VvdmVyKHIuc2VhcmNoYm94LCBldmVudCk7IH07CgljLm9ubW91c2Vtb3Zl ID0gZnVuY3Rpb24oZXZlbnQpIHsgb3NfZXZlbnRNb3VzZW1vdmUoci5zZWFyY2hi b3gsIGV2ZW50KTsgfTsKCWMub25tb3VzZWRvd24gPSBmdW5jdGlvbihldmVudCkg eyByZXR1cm4gb3NfZXZlbnRNb3VzZWRvd24oci5zZWFyY2hib3gsIGV2ZW50KTsg fTsKCWMub25tb3VzZXVwID0gZnVuY3Rpb24oZXZlbnQpIHsgb3NfZXZlbnRNb3Vz ZXVwKHIuc2VhcmNoYm94LCBldmVudCk7IH07CglyZXR1cm4gYzsKfQoKLyoqIGNo YW5nZSBjb250YWluZXIgaGVpZ2h0IHRvIGZpdCB0byBzY3JlZW4gKi8KZnVuY3Rp b24gb3NfZml0Q29udGFpbmVyKHIpewoJdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVt ZW50QnlJZChyLmNvbnRhaW5lcik7Cgl2YXIgaCA9IG9zX2F2YWlsYWJsZUhlaWdo dChyKSAtIDIwOwoJdmFyIGluYyA9IHIuY29udGFpbmVyUm93OwoJaCA9IHBhcnNl SW50KGgvaW5jKSAqIGluYzsKCWlmKGggPCAoMiAqIGluYykgJiYgci5yZXN1bHRD b3VudCA+IDEpIC8vIG1pbjogdHdvIHJlc3VsdHMKCQloID0gMiAqIGluYzsKCWlm KChoL2luYykgPiBvc19tYXhfbGluZXNfcGVyX3N1Z2dlc3QgKQoJCWggPSBpbmMg KiBvc19tYXhfbGluZXNfcGVyX3N1Z2dlc3Q7CglpZihoIDwgci5jb250YWluZXJU b3RhbCl7CgkJYy5zdHlsZS5oZWlnaHQgPSBoICsicHgiOwoJCXIuY29udGFpbmVy Q291bnQgPSBwYXJzZUludChNYXRoLnJvdW5kKGgvaW5jKSk7Cgl9IGVsc2V7CgkJ Yy5zdHlsZS5oZWlnaHQgPSByLmNvbnRhaW5lclRvdGFsKyJweCI7CgkJci5jb250 YWluZXJDb3VudCA9IHIucmVzdWx0Q291bnQ7Cgl9Cn0KLyoqIElmIHNvbWUgZW50 cmllcyBhcmUgbG9uZ2VyIHRoYW4gdGhlIGJveCwgcmVwbGFjZSB0ZXh0IHdpdGgg Ii4uLiIgKi8KZnVuY3Rpb24gb3NfdHJpbVJlc3VsdFRleHQocil7CgkvLyBmaW5k IG1heCB3aWR0aCwgZmlyc3Qgc2VlIGlmIHdlIGNvdWxkIGV4cGFuZCB0aGUgY29u dGFpbmVyIHRvIGZpdCBpdAoJdmFyIG1heFcgPSAwOwoJZm9yKHZhciBpPTA7aTxy LnJlc3VsdENvdW50O2krKyl7CgkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50 QnlJZChyLnJlc3VsdFRleHQraSk7CgkJaWYoZS5vZmZzZXRXaWR0aCA+IG1heFcp CgkJCW1heFcgPSBlLm9mZnNldFdpZHRoOwoJfQoJdmFyIHcgPSBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcikub2Zmc2V0V2lkdGg7Cgl2YXIgZml4 ID0gMDsKCWlmKHIuY29udGFpbmVyQ291bnQgPCByLnJlc3VsdENvdW50KXsKCQlm aXggPSAyMDsgLy8gZ2l2ZSAyMHB4IGZvciBzY3JvbGxiYXIKCX0gZWxzZQoJCWZp eCA9IG9zX29wZXJhV2lkdGhGaXgodyk7CglpZihmaXggPCA0KQoJCWZpeCA9IDQ7 IC8vIGJhc2ljIHBhZGRpbmcKCW1heFcgKz0gZml4OwoKCS8vIHJlc2l6ZSBjb250 YWluZXIgdG8gZml0IG1vcmUgZGF0YSBpZiBwZXJtaXR0ZWQKCXZhciBub3JtVyA9 IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuc2VhcmNoYm94KS5vZmZzZXRXaWR0 aDsKCXZhciBwcm9wID0gbWF4VyAvIG5vcm1XOwoJaWYocHJvcCA+IG9zX2NvbnRh aW5lcl9tYXhfd2lkdGgpCgkJcHJvcCA9IG9zX2NvbnRhaW5lcl9tYXhfd2lkdGg7 CgllbHNlIGlmKHByb3AgPCAxKQoJCXByb3AgPSAxOwoJdmFyIG5ld1cgPSBNYXRo LnJvdW5kKCBub3JtVyAqIHByb3AgKTsKCWlmKCB3ICE9IG5ld1cgKXsKCQl3ID0g bmV3VzsKCQlpZiggb3NfYW5pbWF0aW9uX3RpbWVyICE9IG51bGwgKQoJCQljbGVh ckludGVydmFsKG9zX2FuaW1hdGlvbl90aW1lci5pZCkKCQlvc19hbmltYXRpb25f dGltZXIgPSBuZXcgb3NfQW5pbWF0aW9uVGltZXIocix3KTsKCQlvc19hbmltYXRp b25fdGltZXIuaWQgPSBzZXRJbnRlcnZhbCgib3NfYW5pbWF0ZUNoYW5nZVdpZHRo KCkiLG9zX2FuaW1hdGlvbl9kZWxheSk7CgkJdyAtPSBmaXg7IC8vIHRoaXMgbXVj aCBpcyByZXNlcnZlZAoJfQoKCS8vIHRyaW0gcmVzdWx0cwoJaWYodyA8IDEwKQoJ CXJldHVybjsKCWZvcih2YXIgaT0wO2k8ci5yZXN1bHRDb3VudDtpKyspewoJCXZh ciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5yZXN1bHRUZXh0K2kpOwoJ CXZhciByZXBsYWNlID0gMTsKCQl2YXIgbGFzdFcgPSBlLm9mZnNldFdpZHRoKzE7 CgkJdmFyIGl0ZXJhdGlvbiA9IDA7CgkJdmFyIGNoYW5nZWRUZXh0ID0gZmFsc2U7 CgkJd2hpbGUoZS5vZmZzZXRXaWR0aCA+IHcgJiYgKGUub2Zmc2V0V2lkdGggPCBs YXN0VyB8fCBpdGVyYXRpb248MikpewoJCQljaGFuZ2VkVGV4dCA9IHRydWU7CgkJ CWxhc3RXID0gZS5vZmZzZXRXaWR0aDsKCQkJdmFyIGwgPSBlLmlubmVySFRNTDsK CQkJZS5pbm5lckhUTUwgPSBsLnN1YnN0cmluZygwLGwubGVuZ3RoLXJlcGxhY2Up KyIuLi4iOwoJCQlpdGVyYXRpb24rKzsKCQkJcmVwbGFjZSA9IDQ7IC8vIGhvdyBt YW55IGNoYXJzIHRvIHJlcGxhY2UKCQl9CgkJaWYoY2hhbmdlZFRleHQpewoJCQkv LyBzaG93IGhpbnQgZm9yIHRyaW1tZWQgdGl0bGVzCgkJCWRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKHIucmVzdWx0VGFibGUraSkuc2V0QXR0cmlidXRlKCJ0aXRsZSIs ci5yZXN1bHRzW2ldKTsKCQl9Cgl9Cn0KCi8qKiBJbnZva2VkIG9uIHRpbWVyIHRv IGFuaW1hdGUgY2hhbmdlIGluIGNvbnRhaW5lciB3aWR0aCAqLwpmdW5jdGlvbiBv c19hbmltYXRlQ2hhbmdlV2lkdGgoKXsKCXZhciByID0gb3NfYW5pbWF0aW9uX3Rp bWVyLnI7Cgl2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFp bmVyKTsKCXZhciB3ID0gYy5vZmZzZXRXaWR0aDsKCXZhciBub3JtVyA9IGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKHIuc2VhcmNoYm94KS5vZmZzZXRXaWR0aDsKCXZh ciBub3JtTCA9IG9zX2dldEVsZW1lbnRQb3NpdGlvbihyLnNlYXJjaGJveCkubGVm dDsKCXZhciBpbmMgPSBvc19hbmltYXRpb25fdGltZXIuaW5jOwoJdmFyIHRhcmdl dCA9IG9zX2FuaW1hdGlvbl90aW1lci50YXJnZXQ7Cgl2YXIgbncgPSB3ICsgaW5j OwoJaWYoIChpbmMgPiAwICYmIG53ID49IHRhcmdldCkgfHwgKGluYyA8PSAwICYm IG53IDw9IHRhcmdldCkgKXsKCQkvLyBmaW5pc2hlZCAhCgkJYy5zdHlsZS53aWR0 aCA9IHRhcmdldCsicHgiOwoJCWNsZWFySW50ZXJ2YWwob3NfYW5pbWF0aW9uX3Rp bWVyLmlkKQoJCW9zX2FuaW1hdGlvbl90aW1lciA9IG51bGw7Cgl9IGVsc2V7CgkJ Ly8gaW4tcHJvZ3Jlc3MKCQljLnN0eWxlLndpZHRoID0gbncrInB4IjsKCQlpZihk b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyID09ICJydGwiKQoJCQljLnN0eWxl LmxlZnQgPSAobm9ybUwgKyBub3JtVyArICh0YXJnZXQgLSBudykgLSBvc19hbmlt YXRpb25fdGltZXIudGFyZ2V0IC0gMSkrInB4IjsKCX0KfQoKLyoqIEhhbmRsZXMg ZGF0YSBmcm9tIFhNTEh0dHBSZXF1ZXN0LCBhbmQgdXBkYXRlcyB0aGUgc3VnZ2Vz dCByZXN1bHRzICovCmZ1bmN0aW9uIG9zX3VwZGF0ZVJlc3VsdHMociwgcXVlcnks IHRleHQsIGNhY2hlS2V5KXsKCW9zX2NhY2hlW2NhY2hlS2V5XSA9IHRleHQ7Cgly LnF1ZXJ5ID0gcXVlcnk7CglyLm9yaWdpbmFsID0gcXVlcnk7CglpZih0ZXh0ID09 ICIiKXsKCQlyLnJlc3VsdHMgPSBudWxsOwoJCXIucmVzdWx0Q291bnQgPSAwOwoJ CW9zX2hpZGVSZXN1bHRzKHIpOwoJfSBlbHNlewoJCXRyeSB7CgkJCXZhciBwID0g ZXZhbCgnKCcrdGV4dCsnKScpOyAvLyBzaW1wbGUganNvbiBwYXJzZSwgY291bGQg ZG8gYSBzYWZlciBvbmUKCQkJaWYocC5sZW5ndGg8MiB8fCBwWzFdLmxlbmd0aCA9 PSAwKXsKCQkJCXIucmVzdWx0cyA9IG51bGw7CgkJCQlyLnJlc3VsdENvdW50ID0g MDsKCQkJCW9zX2hpZGVSZXN1bHRzKHIpOwoJCQkJcmV0dXJuOwoJCQl9CgkJCXZh ciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5jb250YWluZXIpOwoJCQlp ZihjID09IG51bGwpCgkJCQljID0gb3NfY3JlYXRlQ29udGFpbmVyKHIpOwoJCQlj LmlubmVySFRNTCA9IG9zX2NyZWF0ZVJlc3VsdFRhYmxlKHIscFsxXSk7CgkJCS8v IGluaXQgY29udGFpbmVyIHRhYmxlIHNpemVzCgkJCXZhciB0ID0gZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQoci5yZXN1bHRUYWJsZSk7CgkJCXIuY29udGFpbmVyVG90 YWwgPSB0Lm9mZnNldEhlaWdodDsKCQkJci5jb250YWluZXJSb3cgPSB0Lm9mZnNl dEhlaWdodCAvIHIucmVzdWx0Q291bnQ7CgkJCW9zX2ZpdENvbnRhaW5lcihyKTsK CQkJb3NfdHJpbVJlc3VsdFRleHQocik7CgkJCW9zX3Nob3dSZXN1bHRzKHIpOwoJ CX0gY2F0Y2goZSl7CgkJCS8vIGJhZCByZXNwb25zZSBmcm9tIHNlcnZlciBvciBz dWNoCgkJCW9zX2hpZGVSZXN1bHRzKHIpOwoJCQlvc19jYWNoZVtjYWNoZUtleV0g PSBudWxsOwoJCX0KCX0KfQoKLyoqIENyZWF0ZSB0aGUgcmVzdWx0IHRhYmxlIHRv IGJlIHBsYWNlZCBpbiB0aGUgY29udGFpbmVyIGRpdiAqLwpmdW5jdGlvbiBvc19j cmVhdGVSZXN1bHRUYWJsZShyLCByZXN1bHRzKXsKCXZhciBjID0gZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQoci5jb250YWluZXIpOwoJdmFyIHdpZHRoID0gYy5vZmZz ZXRXaWR0aCAtIG9zX29wZXJhV2lkdGhGaXgoYy5vZmZzZXRXaWR0aCk7Cgl2YXIg aHRtbCA9ICI8dGFibGUgY2xhc3M9XCJvcy1zdWdnZXN0LXJlc3VsdHNcIiBpZD1c IiIrci5yZXN1bHRUYWJsZSsiXCIgc3R5bGU9XCJ3aWR0aDogIit3aWR0aCsicHg7 XCI+IjsKCXIucmVzdWx0cyA9IG5ldyBBcnJheSgpOwoJci5yZXN1bHRDb3VudCA9 IHJlc3VsdHMubGVuZ3RoOwoJZm9yKGk9MDtpPHJlc3VsdHMubGVuZ3RoO2krKyl7 CgkJdmFyIHRpdGxlID0gb3NfZGVjb2RlVmFsdWUocmVzdWx0c1tpXSk7CgkJci5y ZXN1bHRzW2ldID0gdGl0bGU7CgkJaHRtbCArPSAiPHRyPjx0ZCBjbGFzcz1cIm9z LXN1Z2dlc3QtcmVzdWx0XCIgaWQ9XCIiK3IucmVzdWx0VGFibGUraSsiXCI+PHNw YW4gaWQ9XCIiK3IucmVzdWx0VGV4dCtpKyJcIj4iK3RpdGxlKyI8L3NwYW4+PC90 ZD48L3RyPiI7Cgl9CglodG1sKz0iPC90YWJsZT4iCglyZXR1cm4gaHRtbDsKfQoK LyoqIEZldGNoIG5hbWVzcGFjZXMgZnJvbSBjaGVja2JveGVzIG9yIGhpZGRlbiBm aWVsZHMgaW4gdGhlIHNlYXJjaCBmb3JtLAogICAgaWYgbm9uZSBkZWZpbmVkIHVz ZSB3Z1NlYXJjaE5hbWVzcGFjZXMgZ2xvYmFsICovCmZ1bmN0aW9uIG9zX2dldE5h bWVzcGFjZXMocil7Cgl2YXIgbmFtZXNwYWNlcyA9ICIiOwoJdmFyIGVsZW1lbnRz ID0gZG9jdW1lbnQuZm9ybXNbci5zZWFyY2hmb3JtXS5lbGVtZW50czsKCWZvcihp PTA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKyl7CgkJdmFyIG5hbWUgPSBlbGVt ZW50c1tpXS5uYW1lOwoJCWlmKHR5cGVvZiBuYW1lICE9ICd1bmRlZmluZWQnICYm IG5hbWUubGVuZ3RoID4gMgoJCSYmIG5hbWVbMF09PSduJyAmJiBuYW1lWzFdPT0n cycKCQkmJiAoKGVsZW1lbnRzW2ldLnR5cGU9PSdjaGVja2JveCcgJiYgZWxlbWVu dHNbaV0uY2hlY2tlZCkKCQkgCXx8IChlbGVtZW50c1tpXS50eXBlPT0naGlkZGVu JyAmJiBlbGVtZW50c1tpXS52YWx1ZT09IjEiKSkgKXsKCQkJaWYobmFtZXNwYWNl cyE9IiIpCgkJCQluYW1lc3BhY2VzKz0ifCI7CgkJCW5hbWVzcGFjZXMrPW5hbWUu c3Vic3RyaW5nKDIpOwoJCX0KCX0KCWlmKG5hbWVzcGFjZXMgPT0gIiIpCgkJbmFt ZXNwYWNlcyA9IHdnU2VhcmNoTmFtZXNwYWNlcy5qb2luKCJ8Iik7CglyZXR1cm4g bmFtZXNwYWNlczsKfQoKLyoqIFVwZGF0ZSByZXN1bHRzIGlmIHVzZXIgaGFzbid0 IGFscmVhZHkgdHlwZWQgc29tZXRoaW5nIGVsc2UgKi8KZnVuY3Rpb24gb3NfdXBk YXRlSWZSZWxldmFudChyLCBxdWVyeSwgdGV4dCwgY2FjaGVLZXkpewoJdmFyIHQg PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnNlYXJjaGJveCk7CglpZih0ICE9 IG51bGwgJiYgdC52YWx1ZSA9PSBxdWVyeSl7IC8vIGNoZWNrIGlmIHJlc3BvbnNl IGlzIHN0aWxsIHJlbGV2YW50CgkJb3NfdXBkYXRlUmVzdWx0cyhyLCBxdWVyeSwg dGV4dCwgY2FjaGVLZXkpOwoJfQoJci5xdWVyeSA9IHF1ZXJ5Owp9CgovKiogRmV0 Y2ggcmVzdWx0cyBhZnRlciBzb21lIHRpbWVvdXQgKi8KZnVuY3Rpb24gb3NfZGVs YXllZEZldGNoKCl7CglpZihvc190aW1lciA9PSBudWxsKQoJCXJldHVybjsKCXZh ciByID0gb3NfdGltZXIucjsKCXZhciBxdWVyeSA9IG9zX3RpbWVyLnF1ZXJ5OwoJ b3NfdGltZXIgPSBudWxsOwoJdmFyIHBhdGggPSB3Z01XU3VnZ2VzdFRlbXBsYXRl LnJlcGxhY2UoIntuYW1lc3BhY2VzfSIsb3NfZ2V0TmFtZXNwYWNlcyhyKSkKCQkJ CQkJCSAgCSAgLnJlcGxhY2UoIntkYm5hbWV9Iix3Z0RCbmFtZSkKCQkJCQkJCSAg CSAgLnJlcGxhY2UoIntzZWFyY2hUZXJtc30iLG9zX2VuY29kZVF1ZXJ5KHF1ZXJ5 KSk7CgoJLy8gdHJ5IHRvIGdldCBmcm9tIGNhY2hlLCBpZiBub3QgZmV0Y2ggdXNp bmcgYWpheAoJdmFyIGNhY2hlZCA9IG9zX2NhY2hlW3BhdGhdOwoJaWYoY2FjaGVk ICE9IG51bGwpewoJCW9zX3VwZGF0ZUlmUmVsZXZhbnQociwgcXVlcnksIGNhY2hl ZCwgcGF0aCk7Cgl9IGVsc2V7CgkJdmFyIHhtbGh0dHAgPSBzYWpheF9pbml0X29i amVjdCgpOwoJCWlmKHhtbGh0dHApewoJCQl0cnkgewoJCQkJeG1saHR0cC5vcGVu KCJHRVQiLCBwYXRoLCB0cnVlKTsKCQkJCXhtbGh0dHAub25yZWFkeXN0YXRlY2hh bmdlPWZ1bmN0aW9uKCl7CgkJICAgICAgICAJaWYgKHhtbGh0dHAucmVhZHlTdGF0 ZT09NCAmJiB0eXBlb2Ygb3NfdXBkYXRlSWZSZWxldmFudCA9PSAnZnVuY3Rpb24n KSB7CgkJICAgICAgICAJCW9zX3VwZGF0ZUlmUmVsZXZhbnQociwgcXVlcnksIHht bGh0dHAucmVzcG9uc2VUZXh0LCBwYXRoKTsKCSAgICAgICAgCQl9CgkgICAgICAJ CX07CgkgICAgIAkJeG1saHR0cC5zZW5kKG51bGwpOwoJICAgICAJfSBjYXRjaCAo ZSkgewoJCQkJaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PSAibG9jYWxo b3N0IikgewoJCQkJCWFsZXJ0KCJZb3VyIGJyb3dzZXIgYmxvY2tzIFhNTEh0dHBS ZXF1ZXN0IHRvICdsb2NhbGhvc3QnLCB0cnkgdXNpbmcgYSByZWFsIGhvc3RuYW1l IGZvciBkZXZlbG9wbWVudC90ZXN0aW5nLiIpOwoJCQkJfQoJCQkJdGhyb3cgZTsK CQkJfQoJCX0KCX0KfQoKLyoqIEluaXQgdGltZWQgdXBkYXRlIHZpYSBvc19kZWxh eWVkVXBkYXRlKCkgKi8KZnVuY3Rpb24gb3NfZmV0Y2hSZXN1bHRzKHIsIHF1ZXJ5 LCB0aW1lb3V0KXsKCWlmKHF1ZXJ5ID09ICIiKXsKCQlyLnF1ZXJ5ID0gIiI7CgkJ b3NfaGlkZVJlc3VsdHMocik7CgkJcmV0dXJuOwoJfSBlbHNlIGlmKHF1ZXJ5ID09 IHIucXVlcnkpCgkJcmV0dXJuOyAvLyBubyBjaGFuZ2UKCglvc19pc19zdG9wcGVk ID0gZmFsc2U7IC8vIG1ha2Ugc3VyZSB3ZSdyZSBydW5uaW5nCgoJLyogdmFyIGNh Y2hlS2V5ID0gd2dEQm5hbWUrIjoiK3F1ZXJ5OwoJdmFyIGNhY2hlZCA9IG9zX2Nh Y2hlW2NhY2hlS2V5XTsKCWlmKGNhY2hlZCAhPSBudWxsKXsKCQlvc191cGRhdGVS ZXN1bHRzKHIsd2dEQm5hbWUscXVlcnksY2FjaGVkKTsKCQlyZXR1cm47Cgl9ICov CgoJLy8gY2FuY2VsIGFueSBwZW5kaW5nIGZldGNoZXMKCWlmKG9zX3RpbWVyICE9 IG51bGwgJiYgb3NfdGltZXIuaWQgIT0gbnVsbCkKCQljbGVhclRpbWVvdXQob3Nf dGltZXIuaWQpOwoJLy8gc2NoZWR1bGUgZGVsYXllZCBmZXRjaGluZyBvZiByZXN1 bHRzCglpZih0aW1lb3V0ICE9IDApewoJCW9zX3RpbWVyID0gbmV3IG9zX1RpbWVy KHNldFRpbWVvdXQoIm9zX2RlbGF5ZWRGZXRjaCgpIix0aW1lb3V0KSxyLHF1ZXJ5 KTsKCX0gZWxzZXsKCQlvc190aW1lciA9IG5ldyBvc19UaW1lcihudWxsLHIscXVl cnkpOwoJCW9zX2RlbGF5ZWRGZXRjaCgpOyAvLyBkbyBpdCBub3chCgl9Cgp9Ci8q KiBDaGFuZ2UgdGhlIGhpZ2hsaWdodGVkIHJvdyAoaS5lLiBzdWdnZXN0aW9uKSwg ZnJvbSBwb3NpdGlvbiBjdXIgdG8gbmV4dCAqLwpmdW5jdGlvbiBvc19jaGFuZ2VI aWdobGlnaHQociwgY3VyLCBuZXh0LCB1cGRhdGVTZWFyY2hCb3gpewoJaWYgKG5l eHQgPj0gci5yZXN1bHRDb3VudCkKCQluZXh0ID0gci5yZXN1bHRDb3VudC0xOwoJ aWYgKG5leHQgPCAtMSkKCQluZXh0ID0gLTE7CglyLnNlbGVjdGVkID0gbmV4dDsK ICAgCWlmIChjdXIgPT0gbmV4dCkKICAgIAlyZXR1cm47IC8vIG5vdGhpbmcgdG8g ZG8uCgogICAgaWYoY3VyID49IDApewogICAgCXZhciBjdXJSb3cgPSBkb2N1bWVu dC5nZXRFbGVtZW50QnlJZChyLnJlc3VsdFRhYmxlICsgY3VyKTsKICAgIAlpZihj dXJSb3cgIT0gbnVsbCkKICAgIAkJY3VyUm93LmNsYXNzTmFtZSA9ICJvcy1zdWdn ZXN0LXJlc3VsdCI7CiAgICB9CiAgICB2YXIgbmV3VGV4dDsKICAgIGlmKG5leHQg Pj0gMCl7CiAgICAJdmFyIG5leHRSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZChyLnJlc3VsdFRhYmxlICsgbmV4dCk7CiAgICAJaWYobmV4dFJvdyAhPSBudWxs KQogICAgCQluZXh0Um93LmNsYXNzTmFtZSA9IG9zX0hpZ2hsaWdodENsYXNzKCk7 CiAgICAJbmV3VGV4dCA9IHIucmVzdWx0c1tuZXh0XTsKICAgIH0gZWxzZQogICAg CW5ld1RleHQgPSByLm9yaWdpbmFsOwoKICAgIC8vIGFkanVzdCB0aGUgc2Nyb2xs YmFyIGlmIGFueQogICAgaWYoci5jb250YWluZXJDb3VudCA8IHIucmVzdWx0Q291 bnQpewogICAgCXZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5jb250 YWluZXIpOwogICAgCXZhciB2U3RhcnQgPSBjLnNjcm9sbFRvcCAvIHIuY29udGFp bmVyUm93OwogICAgCXZhciB2RW5kID0gdlN0YXJ0ICsgci5jb250YWluZXJDb3Vu dDsKICAgIAlpZihuZXh0IDwgdlN0YXJ0KQogICAgCQljLnNjcm9sbFRvcCA9IG5l eHQgKiByLmNvbnRhaW5lclJvdzsKICAgIAllbHNlIGlmKG5leHQgPj0gdkVuZCkK ICAgIAkJYy5zY3JvbGxUb3AgPSAobmV4dCAtIHIuY29udGFpbmVyQ291bnQgKyAx KSAqIHIuY29udGFpbmVyUm93OwogICAgfQoKICAgIC8vIHVwZGF0ZSB0aGUgY29u dGVudHMgb2YgdGhlIHNlYXJjaCBib3gKICAgIGlmKHVwZGF0ZVNlYXJjaEJveCl7 CiAgICAJb3NfdXBkYXRlU2VhcmNoUXVlcnkocixuZXdUZXh0KTsKICAgIH0KfQoK ZnVuY3Rpb24gb3NfSGlnaGxpZ2h0Q2xhc3MoKSB7Cgl2YXIgbWF0Y2ggPSBuYXZp Z2F0b3IudXNlckFnZW50Lm1hdGNoKC9BcHBsZVdlYktpdFwvKFxkKykvKTsKCWlm IChtYXRjaCkgewoJCXZhciB3ZWJLaXRWZXJzaW9uID0gcGFyc2VJbnQobWF0Y2hb MV0pOwoJCWlmICh3ZWJLaXRWZXJzaW9uIDwgNTIzKSB7CgkJCS8vIENTUyBzeXN0 ZW0gaGlnaGxpZ2h0IGNvbG9ycyBicm9rZW4gb24gb2xkIFNhZmFyaQoJCQkvLyBo dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEyOQoJCQkv LyBTYWZhcmkgMy4wLjQsIDMuMSBrbm93biBvawoJCQlyZXR1cm4gIm9zLXN1Z2dl c3QtcmVzdWx0LWhsLXdlYmtpdCI7CgkJfQoJfQoJcmV0dXJuICJvcy1zdWdnZXN0 LXJlc3VsdC1obCI7Cn0KCmZ1bmN0aW9uIG9zX3VwZGF0ZVNlYXJjaFF1ZXJ5KHIs bmV3VGV4dCl7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnNlYXJjaGJveCku dmFsdWUgPSBuZXdUZXh0OwogICAgci5xdWVyeSA9IG5ld1RleHQ7Cn0KCi8qKiBG aW5kIGV2ZW50IHRhcmdldCAqLwpmdW5jdGlvbiBvc19nZXRUYXJnZXQoZSl7Cglp ZiAoIWUpIGUgPSB3aW5kb3cuZXZlbnQ7CglpZiAoZS50YXJnZXQpIHJldHVybiBl LnRhcmdldDsKCWVsc2UgaWYgKGUuc3JjRWxlbWVudCkgcmV0dXJuIGUuc3JjRWxl bWVudDsKCWVsc2UgcmV0dXJuIG51bGw7Cn0KCgoKLyoqKioqKioqKioqKioqKioq KioqCiAqICBLZXlib2FyZCBldmVudHMKICoqKioqKioqKioqKioqKioqKioqLwoK LyoqIEV2ZW50IGhhbmRsZXIgdGhhdCB3aWxsIGZldGNoIHJlc3VsdHMgb24ga2V5 dXAgKi8KZnVuY3Rpb24gb3NfZXZlbnRLZXl1cChlKXsKCXZhciB0YXJnID0gb3Nf Z2V0VGFyZ2V0KGUpOwoJdmFyIHIgPSBvc19tYXBbdGFyZy5pZF07CglpZihyID09 IG51bGwpCgkJcmV0dXJuOyAvLyBub3Qgb3VyIGV2ZW50CgoJLy8gc29tZSBicm93 c2VycyB3b24ndCBnZW5lcmF0ZSBrZXlwcmVzc2VkIGZvciBhcnJvdyBrZXlzLCBj YXRjaCBpdAoJaWYob3Nfa2V5cHJlc3NlZF9jb3VudCA9PSAwKXsKCQlvc19wcm9j ZXNzS2V5KHIsb3NfY3VyX2tleXByZXNzZWQsdGFyZyk7Cgl9Cgl2YXIgcXVlcnkg PSB0YXJnLnZhbHVlOwoJb3NfZmV0Y2hSZXN1bHRzKHIscXVlcnksb3Nfc2VhcmNo X3RpbWVvdXQpOwp9CgovKiogY2F0Y2ggYXJyb3dzIHVwL2Rvd24gYW5kIGVzY2Fw ZSB0byBoaWRlIHRoZSBzdWdnZXN0aW9ucyAqLwpmdW5jdGlvbiBvc19wcm9jZXNz S2V5KHIsa2V5cHJlc3NlZCx0YXJnKXsKCWlmIChrZXlwcmVzc2VkID09IDQwKXsg Ly8gQXJyb3cgRG93bgogICAgCWlmIChyLnZpc2libGUpIHsKICAgICAgCQlvc19j aGFuZ2VIaWdobGlnaHQociwgci5zZWxlY3RlZCwgci5zZWxlY3RlZCsxLCB0cnVl KTsKICAgIAl9IGVsc2UgaWYob3NfdGltZXIgPT0gbnVsbCl7CiAgICAJCS8vIHVz ZXIgd2FudHMgdG8gZ2V0IHN1Z2dlc3Rpb25zIG5vdwogICAgCQlyLnF1ZXJ5ID0g IiI7CgkJCW9zX2ZldGNoUmVzdWx0cyhyLHRhcmcudmFsdWUsMCk7CiAgICAJfQog IAl9IGVsc2UgaWYgKGtleXByZXNzZWQgPT0gMzgpeyAvLyBBcnJvdyBVcAogIAkJ aWYgKHIudmlzaWJsZSl7CiAgCQkJb3NfY2hhbmdlSGlnaGxpZ2h0KHIsIHIuc2Vs ZWN0ZWQsIHIuc2VsZWN0ZWQtMSwgdHJ1ZSk7CiAgCQl9CiAgCX0gZWxzZSBpZihr ZXlwcmVzc2VkID09IDI3KXsgLy8gRXNjYXBlCiAgCQlkb2N1bWVudC5nZXRFbGVt ZW50QnlJZChyLnNlYXJjaGJveCkudmFsdWUgPSByLm9yaWdpbmFsOwogIAkJci5x dWVyeSA9IHIub3JpZ2luYWw7CiAgCQlvc19oaWRlUmVzdWx0cyhyKTsKICAJfSBl bHNlIGlmKHIucXVlcnkgIT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5zZWFy Y2hib3gpLnZhbHVlKXsKICAJCS8vIG9zX2hpZGVSZXN1bHRzKHIpOyAvLyBkb24n dCBzaG93IG9sZCBzdWdnZXN0aW9ucwogIAl9Cn0KCi8qKiBXaGVuIGtleXMgaXMg aGVsZCBkb3duIHVzZSBhIHRpbWVyIHRvIG91dHB1dCByZWd1bGFyIGV2ZW50cyAq LwpmdW5jdGlvbiBvc19ldmVudEtleXByZXNzKGUpewoJdmFyIHRhcmcgPSBvc19n ZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21hcFt0YXJnLmlkXTsKCWlmKHIgPT0g bnVsbCkKCQlyZXR1cm47IC8vIG5vdCBvdXIgZXZlbnQKCgl2YXIga2V5cHJlc3Nl ZCA9IG9zX2N1cl9rZXlwcmVzc2VkOwoJaWYoa2V5cHJlc3NlZCA9PSAzOCB8fCBr ZXlwcmVzc2VkID09IDQwKXsKCQl2YXIgZCA9IG5ldyBEYXRlKCkKCQl2YXIgbm93 ID0gZC5nZXRUaW1lKCk7CgkJaWYobm93IC0gb3NfbGFzdF9rZXlwcmVzcyA8IDEy MCl7CgkJCW9zX2xhc3Rfa2V5cHJlc3MgPSBub3c7CgkJCXJldHVybjsKCQl9Cgl9 CgoJb3Nfa2V5cHJlc3NlZF9jb3VudCsrOwoJb3NfcHJvY2Vzc0tleShyLGtleXBy ZXNzZWQsdGFyZyk7Cn0KCi8qKiBDYXRjaCB0aGUga2V5IGNvZGUgKEZpcmVmb3gg YnVnKSAgKi8KZnVuY3Rpb24gb3NfZXZlbnRLZXlkb3duKGUpewoJaWYgKCFlKSBl ID0gd2luZG93LmV2ZW50OwoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2 YXIgciA9IG9zX21hcFt0YXJnLmlkXTsKCWlmKHIgPT0gbnVsbCkKCQlyZXR1cm47 IC8vIG5vdCBvdXIgZXZlbnQKCglvc19tb3VzZV9tb3ZlZCA9IGZhbHNlOwoKCW9z X2N1cl9rZXlwcmVzc2VkID0gKGUua2V5Q29kZSA9PSB1bmRlZmluZWQpID8gZS53 aGljaCA6IGUua2V5Q29kZTsKCW9zX2xhc3Rfa2V5cHJlc3MgPSAwOwoJb3Nfa2V5 cHJlc3NlZF9jb3VudCA9IDA7Cn0KCi8qKiBFdmVudDogbG9zcyBvZiBmb2N1cyBv ZiBpbnB1dCBib3ggKi8KZnVuY3Rpb24gb3NfZXZlbnRCbHVyKGUpewoJdmFyIHRh cmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21hcFt0YXJnLmlkXTsK CWlmKHIgPT0gbnVsbCkKCQlyZXR1cm47IC8vIG5vdCBvdXIgZXZlbnQKCWlmKCFv c19tb3VzZV9wcmVzc2VkKXsKCQlvc19oaWRlUmVzdWx0cyhyKTsKCQkvLyBmb3Jj ZSBjYW52YXMgdG8gc3RheSBoaWRkZW4KCQlyLnN0YXlIaWRkZW4gPSB0cnVlCgkJ Ly8gY2FuY2VsIGFueSBwZW5kaW5nIGZldGNoZXMKCQlpZihvc190aW1lciAhPSBu dWxsICYmIG9zX3RpbWVyLmlkICE9IG51bGwpCgkJCWNsZWFyVGltZW91dChvc190 aW1lci5pZCk7CgkJb3NfdGltZXIgPSBudWxsCgl9Cn0KCi8qKiBFdmVudDogZm9j dXMgKGNhdGNoIG9ubHkgd2hlbiBzdG9wcGVkKSAqLwpmdW5jdGlvbiBvc19ldmVu dEZvY3VzKGUpewoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9 IG9zX21hcFt0YXJnLmlkXTsKCWlmKHIgPT0gbnVsbCkKCQlyZXR1cm47IC8vIG5v dCBvdXIgZXZlbnQKCXIuc3RheUhpZGRlbiA9IGZhbHNlCn0KCgoKLyoqKioqKioq KioqKioqKioqKioqCiAqICBNb3VzZSBldmVudHMKICoqKioqKioqKioqKioqKioq KioqLwoKLyoqIE1vdXNlIG92ZXIgdGhlIGNvbnRhaW5lciAqLwpmdW5jdGlvbiBv c19ldmVudE1vdXNlb3ZlcihzcmNJZCwgZSl7Cgl2YXIgdGFyZyA9IG9zX2dldFRh cmdldChlKTsKCXZhciByID0gb3NfbWFwW3NyY0lkXTsKCWlmKHIgPT0gbnVsbCB8 fCAhb3NfbW91c2VfbW92ZWQpCgkJcmV0dXJuOyAvLyBub3Qgb3VyIGV2ZW50Cgl2 YXIgbnVtID0gb3NfZ2V0TnVtYmVyU3VmZml4KHRhcmcuaWQpOwoJaWYobnVtID49 IDApCgkJb3NfY2hhbmdlSGlnaGxpZ2h0KHIsci5zZWxlY3RlZCxudW0sZmFsc2Up OwoKfQoKLyogR2V0IHJvdyB3aGVyZSB0aGUgZXZlbnQgb2NjdXJlZCAoZnJvbSBp dHMgaWQpICovCmZ1bmN0aW9uIG9zX2dldE51bWJlclN1ZmZpeChpZCl7Cgl2YXIg bnVtID0gaWQuc3Vic3RyaW5nKGlkLmxlbmd0aC0yKTsKCWlmKCAhIChudW0uY2hh ckF0KDApID49ICcwJyAmJiBudW0uY2hhckF0KDApIDw9ICc5JykgKQoJCW51bSA9 IG51bS5zdWJzdHJpbmcoMSk7CglpZihvc19pc051bWJlcihudW0pKQoJCXJldHVy biBwYXJzZUludChudW0pOwoJZWxzZQoJCXJldHVybiAtMTsKfQoKLyoqIFNhdmUg bW91c2UgbW92ZSBhcyBsYXN0IGFjdGlvbiAqLwpmdW5jdGlvbiBvc19ldmVudE1v dXNlbW92ZShzcmNJZCwgZSl7Cglvc19tb3VzZV9tb3ZlZCA9IHRydWU7Cn0KCi8q KiBNb3VzZSBidXR0b24gaGVsZCBkb3duLCByZWdpc3RlciBwb3NzaWJsZSBjbGlj ayAgKi8KZnVuY3Rpb24gb3NfZXZlbnRNb3VzZWRvd24oc3JjSWQsIGUpewoJdmFy IHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21hcFtzcmNJZF07 CglpZihyID09IG51bGwpCgkJcmV0dXJuOyAvLyBub3Qgb3VyIGV2ZW50Cgl2YXIg bnVtID0gb3NfZ2V0TnVtYmVyU3VmZml4KHRhcmcuaWQpOwoKCW9zX21vdXNlX3By ZXNzZWQgPSB0cnVlOwoJaWYobnVtID49IDApewoJCW9zX21vdXNlX251bSA9IG51 bTsKCQkvLyBvc191cGRhdGVTZWFyY2hRdWVyeShyLHIucmVzdWx0c1tudW1dKTsK CX0KCS8vIGtlZXAgdGhlIGZvY3VzIG9uIHRoZSBzZWFyY2ggZmllbGQKCWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKHIuc2VhcmNoYm94KS5mb2N1cygpOwoKCXJldHVy biBmYWxzZTsgLy8gcHJldmVudHMgc2VsZWN0aW9uCn0KCi8qKiBNb3VzZSBidXR0 b24gcmVsZWFzZWQsIGNoZWNrIGZvciBjbGljayBvbiBzb21lIHJvdyAqLwpmdW5j dGlvbiBvc19ldmVudE1vdXNldXAoc3JjSWQsIGUpewoJdmFyIHRhcmcgPSBvc19n ZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21hcFtzcmNJZF07CglpZihyID09IG51 bGwpCgkJcmV0dXJuOyAvLyBub3Qgb3VyIGV2ZW50Cgl2YXIgbnVtID0gb3NfZ2V0 TnVtYmVyU3VmZml4KHRhcmcuaWQpOwoKCWlmKG51bSA+PSAwICYmIG9zX21vdXNl X251bSA9PSBudW0pewoJCW9zX3VwZGF0ZVNlYXJjaFF1ZXJ5KHIsci5yZXN1bHRz W251bV0pOwoJCW9zX2hpZGVSZXN1bHRzKHIpOwoJCWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKHIuc2VhcmNoZm9ybSkuc3VibWl0KCk7Cgl9Cglvc19tb3VzZV9wcmVz c2VkID0gZmFsc2U7CgkvLyBrZWVwIHRoZSBmb2N1cyBvbiB0aGUgc2VhcmNoIGZp ZWxkCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnNlYXJjaGJveCkuZm9jdXMo KTsKfQoKLyoqIENoZWNrIGlmIHggaXMgYSB2YWxpZCBpbnRlZ2VyICovCmZ1bmN0 aW9uIG9zX2lzTnVtYmVyKHgpewoJaWYoeCA9PSAiIiB8fCBpc05hTih4KSkKCQly ZXR1cm4gZmFsc2U7Cglmb3IodmFyIGk9MDtpPHgubGVuZ3RoO2krKyl7CgkJdmFy IGMgPSB4LmNoYXJBdChpKTsKCQlpZiggISAoYyA+PSAnMCcgJiYgYyA8PSAnOScp ICkKCQkJcmV0dXJuIGZhbHNlOwoJfQoJcmV0dXJuIHRydWU7Cn0KCgovKiogV2hl biB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQgaGlkZSBldmVyeXRoaW5nLCBjYW5jZWwg dXBkYXRlcy4uLiAqLwpmdW5jdGlvbiBvc19ldmVudE9uc3VibWl0KGUpewoJdmFy IHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7CgoJb3NfaXNfc3RvcHBlZCA9IHRydWU7 CgkvLyBraWxsIHRpbWVkIHJlcXVlc3RzCglpZihvc190aW1lciAhPSBudWxsICYm IG9zX3RpbWVyLmlkICE9IG51bGwpewoJCWNsZWFyVGltZW91dChvc190aW1lci5p ZCk7CgkJb3NfdGltZXIgPSBudWxsOwoJfQoJLy8gSGlkZSBhbGwgc3VnZ2VzdGlv bnMKCWZvcihpPTA7aTxvc19hdXRvbG9hZF9pbnB1dHMubGVuZ3RoO2krKyl7CgkJ dmFyIHIgPSBvc19tYXBbb3NfYXV0b2xvYWRfaW5wdXRzW2ldXTsKCQlpZihyICE9 IG51bGwpewoJCQl2YXIgYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuc2Vh cmNoZm9ybSk7CgkJCWlmKGIgIT0gbnVsbCAmJiBiID09IHRhcmcpewoJCQkJLy8g c2V0IHF1ZXJ5IHZhbHVlIHNvIHRoZSBoYW5kbGVyIHdvbid0IHRyeSB0byBmZXRj aCBhZGRpdGlvbmFsIHJlc3VsdHMKCQkJCXIucXVlcnkgPSBkb2N1bWVudC5nZXRF bGVtZW50QnlJZChyLnNlYXJjaGJveCkudmFsdWU7CgkJCX0KCQkJb3NfaGlkZVJl c3VsdHMocik7CgkJfQoJfQoJcmV0dXJuIHRydWU7Cn0KCmZ1bmN0aW9uIG9zX2hv b2tFdmVudChlbGVtZW50LCBob29rTmFtZSwgaG9va0Z1bmN0KSB7CglpZiAoZWxl bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CgkJZWxlbWVudC5hZGRFdmVudExpc3Rl bmVyKGhvb2tOYW1lLCBob29rRnVuY3QsIGZhbHNlKTsKCX0gZWxzZSBpZiAod2lu ZG93LmF0dGFjaEV2ZW50KSB7CgkJZWxlbWVudC5hdHRhY2hFdmVudCgib24iICsg aG9va05hbWUsIGhvb2tGdW5jdCk7Cgl9Cn0KCi8qKiBJbml0IFJlc3VsdCBvYmpl Y3RzIGFuZCBldmVudCBoYW5kbGVycyAqLwpmdW5jdGlvbiBvc19pbml0SGFuZGxl cnMobmFtZSwgZm9ybW5hbWUsIGVsZW1lbnQpewoJdmFyIHIgPSBuZXcgb3NfUmVz dWx0cyhuYW1lLCBmb3JtbmFtZSk7CgkvLyBldmVudCBoYW5kbGVyCglvc19ob29r RXZlbnQoZWxlbWVudCwgImtleXVwIiwgZnVuY3Rpb24oZXZlbnQpIHsgb3NfZXZl bnRLZXl1cChldmVudCk7IH0pOwoJb3NfaG9va0V2ZW50KGVsZW1lbnQsICJrZXlk b3duIiwgZnVuY3Rpb24oZXZlbnQpIHsgb3NfZXZlbnRLZXlkb3duKGV2ZW50KTsg fSk7Cglvc19ob29rRXZlbnQoZWxlbWVudCwgImtleXByZXNzIiwgZnVuY3Rpb24o ZXZlbnQpIHsgb3NfZXZlbnRLZXlwcmVzcyhldmVudCk7IH0pOwoJb3NfaG9va0V2 ZW50KGVsZW1lbnQsICJibHVyIiwgZnVuY3Rpb24oZXZlbnQpIHsgb3NfZXZlbnRC bHVyKGV2ZW50KTsgfSk7Cglvc19ob29rRXZlbnQoZWxlbWVudCwgImZvY3VzIiwg ZnVuY3Rpb24oZXZlbnQpIHsgb3NfZXZlbnRGb2N1cyhldmVudCk7IH0pOwoJZWxl bWVudC5zZXRBdHRyaWJ1dGUoImF1dG9jb21wbGV0ZSIsIm9mZiIpOwoJLy8gc3Rv cHBpbmcgaGFuZGxlcgoJb3NfaG9va0V2ZW50KGRvY3VtZW50LmdldEVsZW1lbnRC eUlkKGZvcm1uYW1lKSwgInN1Ym1pdCIsIGZ1bmN0aW9uKGV2ZW50KXsgcmV0dXJu IG9zX2V2ZW50T25zdWJtaXQoZXZlbnQpOyB9KTsKCW9zX21hcFtuYW1lXSA9IHI7 CgkvLyB0b2dnbGUgbGluawoJaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci50 b2dnbGUpID09IG51bGwpewoJCS8vIFRPRE86IGRpc2FibGUgdGhpcyB3aGlsZSB3 ZSBmaWd1cmUgb3V0IGEgd2F5IGZvciB0aGlzIHRvIHdvcmsgaW4gYWxsIGJyb3dz ZXJzCgkJLyogaWYobmFtZT09J3NlYXJjaElucHV0Jyl7CgkJCS8vIHNwZWNpYWwg Y2FzZTogcGxhY2UgYWJvdmUgdGhlIG1haW4gc2VhcmNoIGJveAoJCQl2YXIgdCA9 IG9zX2NyZWF0ZVRvZ2dsZShyLCJvcy1zdWdnZXN0LXRvZ2dsZSIpOwoJCQl2YXIg c2VhcmNoQm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFyY2hCb2R5 Jyk7CgkJCXZhciBmaXJzdCA9IHNlYXJjaEJvZHkucGFyZW50Tm9kZS5maXJzdENo aWxkLm5leHRTaWJsaW5nLmFwcGVuZENoaWxkKHQpOwoJCX0gZWxzZXsKCQkJLy8g ZGVmYXVsdDogcGxhY2UgYmVsb3cgc2VhcmNoIGJveCB0byB0aGUgcmlnaHQKCQkJ dmFyIHQgPSBvc19jcmVhdGVUb2dnbGUociwib3Mtc3VnZ2VzdC10b2dnbGUtZGVm Iik7CgkJCXZhciB0b3AgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zm c2V0SGVpZ2h0OwoJCQl2YXIgbGVmdCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVs ZW1lbnQub2Zmc2V0V2lkdGg7CgkJCXQuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1 dGUiOwoJCQl0LnN0eWxlLnRvcCA9IHRvcCArICJweCI7CgkJCXQuc3R5bGUubGVm dCA9IGxlZnQgKyAicHgiOwoJCQllbGVtZW50LnBhcmVudE5vZGUuYXBwZW5kQ2hp bGQodCk7CgkJCS8vIG9ubHkgbm93IHdpZHRoIGdldHMgY2FsY3VsYXRlZCwgc2hp ZnQgcmlnaHQKCQkJbGVmdCAtPSB0Lm9mZnNldFdpZHRoOwoJCQl0LnN0eWxlLmxl ZnQgPSBsZWZ0ICsgInB4IjsKCQkJdC5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2li bGUiOwoJCX0gKi8KCX0KCn0KCi8qKiBSZXR1cm4gdGhlIHNwYW4gZWxlbWVudCB0 aGF0IGNvbnRhaW5zIHRoZSB0b2dnbGUgbGluayAqLwpmdW5jdGlvbiBvc19jcmVh dGVUb2dnbGUocixjbGFzc05hbWUpewoJdmFyIHQgPSBkb2N1bWVudC5jcmVhdGVF bGVtZW50KCJzcGFuIik7Cgl0LmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKCXQuc2V0 QXR0cmlidXRlKCJpZCIsIHIudG9nZ2xlKTsKCXZhciBsaW5rID0gZG9jdW1lbnQu Y3JlYXRlRWxlbWVudCgiYSIpOwoJbGluay5zZXRBdHRyaWJ1dGUoImhyZWYiLCJq YXZhc2NyaXB0OnZvaWQoMCk7Iik7CglsaW5rLm9uY2xpY2sgPSBmdW5jdGlvbigp eyBvc190b2dnbGUoci5zZWFyY2hib3gsci5zZWFyY2hmb3JtKSB9OwoJdmFyIG1z ZyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdnTVdTdWdnZXN0TWVzc2FnZXNb MF0pOwoJbGluay5hcHBlbmRDaGlsZChtc2cpOwoJdC5hcHBlbmRDaGlsZChsaW5r KTsKCXJldHVybiB0Owp9CgovKiogQ2FsbCB3aGVuIHVzZXIgY2xpY2tzIG9uIHNv bWUgb2YgdGhlIHRvZ2dsZSBsaW5rcyAqLwpmdW5jdGlvbiBvc190b2dnbGUoaW5w dXRJZCxmb3JtTmFtZSl7CglyID0gb3NfbWFwW2lucHV0SWRdOwoJdmFyIG1zZyA9 ICcnOwoJaWYociA9PSBudWxsKXsKCQlvc19lbmFibGVTdWdnZXN0aW9uc09uKGlu cHV0SWQsZm9ybU5hbWUpOwoJCXIgPSBvc19tYXBbaW5wdXRJZF07CgkJbXNnID0g d2dNV1N1Z2dlc3RNZXNzYWdlc1swXTsKCX0gZWxzZXsKCQlvc19kaXNhYmxlU3Vn Z2VzdGlvbnNPbihpbnB1dElkLGZvcm1OYW1lKTsKCQltc2cgPSB3Z01XU3VnZ2Vz dE1lc3NhZ2VzWzFdOwoJfQoJLy8gY2hhbmdlIG1lc3NhZ2UKCXZhciBsaW5rID0g ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci50b2dnbGUpLmZpcnN0Q2hpbGQ7Cgls aW5rLnJlcGxhY2VDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cpLGxp bmsuZmlyc3RDaGlsZCk7Cn0KCi8qKiBDYWxsIHRoaXMgdG8gZW5hYmxlIHN1Z2dl c3Rpb25zIG9uIGlucHV0IChpZD1pbnB1dElkKSwgb24gYSBmb3JtIChuYW1lPWZv cm1OYW1lKSAqLwpmdW5jdGlvbiBvc19lbmFibGVTdWdnZXN0aW9uc09uKGlucHV0 SWQsIGZvcm1OYW1lKXsKCW9zX2luaXRIYW5kbGVycyggaW5wdXRJZCwgZm9ybU5h bWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpICk7Cn0KCi8qKiBD YWxsIHRoaXMgdG8gZGlzYWJsZSBzdWdnZXN0aW9zIG9uIGlucHV0IGJveCAoaWQ9 aW5wdXRJZCkgKi8KZnVuY3Rpb24gb3NfZGlzYWJsZVN1Z2dlc3Rpb25zT24oaW5w dXRJZCl7CglyID0gb3NfbWFwW2lucHV0SWRdOwoJaWYociAhPSBudWxsKXsKCQkv LyBjYW5jZWwvaGlkZSByZXN1bHRzCgkJb3NfdGltZXIgPSBudWxsOwoJCW9zX2hp ZGVSZXN1bHRzKHIpOwoJCS8vIHR1cm4gYXV0b2NvbXBsZXRlIG9uICEKCQlkb2N1 bWVudC5nZXRFbGVtZW50QnlJZChpbnB1dElkKS5zZXRBdHRyaWJ1dGUoImF1dG9j b21wbGV0ZSIsIm9uIik7CgkJLy8gcmVtb3ZlIGRlc2NyaXB0b3IKCQlvc19tYXBb aW5wdXRJZF0gPSBudWxsOwoJfQp9CgovKiogSW5pdGlhbGl6YXRpb24sIGNhbGwg dXBvbiBwYWdlIG9ubG9hZCAqLwpmdW5jdGlvbiBvc19NV1N1Z2dlc3RJbml0KCkg ewoJZm9yKGk9MDtpPG9zX2F1dG9sb2FkX2lucHV0cy5sZW5ndGg7aSsrKXsKCQl2 YXIgaWQgPSBvc19hdXRvbG9hZF9pbnB1dHNbaV07CgkJdmFyIGZvcm0gPSBvc19h dXRvbG9hZF9mb3Jtc1tpXTsKCQllbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoIGlkICk7CgkJaWYoZWxlbWVudCAhPSBudWxsKQoJCQlvc19pbml0SGFu ZGxlcnMoaWQsZm9ybSxlbGVtZW50KTsKCX0KfQoKaG9va0V2ZW50KCJsb2FkIiwg b3NfTVdTdWdnZXN0SW5pdCk7Cgo= ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=centralnotice.js Content-Type: text/javascript; charset=utf-8; name=centralnotice.js Content-Location: http://upload.wikimedia.org/centralnotice/wikipedia/ru/centralnotice.js?233zz2 Content-Transfer-Encoding: 8bit function toggleNotice() { var notice = document.getElementById('centralNotice'); if (!wgNoticeToggleState) { notice.className = notice.className.replace('collapsed', 'expanded'); toggleNoticeCookie('0'); } else { notice.className = notice.className.replace('expanded', 'collapsed'); toggleNoticeCookie('1'); } wgNoticeToggleState = !wgNoticeToggleState; } function toggleNoticeStyle(elems, display) { if(elems) for(var i=0;i' + wgNotice+''; ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=flaggedrevs.js Content-Type: application/x-javascript; charset=utf-8; name=flaggedrevs.js Content-Location: http://ru.wikipedia.org/w/extensions/FlaggedRevs/flaggedrevs.js?59 Content-Transfer-Encoding: Base64 LyogLS0gKGMpIEFhcm9uIFNjaHVseiwgRGFuaWVsIEFybm9sZCAyMDA4ICovCgov KiBFdmVyeSB0aW1lIHlvdSBjaGFuZ2UgdGhpcyBKUyBwbGVhc2UgYnVtcCAkd2dG bGFnZ2VkUmV2U3R5bGVWZXJzaW9uIGluIEZsYWdnZWRSZXZzLnBocCAqLwoKLyog SGlkZSByYXRpbmcgY2x1dHRlciAqLwpmdW5jdGlvbiBlbmFibGVfc2hvd2hpZGUo KSB7Cgl2YXIgdG9nZ2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ213LXJl dmlzaW9udG9nZ2xlJyk7CglpZiggIXRvZ2dsZSApIHJldHVybjsKCXRvZ2dsZS5z dHlsZS5kaXNwbGF5ID0gJ2lubGluZSc7Cgl2YXIgcmF0aW5ncyA9IGRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCdtdy1yZXZpc2lvbnJhdGluZ3MnKTsKCWlmKCAhcmF0 aW5ncyApIHJldHVybjsKCXJhdGluZ3Muc3R5bGUuZGlzcGxheSA9ICdub25lJzsK fQoKLyogVG9nZ2xlcyByYXRpbmdzICovCmZ1bmN0aW9uIHRvZ2dsZVJldlJhdGlu Z3MoKSB7Cgl2YXIgcmF0aW5ncyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdt dy1yZXZpc2lvbnJhdGluZ3MnKTsKCWlmKCAhcmF0aW5ncyApIHJldHVybjsKCWlm KCByYXRpbmdzLnN0eWxlLmRpc3BsYXkgPT0gJ25vbmUnICkgewoJCXJhdGluZ3Mu c3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnOwoJfSBlbHNlIHsKCQlyYXRpbmdzLnN0 eWxlLmRpc3BsYXkgPSAnbm9uZSc7Cgl9Cn0KCi8qCiogYSkgRGlzYWJsZSBzdWJt aXQgaW4gY2FzZSBvZiBpbnZhbGlkIGlucHV0LgoqIGIpIFVwZGF0ZSBjb2xvcnMg d2hlbiBzZWxlY3QgY2hhbmdlcyAoT3BlcmEgYWxyZWFkeSBkb2VzIHRoaXMpLgoq IGMpIEFsc28gcmVtb3ZlIGNvbW1lbnQgYm94IGNsdXR0ZXIgaW4gY2FzZSBvZiBp bnZhbGlkIGlucHV0LgoqLwpmdW5jdGlvbiB1cGRhdGVSYXRpbmdGb3JtKCkgewoJ dmFyIHJhdGluZ2Zvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXctcmF0 aW5nc2VsZWN0cycpOwoJaWYoICFyYXRpbmdmb3JtICkgcmV0dXJuOwoJdmFyIGRp c2FibGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyLXJhdGluZy1jb250 cm9scy1kaXNhYmxlZCcpOwoJaWYoIGRpc2FibGVkICkgcmV0dXJuOwoKCXZhciBx dWFsaXR5ID0gdHJ1ZTsKCXZhciBhbGx6ZXJvID0gdHJ1ZTsKCXZhciBzb21lemVy byA9IGZhbHNlOwoKCWZvciggdGFnIGluIHdnRmxhZ2dlZFJldnNQYXJhbXMudGFn cyApIHsKCQl2YXIgY29udHJvbE5hbWUgPSAid3AiICsgdGFnOwoJCXZhciBsZXZl bHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShjb250cm9sTmFtZSk7CgkJ dmFyIHNlbGVjdGVkbGV2ZWwgPSAwOyAvLyBkZWZhdWx0CgoJCWlmKCBsZXZlbHNb MF0ubm9kZU5hbWUgPT0gJ1NFTEVDVCcgKSB7CgkJCXNlbGVjdGVkbGV2ZWwgPSBs ZXZlbHNbMF0uc2VsZWN0ZWRJbmRleDsKCQkJLy8gVXBkYXRlIGNvbG9yLiBPcGVy YSBkb2VzIHRoaXMgYWxyZWFkeSwgYW5kIGRvaW5nIHNvCgkJCS8vIHNlZW1zIHRv IGtpbGwgY3VzdG9tIHByZXR0eSBvcGVyYSBza2luIGZvcm0gc3R5bGluZy4KCQkJ aWYoIG5hdmlnYXRvci5hcHBOYW1lICE9ICdPcGVyYScpIHsKCQkJCXZhbHVlID0g bGV2ZWxzWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdvcHRpb24nKVtzZWxlY3Rl ZGxldmVsXS52YWx1ZTsKCQkJCWxldmVsc1swXS5jbGFzc05hbWUgPSAnZnItcmF0 aW5nLW9wdGlvbi0nICsgdmFsdWU7CgkJCX0KCQl9IGVsc2UgaWYoIGxldmVsc1sw XS50eXBlID09ICdyYWRpbycgKSB7CgkJCWZvciggaSA9IDA7IGkgPCBsZXZlbHMu bGVuZ3RoOyBpKysgKSB7CgkJCQlpZiggbGV2ZWxzW2ldLmNoZWNrZWQgKSB7CgkJ CQkJc2VsZWN0ZWRsZXZlbCA9IGk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9 IGVsc2UgaWYoIGxldmVsc1swXS50eXBlID09ICdjaGVja2JveCcgKSB7CgkJCXNl bGVjdGVkbGV2ZWwgPSAobGV2ZWxzWzBdLmNoZWNrZWQpID8gMTogMDsKCQl9IGVs c2UgewoJCQlyZXR1cm47IC8vIGVycm9yOiBzaG91bGQgbm90IGhhcHBlbgoJCX0K CgkJLy8gR2V0IHF1YWxpdHkgbGV2ZWwgZm9yIHRoaXMgdGFnCgkJcXVhbGl0eUxl dmVsID0gd2dGbGFnZ2VkUmV2c1BhcmFtcy50YWdzW3RhZ107CgoJCWlmKCBzZWxl Y3RlZGxldmVsIDwgcXVhbGl0eUxldmVsICkgewoJCQlxdWFsaXR5ID0gZmFsc2U7 IC8vIG5vdCBhIHF1YWxpdHkgcmV2aWV3CgkJfQoJCWlmKCBzZWxlY3RlZGxldmVs ID4gMCApIHsKCQkJYWxsemVybyA9IGZhbHNlOwoJCX0gZWxzZSB7CgkJCXNvbWV6 ZXJvID0gdHJ1ZTsKCQl9Cgl9CgkvLyBTaG93IG5vdGUgYm94IG9ubHkgZm9yIHF1 YWxpdHkgcmV2cwoJdmFyIG5vdGVib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgnbXctbm90ZWJveCcpOwoJaWYoIG5vdGVib3ggKSB7CgkJbm90ZWJveC5zdHls ZS5kaXNwbGF5ID0gcXVhbGl0eSA/ICdpbmxpbmUnIDogJ25vbmUnOwoJfQoJLy8g SWYgb25seSBhIGZldyBsZXZlbHMgYXJlIHplcm8sIGRvbid0IHNob3cgc3VibWl0 IGxpbmsKCXZhciBzdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3Vi bWl0cmV2aWV3Jyk7CglzdWJtaXQuZGlzYWJsZWQgPSAoIHNvbWV6ZXJvICYmICFh bGx6ZXJvICkgPyAnZGlzYWJsZWQnIDogJyc7CgkvLyBDbGVhciBub3RlIGJveCBk YXRhIGlmIG5vdCBzaG93bgoJdmFyIG5vdGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoJ3dwTm90ZXMnKTsKCWlmKCBub3RlcyApIHsKCQlub3Rlcy52YWx1ZSA9 IHF1YWxpdHkgPyBub3Rlcy52YWx1ZSA6ICcnOwoJfQp9CgovKgoqIFVwZGF0ZSBj b2xvcnMgd2hlbiBzZWxlY3QgY2hhbmdlcyAoT3BlcmEgYWxyZWFkeSBkb2VzIHRo aXMpLgoqLwpmdW5jdGlvbiB1cGRhdGVGZWVkYmFja0Zvcm0oKSB7Cgl2YXIgYWxs emVybyA9IHRydWU7Cgl2YXIgcmF0aW5nZm9ybSA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCdtdy1mZWVkYmFja3NlbGVjdHMnKTsKCWlmKCAhcmF0aW5nZm9ybSAp IHJldHVybjsKCWZvciggdGFnIGluIHdnRmxhZ2dlZFJldnNQYXJhbXMyLnRhZ3Mg KSB7CgkJdmFyIGNvbnRyb2xOYW1lID0gIndwIiArIHRhZzsKCQl2YXIgbGV2ZWxz ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoY29udHJvbE5hbWUpOwoJCXZh ciBzZWxlY3RlZGxldmVsID0gMjsgLy8gZGVmYXVsdAoJCWlmKCBsZXZlbHNbMF0u bm9kZU5hbWUgPT0gJ1NFTEVDVCcgKSB7CgkJCXNlbGVjdGVkbGV2ZWwgPSBsZXZl bHNbMF0uc2VsZWN0ZWRJbmRleDsKCQkJLy8gVXBkYXRlIGNvbG9yLiBPcGVyYSBk b2VzIHRoaXMgYWxyZWFkeSwgYW5kIGRvaW5nIHNvCgkJCS8vIHNlZW1zIHRvIGtp bGwgY3VzdG9tIHByZXR0eSBvcGVyYSBza2luIGZvcm0gc3R5bGluZy4KCQkJaWYo IG5hdmlnYXRvci5hcHBOYW1lICE9ICdPcGVyYScpIHsKCQkJCWxldmVsc1swXS5j bGFzc05hbWUgPSAnZnItcmF0aW5nLW9wdGlvbi0nICsgKDQgLSBzZWxlY3RlZGxl dmVsKTsKCQkJfQoJCQlpZiggc2VsZWN0ZWRsZXZlbCA8PSA0ICkgewoJCQkJYWxs emVybyA9IGZhbHNlOwoJCQl9CgkJfQoJfQoJdmFyIHN1Ym1pdCA9IGRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCdzdWJtaXRmZWVkYmFjaycpOwoJc3VibWl0LmRpc2Fi bGVkID0gYWxsemVybyA/ICdkaXNhYmxlZCcgOiAnJzsKfQoKYWRkT25sb2FkSG9v ayhlbmFibGVfc2hvd2hpZGUpOwphZGRPbmxvYWRIb29rKHVwZGF0ZVJhdGluZ0Zv cm0pOwphZGRPbmxvYWRIb29rKHVwZGF0ZUZlZWRiYWNrRm9ybSk7CgovLyBkZXBl bmRlbmNpZXM6Ci8vICogYWpheC5qczoKICAvKmV4dGVybiBzYWpheF9pbml0X29i amVjdCwgc2FqYXhfZG9fY2FsbCAqLwovLyAqIHdpa2liaXRzLmpzOgogIC8qZXh0 ZXJuIGhvb2tFdmVudCwganNNc2cgKi8KCi8vIFRoZXNlIHNob3VsZCBoYXZlIGJl ZW4gaW5pdGlhbGl6ZWQgaW4gdGhlIGdlbmVyYXRlZCBqcwppZiggdHlwZW9mIHdn QWpheEZlZWRiYWNrID09PSAidW5kZWZpbmVkIiB8fCAhd2dBamF4RmVlZGJhY2sg KSB7Cgl3Z0FqYXhGZWVkYmFjayA9IHsKCQlzZW5kaW5nTXNnOiAiU3VibWl0dGlu Zy4uLiIsCgkJc2VudE1zZzogIlRoYW5rIHlvdSEiCgl9Owp9Cgp3Z0FqYXhGZWVk YmFjay5zdXBwb3J0ZWQgPSB0cnVlOyAvLyBzdXBwb3J0ZWQgb24gY3VycmVudCBw YWdlIGFuZCBieSBicm93c2VyCndnQWpheEZlZWRiYWNrLmlucHJvZ3Jlc3MgPSBm YWxzZTsgLy8gYWpheCByZXF1ZXN0IGluIHByb2dyZXNzCndnQWpheEZlZWRiYWNr LnRpbWVvdXRJRCA9IG51bGw7IC8vIHNlZSB3Z0FqYXhGZWVkYmFjay5hamF4Q2Fs bAoKd2dBamF4RmVlZGJhY2suYWpheENhbGwgPSBmdW5jdGlvbigpIHsKCWlmKCAh d2dBamF4RmVlZGJhY2suc3VwcG9ydGVkICkgewoJCXJldHVybiB0cnVlOwoJfSBl bHNlIGlmKCB3Z0FqYXhGZWVkYmFjay5pbnByb2dyZXNzICkgewoJCXJldHVybiBm YWxzZTsKCX0KCWlmKCAhd2ZTdXBwb3J0c0FqYXgoKSApIHsKCQkvLyBMYXp5IGlu aXRpYWxpemF0aW9uIHNvIHdlIGRvbid0IHRvc3MgdXAKCQkvLyBBY3RpdmVYIHdh cm5pbmdzIG9uIGluaXRpYWwgcGFnZSBsb2FkCgkJLy8gZm9yIElFIDYgdXNlcnMg d2l0aCBzZWN1cml0eSBzZXR0aW5ncy4KCQl3Z0FqYXhGZWVkYmFjay5zdXBwb3J0 ZWQgPSBmYWxzZTsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXZhciBmb3JtID0gZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoIm13LWZlZWRiYWNrZm9ybSIpOwoJdmFyIHN1Ym1p dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJtaXRmZWVkYmFjayIpOwoJ aWYoICFmb3JtIHx8ICFzdWJtaXQgKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJd2dB amF4RmVlZGJhY2suaW5wcm9ncmVzcyA9IHRydWU7CglzdWJtaXQuZGlzYWJsZWQg PSAiZGlzYWJsZWQiOwoJc3VibWl0LnZhbHVlID0gd2dBamF4RmVlZGJhY2suc2Vu ZGluZ01zZzsKCS8vIEJ1aWxkIHVwIGFyZ3VtZW50cwoJdmFyIGFyZ3MgPSBbXTsK CXZhciBpbnB1dHMgPSBmb3JtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIp OwoJZm9yKCB2YXIgaT0wOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7CgkJLy8g SWdub3JlIHNvbWUgdXNlbGVzcyBpdGVtcy4uLgoJCWlmKCBpbnB1dHNbaV0ubmFt ZSAhPSAidGl0bGUiICYmIGlucHV0c1tpXS50eXBlICE9ICJzdWJtaXQiICkgewoJ CQlhcmdzLnB1c2goIGlucHV0c1tpXS5uYW1lICsgInwiICsgaW5wdXRzW2ldLnZh bHVlICk7CgkJfQoJfQoJdmFyIHNlbGVjdHMgPSBmb3JtLmdldEVsZW1lbnRzQnlU YWdOYW1lKCJzZWxlY3QiKTsKCWZvciggdmFyIGk9MDsgaSA8IHNlbGVjdHMubGVu Z3RoOyBpKyspIHsKCQkvLyBHZXQgdGhlIHNlbGVjdGVkIHRhZyBsZXZlbC4uLgoJ CWlmKCBzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXggPj0gMCApIHsKCQkJdmFyIHNv cHRpb24gPSBzZWxlY3RzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvcHRpb24i KVtzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdOwoJCQlhcmdzLnB1c2goIHNlbGVj dHNbaV0ubmFtZSArICJ8IiArIHNvcHRpb24udmFsdWUgKTsKCQl9CgkJc2VsZWN0 c1tpXS5kaXNhYmxlZCA9ICJkaXNhYmxlZCI7Cgl9CgkvLyBTZW5kIQoJc2FqYXhf ZG9fY2FsbCggIlJlYWRlckZlZWRiYWNrOjpBamF4UmV2aWV3IiwgYXJncywgd2dB amF4RmVlZGJhY2sucHJvY2Vzc1Jlc3VsdCApOwoJLy8gSWYgdGhlIHJlcXVlc3Qg aXNuJ3QgZG9uZSBpbiAxMCBzZWNvbmRzLCBhbGxvdyB1c2VyIHRvIHRyeSBhZ2Fp bgoJd2dBamF4RmVlZGJhY2sudGltZW91dElEID0gd2luZG93LnNldFRpbWVvdXQo CgkJZnVuY3Rpb24oKSB7IHdnQWpheEZlZWRiYWNrLmlucHJvZ3Jlc3MgPSBmYWxz ZTsgd2dBamF4RmVlZGJhY2sudW5sb2NrRm9ybSgpOyB9LAoJCTEwMDAwCgkpOwoJ cmV0dXJuIGZhbHNlOwp9OwoKd2dBamF4RmVlZGJhY2sudW5sb2NrRm9ybSA9IGZ1 bmN0aW9uKCkgewoJdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi bXctZmVlZGJhY2tmb3JtIik7Cgl2YXIgc3VibWl0ID0gZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoInN1Ym1pdGZlZWRiYWNrIik7CglpZiggIWZvcm0gfHwgIXN1Ym1p dCApIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CglzdWJtaXQuZGlzYWJsZWQgPSAiIjsK CXZhciBzZWxlY3RzID0gZm9ybS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2VsZWN0 Iik7Cglmb3IoIHZhciBpPTA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7CgkJ c2VsZWN0c1tpXS5kaXNhYmxlZCA9ICIiOwoJfQp9OwoKd2dBamF4RmVlZGJhY2su cHJvY2Vzc1Jlc3VsdCA9IGZ1bmN0aW9uKHJlcXVlc3QpIHsKCWlmKCAhd2dBamF4 RmVlZGJhY2suc3VwcG9ydGVkICkgewoJCXJldHVybjsKCX0KCXZhciByZXNwb25z ZSA9IHJlcXVlc3QucmVzcG9uc2VUZXh0OwoJaWYoIG1zZyA9IHJlc3BvbnNlLnN1 YnN0cig2KSApIHsKCQlqc01zZyggbXNnLCAnZmVlZGJhY2snICk7CgkJd2luZG93 LnNjcm9sbCgwLDApOwoJfQoJd2dBamF4RmVlZGJhY2suaW5wcm9ncmVzcyA9IGZh bHNlOwoJaWYoIHdnQWpheEZlZWRiYWNrLnRpbWVvdXRJRCApIHsKCQl3aW5kb3cu Y2xlYXJUaW1lb3V0KHdnQWpheEZlZWRiYWNrLnRpbWVvdXRJRCk7Cgl9Cgl2YXIg c3VibWl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1Ym1pdGZlZWRiYWNr Iik7CglpZiggc3VibWl0ICkgewoJCXN1Ym1pdC52YWx1ZSA9IHdnQWpheEZlZWRi YWNrLnNlbnRNc2c7Cgl9Cn07Cgp3Z0FqYXhGZWVkYmFjay5vbkxvYWQgPSBmdW5j dGlvbigpIHsKCXZhciBzdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi c3VibWl0ZmVlZGJhY2siKTsKCWlmKCBzdWJtaXQgKSB7CgkJc3VibWl0Lm9uY2xp Y2sgPSB3Z0FqYXhGZWVkYmFjay5hamF4Q2FsbDsKCX0KfTsKCmhvb2tFdmVudCgi bG9hZCIsIHdnQWpheEZlZWRiYWNrLm9uTG9hZCk7CgovLyBUaGVzZSBzaG91bGQg aGF2ZSBiZWVuIGluaXRpYWxpemVkIGluIHRoZSBnZW5lcmF0ZWQganMKaWYoIHR5 cGVvZiB3Z0FqYXhSZXZpZXcgPT09ICJ1bmRlZmluZWQiIHx8ICF3Z0FqYXhSZXZp ZXcgKSB7Cgl3Z0FqYXhSZXZpZXcgPSB7CgkJc2VuZGluZ01zZzogIlN1Ym1pdHRp bmcuLi4iLAoJCXNlbnRNc2c6ICJTdWJtaXR0ZWQiLAoJCWFjdGlvbmNvbXBsZXRl OiAiQWN0aW9uIGNvbXBsZXRlIiwKCQlhY3Rpb25mYWlsZWQ6ICJBY3Rpb24gZmFp bGVkIgoJfTsKfQoKd2dBamF4UmV2aWV3LnN1cHBvcnRlZCA9IHRydWU7IC8vIHN1 cHBvcnRlZCBvbiBjdXJyZW50IHBhZ2UgYW5kIGJ5IGJyb3dzZXIKd2dBamF4UmV2 aWV3LmlucHJvZ3Jlc3MgPSBmYWxzZTsgLy8gYWpheCByZXF1ZXN0IGluIHByb2dy ZXNzCndnQWpheFJldmlldy50aW1lb3V0SUQgPSBudWxsOyAvLyBzZWUgd2dBamF4 RmVlZGJhY2suYWpheENhbGwKCndnQWpheFJldmlldy5hamF4Q2FsbCA9IGZ1bmN0 aW9uKCkgewoJaWYoICF3Z0FqYXhSZXZpZXcuc3VwcG9ydGVkICkgewoJCXJldHVy biB0cnVlOwoJfSBlbHNlIGlmKCB3Z0FqYXhSZXZpZXcuaW5wcm9ncmVzcyApIHsK CQlyZXR1cm4gZmFsc2U7Cgl9CglpZiggIXdmU3VwcG9ydHNBamF4KCkgKSB7CgkJ Ly8gTGF6eSBpbml0aWFsaXphdGlvbiBzbyB3ZSBkb24ndCB0b3NzIHVwCgkJLy8g QWN0aXZlWCB3YXJuaW5ncyBvbiBpbml0aWFsIHBhZ2UgbG9hZAoJCS8vIGZvciBJ RSA2IHVzZXJzIHdpdGggc2VjdXJpdHkgc2V0dGluZ3MuCgkJd2dBamF4UmV2aWV3 LnN1cHBvcnRlZCA9IGZhbHNlOwoJCXJldHVybiB0cnVlOwoJfQoJdmFyIGZvcm0g PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXctcmV2aWV3Zm9ybSIpOwoJdmFy IG5vdGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndwTm90ZXMiKTsKCXZh ciByZWFzb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid3BSZWFzb24iKTsK CWlmKCAhZm9ybSApIHsKCQlyZXR1cm4gZmFsc2U7Cgl9Cgl3Z0FqYXhSZXZpZXcu aW5wcm9ncmVzcyA9IHRydWU7CgkvLyBCdWlsZCB1cCBhcmd1bWVudHMKCXZhciBh cmdzID0gW107Cgl2YXIgaW5wdXRzID0gZm9ybS5nZXRFbGVtZW50c0J5VGFnTmFt ZSgiaW5wdXQiKTsKCWZvciggdmFyIGk9MDsgaSA8IGlucHV0cy5sZW5ndGg7IGkr KykgewoJCS8vIERpZmZlcmVudCBpbnB1dCB0eXBlcyBtYXkgb2NjdXIgZGVwZW5k aW5nIG9uIHRhZ3MuLi4KCQlpZiggaW5wdXRzW2ldLm5hbWUgPT0gInRpdGxlIiB8 fCBpbnB1dHNbaV0ubmFtZSA9PSAiYWN0aW9uIiApIHsKCQkJLy8gTm8gbmVlZCB0 byBzZW5kIHRoZXNlLi4uCgkJfSBlbHNlIGlmKCBpbnB1dHNbaV0udHlwZSA9PSAi c3VibWl0IiApIHsKCQkJaW5wdXRzW2ldLnZhbHVlID0gd2dBamF4UmV2aWV3LnNl bmRpbmdNc2c7CgkJfSBlbHNlIGlmKCBpbnB1dHNbaV0udHlwZSA9PSAiY2hlY2ti b3giICkgewoJCQlhcmdzLnB1c2goIGlucHV0c1tpXS5uYW1lICsgInwiICsgKGlu cHV0c1tpXS5jaGVja2VkID8gMSA6IDApICk7CgkJfSBlbHNlIGlmKCBpbnB1dHNb aV0udHlwZSAhPSAicmFkaW8iIHx8IGlucHV0c1tpXS5jaGVja2VkICkgewoJCQlh cmdzLnB1c2goIGlucHV0c1tpXS5uYW1lICsgInwiICsgaW5wdXRzW2ldLnZhbHVl ICk7CgkJfQoJCWlucHV0c1tpXS5kaXNhYmxlZCA9ICJkaXNhYmxlZCI7Cgl9Cglp Ziggbm90ZXMgKSB7CgkJYXJncy5wdXNoKCBub3Rlcy5uYW1lICsgInwiICsgbm90 ZXMudmFsdWUgKTsKCQlub3Rlcy5kaXNhYmxlZCA9ICJkaXNhYmxlZCI7Cgl9Cgl2 YXIgc2VsZWN0cyA9IGZvcm0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNlbGVjdCIp OwoJZm9yKCB2YXIgaT0wOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgewoJCS8v IEdldCB0aGUgc2VsZWN0ZWQgdGFnIGxldmVsLi4uCgkJaWYoIHNlbGVjdHNbaV0u c2VsZWN0ZWRJbmRleCA+PSAwICkgewoJCQl2YXIgc29wdGlvbiA9IHNlbGVjdHNb aV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9wdGlvbiIpW3NlbGVjdHNbaV0uc2Vs ZWN0ZWRJbmRleF07CgkJCWFyZ3MucHVzaCggc2VsZWN0c1tpXS5uYW1lICsgInwi ICsgc29wdGlvbi52YWx1ZSApOwoJCX0KCQlzZWxlY3RzW2ldLmRpc2FibGVkID0g ImRpc2FibGVkIjsKCX0KCS8vIFNlbmQhCgl2YXIgb2xkID0gc2FqYXhfcmVxdWVz dF90eXBlOwoJc2FqYXhfcmVxdWVzdF90eXBlID0gIlBPU1QiOwoJc2FqYXhfZG9f Y2FsbCggIlJldmlzaW9uUmV2aWV3OjpBamF4UmV2aWV3IiwgYXJncywgd2dBamF4 UmV2aWV3LnByb2Nlc3NSZXN1bHQgKTsKCXNhamF4X3JlcXVlc3RfdHlwZSA9IG9s ZDsKCS8vIElmIHRoZSByZXF1ZXN0IGlzbid0IGRvbmUgaW4gMzAgc2Vjb25kcywg YWxsb3cgdXNlciB0byB0cnkgYWdhaW4KCXdnQWpheFJldmlldy50aW1lb3V0SUQg PSB3aW5kb3cuc2V0VGltZW91dCgKCQlmdW5jdGlvbigpIHsgd2dBamF4UmV2aWV3 LmlucHJvZ3Jlc3MgPSBmYWxzZTsgd2dBamF4UmV2aWV3LnVubG9ja0Zvcm0oKTsg fSwKCQkzMDAwMAoJKTsKCXJldHVybiBmYWxzZTsKfTsKCndnQWpheFJldmlldy51 bmxvY2tGb3JtID0gZnVuY3Rpb24oKSB7Cgl2YXIgZm9ybSA9IGRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCJtdy1yZXZpZXdmb3JtIik7Cgl2YXIgc3VibWl0ID0gZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1Ym1pdHJldmlldyIpOwoJdmFyIG5vdGVz ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndwTm90ZXMiKTsKCXZhciByZWFz b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid3BSZWFzb24iKTsKCWlmKCAh Zm9ybSB8fCAhc3VibWl0ICkgewoJCXJldHVybiBmYWxzZTsKCX0KCXN1Ym1pdC5k aXNhYmxlZCA9ICIiOwoJdmFyIGlucHV0cyA9IGZvcm0uZ2V0RWxlbWVudHNCeVRh Z05hbWUoImlucHV0Iik7Cglmb3IoIHZhciBpPTA7IGkgPCBpbnB1dHMubGVuZ3Ro OyBpKyspIHsKCQlpbnB1dHNbaV0uZGlzYWJsZWQgPSAiIjsKCX0KCWlmKCBub3Rl cyApIHsKCQlub3Rlcy5kaXNhYmxlZCA9ICIiOwoJfQoJaWYoIHJlYXNvbiApIHsK CQlyZWFzb24uZGlzYWJsZWQgPSAiIjsKCX0KCXZhciBzZWxlY3RzID0gZm9ybS5n ZXRFbGVtZW50c0J5VGFnTmFtZSgic2VsZWN0Iik7Cglmb3IoIHZhciBpPTA7IGkg PCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7CgkJc2VsZWN0c1tpXS5kaXNhYmxlZCA9 ICIiOwoJfQp9OwoKd2dBamF4UmV2aWV3LnByb2Nlc3NSZXN1bHQgPSBmdW5jdGlv bihyZXF1ZXN0KSB7CglpZiggIXdnQWpheFJldmlldy5zdXBwb3J0ZWQgKSB7CgkJ cmV0dXJuOwoJfQoJdmFyIHJlc3BvbnNlID0gcmVxdWVzdC5yZXNwb25zZVRleHQ7 CglpZiggbXNnID0gcmVzcG9uc2Uuc3Vic3RyKDYpICkgewoJCWpzTXNnKCBtc2cs ICdyZXZpZXcnICk7CgkJd2luZG93LnNjcm9sbCgwLDApOwoJfQoJd2dBamF4UmV2 aWV3LmlucHJvZ3Jlc3MgPSBmYWxzZTsKCWlmKCB3Z0FqYXhSZXZpZXcudGltZW91 dElEICkgewoJCXdpbmRvdy5jbGVhclRpbWVvdXQod2dBamF4UmV2aWV3LnRpbWVv dXRJRCk7Cgl9Cgl2YXIgc3VibWl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo InN1Ym1pdHJldmlldyIpOwoJaWYoIHN1Ym1pdCApIHsKCQlzdWJtaXQudmFsdWUg PSB3Z0FqYXhSZXZpZXcuc2VudE1zZzsKCX0KCWlmKCByZXNwb25zZS5pbmRleE9m KCc8c3VjIz4nKSA9PSAwICkgewoJCXdnQWpheFJldmlldy51bmxvY2tGb3JtKCk7 CgkJZG9jdW1lbnQudGl0bGUgPSB3Z0FqYXhSZXZpZXcuYWN0aW9uY29tcGxldGU7 Cgl9IGVsc2UgewoJCWRvY3VtZW50LnRpdGxlID0gd2dBamF4UmV2aWV3LmFjdGlv bmZhaWxlZDsKCX0KfTsKCndnQWpheFJldmlldy5vbkxvYWQgPSBmdW5jdGlvbigp IHsKCXZhciBzdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VibWl0 cmV2aWV3Iik7CglpZiggc3VibWl0ICkgewoJCXN1Ym1pdC5vbmNsaWNrID0gd2dB amF4UmV2aWV3LmFqYXhDYWxsOwoJfQp9OwoKaG9va0V2ZW50KCJsb2FkIiwgd2dB amF4UmV2aWV3Lm9uTG9hZCk7Cg== ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=index.js Content-Type: text/javascript; charset=utf-8; name=index.js Content-Location: http://ru.wikipedia.org/w/index.php?title=-&action=raw&gen=js&useskin=monobook Content-Transfer-Encoding: 8bit /* generated javascript */ var skin = 'monobook'; var stylepath = '/skins-1.5'; /* MediaWiki:Common.js */ //See http://ru.wikipedia.org/wiki/project:code // importScript_ = importScript importScript = function (page, proj){ if (!proj) importScript_(page) else { if (proj.indexOf('.')==-1) proj += '.wikipedia.org' importScriptURI('http://'+proj+'/w/index.php?action=raw&ctype=text/javascript&title='+encodeURIComponent(page.replace(/ /g,'_'))) } } addLoadEvent = addOnloadHook function LinkFA(){ var pLang = document.getElementById('p-lang') if (!pLang) return var iw = pLang.getElementsByTagName('li') for (var i=0; i < iw.length; i++) if (document.getElementById(iw[i].className+'-fa')){ iw[i].className += ' FA' iw[i].title = 'Эта статья является избранной в другом языковом разделе' }else if (document.getElementById(iw[i].className+'-ga')){ iw[i].className += ' GA' iw[i].title = 'Эта статья является хорошей в другом языковом разделе' } } function icqIcons(){ var a, spans = document.getElementById('content').getElementsByTagName('span') for (var i=0; a=spans[i]; i++) if (a.className == 'ICQ') a.style.backgroundImage = "url('http://status.icq.com/online.gif?icq="+a.id+"&img=5&randseed="+Math.floor(Math.random()*10000000)+"')" } function newSectionLink(){ var plus = document.getElementById('ca-addsection') if (!plus) return var custom = document.getElementById('add-custom-section') if (!custom) return plus.firstChild.setAttribute('href', custom.getElementsByTagName('a')[0].href) } function editZeroSection(){ var body = document.getElementById('bodyContent') if (!body) return var h2s = body.getElementsByTagName('H2') var h2 = h2s[0] if (!h2) return if (h2.parentNode.id == 'toctitle') h2 = h2s[1] if (!h2) return var span = h2.firstChild if (!span || span.className != 'editsection') return var zero = span.cloneNode(true) body.insertBefore(zero, body.firstChild) var a = zero.getElementsByTagName('a')[0] if (a.href.indexOf('§ion=T') == -1 ) a.title = a.title.replace(/:.*$/,': 0') else a.title = 'Править секцию: 0' a.setAttribute('href', wgScript + '?title='+encodeURIComponent(wgPageName) + '&action=edit§ion=0') } function mainPage(){ if (wgArticleId == 23 || wgArticleId == 4401){ var li = addPortletLink('p-lang', wgArticlePath.replace(/\$1/, 'Википедия:Список_Википедий'), 'Полный список', 'interwiki-completelist') if (li) li.style.fontWeight = 'bold' var nstab = document.getElementById('ca-nstab-main') || document.getElementById('ca-current') if (nstab && wgUserLanguage == 'ru') nstab.firstChild.firstChild.nodeValue = 'Заглавная' } } //Collapsiblе: [[ВП:СБ]] var NavigationBarShowDefault = 2 var NavigationBarHide = '[скрыть]' var NavigationBarShow = '[показать]' var hasClass = (function (){ var reCache = {} return function (element, className){ return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className) } })() function collapsibleTables(){ var Table, HRow, HCell, btn, a, tblIdx = 0, colTables = [] var allTables = document.getElementsByTagName('table') for (var i=0; Table = allTables[i]; i++){ if (!hasClass(Table, 'collapsible')) continue if (!(HRow=Table.rows[0])) continue if (!(HCell=HRow.getElementsByTagName('th')[0])) continue Table.id = 'collapsibleTable' + tblIdx btn = document.createElement('span') btn.style.cssText = 'float:right; font-weight:normal; font-size:smaller' a = document.createElement('a') a.id = 'collapseButton' + tblIdx a.href = 'javascript:collapseTable(' + tblIdx + ');' a.style.color = HCell.style.color a.appendChild(document.createTextNode(NavigationBarHide)) btn.appendChild(a) HCell.insertBefore(btn, HCell.childNodes[0]) colTables[tblIdx++] = Table } for (var i=0; i < tblIdx; i++) if ((tblIdx > NavigationBarShowDefault && hasClass(colTables[i], 'autocollapse')) || hasClass(colTables[i], 'collapsed')) collapseTable(i) } function collapseTable (idx){ var Table = document.getElementById('collapsibleTable' + idx) var btn = document.getElementById('collapseButton' + idx) if (!Table || !btn) return false var Rows = Table.rows var isShown = (btn.firstChild.data == NavigationBarHide) btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide var disp = isShown ? 'none' : Rows[0].style.display for (var i=1; i < Rows.length; i++) Rows[i].style.display = disp } function collapsibleDivs(){ var navIdx = 0, colNavs = [], i, NavFrame var divs = document.getElementById('content').getElementsByTagName('div') for (i=0; NavFrame = divs[i]; i++) { if (!hasClass(NavFrame, 'NavFrame')) continue NavFrame.id = 'NavFrame' + navIdx var a = document.createElement('a') a.className = 'NavToggle' a.id = 'NavToggle' + navIdx a.href = 'javascript:collapseDiv(' + navIdx + ');' a.appendChild(document.createTextNode(NavigationBarHide)) for (var j=0; j < NavFrame.childNodes.length; j++) if (hasClass(NavFrame.childNodes[j], 'NavHead')) NavFrame.childNodes[j].appendChild(a) colNavs[navIdx++] = NavFrame } for (i=0; i < navIdx; i++) if ((navIdx > NavigationBarShowDefault && !hasClass(colNavs[i], 'expanded')) || hasClass(colNavs[i], 'collapsed')) collapseDiv(i) } function collapseDiv(idx) { var div = document.getElementById('NavFrame' + idx) var btn = document.getElementById('NavToggle' + idx) if (!div || !btn) return false var isShown = (btn.firstChild.data == NavigationBarHide) btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide var disp = isShown ? 'none' : 'block' for (var child = div.firstChild; child != null; child = child.nextSibling) if (hasClass(child, 'NavPic') || hasClass(child, 'NavContent')) child.style.display = disp } //Execution if (wgCanonicalNamespace == 'Special'){ switch (wgCanonicalSpecialPageName){ case 'Upload': importScript_('MediaWiki:Upload.js'); break case 'Search': importScript_('MediaWiki:Search.js'); break } }else if (wgAction != 'history'){ addOnloadHook(editZeroSection) addOnloadHook(collapsibleDivs) addOnloadHook(collapsibleTables) addOnloadHook(mainPage) importScript('MediaWiki:Wikiminiatlas.js', 'meta.wikimedia.org') if (navigator.appName=='Microsoft Internet Explorer' && document.createStyleSheet) document.createStyleSheet().addRule('.IPA', 'font-family: "Doulos SIL", "Charis SIL", Gentium, "DejaVu Sans", Code2000, "TITUS Cyberbit Basic", "Arial Unicode MS", "Lucida Sans Unicode", "Chrysanthi Unicode";') if (wgNamespaceNumber==0 || wgNamespaceNumber==100) addOnloadHook(LinkFA) else { addOnloadHook(icqIcons) addOnloadHook(newSectionLink) } if (wgAction=='edit' || wgAction=='submit') importScript_('MediaWiki:Editpage.js') } if (wgUserGroups) for (var i=0; i /* MediaWiki:Monobook.js */ /* Указанный здесь JavaScript будет загружен всем участникам, использующим тему оформления MonoBook */ ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline Content-Type: image/png Content-Location: http://upload.wikimedia.org/wikipedia/ru/b/bc/Wiki.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAIcAAACbCAQAAADi+kBhAAAACXBIWXMAAAsTAAAL EwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAA dTAAAOpgAAA6mAAAF2+SX8VGAAA8BklEQVR42uzdeZxlZXUv/O/eZ6q5urqq54mm oSfmQQYZm0lA4yxijHGIGhNQcxPfjDe2/SZRY16TGODeqMmNiREcYkzigAqIgEIz ydzd0HQ3PVTPNVedOuPe7x/nqUM12Exips/dfPhwqH323s9ez3rW+q3fWus5Uer/ Hk8f8f8VwSFHOu2fn/3Yveyez/7x2OvSq/d85ZSf14gfy1dnb1j2zaO/2PHySyD7 cg3ygXhg1sK3+q3q4haj7uk76Zfc/8Ku3Blvzo6L43GdlVcnzz6/Lx6I21vmto+0 bZqxPpuUKyv2Lxl5RfGY9J9u+bs5+44tvZyiflnEMR6XTtj7/tkXdx7Rl5ltvz12 Z7ecc9ecM/e9gLlp2XFifGZmcTzTRObffvyDsyqHnh/Nl06K3lo6Z+fcYnZfvhzl Cve3dmqLOtSP2fHu3Ee+f2v78Fm1/0TiGO0qvr/+kUVz8iIlX/antphrMP9E2/Nf u2VB9dPxJb2dMzP56Ek7Tu7Z6onmooiH4o7lpY9WXlXtnowqCrIiRf3yOnWbY2zx E19p/077/7z7ySSZW1la+w8Xx5647ajin2x+/Yxsnxs8YtidtslZOXTiX7xz2/Nf /6PX9Lzu5JYjlNS02reosOIHu4vtrdmubFvess7LB948PG+hjJysjKNM2i6nZrfU cWbbHo28euvxs/6/tgcn+3fvvK/22uQ/UByPZzOvL3/y0WUP6bHJl/SDnDXjF3zs A3/3Qu6wMX+7BT7iWOPmOn5Oem28r6Ul1xm3JIVsS3dLKXrYKhMgkUoNyWnRbbWc z3lA1tmL4s9sSfPVUz5U/0b/8ILKf4g4dmaLxxX+x+RbdreU9LjRLQZ1KaR1J41c sfa9f/XC7lLdsL96b8s5TpLR4eRMaXFmMRV5JTVlXSp2mOcAUnXHmG9AbLfvetQT BvyCdqnOqJi/+48LV028YdueuZXW2r+zOPbkva937disJ810ps/b7iIH2XvcF8d2 zX/ovbc9h+nM7prxSG4in8325frcf/po9miXGjUpq12bHUpmo+TvvUebs6x3uj4H ZKT2yjtaxe1u9qiCt7vUJDp1Gusb6btl8wmXz725Eudf4qKJpqON6AVetLWv/ffb fm2kZYNOp9vrhxYY9alk9Rc/+67n9SQn7v4fm46sZjNd3Z1tM+K2GZkZSsa0KOjH l53hBDzgq/5fZakx9zjOUkUbPOUV9jpKzkH73WObgpUiq5A1bpOltde2d8YtL8L9 pj+bdjw8r/ap1rdFmT3aHC/S4c34hDvi6JIbz77sR8/jlC8pXHl0PpVTVZCVV1TW ZsSXjdngSRWvUPdd++RUJbqd7WEH9DngXF2GPOBoM+W8zYTf8zVXOlpBSd4i9ezQ os7tlY64lH0JS+ZFg/T9cfKh6pWTmbr5jtViUkHOg76NUufuRc93fTKvkO3WpVWX SGpSWZvYP/m6CR/1YXtk7LJR0b9qR6LFqeaZdKIWo+Zb7WHjuoxpcYRV3q1bIiPV q+5HG/qPjCvZl2Q/XrQ4sqfMeeOcLP32mVCXk1d0o0e1OXXzih88r2oWalI1iZqC glZZsbJhH/T7ZsupK/tjp/oDXzciL5FIzbBIwaSsWIvVfiQvr+p0VWPIisSquo3m b35863HVLNV4Iv65imPP0dFf5JdT0qNHQYS6b/qioiOrr/jO2c+LQ/fVEkSyCor2 GtEqknhSRklqAokLXeEUR/g7edmwulOxnH022qtFl0fMV3WCee5XkJGVlRGZa8It 920/r56NZ8Q/T+14al7uz9JXVtTMxWwzRWI3+TNParF65zEvAGtsfHKg0qpD6jHX +jV/6BEtsqgjZ7sOra7Up+St1huQEYulYpG6nzhSaqtWfSbE8q7woEmRSF2EmlYl 37ppw5pqtjZvsOXn4mi/EC+dmf2jttdMRuPm26fDpHEtNviM+7U4vvjaa0/b8vz3 ufuOTaOXtCxwm3/wA0U84c8t8EGL1STudonUuEjZMtdoVUUqUhfLyeqw2DYZsUGx Ccfbb9AsdRl1kUinit3RD74/8er8I9Hy0ae6Rl9mR3vb7KfOO+oXj7o8n5/Qqe4x rbJ6pf7SNVhZ/8gX3vneF/bIi39SOmmpu2zWY0ExSra13xvNV1XW6od+yz+brSSS IlaWUVMP40tt1O+dtkjUJVJVEcrqEjU1CUY85XQj9qQd1Vr+7DfN/7e5tRfmaF/Q YhmY1/JnC7/Y+vqJ/IisNq2OscgCC23yPVWz0vfc/EKFwUlf21f5B1strV1+52+9 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 ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=poweredby_mediawiki_88x31.png Content-Type: image/png; name=poweredby_mediawiki_88x31.png Content-Location: http://ru.wikipedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png Content-Transfer-Encoding: Base64 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 NgAAAABJRU5ErkJggg== ------------nFj1yVgoqg3AiAn1ZqsUe1 Content-Disposition: inline; filename=wikimedia-button.png Content-Type: image/png; name=wikimedia-button.png Content-Location: http://ru.wikipedia.org/images/wikimedia-button.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAMAAABUFvrSAAAAA3NCSVQICAjb4U/g AAAAilBMVEVjZGeGh4nn6+yZmZni5uTW1taAgYNtbnGkpKYBhbLd3t1svZdCroKt rq/Cv79ztMs7ncDMzMy5t7enzL3Hx8h6e37l5eXw8PDK0dOVwtOozdsfkrnKk47E 1tUNiba8RjxKs4bN3eKawM2SybIslr5Yp8TV4N+80dbY5Oek08O5zNJ+wqW20cf2 9vZ09tAFAAAACXBIWXMAAArwAAAK8AFCrDSYAAACh0lEQVR4Xs3RiZKbMAwGYMu3 zX2T+072fP/XqwSUppM0bLfdmf1DxlhmvhGCRV8UFmVfkm8Ig/0beLnZbJYfcuNK T8Htr6BLcvuBCAv5o/Pf4HjTJ/4AbCyICVhRXk6JUssBXiqVpK16FCvyXJcPHvgJ n5xLVD7CydqdHsKEWjsN7x3B2QC3Kun2k5mE29Rhh4eiH3JcHOgN1vt/h/fIXN7C bZEtl8us2IbFauH6YRirFBO0Wqa6K1bM5gzLQDvGtNKMGdEqrcmrRth7fyIlCMPt M26et2EYUGlxwZ0w3jKDz2WWeVSZ9Z5glltGBY8B8LERtHgwLPeUHsZJ7FfoYc/o 0vq2X+Ms8Chj1gD+he/gCjzBMasMq6hgbdSJwtCSsaiCK3jh1i8FgWFwfg0pxQXh mceAYZkwLO5hMGUPx2DtLWxZLlg2wFJKhC9FBwZ+gFcES0zOhGxZJaVleKmqUrKD VV+QGACJo6ClqgDwDjPC87cRHjveS0rVSimiAZalAdXBQ4ExkEAfTyGcd2WjRhhn PDv3o5AdvN3N6OPJT4fguq4T51J5uIJf65RK9efTw3Pn3PwcjHBwnq+dS+qHiadg zvkT9nc8o9zDwWp3xEns+MOU412W3Z72MKcG0119CF7lITjIXepw6nesSliuhS0B Ig48ByEzDaXW+Z9gnqC0QOoJf3x+xN3pXpMRt23FJXAuFHBdRpFQXEbl3Y4bCj85 TJrMZrMkXXduc5syaoSHpsGLVl2WStRNE5XNTQjuQj1TEKUk5N7CGiypNApcc4BY aVClju7CQ+bY6YCn8+ZusmsArk8ewEQn6WKxOCZz3kzDXEzB71fhT7sn/v4/QvBN vjv8RfkBEHe0Bwh42FAAAAAASUVORK5CYII= ------------nFj1yVgoqg3AiAn1ZqsUe1--