Sa2.php

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Sa2.php as PDF for free.

More details

  • Words: 3,560
  • Pages: 62

wvdGQ+PC90cj4nOicnPz4NCjw/aWYgKGlzc2V0KCR0YWNmZ1sndW5hbWUnXSkpIHs/Pg0KPHRyPjx0ZD7D 0+Mgx+Hj08rOz+M6PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVuYW1lIiB2YWx1ZT0iIi BzaXplPSIyMCIgbWF4bGVuZ3RoPSIxMDAiIGNsYXNzPSJ0eHRib3giPjwvdGQ+PC90cj4NCjw/fT8+DQo8 dHI+PHRkPt/h4+Ugx+HT0To8L3RkPjx0ZD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InB3b3JkIi B2YWx1ZT0iIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIxMDAiIGNsYXNzPSJ0eHRib3giPjwvdGQ+PC90cj4N Cjw/aWYgKCR0YWNmZ1snYWxsb3dybSddKSB7Pz4NCjx0cj48dGQgYWxpZ249ImxlZnQiPjxpbnB1dCB0eX BlPSJzdWJtaXQiIG5hbWU9ImxvZ2luIiB2YWx1ZT0iIM/O5uEiPg0KPC90ZD48dGQgYWxpZ249InJpZ2h0 Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJtIiBpZD0icm0iPjxsYWJlbCBmb3I9InJtIj7H4c /O5uEgx+HK4d7Hxu08L2xhYmVsPjwvdGQ+PC90cj4NCjw/fSBlbHNlIHs/Pg0KPHRyPjx0ZCBjb2xzcGFu PSIyIiBhbGlnbj0iY2VudGVyIj48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJsb2dpbiIgdmFsdWU9Ii DPzubhICI+PC90ZD48L3RyPg0KPD99Pz4NCjx0cj48dGQ+w9PjIMfh4+be2jo8L3RkPjx0ZD48PyBlY2hv IHdzKDMpLiI8Yj4gIi4kX1NFUlZFUlsiSFRUUF9IT1NUIl0uIjwvYj48YnIvPiI7DQplY2hvICI8L2I+PC 9mb250PiI7DQoNCj8+PC90ZD48L3RyPg0KPHRyPjx0ZD7D7SDI7SDH4dPt0d3ROjwvdGQ+PHRkPjw/IGVj aG8gd3MoMykuIjxiPiAiLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKS4iPC9iPjxici 8+IjsNCmVjaG8gIjwvYj48L2ZvbnQ+IjsNCg0KPz48L3RkPjwvdHI+DQo8dHI+PHRkPsPtIMjtIMzlx9Lf OjwvdGQ+PHRkPjw/IGVjaG8gd3MoMykuIjxiPiAiLiRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLiI8L2I+PG JyLz4iOw0KZWNobyAiPC9iPjwvZm9udD4iOw0KDQo/PjwvdGQ+PC90cj4NCg0KPC90YWJsZT4NCjwvZm9y bT4NCg0KPGJyPjxicj48YnI+DQo8aHIgd2lkdGg9IjMwMCIgc2l6ZT0iMSIgbm9zaGFkZSBjb2xvcj0iI2 NkY2RjZCI+PGRpdiBjbGFzcz0ic21hbGx0eHQiIGFsaWduPSJjZW50ZXIiPnBvd2VyZWQgYnkgPGEgaHJl Zj0iaHR0cDovL3NuaXBlci1zYS5jb20iPlNuSXBFcl9TQTwvYT4gJm1pZGRvdDsgY29weXJpZ2h0ICZjb3 B5OyAyMDA3LCBTbklwRXJfU0E8L2Rpdj4NCg0KPC9ib2R5Pg0KPC9odG1sPg0KPD8NCiAgLy8gRG9uJ3Qg ZGVsZXRlIHRoaXMhDQogIGV4aXQoKTsNCn0NCj8+DQrD0+Mgx+Hj08rOz+M6ICg8Zm9udCBjb2xvcj0iI0 ZGMDAwMCI+PD8gZWNobyAkdGFjZmdkWyd1bmFtZSddOyA/PjwvZm9udD4pIDxhIGhyZWY9Ij9sb2dvdXQ9 MSI+ytPM7eEgx+HO0ebMPC9hPjwvcD4NCjxkaXYgYWxpZ249InJpZ2h0Ij4NCjw/cGhwDQovKioqKioqKi oqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn 5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+Ki8NCi8qICAoYylvZGVkIGJ5IFNuSXBFcl9TQQ0KLyogIE1BSUwgaHR0cDovL3 NuaXBlci1zYS5jb20gLCBodHRwOi8vc25pcGVyLXNhLmNvbQ0KLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi oqKioqKioqKioqKioqKioqKi8NCi8qIH5+fiDH4c7tx9HHyiB8IE9wdGlvbnMgIH5+fiAqLw0KLy8gx+Hh 28kgfCBMYW5ndWFnZQ0KLy8gJGxhbmd1YWdlPSdlbmcnIC0gZW5nbGlzaCAoZW5nbGlzaCkNCi8vICRsYW 5ndWFnZT0nYXInIC0gYXJhYmkgKGFyYWJpKQ0KJGxhbmd1YWdlPSdhcic7DQovLyA/Pz8/Pz8/Pz8/Pz8/ PyB8IEF1dGhlbnRpZmljYXRpb24NCi8vICRhdXRoID0gMTsgLSDhyt3a7eEgx+HPzubhIMjf4ePlIMfh49 Hm0SAgKCBhdXRoZW50aWZpY2F0aW9uID0gT24gICkNCi8vICRhdXRoID0gMDsgLSDhx+3ex90gx+HPzubh IMjf4ePJIMfh49Hm0SAoIGF1dGhlbnRpZmljYXRpb24gPSBPZmYgKQ0KJGF1dGggPSAwOw0KLy8g4c/O5u EgyN/h48kg49Hm0SDmx9PjIOPTys7P4yAoTG9naW4gJiBQYXNzd29yZCBmb3IgYWNjZXNzKQ0KLy8g4c3j x+3JIMfh09/RyMog4+Qgz87m4SDb7dHfINvt0SDH4crH4e0hISEgKENIQU5HRSBUSElTISEhKQ0KLy8g5e THIObW2t8g3+Hj5SDH4ePR5tEg5uXtIOPU3dHlIMjV7dvlIG1kNSwg5t/h48naIMfh49Hm0SDl5Mcg5e0g ICdzbmlwZXInDQovLyDK08ra2O3aIMfkIMrU3dEg3+HjySDj0ebR3yDmx9PjIMfh49PKzs/jIMjV7dvJIG 1kNSDm5tba5ccg3e0gx+HOx+THyiDH4crH4e3lDQokbmFtZT0nMWMyNzY4MDEzM2I3ODFjYWRkMDM3ZThh NmRjYzAwMWInOyAvLyDH0+Mgx+Hj08rOz+MgICh1c2VyIGxvZ2luKQ0KJHBhc3M9JzFjMjc2ODAxMzNiNz gxY2FkZDAzN2U4YTZkY2MwMDFiJzsgLy8g3+HjySDH4ePR5tEgKHVzZXIgcGFzc3dvcmQpDQovKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi oqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KDQplY2hvICIiLmh0bWxzcGVjaWFsY2hh cnMoJGNvcHkpLiIiOw0KZXJyb3JfcmVwb3J0aW5nKDApOw0Kc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKD ApOw0KQHNldF90aW1lX2xpbWl0KDApOw0KQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsMCk7DQpA aW5pX3NldCgnb3V0cHV0X2J1ZmZlcmluZycsMCk7DQokc2FmZV9tb2RlID0gQGluaV9nZXQoJ3NhZmVfbW 9kZScpOw0KJHZlcnNpb24gPSAnMS4zMSc7DQppZih2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCAn NC4xLjAnKSA9PSAtMSkNCiB7DQogJF9QT1NUICAgPSAmJEhUVFBfUE9TVF9WQVJTOw0KICRfR0VUICAgID 0gJiRIVFRQX0dFVF9WQVJTOw0KICRfU0VSVkVSID0gJiRIVFRQX1NFUlZFUl9WQVJTOw0KICRfQ09PS0lF ID0gJiRIVFRQX0NPT0tJRV9WQVJTOw0KIH0NCmlmIChAZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkNCiB7DQ ogZm9yZWFjaCAoJF9QT1NUIGFzICRrPT4kdikNCiAgew0KICAkX1BPU1RbJGtdID0gc3RyaXBzbGFzaGVz KCR2KTsNCiAgfQ0KIGZvcmVhY2ggKCRfQ09PS0lFIGFzICRrPT4kdikNCiAgew0KICAkX0NPT0tJRVska1 0gPSBzdHJpcHNsYXNoZXMoJHYpOw0KICB9DQogfQ0KDQppZigkYXV0aCA9PSAxKSB7DQppZiAoIWlzc2V0 KCRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ10pIHx8IG1kNSgkX1NFUlZFUlsnUEhQX0FVVEhfVVNFUiddKS E9PSRuYW1lIHx8IG1kNSgkX1NFUlZFUlsnUEhQX0FVVEhfUFcnXSkhPT0kcGFzcykNCiAgIHsNCiAgIGhl YWRlcignV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09IlNuSXBFcl9TQSBzaGVsbCInKTsNCiAgIG

hlYWRlcignSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCcpOw0KICAgZXhpdCgiPGI+PGEgaHJlZj1odHRw Oi8vc25pcGVyLXNhLmNvbT5TbklwRXJfU0E8L2E+IDogQWNjZXNzIERlbmllZDwvYj4iKTsNCiAgIH0NCn 0NCiRoZWFkID0gJzwhLS0gU25JcEVyX1NBIC0tPg0KPGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1 aXY9IkNvbnRlbnQtTGFuZ3VhZ2UiIGNvbnRlbnQ9ImFyLXNhIj4NCjxtZXRhIG5hbWU9IkdFTkVSQVRPUi IgY29udGVudD0iTWljcm9zb2Z0IEZyb250UGFnZSA2LjAiPg0KPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250 ZW50PSJGcm9udFBhZ2UuRWRpdG9yLkRvY3VtZW50Ij4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVH lwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1NiI+DQo8dGl0bGU+U25 JcEVyX1NBIHNoZWxsPC90aXRsZT4NCg0KDQoNCjxTVFlMRT4NCg0KQk9EWQ0KIHsNCiAgICAgICAgU0NST 0xMQkFSLUZBQ0UtQ09MT1I6ICMwMDAwMDA7IFNDUk9MTEJBUi1ISUdITElHSFQtQ09MT1I6ICMwMDAwMDA 7IFNDUk9MTEJBUi1TSEFET1ctQ09MT1I6ICMwMDAwMDA7IENPTE9SOiAjZmZmZmZmOyBTQ1JPTExCQVItM 0RMSUdIVC1DT0xPUjogIzcyNjQ1NjsgU0NST0xMQkFSLUFSUk9XLUNPTE9SOiAjNzI2NDU2OyBTQ1JPTEx CQVItVFJBQ0stQ09MT1I6ICMyOTI5Mjk7IEZPTlQtRkFNSUxZOiBWZXJkYW5hOyBTQ1JPTExCQVItREFSS 1NIQURPVy1DT0xPUjogIzcyNjQ1Ng0KfQ0KDQp0ciB7DQpCT1JERVItUklHSFQ6ICAjY2NjY2NjIDsNCkJ PUkRFUi1UT1A6ICAgICNjY2NjY2MgOw0KQk9SREVSLUxFRlQ6ICAgI2NjY2NjYyA7DQpCT1JERVItQk9UV E9NOiAjY2NjY2NjIDsNCmNvbG9yOiAjZmZmZmZmOw0KfQ0KdGQgew0KQk9SREVSLVJJR0hUOiAgI2NjY2N jYyA7DQpCT1JERVItVE9QOiAgICAjY2NjY2NjIDsNCkJPUkRFUi1MRUZUOiAgICNjY2NjY2MgOw0KQk9SR EVSLUJPVFRPTTogI2NjY2NjYyA7DQpjb2xvcjogI2NjY2NjYzsNCn0NCi50YWJsZTEgew0KQk9SREVSOiA xOw0KQkFDS0dST1VORC1DT0xPUjogIzAwMDAwMDsNCmNvbG9yOiAjMzMzMzMzOw0KfQ0KLnRkMSB7DQpCT 1JERVI6IDE7DQpmb250OiA3cHQgdGFob21hOw0KY29sb3I6ICNmZmZmZmY7DQp9DQoudHIxIHsNCkJPUkR FUjogMTsNCmNvbG9yOiAjY2NjY2NjOw0KfQ0KdGFibGUgew0KQk9SREVSOiAgI2VlZWVlZSAgb3V0c2V0O w0KQkFDS0dST1VORC1DT0xPUjogIzAwMDAwMDsNCmNvbG9yOiAjY2NjY2NjOw0KfQ0KaW5wdXQgew0KQk9 SREVSLVJJR0hUOiAgIzk5MDAwMCAxIHNvbGlkOw0KQk9SREVSLVRPUDogICAgIzk5MDAwMCAxIHNvbGlkO w0KQk9SREVSLUxFRlQ6ICAgIzk5MDAwMCAxIHNvbGlkOw0KQk9SREVSLUJPVFRPTTogIzk5MDAwMCAxIHN vbGlkOw0KQkFDS0dST1VORC1DT0xPUjogIzMzMzMzMzsNCmZvbnQ6IDlwdCB0YWhvbWE7DQpjb2xvcjogI 2ZmZmZmZjsNCn0NCnNlbGVjdCB7DQpCT1JERVItUklHSFQ6ICAjZmZmZmZmIDEgc29saWQ7DQpCT1JERVI tVE9QOiAgICAjOTk5OTk5IDEgc29saWQ7DQpCT1JERVItTEVGVDogICAjOTk5OTk5IDEgc29saWQ7DQpCT 1JERVItQk9UVE9NOiAjZmZmZmZmIDEgc29saWQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMDAwMDAwOw0KZm9 udDogOXB0IHRhaG9tYTsNCmNvbG9yOiAjQ0NDQ0NDOzsNCn0NCnN1Ym1pdCB7DQpCT1JERVI6ICBidXR0b 25oaWdobGlnaHQgMSBvdXRzZXQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMjcyNzI3Ow0Kd2lkdGg6IDQwJTs NCmNvbG9yOiAjY2NjY2NjOw0KfQ0KdGV4dGFyZWEgew0KQk9SREVSLVJJR0hUOiAgI2ZmZmZmZiAxIHNvb GlkOw0KQk9SREVSLVRPUDogICAgIzk5OTk5OSAxIHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzk5OTk5OSA xIHNvbGlkOw0KQk9SREVSLUJPVFRPTTogI2ZmZmZmZiAxIHNvbGlkOw0KQkFDS0dST1VORC1DT0xPUjogI zMzMzMzMzsNCmZvbnQ6IEZpeGVkc3lzIGJvbGQ7DQpjb2xvcjogI2ZmZmZmZjsNCn0NCkJPRFkgew0KbWF yZ2luOiAxOw0KY29sb3I6ICNjY2NjY2M7DQpiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOw0KfQ0KQTpsa W5rIHtDT0xPUjpyZWQ7IFRFWFQtREVDT1JBVElPTjogbm9uZX0NCkE6dmlzaXRlZCB7IENPTE9SOnJlZDs gVEVYVC1ERUNPUkFUSU9OOiBub25lfQ0KQTphY3RpdmUge0NPTE9SOnJlZDsgVEVYVC1ERUNPUkFUSU9OO iBub25lfQ0KQTpob3ZlciB7Y29sb3I6Ymx1ZTtURVhULURFQ09SQVRJT046IG5vbmV9DQoNCjwvU1RZTEU +DQo8c2NyaXB0IGxhbmd1YWdlPVwnamF2YXNjcmlwdFwnPg0KZnVuY3Rpb24gaGlkZV9kaXYoaWQpDQp7D QogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gXCdub25lXCc7DQogIGR vY3VtZW50LmNvb2tpZT1pZCtcJz0wO1wnOw0KfQ0KZnVuY3Rpb24gc2hvd19kaXYoaWQpDQp7DQogIGRvY 3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gXCdibG9ja1wnOw0KICBkb2N1bWV udC5jb29raWU9aWQrXCc9MTtcJzsNCn0NCmZ1bmN0aW9uIGNoYW5nZV9kaXZzdChpZCkNCnsNCiAgaWYgK GRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID09IFwnbm9uZVwnKQ0KICAgIHN ob3dfZGl2KGlkKTsNCiAgZWxzZQ0KICAgIGhpZGVfZGl2KGlkKTsNCn0NCjwvc2NyaXB0Pic7DQpjbGFzc yB6aXBmaWxlDQp7DQogICAgdmFyICRkYXRhc2VjICAgICAgPSBhcnJheSgpOw0KICAgIHZhciAkY3RybF9 kaXIgICAgID0gYXJyYXkoKTsNCiAgICB2YXIgJGVvZl9jdHJsX2RpciA9ICJceDUwXHg0Ylx4MDVceDA2X HgwMFx4MDBceDAwXHgwMCI7DQogICAgdmFyICRvbGRfb2Zmc2V0ICAgPSAwOw0KICAgIGZ1bmN0aW9uIHV uaXgyRG9zVGltZSgkdW5peHRpbWUgPSAwKSB7DQogICAgICAgICR0aW1lYXJyYXkgPSAoJHVuaXh0aW1lI D09IDApID8gZ2V0ZGF0ZSgpIDogZ2V0ZGF0ZSgkdW5peHRpbWUpOw0KICAgICAgICBpZiAoJHRpbWVhcnJ heVsneWVhciddIDwgMTk4MCkgew0KICAgICAgICAgICAgJHRpbWVhcnJheVsneWVhciddICAgID0gMTk4M DsNCiAgICAgICAgICAgICR0aW1lYXJyYXlbJ21vbiddICAgICA9IDE7DQogICAgICAgICAgICAkdGltZWF ycmF5WydtZGF5J10gICAgPSAxOw0KICAgICAgICAgICAgJHRpbWVhcnJheVsnaG91cnMnXSAgID0gMDsNC iAgICAgICAgICAgICR0aW1lYXJyYXlbJ21pbnV0ZXMnXSA9IDA7DQogICAgICAgICAgICAkdGltZWFycmF 5WydzZWNvbmRzJ10gPSAwOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAoKCR0aW1lYXJyYXlbJ3llY XInXSAtIDE5ODApIDw8IDI1KSB8ICgkdGltZWFycmF5Wydtb24nXSA8PCAyMSkgfCAoJHRpbWVhcnJheVs nbWRheSddIDw8IDE2KSB8DQogICAgICAgICAgICAgICAgKCR0aW1lYXJyYXlbJ2hvdXJzJ10gPDwgMTEpI HwgKCR0aW1lYXJyYXlbJ21pbnV0ZXMnXSA8PCA1KSB8ICgkdGltZWFycmF5WydzZWNvbmRzJ10gPj4gMSk 7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGFkZEZpbGUoJGRhdGEsICRuYW1lLCAkdGltZSA9IDApDQogICAge

w0KICAgICAgICAkbmFtZSAgICAgPSBzdHJfcmVwbGFjZSgnXFwnLCAnLycsICRuYW1lKTsNCiAgICAgICA gJGR0aW1lICAgID0gZGVjaGV4KCR0aGlzLT51bml4MkRvc1RpbWUoJHRpbWUpKTsNCiAgICAgICAgJGhle GR0aW1lID0gJ1x4JyAuICRkdGltZVs2XSAuICRkdGltZVs3XQ0KICAgICAgICAgICAgICAgICAgLiAnXHg nIC4gJGR0aW1lWzRdIC4gJGR0aW1lWzVdDQogICAgICAgICAgICAgICAgICAuICdceCcgLiAkZHRpbWVbM l0gLiAkZHRpbWVbM10NCiAgICAgICAgICAgICAgICAgIC4gJ1x4JyAuICRkdGltZVswXSAuICRkdGltZVs xXTsNCiAgICAgICAgZXZhbCgnJGhleGR0aW1lID0gIicgLiAkaGV4ZHRpbWUgLiAnIjsnKTsNCiAgICAgI CAgJGZyICAgPSAiXHg1MFx4NGJceDAzXHgwNCI7DQogICAgICAgICRmciAgIC49ICJceDE0XHgwMCI7DQo gICAgICAgICRmciAgIC49ICJceDAwXHgwMCI7DQogICAgICAgICRmciAgIC49ICJceDA4XHgwMCI7DQogI CAgICAgICRmciAgIC49ICRoZXhkdGltZTsNCiAgICAgICAgJHVuY19sZW4gPSBzdHJsZW4oJGRhdGEpOw0 KICAgICAgICAkY3JjICAgICA9IGNyYzMyKCRkYXRhKTsNCiAgICAgICAgJHpkYXRhICAgPSBnemNvbXByZ XNzKCRkYXRhKTsNCiAgICAgICAgJHpkYXRhICAgPSBzdWJzdHIoc3Vic3RyKCR6ZGF0YSwgMCwgc3RybGV uKCR6ZGF0YSkgLSA0KSwgMik7DQogICAgICAgICRjX2xlbiAgID0gc3RybGVuKCR6ZGF0YSk7DQogICAgI CAgICRmciAgICAgIC49IHBhY2soJ1YnLCAkY3JjKTsNCiAgICAgICAgJGZyICAgICAgLj0gcGFjaygnVic sICRjX2xlbik7DQogICAgICAgICRmciAgICAgIC49IHBhY2soJ1YnLCAkdW5jX2xlbik7DQogICAgICAgI CRmciAgICAgIC49IHBhY2soJ3YnLCBzdHJsZW4oJG5hbWUpKTsNCiAgICAgICAgJGZyICAgICAgLj0gcGF jaygndicsIDApOw0KICAgICAgICAkZnIgICAgICAuPSAkbmFtZTsNCiAgICAgICAgJGZyIC49ICR6ZGF0Y TsNCiAgICAgICAgJHRoaXMgLT4gZGF0YXNlY1tdID0gJGZyOw0KICAgICAgICAkY2RyZWMgPSAiXHg1MFx 4NGJceDAxXHgwMiI7DQogICAgICAgICRjZHJlYyAuPSAiXHgwMFx4MDAiOw0KICAgICAgICAkY2RyZWMgL j0gIlx4MTRceDAwIjsNCiAgICAgICAgJGNkcmVjIC49ICJceDAwXHgwMCI7DQogICAgICAgICRjZHJlYyA uPSAiXHgwOFx4MDAiOw0KICAgICAgICAkY2RyZWMgLj0gJGhleGR0aW1lOw0KICAgICAgICAkY2RyZWMgL j0gcGFjaygnVicsICRjcmMpOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygnVicsICRjX2xlbik7DQogICA gICAgICRjZHJlYyAuPSBwYWNrKCdWJywgJHVuY19sZW4pOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygnd icsIHN0cmxlbigkbmFtZSkgKTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ3YnLCAwICk7DQogICAgICA gICRjZHJlYyAuPSBwYWNrKCd2JywgMCApOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygndicsIDAgKTsNC iAgICAgICAgJGNkcmVjIC49IHBhY2soJ3YnLCAwICk7DQogICAgICAgICRjZHJlYyAuPSBwYWNrKCdWJyw gMzIgKTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ1YnLCAkdGhpcyAtPiBvbGRfb2Zmc2V0ICk7DQogI CAgICAgICR0aGlzIC0+IG9sZF9vZmZzZXQgKz0gc3RybGVuKCRmcik7DQogICAgICAgICRjZHJlYyAuPSA kbmFtZTsNCiAgICAgICAgJHRoaXMgLT4gY3RybF9kaXJbXSA9ICRjZHJlYzsNCiAgICB9DQogICAgZnVuY 3Rpb24gZmlsZSgpDQogICAgew0KICAgICAgICAkZGF0YSAgICA9IGltcGxvZGUoJycsICR0aGlzIC0+IGR hdGFzZWMpOw0KICAgICAgICAkY3RybGRpciA9IGltcGxvZGUoJycsICR0aGlzIC0+IGN0cmxfZGlyKTsNC iAgICAgICAgcmV0dXJuDQogICAgICAgICAgICAkZGF0YSAuDQogICAgICAgICAgICAkY3RybGRpciAuDQo gICAgICAgICAgICAkdGhpcyAtPiBlb2ZfY3RybF9kaXIgLg0KICAgICAgICAgICAgcGFjaygndicsIHNpe mVvZigkdGhpcyAtPiBjdHJsX2RpcikpIC4NCiAgICAgICAgICAgIHBhY2soJ3YnLCBzaXplb2YoJHRoaXM gLT4gY3RybF9kaXIpKSAuDQogICAgICAgICAgICBwYWNrKCdWJywgc3RybGVuKCRjdHJsZGlyKSkgLg0KI CAgICAgICAgICAgcGFjaygnVicsIHN0cmxlbigkZGF0YSkpIC4NCiAgICAgICAgICAgICJceDAwXHgwMCI 7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY29tcHJlc3MoJiRmaWxlbmFtZSwmJGZpbGVkdW1wLCRjb21wcmVzc ykNCiB7DQogICAgZ2xvYmFsICRjb250ZW50X2VuY29kaW5nOw0KICAgIGdsb2JhbCAkbWltZV90eXBlOw0 KICAgIGlmICgkY29tcHJlc3MgPT0gJ2J6aXAnICYmIEBmdW5jdGlvbl9leGlzdHMoJ2J6Y29tcHJlc3MnK SkNCiAgICAgew0KICAgICAgICAkZmlsZW5hbWUgIC49ICcuYnoyJzsNCiAgICAgICAgJG1pbWVfdHlwZSA 9ICdhcHBsaWNhdGlvbi94LWJ6aXAyJzsNCiAgICAgICAgJGZpbGVkdW1wID0gYnpjb21wcmVzcygkZmlsZ WR1bXApOw0KICAgICB9DQogICAgIGVsc2UgaWYgKCRjb21wcmVzcyA9PSAnZ3ppcCcgJiYgQGZ1bmN0aW9 uX2V4aXN0cygnZ3plbmNvZGUnKSkNCiAgICAgew0KICAgICAgICAkZmlsZW5hbWUgIC49ICcuZ3onOw0KI CAgICAgICAkY29udGVudF9lbmNvZGluZyA9ICd4LWd6aXAnOw0KICAgICAgICAkbWltZV90eXBlID0gJ2F wcGxpY2F0aW9uL3gtZ3ppcCc7DQogICAgICAgICRmaWxlZHVtcCA9IGd6ZW5jb2RlKCRmaWxlZHVtcCk7D QogICAgIH0NCiAgICAgZWxzZSBpZiAoJGNvbXByZXNzID09ICd6aXAnICYmIEBmdW5jdGlvbl9leGlzdHM oJ2d6Y29tcHJlc3MnKSkNCiAgICAgew0KICAgICAgICAgICAgICRmaWxlbmFtZSAuPSAnLnppcCc7DQogI CAgICAgICRtaW1lX3R5cGUgPSAnYXBwbGljYXRpb24vemlwJzsNCiAgICAgICAgJHppcGZpbGUgPSBuZXc gemlwZmlsZSgpOw0KICAgICAgICAkemlwZmlsZSAtPiBhZGRGaWxlKCRmaWxlZHVtcCwgc3Vic3RyKCRma WxlbmFtZSwgMCwgLTQpKTsNCiAgICAgICAgJGZpbGVkdW1wID0gJHppcGZpbGUgLT4gZmlsZSgpOw0KICA gICB9DQogICAgIGVsc2UNCiAgICAgew0KICAgICAgICAgICAgICRtaW1lX3R5cGUgPSAnYXBwbGljYXRpb 24vb2N0ZXQtc3RyZWFtJzsNCiAgICAgfQ0KIH0NCmZ1bmN0aW9uIG1haWxhdHRhY2goJHRvLCRmcm9tLCR zdWJqLCRhdHRhY2gpDQogew0KICRoZWFkZXJzICA9ICJGcm9tOiAkZnJvbVxyXG4iOw0KICRoZWFkZXJzI C49ICJNSU1FLVZlcnNpb246IDEuMFxyXG4iOw0KICRoZWFkZXJzIC49ICJDb250ZW50LVR5cGU6ICIuJGF 0dGFjaFsndHlwZSddOw0KICRoZWFkZXJzIC49ICI7IG5hbWU9XCIiLiRhdHRhY2hbJ25hbWUnXS4iXCJcc lxuIjsNCiAkaGVhZGVycyAuPSAiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0XHJcblxyXG4 iOw0KICRoZWFkZXJzIC49IGNodW5rX3NwbGl0KGJhc2U2NF9lbmNvZGUoJGF0dGFjaFsnY29udGVudCddK SkuIlxyXG4iOw0KIGlmKEBtYWlsKCR0bywkc3ViaiwiIiwkaGVhZGVycykpIHsgcmV0dXJuIDE7IH0NCiB yZXR1cm4gMDsNCiB9DQpjbGFzcyBteV9zcWwNCiB7DQogdmFyICRob3N0ID0gJ2xvY2FsaG9zdCc7DQogd

mFyICRwb3J0ID0gJyc7DQogdmFyICR1c2VyID0gJyc7DQogdmFyICRwYXNzID0gJyc7DQogdmFyICRiYXN lID0gJyc7DQogdmFyICRkYiAgID0gJyc7DQogdmFyICRjb25uZWN0aW9uOw0KIHZhciAkcmVzOw0KIHZhc iAkZXJyb3I7DQogdmFyICRyb3dzOw0KIHZhciAkY29sdW1uczsNCiB2YXIgJG51bV9yb3dzOw0KIHZhciA kbnVtX2ZpZWxkczsNCiB2YXIgJGR1bXA7DQoNCiBmdW5jdGlvbiBjb25uZWN0KCkNCiAgew0KICAgICAgI CAgIHN3aXRjaCgkdGhpcy0+ZGIpDQogICAgIHsNCiAgICAgICAgICAgY2FzZSAnTXlTUUwnOg0KICAgICA gICAgICAgaWYoZW1wdHkoJHRoaXMtPnBvcnQpKSB7ICR0aGlzLT5wb3J0ID0gJzMzMDYnOyB9DQogICAgI CAgICAgICBpZighZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0JykpIHJldHVybiAwOw0KICAgICA gICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAbXlzcWxfY29ubmVjdCgkdGhpcy0+aG9zdC4nOicuJHRoa XMtPnBvcnQsJHRoaXMtPnVzZXIsJHRoaXMtPnBhc3MpOw0KICAgICAgICAgICAgaWYoaXNfcmVzb3VyY2U oJHRoaXMtPmNvbm5lY3Rpb24pKSByZXR1cm4gMTsNCiAgICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgJ 01TU1FMJzoNCiAgICAgIGlmKGVtcHR5KCR0aGlzLT5wb3J0KSkgeyAkdGhpcy0+cG9ydCA9ICcxNDMzJzs gfQ0KICAgICAgICAgICAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnbXNzcWxfY29ubmVjdCcpKSByZXR1cm4gM DsNCiAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gQG1zc3FsX2Nvbm5lY3QoJHRoaXMtPm hvc3QuJywnLiR0aGlzLT5wb3J0LCR0aGlzLT51c2VyLCR0aGlzLT5wYXNzKTsNCiAgICAgIGlmKCR0aGlz LT5jb25uZWN0aW9uKSByZXR1cm4gMTsNCiAgICAgYnJlYWs7DQogICAgIGNhc2UgJ1Bvc3RncmVTUUwnOg 0KICAgICAgaWYoZW1wdHkoJHRoaXMtPnBvcnQpKSB7ICR0aGlzLT5wb3J0ID0gJzU0MzInOyB9DQogICAg ICAkc3RyID0gImhvc3Q9JyIuJHRoaXMtPmhvc3QuIicgcG9ydD0nIi4kdGhpcy0+cG9ydC4iJyB1c2VyPS ciLiR0aGlzLT51c2VyLiInIHBhc3N3b3JkPSciLiR0aGlzLT5wYXNzLiInIGRibmFtZT0nIi4kdGhpcy0+ YmFzZS4iJyI7DQogICAgICBpZighZnVuY3Rpb25fZXhpc3RzKCdwZ19jb25uZWN0JykpIHJldHVybiAwOw 0KICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAcGdfY29ubmVjdCgkc3RyKTsNCiAgICAgIGlmKGlzX3Jl c291cmNlKCR0aGlzLT5jb25uZWN0aW9uKSkgcmV0dXJuIDE7DQogICAgIGJyZWFrOw0KICAgICBjYXNlIC dPcmFjbGUnOg0KICAgICAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSkgcmV0dXJuIDA7DQog ICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IEBvY2lsb2dvbigkdGhpcy0+dXNlciwgJHRoaXMtPnBhc3MsIC R0aGlzLT5iYXNlKTsNCiAgICAgIGlmKGlzX3Jlc291cmNlKCR0aGlzLT5jb25uZWN0aW9uKSkgcmV0dXJu IDE7DQogICAgIGJyZWFrOw0KICAgICB9DQogICAgcmV0dXJuIDA7DQogIH0NCg0KIGZ1bmN0aW9uIHNlbG VjdF9kYigpDQogIHsNCiAgIHN3aXRjaCgkdGhpcy0+ZGIpDQogICAgew0KICAgICAgICAgIGNhc2UgJ015 U1FMJzoNCiAgICAgICAgICAgaWYoQG15c3FsX3NlbGVjdF9kYigkdGhpcy0+YmFzZSwkdGhpcy0+Y29ubm VjdGlvbikpIHJldHVybiAxOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ01TU1FMJzoNCiAgICAgICAgICAg aWYoQG1zc3FsX3NlbGVjdF9kYigkdGhpcy0+YmFzZSwkdGhpcy0+Y29ubmVjdGlvbikpIHJldHVybiAxOw 0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ1Bvc3RncmVTUUwnOg0KICAgICByZXR1cm4gMTsNCiAgICBicmVh azsNCiAgICBjYXNlICdPcmFjbGUnOg0KICAgICByZXR1cm4gMTsNCiAgICBicmVhazsNCiAgICB9DQogIC ByZXR1cm4gMDsNCiAgfQ0KDQogZnVuY3Rpb24gcXVlcnkoJHF1ZXJ5KQ0KICB7DQogICAkdGhpcy0+cmVz PSR0aGlzLT5lcnJvcj0nJzsNCiAgIHN3aXRjaCgkdGhpcy0+ZGIpDQogICAgew0KICAgICAgICAgIGNhc2 UgJ015U1FMJzoNCiAgICAgaWYoZmFsc2U9PT0oJHRoaXMtPnJlcz1AbXlzcWxfcXVlcnkoJy8qJy5jaHIo MCkuJyovJy4kcXVlcnksJHRoaXMtPmNvbm5lY3Rpb24pKSkNCiAgICAgIHsNCiAgICAgICR0aGlzLT5lcn JvciA9IEBteXNxbF9lcnJvcigkdGhpcy0+Y29ubmVjdGlvbik7DQogICAgICByZXR1cm4gMDsNCiAgICAg IH0NCiAgICAgZWxzZSBpZihpc19yZXNvdXJjZSgkdGhpcy0+cmVzKSkgeyByZXR1cm4gMTsgfQ0KICAgIC ByZXR1cm4gMjsNCiAgICAgICAgICBicmVhazsNCiAgICBjYXNlICdNU1NRTCc6DQogICAgIGlmKGZhbHNl PT09KCR0aGlzLT5yZXM9QG1zc3FsX3F1ZXJ5KCRxdWVyeSwkdGhpcy0+Y29ubmVjdGlvbikpKQ0KICAgIC Agew0KICAgICAgJHRoaXMtPmVycm9yID0gJ1F1ZXJ5IGVycm9yJzsNCiAgICAgIHJldHVybiAwOw0KICAg ICAgfQ0KICAgICAgZWxzZSBpZihAbXNzcWxfbnVtX3Jvd3MoJHRoaXMtPnJlcykgPiAwKSB7IHJldHVybi AxOyB9DQogICAgIHJldHVybiAyOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ1Bvc3RncmVTUUwnOg0KICAg ICBpZihmYWxzZT09PSgkdGhpcy0+cmVzPUBwZ19xdWVyeSgkdGhpcy0+Y29ubmVjdGlvbiwkcXVlcnkpKS kNCiAgICAgIHsNCiAgICAgICR0aGlzLT5lcnJvciA9IEBwZ19sYXN0X2Vycm9yKCR0aGlzLT5jb25uZWN0 aW9uKTsNCiAgICAgIHJldHVybiAwOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZihAcGdfbnVtX3Jvd3MoJH RoaXMtPnJlcykgPiAwKSB7IHJldHVybiAxOyB9DQogICAgIHJldHVybiAyOw0KICAgIGJyZWFrOw0KICAg IGNhc2UgJ09yYWNsZSc6DQogICAgIGlmKGZhbHNlPT09KCR0aGlzLT5yZXM9QG9jaXBhcnNlKCR0aGlzLT 5jb25uZWN0aW9uLCRxdWVyeSkpKQ0KICAgICAgew0KICAgICAgJHRoaXMtPmVycm9yID0gJ1F1ZXJ5IHBh cnNlIGVycm9yJzsNCiAgICAgIH0NCiAgICAgZWxzZQ0KICAgICAgew0KICAgICAgaWYoQG9jaWV4ZWN1dG UoJHRoaXMtPnJlcykpDQogICAgICAgew0KICAgICAgIGlmKEBvY2lyb3djb3VudCgkdGhpcy0+cmVzKSAh PSAwKSByZXR1cm4gMjsNCiAgICAgICByZXR1cm4gMTsNCiAgICAgICB9DQogICAgICAkZXJyb3IgPSBAb2 NpZXJyb3IoKTsNCiAgICAgICR0aGlzLT5lcnJvcj0kZXJyb3JbJ21lc3NhZ2UnXTsNCiAgICAgIH0NCiAg ICBicmVhazsNCiAgICB9DQogIHJldHVybiAwOw0KICB9DQogZnVuY3Rpb24gZ2V0X3Jlc3VsdCgpDQogIH sNCiAgICR0aGlzLT5yb3dzPWFycmF5KCk7DQogICAkdGhpcy0+Y29sdW1ucz1hcnJheSgpOw0KICAgJHRo aXMtPm51bV9yb3dzPSR0aGlzLT5udW1fZmllbGRzPTA7DQogICBzd2l0Y2goJHRoaXMtPmRiKQ0KICAgIH sNCiAgICAgICAgICBjYXNlICdNeVNRTCc6DQogICAgICAgICAgICR0aGlzLT5udW1fcm93cz1AbXlzcWxf bnVtX3Jvd3MoJHRoaXMtPnJlcyk7DQogICAgICAgICAgICR0aGlzLT5udW1fZmllbGRzPUBteXNxbF9udW 1fZmllbGRzKCR0aGlzLT5yZXMpOw0KICAgICAgICAgICB3aGlsZShmYWxzZSAhPT0gKCR0aGlzLT5yb3dz

W10gPSBAbXlzcWxfZmV0Y2hfYXNzb2MoJHRoaXMtPnJlcykpKTsNCiAgICAgICAgICAgQG15c3FsX2ZyZW VfcmVzdWx0KCR0aGlzLT5yZXMpOw0KICAgICAgICAgICBpZigkdGhpcy0+bnVtX3Jvd3MpeyR0aGlzLT5j b2x1bW5zID0gQGFycmF5X2tleXMoJHRoaXMtPnJvd3NbMF0pOyByZXR1cm4gMTt9DQogICAgYnJlYWs7DQ ogICAgY2FzZSAnTVNTUUwnOg0KICAgICAgICAgICAkdGhpcy0+bnVtX3Jvd3M9QG1zc3FsX251bV9yb3dz KCR0aGlzLT5yZXMpOw0KICAgICAgICAgICAkdGhpcy0+bnVtX2ZpZWxkcz1AbXNzcWxfbnVtX2ZpZWxkcy gkdGhpcy0+cmVzKTsNCiAgICAgICAgICAgd2hpbGUoZmFsc2UgIT09ICgkdGhpcy0+cm93c1tdID0gQG1z c3FsX2ZldGNoX2Fzc29jKCR0aGlzLT5yZXMpKSk7DQogICAgICAgICAgIEBtc3NxbF9mcmVlX3Jlc3VsdC gkdGhpcy0+cmVzKTsNCiAgICAgICAgICAgaWYoJHRoaXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucyA9 IEBhcnJheV9rZXlzKCR0aGlzLT5yb3dzWzBdKTsgcmV0dXJuIDE7fTsNCiAgICBicmVhazsNCiAgICBjYX NlICdQb3N0Z3JlU1FMJzoNCiAgICAgICAgICAgJHRoaXMtPm51bV9yb3dzPUBwZ19udW1fcm93cygkdGhp cy0+cmVzKTsNCiAgICAgICAgICAgJHRoaXMtPm51bV9maWVsZHM9QHBnX251bV9maWVsZHMoJHRoaXMtPn Jlcyk7DQogICAgICAgICAgIHdoaWxlKGZhbHNlICE9PSAoJHRoaXMtPnJvd3NbXSA9IEBwZ19mZXRjaF9h c3NvYygkdGhpcy0+cmVzKSkpOw0KICAgICAgICAgICBAcGdfZnJlZV9yZXN1bHQoJHRoaXMtPnJlcyk7DQ ogICAgICAgICAgIGlmKCR0aGlzLT5udW1fcm93cyl7JHRoaXMtPmNvbHVtbnMgPSBAYXJyYXlfa2V5cygk dGhpcy0+cm93c1swXSk7IHJldHVybiAxO30NCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFjbGUnOg0KIC AgICAkdGhpcy0+bnVtX2ZpZWxkcz1Ab2NpbnVtY29scygkdGhpcy0+cmVzKTsNCiAgICAgd2hpbGUoZmFs c2UgIT09ICgkdGhpcy0+cm93c1tdID0gQG9jaV9mZXRjaF9hc3NvYygkdGhpcy0+cmVzKSkpICR0aGlzLT 5udW1fcm93cysrOw0KICAgICBAb2NpZnJlZXN0YXRlbWVudCgkdGhpcy0+cmVzKTsNCiAgICAgaWYoJHRo aXMtPm51bV9yb3dzKXskdGhpcy0+Y29sdW1ucyA9IEBhcnJheV9rZXlzKCR0aGlzLT5yb3dzWzBdKTsgcm V0dXJuIDE7fQ0KICAgIGJyZWFrOw0KICAgIH0NCiAgIHJldHVybiAwOw0KICB9DQogZnVuY3Rpb24gZHVt cCgkdGFibGUpDQogIHsNCiAgIGlmKGVtcHR5KCR0YWJsZSkpIHJldHVybiAwOw0KICAgJHRoaXMtPmR1bX A9YXJyYXkoKTsNCiAgICR0aGlzLT5kdW1wWzBdID0gJyMjJzsNCiAgICR0aGlzLT5kdW1wWzFdID0gJyMj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAnOw0KICAgJHRoaXMtPmR1bXBbMl 0gPSAnIyMgIENyZWF0ZWQ6ICcuZGF0ZSAoImQvbS9ZIEg6aTpzIik7DQogICAkdGhpcy0+ZHVtcFszXSA9 ICcjIyBEYXRhYmFzZTogJy4kdGhpcy0+YmFzZTsNCiAgICR0aGlzLT5kdW1wWzRdID0gJyMjICAgIFRhYm xlOiAnLiR0YWJsZTsNCiAgICR0aGlzLT5kdW1wWzVdID0gJyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAnOw0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogICAgICAgICAgY2 FzZSAnTXlTUUwnOg0KICAgICAgICAgICAkdGhpcy0+ZHVtcFswXSA9ICcjIyBNeVNRTCBkdW1wJzsNCiAg ICAgICAgICAgaWYoJHRoaXMtPnF1ZXJ5KCcvKicuY2hyKDApLicqLyBTSE9XIENSRUFURSBUQUJMRSBgJy 4kdGFibGUuJ2AnKSE9MSkgcmV0dXJuIDA7DQogICAgICAgICAgIGlmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgp KSByZXR1cm4gMDsNCiAgICAgICAgICAgJHRoaXMtPmR1bXBbXSA9ICR0aGlzLT5yb3dzWzBdWydDcmVhdG UgVGFibGUnXTsNCiAgICAgJHRoaXMtPmR1bXBbXSA9ICcjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gJzsNCiAgICAgICAgICAgaWYoJHRoaXMtPnF1ZXJ5KCcvKicuY2hyKDApLicqLy BTRUxFQ1QgKiBGUk9NIGAnLiR0YWJsZS4nYCcpIT0xKSByZXR1cm4gMDsNCiAgICAgICAgICAgaWYoISR0 aGlzLT5nZXRfcmVzdWx0KCkpIHJldHVybiAwOw0KICAgICAgICAgICBmb3IoJGk9MDskaTwkdGhpcy0+bn VtX3Jvd3M7JGkrKykNCiAgICAgICAgICAgIHsNCiAgICAgIGZvcmVhY2goJHRoaXMtPnJvd3NbJGldIGFz ICRrPT4kdikgeyR0aGlzLT5yb3dzWyRpXVska10gPSBAbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCR2KT t9DQogICAgICAgICAgICAkdGhpcy0+ZHVtcFtdID0gJ0lOU0VSVCBJTlRPIGAnLiR0YWJsZS4nYCAoYCcu QGltcGxvZGUoImAsIGAiLCAkdGhpcy0+Y29sdW1ucykuJ2ApIFZBTFVFUyAoXCcnLkBpbXBsb2RlKCInLC AnIiwgJHRoaXMtPnJvd3NbJGldKS4nXCcpOyc7DQogICAgICAgICAgICB9DQogICAgYnJlYWs7DQogICAg Y2FzZSAnTVNTUUwnOg0KICAgICAkdGhpcy0+ZHVtcFswXSA9ICcjIyBNU1NRTCBkdW1wJzsNCiAgICAgaW YoJHRoaXMtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHRhYmxlKSE9MSkgcmV0dXJuIDA7DQogICAgICAg ICAgIGlmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKSByZXR1cm4gMDsNCiAgICAgICAgICAgZm9yKCRpPTA7JG k8JHRoaXMtPm51bV9yb3dzOyRpKyspDQogICAgICAgICAgICB7DQogICAgICBmb3JlYWNoKCR0aGlzLT5y b3dzWyRpXSBhcyAkaz0+JHYpIHskdGhpcy0+cm93c1skaV1bJGtdID0gQGFkZHNsYXNoZXMoJHYpO30NCi AgICAgICAgICAgICR0aGlzLT5kdW1wW10gPSAnSU5TRVJUIElOVE8gJy4kdGFibGUuJyAoJy5AaW1wbG9k ZSgiLCAiLCAkdGhpcy0+Y29sdW1ucykuJykgVkFMVUVTIChcJycuQGltcGxvZGUoIicsICciLCAkdGhpcy 0+cm93c1skaV0pLidcJyk7JzsNCiAgICAgICAgICAgIH0NCiAgICBicmVhazsNCiAgICBjYXNlICdQb3N0 Z3JlU1FMJzoNCiAgICAgJHRoaXMtPmR1bXBbMF0gPSAnIyMgUG9zdGdyZVNRTCBkdW1wJzsNCiAgICAgaW YoJHRoaXMtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHRhYmxlKSE9MSkgcmV0dXJuIDA7DQogICAgICAg ICAgIGlmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKSByZXR1cm4gMDsNCiAgICAgICAgICAgZm9yKCRpPTA7JG k8JHRoaXMtPm51bV9yb3dzOyRpKyspDQogICAgICAgICAgICB7DQogICAgICBmb3JlYWNoKCR0aGlzLT5y b3dzWyRpXSBhcyAkaz0+JHYpIHskdGhpcy0+cm93c1skaV1bJGtdID0gQGFkZHNsYXNoZXMoJHYpO30NCi AgICAgICAgICAgICR0aGlzLT5kdW1wW10gPSAnSU5TRVJUIElOVE8gJy4kdGFibGUuJyAoJy5AaW1wbG9k ZSgiLCAiLCAkdGhpcy0+Y29sdW1ucykuJykgVkFMVUVTIChcJycuQGltcGxvZGUoIicsICciLCAkdGhpcy 0+cm93c1skaV0pLidcJyk7JzsNCiAgICAgICAgICAgIH0NCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFj bGUnOg0KICAgICAgJHRoaXMtPmR1bXBbMF0gPSAnIyMgT1JBQ0xFIGR1bXAnOw0KICAgICAgJHRoaXMtPm R1bXBbXSAgPSAnIyMgdW5kZXIgY29uc3RydWN0aW9uJzsNCiAgICBicmVhazsNCiAgICBkZWZhdWx0Og0K

ICAgICByZXR1cm4gMDsNCiAgICBicmVhazsNCiAgICB9DQogICByZXR1cm4gMTsNCiAgfQ0KIGZ1bmN0aW 9uIGNsb3NlKCkNCiAgew0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogICAgICAgICAgY2FzZSAn TXlTUUwnOg0KICAgICAgICAgICBAbXlzcWxfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pOw0KICAgIGJyZW FrOw0KICAgIGNhc2UgJ01TU1FMJzoNCiAgICAgQG1zc3FsX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9uKTsN CiAgICBicmVhazsNCiAgICBjYXNlICdQb3N0Z3JlU1FMJzoNCiAgICAgQHBnX2Nsb3NlKCR0aGlzLT5jb2 5uZWN0aW9uKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFjbGUnOg0KICAgICBAb2NpX2Nsb3NlKCR0 aGlzLT5jb25uZWN0aW9uKTsNCiAgICBicmVhazsNCiAgICB9DQogIH0NCiBmdW5jdGlvbiBhZmZlY3RlZF 9yb3dzKCkNCiAgew0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogICAgICAgICAgY2FzZSAnTXlT UUwnOg0KICAgICAgICAgICByZXR1cm4gQG15c3FsX2FmZmVjdGVkX3Jvd3MoJHRoaXMtPnJlcyk7DQogIC AgYnJlYWs7DQogICAgY2FzZSAnTVNTUUwnOg0KICAgICByZXR1cm4gQG1zc3FsX2FmZmVjdGVkX3Jvd3Mo JHRoaXMtPnJlcyk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnUG9zdGdyZVNRTCc6DQogICAgIHJldHVybi BAcGdfYWZmZWN0ZWRfcm93cygkdGhpcy0+cmVzKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFjbGUn Og0KICAgICByZXR1cm4gQG9jaXJvd2NvdW50KCR0aGlzLT5yZXMpOw0KICAgIGJyZWFrOw0KICAgIGRlZm F1bHQ6DQogICAgIHJldHVybiAwOw0KICAgIGJyZWFrOw0KICAgIH0NCiAgfQ0KIH0NCmlmKCFlbXB0eSgk X1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0iZG93bmxvYWRfZmlsZSIgJiYgIWVtcHR5KCRfUE 9TVFsnZF9uYW1lJ10pKQ0KIHsNCiAgaWYoISRmaWxlPUBmb3BlbigkX1BPU1RbJ2RfbmFtZSddLCJyIikp IHsgZXJyKDEsJF9QT1NUWydkX25hbWUnXSk7ICRfUE9TVFsnY21kJ109IiI7IH0NCiAgZWxzZQ0KICAgew 0KICAgIEBvYl9jbGVhbigpOw0KICAgICRmaWxlbmFtZSA9IEBiYXNlbmFtZSgkX1BPU1RbJ2RfbmFtZSdd KTsNCiAgICAkZmlsZWR1bXAgPSBAZnJlYWQoJGZpbGUsQGZpbGVzaXplKCRfUE9TVFsnZF9uYW1lJ 10pKTsNCiAgICBmY2xvc2UoJGZpbGUpOw0KICAgICRjb250ZW50X2VuY29kaW5nPSRtaW1lX3R5cGU9Jyc 7DQogICAgY29tcHJlc3MoJGZpbGVuYW1lLCRmaWxlZHVtcCwkX1BPU1RbJ2NvbXByZXNzJ10pOw0KICAgI GlmICghZW1wdHkoJGNvbnRlbnRfZW5jb2RpbmcpKSB7IGhlYWRlcignQ29udGVudC1FbmNvZGluZzogJyA uICRjb250ZW50X2VuY29kaW5nKTsgfQ0KICAgIGhlYWRlcigiQ29udGVudC10eXBlOiAiLiRtaW1lX3R5c GUpOw0KICAgIGhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9XCI iLiRmaWxlbmFtZS4iXCI7Iik7DQogICAgZWNobyAkZmlsZWR1bXA7DQogICAgZXhpdCgpOw0KICAgfQ0KI H0NCg0KaWYoaXNzZXQoJF9HRVRbJ3BocGluZm8nXSkpIHsgZWNobyBAcGhwaW5mbygpOyBlY2hvICI8YnI +PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX 1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7IGRpZSgpOyB9DQp pZihpc3NldCgkX0dFVFsnc3FsbWFuJ10pKSB7DQpzZXNzaW9uX3N0YXJ0KCk7DQokYWN0aW9uID0gJEhUV FBfR0VUX1ZBUlNbJ2FjdGlvbiddOw0KJHBhZ2VtYXg9MjA7IC8vIE1heGltdW0gcm93cyBkaXNwbGFlZCB wZXIgcGFnZSwgY2hhbmdlIHRvIGRpc3BsYXkgbW9yZSBvciBsZXNzIHJvd3MgcGVyIHBhZ2UuDQpmdW5jd GlvbiBzaG93X2xvZ2luKCRkYm5hbWVhcnJheSl7DQogICAgICRob3N0ZGVmYXVsdD0ibG9jYWxob3N0Ijs NCiAgICAgICAgICAgICAgICBlY2hvIjx0YWJsZT4iOw0KICAgICAgICAgICAgICAgIGVjaG8iPGZvcm0gI G5hbWU9J3Nob3dsb2dpbicgbWV0aG9kPSdwb3N0JyBhY3Rpb249JyRhY3Rpb24nPiI7DQogICAgICAgIGl mKGNvdW50KCRob3N0ZGVmYXVsdCkgPiAxKXsNCiAgICAgICAgICAgIGVjaG8iPHRyPjx0ZD4/Pz8gQz8/P z8/Pz86PC90ZD48dGQ+PHNlbGVjdCBuYW1lPWhvc3Q+IjsNCiAgICAgICAgICAgIGZvcigkeD0wOyAkeCA 8IGNvdW50KCRob3N0ZGVmYXVsdCk7JHgrKyl7DQogICAgICAgICAgICAgICAgZWNobyI8b3B0aW9uIHZhb HVlPSRob3N0ZGVmYXVsdFskeF0+JGhvc3RkZWZhdWx0WyR4XSI7DQogICAgICAgICAgICB9DQogICAgICA gICAgICBlY2hvIjwvc2VsZWN0PjwvdGQ+PC90cj5cbiI7DQogICAgICAgIH1lbHNlew0KICAgICAgICAgI CAgZWNobyI8dHI+PHRkPtPt0d3RIN7mx9rPIMfhyO3H5MfKOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQ gbmFtZT0naG9zdCcgc2l6ZT0xNSB2YWx1ZT0kaG9zdGRlZmF1bHQgLz48L3RkPjwvdHI+XG4iOw0KICAgI CAgICAgICAgICAgIH0NCiAgICAgICAgZWNobyI8dHI+PHRkPsfT4yDH4ePTys7P4zo8L3RkPjx0ZD48aW5 wdXQgdHlwZT10ZXh0IG5hbWU9J3VzZXJpZCcgc2l6ZT0xNSAvPjwvdGQ+PC90cj5cbiI7DQogICAgICAgI CAgICAgICAgZWNobyI8dHI+PHRkPt/h4+Ugx+Hj0ebROjwvdGQ+PHRkPjxpbnB1dCB0eXBlPXBhc3N3b3J kIG5hbWU9J3B3b3JkMScgc2l6ZT0xNSAvPjwvdGQ+PC90cj5cbiI7DQoNCiAgICAgICAgICAgICAgICBJZ igkZGJuYW1lYXJyYXkgIT0gIiIpew0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8dHI+PHRkPj9 DP0lFIEM/RT9DP0NFOjwvdGQ+PHRkPjxzZWxlY3QgbmFtZT0nZGJuYSc+XG4iOw0KICAgICAgICAgICAgI CAgICAgICAgICAgZm9yICgkaSA9MDsgJGkgPCBjb3VudCgkZGJuYW1lYXJyYXkpOyAkaSsrKSB7DQogICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYm49JGRibmFtZWFycmF5WyRpXTsNCiAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8b3B0aW9uIHZhbHVlPSRkYm4+JGRibiI7DQogICAgICA gICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVjaG8iP HRyPjx0ZD48aW5wdXQgY2xhc3M9c2VyIHR5cGU9J3N1Ym1pdCcgbmFtZT0nbG9naW4nIHZhbHVlPSfPzub hJyAvPjwvdGQ+XG4iOw0KICAgICAgICAgICAgICAgIGVjaG8iPHRkPjxpbnB1dCBjbGFzcz1zZXIgdHlwZ T1yZXNldCBuYW1lPSdyZXNldCcgdmFsdWU9J+PTzScgLz48L3RkPjwvdHI+XG4iOw0KICAgICAgICAgICA gICAgIGVjaG8iPC9mb3JtPjwvdGFibGU+XG4iOw0KDQp9DQoNCmZ1bmN0aW9uIGRicmVzdHJpY3QoKXsNC mlmKGlzc2V0KCRfU0VTU0lPTlsndXNlciddKSl7DQogICAgJHVzZXI9JF9TRVNTSU9OWyd1c2VyJ107DQo NCiAgICBzd2l0Y2goJHVzZXIpew0KDQogICAgLy9FZGl0IHRoZXNlICoqIHZhbHVlcy4gWW91IGNhbiBhZ GQgbW9yZSBjYXNlIHN0YXRlbWVudHMuDQogICAgICAgIGNhc2UgJyoqVXNlcioqJzoNCiAgICAgICAgICA

gICRkYm5hbWVhcnJheT0gYXJyYXkoJyoqZGJuYW1lKionLCAnKipkYm5hbWUyKionLCAnKipkYm5hbWUqK icpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgIC8vZW5kIGVkaXQgdmFsdWVzDQoNCiAgICAgICAgZGV mYXVsdDoNCiAgICAgICAgICAgICRfU0VTU0lPTlsnZGVmYWx0dXNlciddPXRydWU7DQogICAgICAgICAgI CAkZGJuYW1lYXJyYXkgPSBhcnJheSgpOw0KICAgICAgICAgICAgJGxpbmsgPSBjb25uZWN0bXlzcWwoKTs NCg0KICAgICAgICAgICAgJGRiX2xpc3QgPSBteXNxbF9saXN0X2RicygkbGluayk7IC8vJGRiX2xpc3QNC iAgICAgICAgICAgICAgICAgICAgJGNudCA9IG15c3FsX251bV9yb3dzKCRkYl9saXN0KTsNCiAgICAgICA gICAgICAgICAgICAgZm9yICgkaSA9MDsgJGkgPCAkY250OyAkaSsrKSB7DQogICAgICAgICAgICAgICAgI CAgICAgICAgICAgJGRibmFtZWFycmF5WyRpXT0gbXlzcWxfZGJfbmFtZSgkZGJfbGlzdCwgJGkpOw0KICA gICAgICAgICAgICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiAkZGJuYW1lYXJyYXk7DQp9DQp9DQovL yoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio qKg0KLy9mdW5jdGlvbiBzaG93ZGJzKCRkYm5hbWVhcnJheSwgJGJhY2t1cHBhdGgpew0KZnVuY3Rpb24gc 2hvd2RicygkZGJuYW1lYXJyYXkpew0KICAgIC8vJGJhY2t1cHBhdGg9YWRkc2xhc2hlcygkYmFja3VwcGF 0aCk7DQogICAgICAgZWNobyI8dGFibGU+XG4iOw0KICAgICAgIGZvciAoJGkgPTA7ICRpIDwgY291bnQoJ GRibmFtZWFycmF5KTsgJGkrKykgew0KICAgICAgICAgICAgICAgICAgICBlY2hvIjx0cj48dGQ+IjsNCiA gICAgICAgICAgICRkYm49JGRibmFtZWFycmF5WyRpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR2Y T0ix+HQ5cfIIMfh7CDex9rPySAkZGJuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8oJyAnLCA kZGJuLCRhY3Rpb24sICdidXQnLCAnZGInLCAkdmEgKTsNCg0KICAgICAgICAgICAgJGRicz1teXNpemUoJ GRibmFtZWFycmF5WyRpXSwiIik7DQogICAgICAgICAgICBlY2hvIjwvdGQ+PHRkPiRkYnM8L3RkPjwvdHI +XG4iOw0KICAgICAgICB9DQogICAgZWNobyI8L3RhYmxlPlxuIjsNCn0NCg0KDQovLyoqKioqKioqKioqK ioqKioqKioqKiBTaG93IExvZ291dCBCdXR0b24gKioqKioqKioqKg0KZnVuY3Rpb24gZW5kc2Vzcygpew0 KZWNobyI8Zm9ybSBtZXRob2Q9J3Bvc3QnIG5hbWU9J2VuZHNlc3MnIGFjdGlvbj0nJGFjdGlvbic+XG4iO w0KZWNobyI8aW5wdXQgY2xhc3M9c2VyIHR5cGU9J3N1Ym1pdCcgbmFtZT0nbG9nb3V0JyB2YWx1ZT0nztH mzCcgLz5cbiI7DQplY2hvIjwvZm9ybT4iOw0KfQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQpmdW5jdGlvbiBjb25uZWN0bXl zcWwoKXsNCiAgICAgICAgLy9Db25uZWN0cyB0byB0aGUgTXlTUUwgRGF0YWJhc2UuDQoNCg0KICAgICAgI CBpZiAoaXNzZXQoJF9TRVNTSU9OWyd1c2VyJ10pICYmIGlzc2V0KCRfU0VTU0lPTlsncGFzc3dvcmQnXSk pew0KICAgICAgICAgICAgICAgICAkdXNlciA9ICRfU0VTU0lPTlsndXNlciddOw0KICAgICAgICAgICAgI CAgICAkcGFzcyA9ICRfU0VTU0lPTlsncGFzc3dvcmQnXTsNCiAgICAgICAgfWVsc2V7DQogICAgICAgIGR pc3BsYXlfZm9vdCgpOw0KICAgICAgICBlY2hvIlxuPC9ib2R5PlxuPC9odG1sPiI7DQogICAgICAgICAgI CAgICAgZXhpdCgpOw0KICAgICAgICB9DQogICAgICAgICRsaW5rID0gQG15c3FsX2Nvbm5lY3QoJF9TRVN TSU9OWydob3N0J10sICRfU0VTU0lPTlsndXNlciddLCAkX1NFU1NJT05bJ3Bhc3N3b3JkJ10pOw0KICAgI CAgICBpZighICRsaW5rKXsNCiAgICAgICAgICAgICAgICBlY2hvIjxkaXYgY2xhc3M9J2Vycm9yJz5cbiI 7DQogICAgICAgICAgICAgICAgZWNobyJVbmFibGUgdG8gY29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc2Vyd mVyLiA8QlI+IjsNCiAgICAgICAgICAgICAgICBlY2hvIlRoZSBIb3N0OiAkX1NFU1NJT05baG9zdF0sIMf T4yDH4ePTys7P4zogJHVzZXIgx+Ygx+Hf4ePlIMfh09Ht5SDO2MfBLiA8YnI+IjsNCiAgICAgICAgICAgI CAgICBlY2hvIt3W4cfwINPM4SDO0ebMIOHh483H5uHlIOPR5SDHztHsLlxuIjsNCiAgICAgICAgICAgICA gICBlY2hvIjwvZGl2PlxuIjsNCg0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgZ XhpdCgpOw0KICAgICAgICB9IGVsc2V7DQogICAgICAgICAgICAgICAgcmV0dXJuICRsaW5rOw0KICAgICA gICB9DQoNCn0NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqDQpmdW5jdGlvbiBjb25uZWN0ZGIoJGRiLCAkbGluayl7DQogICAgICA gIGlmKCEgbXlzcWxfc2VsZWN0X2RiKCRkYiwkbGluaykpew0KICAgICAgICAgICAgICAgIGVjaG8iVW5hY mxlIHRvIGxvY2F0ZSBkYXRhYmFzZSAkZGIuPGJyPiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLlxuIjsNCiA gICAgICAgICAgICAgICBleGl0KCk7DQogICAgICAgIH0NCn0NCi8vKioqKioqKioqKioqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQpmdW5jdGlvbiBleGV xdWVyeSgkc3FsLCAkdGFibGVuYW1lLCAkZGIpew0KICAgICAgICAkcmVzdWx0PSBAbXlzcWxfcXVlcnkoI CRzcWwgKTsNCiAgICAgICAgaWYoJHJlc3VsdCl7DQogICAgICAgICAgICAgICAgLy9lY2hvICJRdWVyeSB zdWNjZXNzZnVsIjsNCiAgICAgICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsNCiAgICAgICAgfWVsc2V7D QogICAgICAgICAgICAgICAgZWNobyJTb3JyeSB5b3VyIFF1ZXJ5IGZhaWxlZDogJHNxbCA8YnI+IGVycm9 yOiIubXlzcWxfZXJyb3IoKS4iXG4iOw0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgI CAgfQ0KfQ0KDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio qKioqDQokZmllbGR0eXBlcyA9IGFycmF5KCJCSUdJTlQiLCAiQkxPQiIsICJDSEFSIiwgIkRBVEUiLCAiR EFURVRJTUUiLCAiREVDSU1BTCIsICJET1VCTEUiLCAiRU5VTSIsICJGTE9BVCIsDQogICJJTlQiLCAiSU5 URUdFUiIsICJMT05HQkxPQiIsICJMT05HVEVYVCIsICJNRURJVU1CTE9CIiwgIk1FRElVTUlOVCIsICJNR URJVU1URVhUIiwgIk5VTUVSSUMiLCAiUFJFQ0lTSU9OIiwNCiAiUkVBTCIsIlNFVCIsICJTTUFMTElOVCI sICJURVhUIiwgIlRJTUUiLCAiVElNRVNUQU1QIiwgIlRJTllCTE9CIiwgIlRJTllJTlQiLCAiVElOWVRFW FQiLCAiVkFSQ0hBUiIsICJZRUFSIiApOw0KDQoNCi8vKioqKioqKioqKioqKioqKioqIFNlYXJjaCBGb3J tICoqKioqKioqKioqKioqKioqKioqKioqKioqKioNCmZ1bmN0aW9uIHNlYXJjaHRhYmxlZm9ybSgkdGFib GVuYW1lLCAkZGJuYW1lKXsNCiAgICAgICAgZWNobyI8Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbj0nJGF

jdGlvbic+XG4iOw0KICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSdkYm5hbWUnIHZhb HVlPSckZGJuYW1lJyAvPlxuIjsNCiAgICAgICAgZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0ndGF ibGVuYW1lJyB2YWx1ZT0nJHRhYmxlbmFtZScgLz5cbiI7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9d GV4dCBuYW1lPSdzZWFyY2h2YWwnIC8+XG4iOw0KICAgICAgICBlY2hvIjxpbnB1dCBjbGFzcz1zZXIgdHl wZT1zdWJtaXQgbmFtZT0nc2VhcmNoJyB2YWx1ZT0nU2VhcmNoICR0YWJsZW5hbWUnIC8+XG4iOw0KICAgI CAgICBlY2hvIjwvZm9ybT5cbiI7DQp9DQovLyoqKioqKioqKioqKioqKioqKioqKiBTZWFyY2ggKioqKio qKioqKioqKioqKioqKioqKioqKg0KZnVuY3Rpb24gc2VhcmNodCgkdGFibGVuYW1lLCAkZGJuYW1lLCAkc 2VhcmNodmFsKXsNCiAgICAgICAgaWYoISBlbXB0eSgkc2VhcmNodmFsKSl7DQogICAgICAgICAgICAgICA gLy8gICAgICAgICRzZWFyY2h2YWw9IHN0cl9yZXBsYWNlKCI7IiwnICcsICRzZWFyY2h2YWwpOw0KICAgI CAgICAkcmVzdWx0PWV4ZXF1ZXJ5KCJTZWxlY3QgKiBmcm9tICR0YWJsZW5hbWUiLCAkdGFibGVuYW1lLCA kZGJuYW1lKTsNCiAgICAgICAgICAgICAgICAvLyRyZXN1bHQ9bXlzcWxfcXVlcnkoIlNlbGVjdCAqIGZyb 20gJHRhYmxlbmFtZSIpOw0KICAgICAgICAgICAgICAgICRudW0gPSBteXNxbF9udW1fZmllbGRzKCRyZXN 1bHQpOw0KICAgICAgICAgICAgICAgICRmaWVsZHMgPSBteXNxbF9saXN0X2ZpZWxkcygkZGJuYW1lLCAkd GFibGVuYW1lKTsNCiAgICAgICAgICAgICAgICAkd2hyPSJ3aGVyZSAiOw0KICAgICAgICAgICAgICAgICR 0b2s9ZXhwbG9kZSgiICIsJHNlYXJjaHZhbCk7DQogICAgICAgICAgICAgICAgZm9yICgkdCA9MDsgJHQgP CBjb3VudCgkdG9rKTsgJHQrKyl7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKCAkYyA9IDA7ICR jIDwgJG51bTsgJGMrKyl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmbiA9bXlzcWxfZ mllbGRfbmFtZSgkZmllbGRzLCAkYyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aHI gLj0iICRmbiBsaWtlICclJHRva1skdF0lJyBvciAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KI CAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkd2hyPXRyaW0oc3Vic3RyX3JlcGxhY2UoJHd ociwgIiAiLCAtMykpOw0KICAgICAgICAgICAgICAgICRxdWVyeT0iU2VsZWN0ICogZnJvbSAkdGFibGVuY W1lICR3aHIiOw0KICAgICAgICAgICAgICAgICRyZXN1bHQ9ZXhlcXVlcnkoJHF1ZXJ5LCAkdGFibGVuYW1 lLCAkZGJuYW1lKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsNCiAgICAgICAgfQ0KDQp9D QovLyoqKioqKioqKioqKioqKioqKioqKkdPVE8gYnV0dG9ucyoqKioqKioqKioqKioqKioqKioqKioqKio NCi8vcHJvdmlkZXMgYSBmb3JtIGFuZCBidXR0b24uDQoNCmZ1bmN0aW9uIGdvdG8oJHRhYmxlbmFt ZSwgJGRibmFtZSwgJGFjdGlvbiwgJGNsYXNzLCAkbmFtZSwgJHZhICl7DQogICAgICAgIC8vQWRkcyBhIG J1dHRvbi4NCg0KICAgICAgICBlY2hvIjxmb3JtIGFjdGlvbj0nJGFjdGlvbicgbWV0aG9kPSdwb3N0JyA+ XG4iOw0KDQogICAgICAgICAgICAgICAgaWYoISBlcmVnaSgndGFibGVzdGFydCcsICRuYW1lKSl7DQogIC AgICAgICAgICAgICAgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1 ZT0nJGRibmFtZScgLz5cbiI7DQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPW hpZGRlbiBuYW1lPXRhYmxlbmFtZSB2YWx1ZT0nJHRhYmxlbmFtZScgLz5cbiI7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IGNsYXNzPSRjbGFzcyB0eXBlPXN1Ym1pdCAgdm FsdWU9JyR2YScgbmFtZT0nJG5hbWUnIC8+XG4iOw0KICAgICAgICAgICAgICAgIC8vZWNobyI8aW5wdXQg Y2xhc3M9JGNsYXNzIHR5cGU9c3VibWl0ICB2YWx1ZT0nJGFjdGlvbicgbmFtZT0kbmFtZT4iOw0KICAgIC AgICBlY2hvIjwvZm9ybT5cbiI7DQoNCiAgICAgICAgLy9lY2hvIjxhIGNsYXNzPSRjbGFzcyBocmVmPSRh Y3Rpb24+JHZhPC9hPiI7DQogICAgICAgIC8vfQ0KfQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqIF Nob3dEQiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KZnVuY3Rpb24gc2hvd2RiKCl7 DQovL2Z1bmN0aW9uIHNob3dkYigkYmFja3VwcGF0aCl7DQoNCiAgICAgICAgJGxpbms9Y29ubmVjdG15c3 FsKCk7DQogICAgICAgIGlmICgkbGluayl7DQogICAgICAgIGVjaG8iPGRpdiBjbGFzcz0nZGInPiI7DQog ICAgICAgICAgICAgICAgZWNobyI8ZGl2IGNsYXNzPSdjcmVhbSc+XG4iOw0KICAgICAgICAgICAgICAgIG VjaG8iPGgyIGNsYXNzPWggPsXk1MfBIN7H2s/JIMzP7c/JPC9oMj5cbiI7DQoNCiAgICAgICAgICAgICAg ICBlY2hvIjxmb3JtIG5hbWU9Y2RiIGFjdGlvbj0nJGFjdGlvbicgbWV0aG9kPSdwb3N0JyA+XG4iOw0KIC AgICAgICAgICAgICAgIGVjaG8iw9PjIMfh3sfaz8kgx+HMz+3PyTogPGlucHV0IHR5cGU9dGV4dCBuYW1l PW5kYm5hbWUgLz5cbiI7DQogICAgICAgICAgICAgICAgZWNobyI8YnIgLz48YnIgLz48aW5wdXQgY2xhc3 M9YnV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nY25kYicgdmFsdWU9J8Xk1MfBIN7H2s/JIMzP7c/JJyAvPlxu IjsNCiAgICAgICAgICAgICAgICBlY2hvIjwvZm9ybT48YnIgLz4iOw0KICAgICAgICAgICAgICAgIGVjaG 8iPC9kaXY+IjsNCiAgICAgICAgICAgICAgICBlY2hvIjxoMiBjbGFzcz1oID7ex8bj5SDH4d7mx9rPIMfh 48rm3dHlPC9oMj5cbiI7DQogICAgICAgICAgICAgICAgLy9SZXN0cmljdCB0aGUgZGF0YWJhc2UgZm9yIH VzZXJzDQogICAgICAgICRkYm5hbWVhcnJheT0gZGJyZXN0cmljdCgpOw0KICAgICAgICBzaG93ZGJzKCRk Ym5hbWVhcnJheSk7DQogICAgICAgIGVjaG8iPC9kaXY+IjsNCiAgICAgICAgICAgfQ0KDQp9DQoNCi8vKi oqKioqKioqKioqKioqKioqKioqKiBCdWlsZFdociAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioN Ci8vQnVpbGRzIHRoZSBXaGVyZSBwYXJ0IG9mIHF1ZXJpZXMuDQoNCmZ1bmN0aW9uIGJ1aWxkd2hyKCRway wgJHB2KXsNCiAgICAgICAgJHdocj0iIjsNCiAgICAgICAgJHBuID1jb3VudCgkcHYpOw0KICAgICAgICBm b3IoJHQgPTA7ICR0IDwgJHBuOyAkdCsrKXsNCiAgICAgICAgICAgICAgICAkd2hyLj0iJHBrWyR0XT0nJH B2WyR0XSciOw0KICAgICAgICAgICAgICAgIGlmKCR0IDwgJHBuLTEpew0KICAgICAgICAgICAgICAgICAg ICAgICAgJHdoci49IiBhbmQgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgaW YgKCR3aHIgIT0iICIpew0KICAgICAgICAgICAgICAgIHJldHVybiAkd2hyOw0KICAgICAgICB9ZWxzZXsN CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCn0NCi8vKioqKioqKioqKioqKi

oqKioqKioqKipBREQgUmVjb3JkICoqKioqKioqKioqKioqKioqKg0KDQpmdW5jdGlvbiBhZGRyZWNvcmQo JHRhYmxlbmFtZSwgJGRibmFtZSwgJGFycmF5KXsNCiAgICAgJHJlc3VsdD1leGVxdWVyeSgiU2VsZWN0IC ogZnJvbSAkdGFibGVuYW1lIiwgJHRhYmxlbmFtZSwgJGRibmFtZSk7DQogICAgICAgIC8vJHJlc3VsdCA9 IEBteXNxbF9xdWVyeSggIlNlbGVjdCAqIGZyb20gJHRhYmxlbmFtZSIgKTsNCg0KICAgICAgICAkZmxkcy A9IG15c3FsX251bV9maWVsZHMoJHJlc3VsdCk7DQogICAgICAgIC8vJGZpZWxkcyA9IG15c3FsX2xpc3Rf ZmllbGRzKCRkYm5hbWUsICR0YWJsZW5hbWUpOw0KICAgICAgICAgICAkcXJ5PSIgIjsNCiAgICAkcXVlcn kgPSAiSW5zZXJ0IGludG8gJHRhYmxlbmFtZSBWYWx1ZXMoICI7DQogICAgICAgIGZvciAoJHggPTA7ICR4 IDwgJGZsZHM7ICR4Kyspew0KICAgICAgICAvL011bHRpcGxlIFNlbGVjdCB2YWx1ZXMgZm9yIFNFVA0KDQ ogICAgICAgaWYoaXNfYXJyYXkoJGFycmF5WyR4XSkpew0KICAgICAgICAgICAgJG12YWw9IiI7DQogICAg ICAgICAgICBmb3IoJG09MDsgJG0gPCBjb3VudCgkYXJyYXlbJHhdKTsgJG0rKyl7DQogICAgICAgICAgIC AgICAgaWYoJG0rMSA9PSBjb3VudCgkYXJyYXlbJHhdKSl7DQogICAgICAgICAgICAgICAgICAgICRtdmFs Lj0gQWRkU2xhc2hlcygkYXJyYXlbJHhdWyRtXSk7DQoNCiAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgIC AgICAgICAgICAgICAgICAgJG12YWwuPSBBZGRTbGFzaGVzKCRhcnJheVskeF1bJG1dKS4iLCI7DQogICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRmdmFsID0gJG12YWw7DQogICAgICAgICAgICB9DQ ogICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAkZnZhbCA9IEFkZFNsYXNoZXMoJGFycmF5 WyR4XSk7DQogICAgICAgIH0NCiAgICAgICAgICAgICAgICAkcXJ5IC49ICInJGZ2YWwnIjsNCiAgICAgIC AgICAgICAgICBpZiAoJHggPCAkZmxkcy0xKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRxcnkuPSAi LCAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAkcXVlcnkgLj0gJHFyeS4iKS I7DQogICAvLyBlY2hvInFyeTogJHFyeSI7DQogICAgICAgICRyZXN1bHQ9ZXhlcXVlcnkoJHF1ZXJ5LCAk dGFibGVuYW1lLCAkZGJuYW1lKTsNCiAgICAgICAgaWYoJHJlc3VsdCl7DQogICAgICAgICAgICAgICAgcm V0dXJuICRyZXN1bHQ7DQogICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsN CiAgICAgICAgfQ0KfQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKipBREQgRm9ybSAqKioqKioqKioqKi oqKioqKioqKioqDQoNCmZ1bmN0aW9uIGFkZGZvcm0oJHRhYmxlbmFtZSwgJGRibmFtZSl7DQogLy9EaXNw bGF5IHRoZSBmaWVsZCBuYW1lcyBhbmQgaW5wdXQgYm94ZXMNCiBlY2hvIjxmb3JtIGFjdGlvbj0nJGFjdG lvbicgbWV0aG9kPSdwb3N0Jz5cbiI7DQogZWNobyI8dGFibGUgYm9yZGVyPTAgd2lkdGg9JzEwMCUnIGFs aWduPSdjZW50ZXInPlxuIjsNCiBlY2hvIjx0ciBjbGFzcz1oZWFkPjx0ZD5GaWVsZCBOYW1lPC90ZD48dG Q+VHlwZTwvdGQ+PHRkPlZhbHVlPC90ZD48L3RyPlxuIjsNCiAgJHJlc3VsdD1leGVxdWVyeSgiU2VsZWN0 ICogZnJvbSAkdGFibGVuYW1lIiwgJHRhYmxlbmFtZSwgJGRibmFtZSk7DQogLy8kcmVzdWx0ID0gQG15c3 FsX3F1ZXJ5KCAiU2VsZWN0ICogZnJvbSAkdGFibGVuYW1lIiApOw0KICRmbGRzID0gbXlzcWxfbnVtX2Zp ZWxkcygkcmVzdWx0KTsNCiAkZmllbGRzID0gbXlzcWxfbGlzdF9maWVsZHMoJGRibmFtZSwgJHRhYmxlbm FtZSk7DQogZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hbWUgdmFsdWU9JyR0YWJsZW5h bWUnIC8+XG4iOw0KIGVjaG8iPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9J2RibmFtZScgdmFsdWU9JyRkYm 5hbWUnIC8+XG4iOw0KIGVjaG8iPHRyPlxuIjsNCg0KICRteGxlbiA9IDgwOy8vbWF4IHdpZHRoIG9mIHRo ZSBmb3JtIGZpZWxkcy4NCiBmb3IoJGk9MDsgJGkgPCAkZmxkczsgJGkrKyl7DQogICAgICAkYXV0byA9IC JmYWxzZSI7DQogICAgICBlY2hvICI8dGg+Ii5teXNxbF9maWVsZF9uYW1lKCRmaWVsZHMsICRpKTsNCiAg ICAgICRmaWVsZG5hbWUgPSBteXNxbF9maWVsZF9uYW1lKCRmaWVsZHMsICRpKTsgIC8vIGFkZGVkDQogIC AgICAkdHlwZSAgPSBteXNxbF9maWVsZF90eXBlKCRyZXN1bHQsICRpKTsNCiAgICAgICRmbGVuID0gbXlz cWxfZmllbGRfbGVuKCRyZXN1bHQsICRpKTsvL2xlbmd0aCBvZiB0aGUgZmllbGQNCiAgICAgICRmbGFnc3 RyaW5nID0gbXlzcWxfZmllbGRfZmxhZ3MgKCRyZXN1bHQsICRpKTsNCiAgICAvLyBTdGFydCBvZiBuZXcg Y29kZSBmb3Igc2V0IGRyb3AgZG93bg0KICAgICAgJG5ld3NxbCA9ICJzaG93IGNvbHVtbnMgZnJvbSAkdG FibGVuYW1lIGxpa2UgJyUiLiRmaWVsZG5hbWUuIiciOw0KICAgICAgJG5ld3Jlc3VsdCA9IGV4ZXF1ZXJ5 KCRuZXdzcWwsICR0YWJsZW5hbWUsICRkYm5hbWUpOw0KICAgICAgLy9teXNxbF9xdWVyeSgkbmV3c3FsKS BvciBkaWUgKCdJIGNhbm5vdCBnZXQgdGhlIHF1ZXJ5IGJlY2F1c2U6ICcgLiBteXNxbF9lcnJvcigpKTsN CiAgICAgICRhcnI9bXlzcWxfZmV0Y2hfYXJyYXkoJG5ld3Jlc3VsdCk7DQogICAgLy8gRW5kIG9mIG5ldy Bjb2RlIGJsb2NrIGZvciBzZXQgZHJvcCBkb3duDQogICAgICBpZiAoZXJlZ2koInByaW1hcnkiLCRmbGFn c3RyaW5nICkpew0KICAgICAgICR0eXBlIC49ICIgUEsgIjsNCiAgICAgIH0NCiAgICAgIGlmKGVyZWdpKC JhdXRvIiwkZmxhZ3N0cmluZyApKXsNCiAgICAgICAkdHlwZSAuPSAiIGF1dG9faW5jcmVtZW50IjsNCiAg ICAgICAkYXV0byA9ICJ0cnVlIjsNCiAgICAgIH0NCiAgICAgIGlmICgkYXV0bz09InRydWUiKXsNCiAgIC AgICAgZWNobyI8dGQ+JHR5cGU8L3RkPjx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9J2FycmF5WyRpXScg c2l6ZT0nJGZsZW4nIHZhbHVlPTAgLz48L3RkPjwvdHI+XG4iOw0KICAgICAgfWVsc2VpZigkZmxlbiA+IC RteGxlbil7DQogICAgICAgICRyd3M9ICRmbGVuLyRteGxlbjsNCiAgICAgICAgaWYoJHJ3cz4xMCl7DQog ICAgICAgICAgICAgJHJ3cz0xMDsgLy9tYXggbGVuZ3RoIG9mIHRleHRhcmVhDQogICAgICAgIH0NCiAgIC AgICAgZWNobyI8dGQ+JHR5cGU8L3RkPjx0ZD48dGV4dGFyZWEgbmFtZT0nYXJyYXlbJGldJyByb3dzPSRy d3MgY29scz0kbXhsZW4+PC90ZXh0YXJlYT48L3RkPjwvdHI+XG4iOw0KICAgICAgICAvLyBTdGFydCBvZi BuZXcgY29kZSBmb3Igc2V0IGRyb3AgZG93bg0KICAgICAgfWVsc2VpZiAoc3RybmNtcCgkYXJyWzFdLCdz ZXQnLDMpPT0wIHx8IHN0cm5jbXAoJGFyclsxXSwnZW51bScsNCk9PTApeyAgLy8gV2UgaGF2ZSBhIGZpZW xkIHR5cGUgb2Ygc2V0IG9yIGVudW0NCiAgICAgICAkbnVtPXN1YnN0cl9jb3VudCgkYXJyWzFdLCcsJykg KyAxOyAgLy8gY291bnQgdGhlIG51bWJlciBvZiBlbnRyaWVzDQogICAgICAgJHBvcz1zdHJwb3MoJGFycl

sxXSwnKCcgKTsgLy9maW5kIHRoZSBwb3NpdGlvbiBvZiAnKCcNCiAgICAgICAkbmV3c3RyaW5nPXN1YnN0 cigkYXJyWzFdLCRwb3MrMSk7ICAvLyBnZXQgcmlkIG9mIHRoZSAnPz8/KCcNCiAgICAgICAkc25ld3N0cm luZz1zdHJfcmVwbGFjZSgnKScsJycsJG5ld3N0cmluZyk7IC8vIGdldCByaWQgb2YgdGhlIGxhc3QgJykn DQogICAgICAgJG5uZXdzdHJpbmc9ZXhwbG9kZSgnLCcsJHNuZXdzdHJpbmcsJG51bSk7IC8vIHN0aWNrIG ludG8gYW4gYXJyYXkNCiAgICAgICBpZihzdHJuY21wKCRhcnJbMV0sJ3NldCcsMyk9PTAgKXsvL1NldHMg Y2FuIGhhdmUgY29tYmluYXRpb25zIG9mIHZhbHVlcw0KICAgICAgICAgICBlY2hvICI8dGQ+U2V0IChzZW xlY3Qgb25lIG9yIG1vcmUpPC90ZD4iOw0KICAgICAgICAgICBlY2hvIjx0ZD48c2VsZWN0IG5hbWU9J2Fy cmF5WyRpXVtdJyBzaXplPSczJyBtdWx0aXBsZT4iOw0KICAgICAgIH1lbHNley8vRW51bSBvbmUgdmFsdW Ugb25seQ0KICAgICAgICBlY2hvICI8dGQ+RW51bTwvdGQ+IjsNCiAgICAgICAgICAgZWNobyI8dGQ+PHNl bGVjdCBuYW1lPSdhcnJheVskaV0nPiI7DQogICAgICAgfQ0KICAgICAgIGZvcigkeT0wOyAkeTwkbnVtOy R5Kyspew0KICAgICAgIGVjaG8iPG9wdGlvbiB2YWx1ZT0kbm5ld3N0cmluZ1skeV0+JG5uZXdzdHJpbmdb JHldIjsNCiAgICAgICB9DQogICAgICAgIGVjaG8iPC9zZWxlY3Q+PC90ZD48L3RyPlxuIjsNCiAgICAvLy BFbmQgb2YgbmV3IGNvZGUgYmxvY2sgZm9yIHNldCBkcm9wIGRvd24NCiAgICAgIH1lbHNlew0KICAgICAg IGVjaG8iPHRkPiR0eXBlPC90ZD48dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPSdhcnJheVskaV0nIHNpem U9JyRmbGVuJyAvPjwvdGQ+PC90cj5cbiI7DQogICAgICB9DQogfQ0KIGVjaG8iPHRyPjx0ZD48aW5wdXQg Y2xhc3M9YnV0IHR5cGU9c3VibWl0IG5hbWU9J2FkZHJlYycgdmFsdWU9J0FkZCBSZWNvcmQnIC8+PC90ZD 5cbiI7DQogZWNobyI8dGQ+PGlucHV0IGNsYXNzPWJ1dCB0eXBlPXJlc2V0IG5hbWU9J3Jlc2V0JyB2YWx1 ZT0nUmVzZXQgRm9ybScgLz48L3RkPlxuIjsNCiBlY2hvIjwvdHI+IjsNCiBlY2hvIjwvdGFibGU+XG4iOw 0KIGVjaG8iPC9mb3JtPlxuIjsNCn0NCg0KDQovLyoqKioqKioqKioqKioqKioqKioqKkVkaXQgRm9ybSAq KioqKioqKioqKioqKioNCmZ1bmN0aW9uIGVkaXRmb3JtKCR0YWJsZW5hbWUsICRkYm5hbWUsICRyZXN1bH QsICRlZGl0LCAkcGssICRwdil7DQogICAgICAgICRyb3c9bXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCk7 DQogICAgICAgIGVjaG8iPGZvcm0gYWN0aW9uPSckYWN0aW9uJyAgbWV0aG9kPXBvc3Q+XG4iOw0KICAgIC AgICBlY2hvIjx0YWJsZSBib3JkZXI9MCB3aWR0aCA9JzEwMCUnIGFsaWduPSdjZW50ZXInPlxuIjsNCg0K ICAgICAgICAkZmxkcyA9IG15c3FsX251bV9maWVsZHMoJHJlc3VsdCk7DQogICAgICAgICRmaWVsZHMgPS BteXNxbF9saXN0X2ZpZWxkcygkZGJuYW1lLCAkdGFibGVuYW1lKTsNCiAgICAgICAgZWNobyI8aW5wdXQg dHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hbWUgdmFsdWU9JyR0YWJsZW5hbWUnIC8+XG4iOw0KDQogICAgIC AgIGVjaG8iPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9J2RibmFtZScgdmFsdWU9JyRkYm5hbWUnIC8+XG4i Ow0KICAgICAgICBlY2hvIjx0cj4iOw0KICAgICAgICAkbXhsZW4gPSA4MDsvL21heCB3aWR0aCBvZiB0aG UgZm9ybSBmaWVsZHMNCiAgICAgICAgZm9yKCRpPTA7ICRpIDwgJGZsZHM7ICRpKyspew0KICAgICAgICAk Zm5hbWU9bXlzcWxfZmllbGRfbmFtZSgkZmllbGRzLCAkaSk7DQogICAgICAgICAgICAgICAgZWNobyAiPH RoPiRmbmFtZSI7DQogICAgICAgICAgICAgICAgICRmbGVuID0gbXlzcWxfZmllbGRfbGVuKCRyZXN 1bHQsICRpKTsvL2xlbmd0aCBvZiB0aGUgZmllbGQNCiAgICAgICAgICAgICAgICAkbnNsYXNoID0gU3Rya XBTbGFzaGVzKCRyb3dbJGldKTsNCiAgICAgICAgLy8gU3RhcnQgb2YgbmV3IGNvZGUgZm9yIHNldCBkcm9 wIGRvd24NCiAgICAgICRuZXdzcWwgPSAic2hvdyBjb2x1bW5zIGZyb20gJHRhYmxlbmFtZSBsaWtlICclI i4kZm5hbWUuIiciOw0KICAgICAgJG5ld3Jlc3VsdCA9IGV4ZXF1ZXJ5KCRuZXdzcWwsICR0YWJsZW5hbWU sICRkYm5hbWUpOw0KICAgICAgJGFycj1teXNxbF9mZXRjaF9hcnJheSgkbmV3cmVzdWx0KTsNCiAgICAvL yBFbmQgb2YgbmV3IGNvZGUgYmxvY2sgZm9yIHNldCBkcm9wIGRvd24NCg0KICAgICAgICAgICAgICAgIGl mKCRmbGVuID4gJG14bGVuKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyd3M9ICRmbGVuLyRteGxlb jsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJHJ3cz4xMCl7DQogICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICRyd3M9MTA7IC8vbWF4IGxlbmd0aCBvZiB0ZXh0YXJlYQ0KICAgICAgI CAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8dGQ+PHRleHRhcmV hIG5hbWU9J2FycmF5WyRpXScgcm93cz0kcndzIGNvbHM9JG14bGVuPiRuc2xhc2g8L3RleHRhcmVhPjwvd GQ+PC90cj5cbiI7DQovLyBTdGFydCBvZiBuZXcgY29kZSBmb3Igc2V0IGRyb3AgZG93bg0KICAgICAgICA gIH1lbHNlaWYgKHN0cm5jbXAoJGFyclsxXSwnc2V0JywzKT09MCB8fCBzdHJuY21wKCRhcnJbMV0sJ2Vud W0nLDQpPT0wKXsgIC8vIFdlIGhhdmUgYSBmaWVsZCB0eXBlIG9mIHNldCBvciBlbnVtDQogICAgICAgICA gICRudW09c3Vic3RyX2NvdW50KCRhcnJbMV0sJywnKSArIDE7ICAvLyBjb3VudCB0aGUgbnVtYmVyIG9mI GVudHJpZXMNCiAgICAgICAgICAgJHBvcz1zdHJwb3MoJGFyclsxXSwnKCcgKTsgLy9maW5kIHRoZSBwb3N pdGlvbiBvZiAnKCcNCiAgICAgICAgICAgJG5ld3N0cmluZz1zdWJzdHIoJGFyclsxXSwkcG9zKzEpOyAgL y8gZ2V0IHJpZCBvZiB0aGUgJz8/PygnDQogICAgICAgICAgICRzbmV3c3RyaW5nPXN0cl9yZXBsYWNlKCc pJywnJywkbmV3c3RyaW5nKTsgLy8gZ2V0IHJpZCBvZiB0aGUgbGFzdCAnKScNCiAgICAgICAgICAgJG5uZ XdzdHJpbmc9ZXhwbG9kZSgnLCcsJHNuZXdzdHJpbmcsJG51bSk7IC8vIHN0aWNrIGludG8gYW4gYXJyYXk NCiAgICAgICAgICAgaWYoc3RybmNtcCgkYXJyWzFdLCdzZXQnLDMpPT0wICl7Ly9TZXRzIGNhbiBoYXZlI GNvbWJpbmF0aW9ucyBvZiB2YWx1ZXMNCiAgICAgICAgICAgICAgIGVjaG8iPHRkPjxzZWxlY3QgbmFtZT0 nYXJyYXlbJGldW10nIG11bHRpcGxlIHNpemU9JzMnPiI7DQogICAgICAgICAgIH1lbHNley8vRW51bSBvb mUgdmFsdWUgb25seQ0KICAgICAgICAgICAgICAgZWNobyI8dGQ+PHNlbGVjdCBuYW1lPSdhcnJheVskaV0 nPiI7DQogICAgICAgICAgIH0NCiAgICAgICAgICAgJG5zZWw9ZXhwbG9kZSgiLCIsJG5zbGFzaCk7DQogI CAgICAgICAgZm9yKCR5PTA7ICR5PCRudW07JHkrKyl7DQogICAgICAgICAgICAgICAgLy9nZXRlYWNoIHZ hbHVlICdhLGIsYycNCiAgICAgICAgICAgICAgICAkc2VsPSIiOw0KICAgICAgICAgICAgICAgIGZvcigkZ

T0wOyAkZTxjb3VudCgkbnNlbCk7JGUrKyl7DQogICAgICAgICAgICAgICAgICAgIGlmKCRubmV3c3RyaW5 nWyR5XT09IiciLiRuc2VsWyRlXS4iJyIpew0KICAgICAgICAgICAgICAgICAgICAgICAgJHNlbD0ic2VsZ WN0ZWQiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICA gICAgIGVjaG8iPG9wdGlvbiB2YWx1ZT0kbm5ld3N0cmluZ1skeV0gJHNlbD4kbm5ld3N0cmluZ1skeV0iO w0KICAgICAgICAgICB9DQogICAgICAgICAgICBlY2hvIjwvc2VsZWN0PjwvdGQ+PC90cj5cbiI7DQovLyB FbmQgb2YgbmV3IGNvZGUgYmxvY2sgZm9yIHNldCBkcm9wIGRvd24NCg0KDQogICAgICAgIH1lbHNlew0KI CAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPSdhcnJheVs kaV0nIHNpemU9JyRmbGVuJyB2YWx1ZT0nJG5zbGFzaCcgLz48L3RkPjwvdHI+XG4iOw0KICAgICAgICAgI CAgICAgIH0NCiAgICAgICAgICAgICAgICBmb3IoJGYgPTA7ICRmPCBjb3VudCgkcGspOyRmKyspew0KICA gICAgICAgICAgICAgICAgICAgICAgZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1wa1skZl0gdmFsd WU9JyRwa1skZl0nIC8+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9aGl kZGVuIG5hbWU9cHZbJGZdIHZhbHVlPSckcHZbJGZdJyAvPlxuIjsNCiAgICAgICAgICAgICAgICB9DQogI CAgICAgIH0NCiAgICAgICAgZWNobyI8dHI+PHRkPjxpbnB1dCBjbGFzcz1idXQgdHlwZT1zdWJtaXQgbmF tZT0nZWRpdHJlYycgdmFsdWU9J1VwZGF0ZScgLz48L3RkPlxuIjsNCiAgICAgICAgZWNobyI8dGQ+PGluc HV0IGNsYXNzPWJ1dCB0eXBlPXJlc2V0IG5hbWU9J3Jlc2V0JyB2YWx1ZT0nUmVzZXQgRm9ybScgLz48L3R kPlxuIjsNCiAgICAgICAgZWNobyI8L3RyPiI7DQogICAgICAgIGVjaG8iPC90YWJsZT5cbiI7DQogICAgI CAgIGVjaG8iPC9mb3JtPlxuIjsNCn0NCi8vKioqKioqKioqKioqKioqKioqKioqKioqRWRpdCBSZWNvcmQ qKioqKioqKioqKioqKioqKioqKioqKioqDQpmdW5jdGlvbiBlZGl0cmVjKCRkYm5hbWUsICR0YWJsZW5hb WUsICRwaywgJHB2LCAkYXJyYXkpew0KDQogICAgICAgIC8vJHJlc3VsdCA9IEBteXNxbF9xdWVyeSggIlN lbGVjdCAqIGZyb20gJHRhYmxlbmFtZSIgKTsNCiAgICAkcmVzdWx0ID0gZXhlcXVlcnkoIlNlbGVjdCAqI GZyb20gJHRhYmxlbmFtZSIsICR0YWJsZW5hbWUsICRkYm5hbWUpOw0KICAgICAgICAkZmxkcyA9IG15c3F sX251bV9maWVsZHMoJHJlc3VsdCk7DQogICAgICAgICRmaWVsZHMgPSBteXNxbF9saXN0X2ZpZWxkcygkZ GJuYW1lLCAkdGFibGVuYW1lKTsNCg0KLy9CdWlsZCBRdWVyeQ0KICAgICAgICAgICAkcXJ5PSIiOw0KICA gICRxdWVyeSA9ICJVUERBVEUgJHRhYmxlbmFtZSBzZXQgIjsNCiAgICAgICAgZm9yICgkeCA9MDsgJHggP CAkZmxkczsgJHgrKyl7DQogICAgICAgICAgICAgICAgJGZpZSA9IG15c3FsX2ZpZWxkX25hbWUoJGZpZWx kcywgJHggKTsNCiAgICAgICAgLy8gU0VUIGFuZCBFTlVNDQogICAgICAgICBpZihpc19hcnJheSgkYXJyY XlbJHhdKSl7DQogICAgICAgICAgICAkbXZhbD0iIjsNCiAgICAgICAgICAgIGZvcigkbT0wOyAkbSA8IGN vdW50KCRhcnJheVskeF0pOyAkbSsrKXsNCiAgICAgICAgICAgICAgICBpZigkbSsxID09IGNvdW50KCRhc nJheVskeF0pKXsNCiAgICAgICAgICAgICAgICAgICAgJG12YWwuPSBBZGRTbGFzaGVzKCRhcnJheVskeF1 bJG1dKTsNCiAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgJG12YWwuPSBBZ GRTbGFzaGVzKCRhcnJheVskeF1bJG1dKS4iLCI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICA gICAgICRmdmFsID0gJG12YWw7DQogICAgICAgICAgICB9DQogICAgICAgIH1lbHNlew0KICAgICAgICAgI CAgICAgICAgICAkZnZhbCA9IEFkZFNsYXNoZXMoJGFycmF5WyR4XSk7DQogICAgICAgIH0NCiAgICAgICA gLy8qKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgICAgICAgICAgICAgIC8vJGZ2YWwgPSBBZGRTb GFzaGVzKCRhcnJheVskeF0pOw0KICAgICAgICAgICAgICAgICRxcnkgLj0gIiRmaWUgPSAnJGZ2YWwnIjs NCiAgICAgICAgICAgICAgICBpZiAoJHggPCAkZmxkcy0xKXsNCiAgICAgICAgICAgICAgICAgICAgICAgI CRxcnkuPSAiLCAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAkd2hyID0gYnV pbGR3aHIoICRwaywgJHB2KTsNCiAgICAgICAgJHdociA9U3RyaXBTbGFzaGVzKCR3aHIpOw0KICAgICAgI CAkcXVlcnkgLj0gIiRxcnkiOw0KICAgICAgICAkcXVlcnkgLj0gIiB3aGVyZSAkd2hyIjsNCg0KICAgICR yZXN1bHQ9ZXhlcXVlcnkoJHF1ZXJ5LCAkdGFibGVuYW1lLCAkZGJuYW1lKTsNCiAgICAgICAgaWYoJHJlc 3VsdCl7DQogICAgICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7DQogICAgICAgIH1lbHNlew0KICAgICA gICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KfQ0KLy8qKioqKioqKioqKioqKioqKiogT nVtYmVyIG9mIFByaW1hcnkgS2V5cyAqKioqKioqKioqKioqKioqKioqKioqKg0KZnVuY3Rpb24gbnVtcGs oJHJlc3VsdCl7DQogICAgICAgICR6ID0wOw0KICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkZmxkczsgJ GkrKykgew0KICAgICAgICAgICAgICAgIC8vRmluZCB0aGUgcHJpbWFyeSBrZXkNCiAgICAgICAgICAgICA gICAkZmxhZ3N0cmluZyA9IG15c3FsX2ZpZWxkX2ZsYWdzICgkcmVzdWx0LCAkaSk7DQogICAgICAgICAgI CAgICAgaWYoZXJlZ2koInByaW1hcnkiLCRmbGFnc3RyaW5nICkpew0KICAgICAgICAgICAgICAgICAgICA gICAgJHorKzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICR6Ow0Kf Q0KLy8qKioqKioqKioqKioqKioqKioqKlNpemUgZmllbGQqKioqKioqKioqKioqKioqKg0KZnVuY3Rpb24 gZmllbGRmb3Jtc2l6ZSgkZnQsICRpLCAkbCl7DQogICAgICAgICRmdD0gdHJpbShzdHJ0b3VwcGVyKCRmd CkpOw0KICAgICAgICBpZigkZnQgPT0iREFURSIgfHwgJGZ0PT0iVElNRSIgfHwgJGZ0PT0gIkRBVEVUSU1 FIiApew0KICAgICAgICB9ZWxzZWlmKCAkZnQ9PSJUSU5ZVEVYVCIgfHwgJGZ0PT0iQkxPQiIgfHwgJGZ0P T0iVEVYVCIgfHwgJGZ0ID09Ik1FRElVTUJMT0IiKXsNCiAgICAgICAgICAgICAgICBlY2hvIjxpbnB1dCB 0eXBlPWhpZGRlbiBuYW1lPSdsZW5nWyRpXScgdmFsdWU9JGw+IjsNCiAgICAgICAgfWVsc2VpZigkZnQ9P SJNRURJVU1URVhUIiB8fCAkZnQ9PSJMT05HQkxPQiJ8fCAkZnQ9PSJMT05HVEVYVCIgfHwgJGZ0PT0iVEl OWUJMT0IiKXsNCiAgICAgICAgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSdsZW5nW yRpXScgdmFsdWU9JGw+IjsNCiAgICAgICAgfWVsc2VpZigkZnQ9PSJJTlQiIHx8ICRmdD09IlRJTllJTlQ ifHwgJGZ0PT0iU01BTExJTlQifHwgJGZ0PT0iTUVESVVNSU5UInx8ICRmdD09IkJJR0lOVCIgfHwgJGZ0P

T0iSU5URUdFUiIpew0KICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9dGV4dCBuYW1lPSdsZW5 nWyRpXScgc2l6ZT01ICB2YWx1ZT0kbD4iOw0KICAgICAgICB9ZWxzZWlmKCRmdD09IllFQVIiICl7DQogI CAgICAgICAgICAgICAgZWNobyI8c2VsZWN0IG5hbWU9J2xlbmdbJGldJz4iOw0KICAgICAgICAgICAgICA gIGVjaG8iPG9wdGlvbiB2YWx1ZT0nNCc+NCI7DQogICAgICAgICAgICAgICAgZWNobyI8b3B0aW9uIHZhb HVlPScyJz4yIjsNCiAgICAgICAgICAgICAgICBlY2hvIjwvc2VsZWN0PlxuIjsNCiAgICB9ZWxzZWlmKCR mdD09IlNFVCJ8fCAkZnQ9PSJFTlVNIil7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9dGV4dCBuYW1lP SdsZW5nWyRpXScgdGl0bGU9J3ZhbHVlcyBlZyBcImFcIiwgXCJiXCIsIFwiY1wiJyB2YWx1ZT0nJyAvPiI 7DQogICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9dGV4dCBuYW1lP SdsZW5nWyRpXScgc2l6ZT01IHZhbHVlPSRsIC8+XG4iOw0KICAgICAgICB9DQp9DQoNCi8vKioqKioqKio qKioqKioqKioqKioqKioqKioqKioqRGlzcGxheSBSb3cgKioqKioqKioqKioqKioqKioqKioqKioqKioqK ioqDQpmdW5jdGlvbiBkaXNwbGF5cm93KCRkYm5hbWUsICR0YmwsICRwaywgJHBrZmllbGQsICRjcGssICR yb3csICRmbGRzKXsNCiAgICAgICAgJHBrZnM9IiI7DQogICAgICAgICRodj0iIjsNCiAgICAgICAgJGhmP SIiOw0KDQogICAgICAgIGlmKCRjcGsgPjAgJiYgIWVtcHR5KCRwa2ZpZWxkKSl7DQogICAgICAgICAgICA gICAgZm9yKCRhID0gMDsgJGEgPCAkY3BrOyAkYSsrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRma WVsZG4gPSAkcGtmaWVsZFskYV07DQogICAgICAgICAgICAgICAgICAgICAgICAkaGYgLj0gIjxpbnB1dCB 0eXBlPWhpZGRlbiBuYW1lPXBrWyRhXSB2YWx1ZT0nJHBrZmllbGRbJGFdJyAvPiI7DQogICAgICAgICAgI CAgICAgICAgICAgICAkaHYgLj0gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXB2WyRhXSB2YWx1ZT0nJHJ vd1skZmllbGRuXScgLz4iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfWVsc2V7IC8vTm8gUHJpb WFyeSBLZXkgc28gdXNlIGFsbCBmaWVsZHMNCiAgICAgICAgICAgICAgICAkZmllbGRzID0gbXlzcWxfbGl zdF9maWVsZHMoJGRibmFtZSwgJHRibCk7DQogICAgICAgICAgICAgICAgZm9yKCRiID0gMDsgJGIgPCAkZ mxkczsgJGIrKyl7DQogICAgICAgICAgICAgICAgICAgICAgICAkZmllID0gbXlzcWxfZmllbGRfbmFtZSg kZmllbGRzLCAkYiApOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGhmIC49ICI8aW5wdXQgdHlwZT1oa WRkZW4gbmFtZT1wa1skYl0gdmFsdWU9JyRmaWUnIC8+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICR odiAuPSAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cHZbJGJdIHZhbHVlPSckcm93WyRiXScgLz4iOw0KI CAgICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBlY2hvIjx0cj5cbiI7DQogICAgICAgIC8 vZWRpdCBSZWNvcmQNCiAgICAgICAgZWNobyI8dGQ+PGZvcm0gYWN0aW9uPSckYWN0aW9uJyBtZXRob2Q9c G9zdD5cbiI7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZGJuYW1lIHZhbHVlPSc kZGJuYW1lJyAvPlxuIjsNCiAgICAgICAgZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hb WUgdmFsdWU9JyR0YmwnIC8+XG4iOw0KICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPW5 wa2V5cyB2YWx1ZT0nJGNwaycgLz5cbiI7DQogICAgICAgIGVjaG8iJGhmIjsNCiAgICAgICAgZWNobyIka HYiOw0KICAgICAgICBlY2hvIjxpbnB1dCBjbGFzcz1zbWwgdHlwZT1zdWJtaXQgbmFtZT1lZGl0IHZhbHV lPSdFZGl0IFJlY29yZCcgLz5cbiI7DQogICAgICAgIGVjaG8iPC9mb3JtPjwvdGQ+XG4iOw0KDQogICAgI CAgIC8vRGVsZXRlIHJlY29yZA0KICAgICAgICBlY2hvIjx0ZD48Zm9ybSBhY3Rpb249JyRhY3Rpb24nIG1 ldGhvZD1wb3N0PlxuIjsNCiAgICAgICAgZWNobyI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kYm5hbWUgd mFsdWU9JyRkYm5hbWUnIC8+XG4iOw0KICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXR hYmxlbmFtZSB2YWx1ZT0nJHRibCcgLz5cbiI7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9aGlkZGVuI G5hbWU9bnVtIHZhbHVlPSckY3BrJyAvPlxuIjsNCiAgICAgICAgZWNobyIkaGYiOw0KICAgICAgIC BlY2hvIiRodiI7DQogICAgICAgIGVjaG8iPGlucHV0IGNsYXNzPXNtbGRlbCB0eXBlPXN1Ym1pdCBuYW1l PWRlbGV0ZSB2YWx1ZT0nRGVsZXRlIFJlY29yZCcgLz5cbiI7DQogICAgICAgIGVjaG8iPC9mb3JtPjwvdG Q+IjsNCg0KICAgICAgICAvL0Rpc3BsYXkgYWxsIHRoZSBjb2x1bW5zLg0KICAgICAgICBmb3IoJGNvbCA9 IDA7ICRjb2wgPCAkZmxkczsgJGNvbCArKyl7DQogICAgICAgICAgICAgICAgJG5zbGFzaCA9IFN0cmlwU2 xhc2hlcygkcm93WyRjb2xdKTsNCiAgICAgICAgICAgICAgICBlY2hvIjx0ZD4kbnNsYXNoPC90ZD4iOw0K ICAgICAgICB9DQogICAgICAgIGVjaG8iPC90cj4iOw0KDQp9DQovLyoqKioqKioqKioqKioqKioqKioqKi oqUmVtb3ZlIEFycmF5IENvcHkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy9yZW1vdmVz IGNvcGllcyBmcm9tIGFuIGFycmF5ICR4Lg0KDQpmdW5jdGlvbiByZW1vdmVhcnJheWNvcHkoJHgpew0KIC AgICAgICAkbGVuZz0gY291bnQoJHgpOw0KICAgICAgICBzb3J0KCR4KTsNCiAgICAgICAgJGZhcnI9YXJy YXkoKTsNCg0KICAgICAgICBmb3IgKCRpID0wOyAkaSA8ICRsZW5nOyAkaSsrKXsNCiAgICAgICAgICAgIC AgICAkZmxhZz1mYWxzZTsNCiAgICAgICAgICAgICAgICBmb3IgKCRzID0wOyAkcyA8IGNvdW50KCRmYXJy KTsgJHMrKyl7DQogICAgICAgICAgICAgICAgICAgICAgICBpZigkeFskaV09PSRmYXJyWyRzXSl7DQogIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmbGFnPXRydWU7DQogICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkZmxhZyA9PSBmYWxzZS l7DQogICAgICAgICAgICAgICAgICAgICAgICAkZmFycltjb3VudCgkZmFycildID0gJHhbJGldOw0KICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJGZhcnI7DQp9DQovLyoqKioqKi oqKioqKioqKioqKioqKioqPDwgcGFnZSBwb3NpdGlvbiA+PioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqDQpmdW5jdGlvbiB3aGljaHBhZ2UoJG51bV9yb3dzLCAkcGFnZW1heCwgJHBnLCAkdGFibGVuYW 1lLCAkc2VhcmNodmFsKXsNCiAgICAgICAgJHBncyA9ICRudW1fcm93cy8kcGFnZW1heDsNCiAgICAgICAg JHBncz1jZWlsKCRwZ3MpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vcm91bmQgdXAgdGhlIG 51bWJlciBvZiBwYWdlcy4NCiAgICAgICAgZWNobyI8Zm9ybSBhY3Rpb249JyRhY3Rpb24nIGlkPSdyZWNz

cGFnZScgbWV0aG9kPSdwb3N0JyBuYW1lPSdyZWNzcGFnZSc+XG4iOw0KICAgIGVjaG8iVG90YWwgbnVtYm VyIG9mIHJlY29yZHMgJG51bV9yb3dzLCBkaXNwbGF5ZWQgb24gJHBncyBwYWdlcyBvZiBcbiI7DQogICAg ZWNobyI8aW5wdXQgdHlwZT0ndGV4dCcgIG5hbWU9J3BhZ2VtYXgnIHZhbHVlPSckcGFnZW1heCcgc2l6ZT 0nNCcgb25jaGFuZ2U9J2phdmFzY3JpcHQ6dGhpcy5mb3JtLnN1Ym1pdCgpOycgdGl0bGU9J1R5cGUgdGhl IG51bWJlciByZWNvcmRzIHRvIGRpc3BsYXkgb24gYSBwYWdlIHRoZW4gY2xpY2sgb3V0c2lkZSB0aGUgYm 94JyAvPiBcbiI7DQogICAgICAgIGVjaG8iPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nc2VhcmNodmFs JyB2YWx1ZT0nJHNlYXJjaHZhbCcgIC8+XG4iOw0KICAgIGVjaG8iPGlucHV0IHR5cGU9J2hpZGRlbicgbm FtZT0ndGFibGVuYW1lJyB2YWx1ZT0nJHRhYmxlbmFtZScgIC8+XG4iOw0KICAgIGVjaG8icmVjb3JkcyBw ZXIgcGFnZS48L2Zvcm0+IFxuIjsNCiAgICAkcGFnZXNjcm9sPSIiOw0KICAgICRzdmFsPSIiOw0KICAgIC AgICAgIGlmKCRwZ3MgPjEpew0KICAgICAgICAgICAgJHBhZ2VzY3JvbD0iPGRpdiBjbGFzcz0ncGFnZWNv dW50Jz5cbiI7DQogICAgICAgICAgICAgICAgICAgICAgICAkbnh0PSRwZysxOw0KICAgICAgICAgICAgJG JrPSRwZy0xOw0KICAgICAgICAgICAgJGxzdD0kcGdzOw0KICAgICAgICAgICAgJGVuZD0kbHN0LTE7DQog ICAgICAgICAgICAkc2hvd3A9JHBnKzE7DQogICAgICAgICAgIGlmKCRzZWFyY2h2YWwgIT0iIil7DQogIC AgICAgICAgICAkc3ZhbD0iJmFtcDtzZWFyY2h2YWw9JHNlYXJjaHZhbCI7DQogICAgICAgICAgIH0NCiAg ICAgICAgICAgJHBhZ2VzY3JvbCAuPSAiPGZvcm0gbmFtZT0ncGFnZXMnIGlkPSdwYWdlcycgYWN0aW9uPS ckYWN0aW9uJyBtZXRob2Q9J2dldCc+XG4iOw0KICAgICAgICAgICAgaWYoJHBnPj0xKXsNCiAgICAgICAg ICAgICAgICAkcGFnZXNjcm9sIC49ICIgPGEgaHJlZj0nJGFjdGlvbj90YWJsZW5hbWU9JHRhYmxlbmFtZS ZhbXA7cGc9MCRzdmFsJyB0aXRsZT0nVG8gZmlyc3QgcGFnZSc+IDEgOjw8IDwvYT4gXG4iOw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFnZXNjcm9sIC49ICIgPGEgaHJlZj0nJ2FjdGlvbic/dG FibGVuYW1lPSR0YWJsZW5hbWUmYW1wO3BnPSRiayRzdmFsJyB0aXRsZT0nQmFjayBvbmUgcGFnZSc+IDwg PC9hPiBcbiI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICRwYWdlc2Nyb2wgLj 0gIjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwZycgdmFsdWU9JyRzaG93cCcgc2l6ZT0nNCcgb25jaGFu Z2U9J2phdmFzY3JpcHQ6dGhpcy5mb3JtLnN1Ym1pdCgpOycgdGl0bGU9J1R5cGUgYSBwYWdlIG51bWJlci B0aGVuIGNsaWNrIG91dHNpZGUgdGhlIGJveCcgLz5cbiI7DQogICAgICAgICAgICRwYWdlc2Nyb2wgLj0g IjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J3BiYWNrJyB2YWx1ZT0ndHJ1ZScgIC8+XG4iOw0KICAgIC AgICAgICAkcGFnZXNjcm9sIC49ICI8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdzZWFyY2h2YWwnIHZh bHVlPSckc2VhcmNodmFsJyAgLz5cbiI7DQogICAgICAgICAgICRwYWdlc2Nyb2wgLj0gIjxpbnB1dCB0eX BlPSdoaWRkZW4nIG5hbWU9J3RhYmxlbmFtZScgdmFsdWU9JyR0YWJsZW5hbWUnICAvPlxuIjsNCg0KICAg ICAgICAgICBpZigkc2hvd3AgPCAkbHN0KXsNCiAgICAgICAgICAgICAgICAkcGFnZXNjcm9sIC49ICIgPG EgaHJlZj0nJ2FjdGlvbic/dGFibGVuYW1lPSR0YWJsZW5hbWUmYW1wO3BnPSRueHQkc3ZhbCcgdGl0bGU9 J05leHQgcGFnZSc+ID4gPC9hPiBcbiI7DQogICAgICAgICAgICAgICAgJHBhZ2VzY3JvbCAuPSAiIDxhIG hyZWY9JydhY3Rpb24nP3RhYmxlbmFtZT0kdGFibGVuYW1lJmFtcDtwZz0kZW5kJHN2YWwnIHRpdGxlPSdU byBMYXN0IHBhZ2UnPiA+PjogJGxzdDwvYT4gXG4iOw0KICAgICAgICAgICB9DQogICAgICAgICAgICRwYW dlc2Nyb2wgLj0gIjwvZm9ybT5cbiI7DQogICAgICAgICAgICRwYWdlc2Nyb2wuPSI8L2Rpdj5cbiI7DQog ICAgICB9DQogICAgICAgIHJldHVybiAkcGFnZXNjcm9sOw0KfQ0KDQovLyoqKioqKioqKioqKipEaXNwbG F5IEZvb3RlcioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vUGxlYXNlIGRvbid0IHJlbW92ZSBvciBj aGFuZ2UuDQpmdW5jdGlvbiBkaXNwbGF5X2Zvb3QoKXsNCg0KICAgIGVjaG8iPGRpdiBjbGFzcz0nZm9vdC c+VmVyc2lvbiAkdmVyc2lvbiAmY29weTsgIi5kYXRlKCdZJykuIiA8YSBzdHlsZT0ndGV4dC1kZWNvcmF0 aW9uOm5vbmU7JyB0YXJnZXQ9J19ibGFuaycgaHJlZj0naHR0cDovL3d3dy5TbklwRXItU0EuY29tJz5Tbk lwRXJfU0E8L2E+PC9kaXY+IjsNCg0KICAgIH0NCi8vKioqKioqKioqKioqKk15IFNpemUqKioqKioqKioq KioqKioqKioqKioqKioqDQovL1JldHVybnMgdGhlIHNpemUgb2YgYSB0YWJsZSBvciBkYXRhYmFzZQ0KZn VuY3Rpb24gbXlzaXplKCRkYm5hbWUsICR0YWJsZW5hbWUpew0KICAgICRsaWtlPSIiOw0KICAgICR0b3Rh bD0iIjsNCiAgICAkdD0wOw0KICAgIGlmKCR0YWJsZW5hbWUgIT0iIil7DQogICAgICAgICRsaWtlPSIgbG lrZSAnJHRhYmxlbmFtZSciOw0KICAgIH0NCiAgICAkc3FsPSAiU0hPVyBUQUJMRSBTVEFUVVMgRlJPTSAk ZGJuYW1lICRsaWtlIjsNCiAgICAvLyRyZXN1bHQgPSBteXNxbF9xdWVyeSgkc3FsKTsNCiAgICAkcmVzdW x0PWV4ZXF1ZXJ5KCRzcWwsICR0YWJsZW5hbWUsICRkYm5hbWUpOw0KICAgIGlmKCRyZXN1bHQpew0KDQog ICAgICAgIHdoaWxlKCRyZWMgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSl7DQogICAgICAgICAkdC s9KCRyZWNbJ0RhdGFfbGVuZ3RoJ10gKyAkcmVjWydJbmRleF9sZW5ndGgnXSk7DQogICAgICAgICB9DQog ICAgICAgICR0b3RhbCA9IjxzcGFuIGNsYXNzPSdieXRlcyc+JHQgYnl0ZXM8L3NwYW4+IjsNCiAgICB9ZW xzZXsNCiAgICAgICAgJHRvdGFsPSJVbmtub3dlbiI7DQogICAgfQ0KICAgIHJldHVybigkdG90YWwpOw0K fQ0KDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vREVCVUcgdG8gc2 hvdyBhbGwgYmVpbmcgcGFzc2VkIHRvIHRoZSBwYWdlDQpmdW5jdGlvbiBzaG93cGFzc2luZ3ZhcnMoKXsN CiAgICAgICAgZWNobyJHZXQ6ICI7DQogICAgICAgICBmb3JlYWNoKCRfR0VUIGFzICRwcmFtPT4kdmFsdW Upew0KICAgICAgICAgICAgICAgICBlY2hvIiRwcmFtOiAkdmFsdWUsICI7DQogICAgICAgICB9DQogICAg ICAgIGVjaG8iPGJyPlBvc3Q6ICI7DQogICAgICAgICBmb3JlYWNoKCRfUE9TVCBhcyAkcHJhbT0+JHZhbH VlKXsNCiAgICAgICAgICAgICAgICAgIGVjaG8iJHByYW06ICR2YWx1ZSwgIjsNCiAgICAgICAgIH0NCiAg ICAgICAgIGVjaG8iPGJyPlNlc3Npb246ICI7DQogICAgICAgICBmb3JlYWNoKCRfU0VTU0lPTiBhcyAkcH JhbT0+JHZhbHVlKXsNCiAgICAgICAgICAgICAgICAgZWNobyIkcHJhbTogJHZhbHVlLCAiOw0KICAgICAg

ICAgfQ0KIH0NCmVjaG8iPGh0bWw+XG4iOw0KZWNobyI8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cG UnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTYnPlxuIjsNCmVjaG8iPGhlYWQ+ XG4iOw0KZWNobyI8dGl0bGU+09/RyMogx+HHytXH4SDI3ubH2s8gx+HI7cfkx8o8L3RpdGxlPlxuIjsNCm VjaG8iPFNUWUxFPg0KDQpCT0RZDQogew0KICAgICAgICBTQ1JPTExCQVItRkFDRS1DT0xPUjogIzAwMDAw MDsgU0NST0xMQkFSLUhJR0hMSUdIVC1DT0xPUjogIzAwMDAwMDsgU0NST0xMQkFSLVNIQURPVy1DT0xPUj ogIzAwMDAwMDsgQ09MT1I6ICNmZmZmZmY7IFNDUk9MTEJBUi0zRExJR0hULUNPTE9SOiAjNzI2NDU2OyBT Q1JPTExCQVItQVJST1ctQ09MT1I6ICM3MjY0NTY7IFNDUk9MTEJBUi1UUkFDSy1DT0xPUjogIzI5MjkyOT sgRk9OVC1GQU1JTFk6IFZlcmRhbmE7IFNDUk9MTEJBUi1EQVJLU0hBRE9XLUNPTE9SOiAjNzI2NDU2DQp9 DQoNCnRyIHsNCkJPUkRFUi1SSUdIVDogICNjY2NjY2MgOw0KQk9SREVSLVRPUDogICAgI2NjY2NjYyA7DQ pCT1JERVItTEVGVDogICAjY2NjY2NjIDsNCkJPUkRFUi1CT1RUT006ICNjY2NjY2MgOw0KY29sb3I6ICNm ZmZmZmY7DQp9DQp0ZCB7DQpCT1JERVItUklHSFQ6ICAjY2NjY2NjIDsNCkJPUkRFUi1UT1A6ICAgICNjY2 NjY2MgOw0KQk9SREVSLUxFRlQ6ICAgI2NjY2NjYyA7DQpCT1JERVItQk9UVE9NOiAjY2NjY2NjIDsNCmNv bG9yOiAjY2NjY2NjOw0KfQ0KLnRhYmxlMSB7DQpCT1JERVI6IDE7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMD AwMDAwOw0KY29sb3I6ICMzMzMzMzM7DQp9DQoudGQxIHsNCkJPUkRFUjogMTsNCmZvbnQ6IDdwdCB0YWhv bWE7DQpjb2xvcjogI2ZmZmZmZjsNCn0NCi50cjEgew0KQk9SREVSOiAxOw0KY29sb3I6ICNjY2NjY2M7DQ p9DQp0YWJsZSB7DQpCT1JERVI6ICAjZWVlZWVlICBvdXRzZXQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMDAw MDAwOw0KY29sb3I6ICNjY2NjY2M7DQp9DQppbnB1dCB7DQpCT1JERVItUklHSFQ6ICAjOTkwMDAwIDEgc2 9saWQ7DQpCT1JERVItVE9QOiAgICAjOTkwMDAwIDEgc29saWQ7DQpCT1JERVItTEVGVDogICAjOTkwMDAw IDEgc29saWQ7DQpCT1JERVItQk9UVE9NOiAjOTkwMDAwIDEgc29saWQ7DQpCQUNLR1JPVU5ELUNPTE9SOi AjMzMzMzMzOw0KZm9udDogOXB0IHRhaG9tYTsNCmNvbG9yOiAjZmZmZmZmOw0KfQ0Kc2VsZWN0IHsNCkJP UkRFUi1SSUdIVDogICNmZmZmZmYgMSBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICM5OTk5OTkgMSBzb2xpZD sNCkJPUkRFUi1MRUZUOiAgICM5OTk5OTkgMSBzb2xpZDsNCkJPUkRFUi1CT1RUT006ICNmZmZmZmYgMSBz b2xpZDsNCkJBQ0tHUk9VTkQtQ09MT1I6ICMwMDAwMDA7DQpmb250OiA5cHQgdGFob21hOw0KY29sb3I6IC NDQ0NDQ0M7Ow0KfQ0Kc3VibWl0IHsNCkJPUkRFUjogIGJ1dHRvbmhpZ2hsaWdodCAxIG91dHNldDsNCkJB Q0tHUk9VTkQtQ09MT1I6ICMyNzI3Mjc7DQp3aWR0aDogNDAlOw0KY29sb3I6ICNjY2NjY2M7DQp9DQp0ZX h0YXJlYSB7DQpCT1JERVItUklHSFQ6ICAjZmZmZmZmIDEgc29saWQ7DQpCT1JERVItVE9QOiAgICAjOTk5 OTk5IDEgc29saWQ7DQpCT1JERVItTEVGVDogICAjOTk5OTk5IDEgc29saWQ7DQpCT1JERVItQk9UVE9NOi AjZmZmZmZmIDEgc29saWQ7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMzMzMzMzOw0KZm9udDogRml4ZWRzeXMg Ym9sZDsNCmNvbG9yOiAjZmZmZmZmOw0KfQ0KQk9EWSB7DQptYXJnaW46IDE7DQpjb2xvcjogI2NjY2NjYz sNCmJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQp9DQpBOmxpbmsge0NPTE9SOnJlZDsgVEVYVC1ERUNP UkFUSU9OOiBub25lfQ0KQTp2aXNpdGVkIHsgQ09MT1I6cmVkOyBURVhULURFQ09SQVRJT046IG5vbmV9DQ pBOmFjdGl2ZSB7Q09MT1I6cmVkOyBURVhULURFQ09SQVRJT046IG5vbmV9DQpBOmhvdmVyIHtjb2xvcjpi bHVlO1RFWFQtREVDT1JBVElPTjogbm9uZX0NCg0KPC9TVFlMRT5cbiI7DQplY2hvIjxtZXRhIGh0dHAtZX F1aXY9J0NvbnRlbnQtVHlwZScgY29udGVudD0ndGV4dC9odG1sIGNoYXJzZXQ9d2luZG93cy0xMjU2Jz4i Ow0KZWNobyI8dGl0bGU+09/RyMogx+HHytXH4SDI3ubH2s8gx+HI7cfkx8o8L3RpdGxlPlxuIjsNCmVjaG 8iPG1ldGEgbmFtZT0nYXV0aG9yJyBjb250ZW50PSdUb255IEFzbGV0dCc+IjsNCmVjaG8iPG1ldGEgbmFt ZT0ndGl0bGUnIGNvbnRlbnQ9J1BIUDpNeVNRTCBUYWJsZSBNYW5hZ2VyJz4iOw0KZWNobyI8bWV0YSBuYW 1lPSdkZXNjcmlwdGlvbicgY29udGVudD0nVGFibGUgTWFuYWdlciBmb3IgTXlTUUwgRGF0YWJhc2UnPiI7 DQplY2hvIjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0ndG1ncnN0eWxlcy5jc3MnIHR5cGU9J3RleH QvY3NzJz5cbiI7DQplY2hvIjwvaGVhZD5cbiI7DQplY2hvIjxib2R5PlxuIjsNCg0KJHNob3dhbGw9dHJ1 ZTsNCmVjaG8iPGgyIGNsYXNzPWggPtPf0cjKIMfhx8rVx+EgyN7mx9rPIMfhyO3H5MfKPC9oMj5cbiI7DQ ovLyoqKioqKioqKioqKioqKioqKiogU2Vzc2lvbiBMb2dvbiAqKioqKioqKioqKioqKioqKioqKioqKg0K aWYoaXNzZXQoJF9QT1NUWydsb2dvdXQnXSkpew0KDQogICAgICAgICAgICAgICAgJF9QT1NUWydkY m5hbWUnXT0iIjsNCiAgICAgICAgICAgICAgICBzZXNzaW9uX3Vuc2V0KCk7DQogICAgICAgICAgICAgICA gc2Vzc2lvbl9kZXN0cm95KCk7DQp9DQppZihpc3NldCgkX1BPU1RbJ3VzZXJpZCddKSAmJiBpc3NldCgkX 1BPU1RbJ3B3b3JkMSddKSl7DQogICAgICAgICRfU0VTU0lPTlsndXNlciddID0gJF9QT1NUWyd1c2VyaWQ nXTsNCiAgICAgICAgJF9TRVNTSU9OWydwYXNzd29yZCddID0gJF9QT1NUWydwd29yZDEnXTsNCn0NCg0Ka WYgKCFpc3NldCgkX1NFU1NJT05bJ3VzZXInXSkgfHwgIWlzc2V0KCRfU0VTU0lPTlsncGFzc3dvcmQnXSk pew0KICAgICAgICBlY2hvIjxkaXYgYWxpZ249Y2VudGVyPiI7DQogICAgICAgIGVjaG8iPGgyPsfPzuEgy O3H5MfKIMfh0+3R3dEgx+HjzsrR3jwvaDI+XG4iOw0KICAgICAgICBJZighaXNzZXQoJGRibmFtZWFycmF 5KSl7DQogICAgICAgICAgICAgICAgJGRibmFtZWFycmF5PSIiOw0KICAgICAgICB9DQogICAgICAgIHNob 3dfbG9naW4oJGRibmFtZWFycmF5KTsNCiAgICAgICAgZWNobyI8L2Rpdj4iOw0KfWVsc2V7DQogICAgICA gIC8vc2hvdyBsb2dvdXQgb3B0aW9uLg0KICAgICAgICBlY2hvIjxkaXYgYWxpZ249cmlnaHQ+IjsNCiAgI CAgICAgZW5kc2VzcygpOw0KICAgICAgICBlY2hvIjwvZGl2PiI7DQp9DQovLyoqKioqZGJuYW1lDQppZih pc3NldCgkX1BPU1RbJ2RibmFtZSddKSl7DQogICAgICAgICRkYm5hbWU9JF9QT1NUWydkYm5hbWUnXTsNC iAgICAkX1NFU1NJT05bJ2RibmFtZSddPSAkX1BPU1RbJ2RibmFtZSddOw0KfQ0KLy8qKioqKiBIb3N0DQp pZihpc3NldCgkX1BPU1RbJ2hvc3QnXSkpew0KICAgICRob3N0PSRfUE9TVFsnaG9zdCddOw0KICAgICRfU 0VTU0lPTlsnaG9zdCddPSRfUE9TVFsnaG9zdCddOw0KfQ0KLy8qKioqKipzZXQgdGFibGVuYW1lDQppZih

pc3NldCgkX0dFVFsndGFibGVuYW1lJ10pICl7DQogICAgICAgICR0YWJsZW5hbWU9JF9HRVRbJ3RhYmxlb mFtZSddOw0KfWVsc2VpZihpc3NldCgkX1BPU1RbJ3RhYmxlbmFtZSddKSl7DQogICAgICAgICR0YWJsZW5 hbWU9JF9QT1NUWyd0YWJsZW5hbWUnXTsNCn0NCi8vKioqKioqKioqKiBwYWdlbWF4DQppZihpc3NldCgkX 1BPU1RbJ3BhZ2VtYXgnXSkpeyAvLyYmIGlzX2ludCgkX1BPU1RbJ3BhZ2VtYXgnXSkpew0KICAgICRpc25 1bT10cnVlOw0KICAgIGZvcigkbz0wOyAkbzxjb3VudCgkX1BPU1RbJ3BhZ2VtYXgnXSk7ICRvKyspew0KI CAgICAgICAgICAgaWYoJF9QT1NUWydwYWdlbWF4J11bJG9dPjkpew0KICAgICAgICAgICAgICAgICRpc25 1bT1mYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICB9DQogICAgaWYoJF9QT1NUWydwYWdlbWF4J10+MCAmJ iAkaXNudW0pew0KICAgICAgICAkX1NFU1NJT05bJ3BhZ2VtYXgnXT0kX1BPU1RbJ3BhZ2VtYXgnXTsNCiA gICB9DQp9DQogaWYoaXNzZXQoJF9TRVNTSU9OWydwYWdlbWF4J10pKXsNCiAgICAkcGFnZW1heD0kX1NFU 1NJT05bJ3BhZ2VtYXgnXTsNCiB9DQovLyoqKioqKioqIGNyZWF0ZSBhIG5ldyBEYXRhYmFzZSAqKioqKio qKioqKioNCmlmKGlzc2V0KCRfUE9TVFsnY25kYiddKSl7DQogICAgY29ubmVjdG15c3FsKCk7DQogICAgI CAgICRzcWw9ImNyZWF0ZSBkYXRhYmFzZSAkX1BPU1RbbmRibmFtZV0iOw0KICAgICAgICAkcmVzdWx0PWV 4ZXF1ZXJ5KCRzcWwsICIgIiwgJF9QT1NUWyduZGJuYW1lJ10pOw0KICAgICAgICBpZiAoJHJlc3VsdCl7D QogICAgICAgICAgICAgICAgJF9TRVNTSU9OWydkYm5hbWUnXSA9ICRfUE9TVFsnbmRibmFtZSddOw0KICA gICAgICAkc3FsPSJVc2UgJF9QT1NUW25kYm5hbWVdIjsNCiAgICAgICAgICAgICRyZXN1bHQ9ZXhlcXVlc nkoJHNxbCwgIiAiLCAkX1BPU1RbJ25kYm5hbWUnXSk7DQogICAgICAgIGlmKCRyZXN1bHQpew0KICAgICA gICAgICAgZWNobyI8aDI+3sfaz8kgzM/tz8kgJF9TRVNTSU9OW2RibmFtZV0gPC9oMj5cbiI7DQogICAgI CAgIH0NCiAgICAgICAgfQ0KfQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio qKioqKioqKg0KaWYgKCEgaXNzZXQoJF9TRVNTSU9OWydkYm5hbWUnXSkgJiYgISBpc3NldCgkZGJuYW1lY XJyYXkpICYmICEgaXNzZXQoJF9QT1NUWydkYm5hbWUnXSkgJiYgaXNzZXQoJF9TRVNTSU9OWyd1c2VyJ10 pKXsgLy8qKioqKioqKipwb3N0DQogICAgICAgIC8vRGF0YWJzZSBuYW1lcw0KICAgICAgICBzaG93ZGIoK TsNCn0NCi8vKioqKioqKioqKioqKioqKioqKioqKioqIENob29zZSBEQiAqKioqKioqKioqKioqDQppZih pc3NldCgkX1BPU1RbJ2RibmFtZSddKSAmJiAkX1BPU1RbJ2RibmFtZSddPT0iIil7DQogICAgc2hvd2RiK Ck7DQp9DQoNCi8vKioqKioqKioqKg0KaWYgKGlzc2V0KCRfU0VTU0lPTlsnZGJuYW1lJ10pIHx8IGlzc2V 0KCRfUE9TVFsnZGJuYSddKSB8fCBpc3NldCgkX1BPU1RbJ2RibmFtZSddKSl7DQovLyoqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgICAgICAgICAgICAgICAvL2Nvbm5lY3Rpb24NCg0KICA gICAgICAgICAgICAgIGlmIChpc3NldCgkX1NFU1NJT05bJ2RibmFtZSddKSl7DQogICAgICAgICAgICAgI CAgICAgICAgICAkZGJzZXRuYW1lID0gJF9TRVNTSU9OWydkYm5hbWUnXTsNCiAgICAgICAgICAgICAgICB 9ZWxzZWlmKGlzc2V0KCRfUE9TVFsnZGJuYW1lJ10pKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICRkY nNldG5hbWUgPSAkX1BPU1RbJ2RibmFtZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9 OWydkYm5hbWUnXSA9ICRfUE9TVFsnZGJuYW1lJ107DQogICAgICAgICAgICAgICAgfWVsc2V7DQogICAgI CAgICAgICAgICAgICAgICAgICAkZGJzZXRuYW1lID0gJF9QT1NUWydkYm5hJ107DQogICAgICAgICAgICA gICAgICAgICAgICAkX1NFU1NJT05bJ2RibmFtZSddID0gJF9QT1NUWydkYm5hJ107DQogICAgICAgICAgI CAgICAgfQ0KfQ0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKiogd2UgaGF2ZSBhIERCIHNldA0KaWY oaXNzZXQoJGRic2V0bmFtZSkgJiYgJGRic2V0bmFtZSE9IiIpew0KICAgICAgICAgICAgICAgICAgICAkb Gluaz0gY29ubmVjdG15c3FsKCk7DQogICAgICAgICAgICAvL2VjaG8iREJTOiAkZGJzZXRuYW1lIjsNCiA gICAgICAgICAgICAgICAgICAgJGNvbm4gPSBjb25uZWN0ZGIoJGRic2V0bmFtZSwgJGxpbmspOw0KDQovL yoqKioqKioqKioqIERyb3AgVGFibGUgKioqKioqKioqKioqKioNCiAgICAgICAgaWYoaXNzZXQoJF9QT1N UWydkZWx0YWJsZSddKSl7DQogICAgICAgICRzaG93YWxsPWZhbHNlOw0KICAgICAgICAgICAgICAgICR0Y WJsZW5hbWU9JF9QT1NUWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICBlY2hvIjxoMT4hISEgys3 Q7dEgISEhIDxicj7H5Mogys3H5uEg49PNIOXQxyDH4czP5uEgJHRhYmxlbmFtZTxicj4iOw0KICAgICAgI CAgICAgICAgIGVjaG8i5eEgx+TKIOPKx9/PIOPkIMfh3u3H4yDIx+Ha4+Ht5b8/PC9oMT5cbiI7DQogICA gICAgICAgICAgICAgJHZhPSJEcm9wICR0YWJsZW5hbWUiOw0KICAgICAgICAgICAgICAgIGdvdG8oJHRhY mxlbmFtZSwgJGRibmFtZSwkYWN0aW9uLCAnZGVsJywgJ2Ryb3B0YWInLCAkdmEgKTsNCiAgICAgICAgfQ0 KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ2Ryb3B0YWInXSkpew0KICAgICAgICAgICAgICAgICR0YWJsZ W5hbWU9JF9QT1NUWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICAkZHNxbCA9ICJkcm9wIHRhYmx lICR0YWJsZW5hbWUiOw0KICAgICAgICAgICAgICAgICRyZXN1bHQ9ZXhlcXVlcnkoJGRzcWwsICR0YWJsZ W5hbWUsICRkYm5hbWUpOw0KICAgICAgICAgICAgICAgIHVuc2V0KCR0YWJsZW5hbWUpOyAvLz0iZmFsc2U iOw0KICAgICAgICAgICAgICAgIHVuc2V0KCRfUE9TVFsndGFibGVuYW1lJ10pOw0KICAgICAgICB9DQovL yoqKioqKioqKioqKioqKioqV3JpdGUgWW91ciBPd24gUXVlcnkgKioqKioqKioqKioqKioqKioNCiAgICA gICAgaWYoaXNzZXQoJF9QT1NUWyd3eW9xJ10pKXsgIC8vcG9zdA0KICAgICAgICAgICAgICAgICR2YWx1Z T0ix+Hmx8zl5SDH4dHG7dPt5SDh4dPf0cjKIjsNCiAgICAgICAgICAgICAgICBnb3RvKCR0YWJsZW5hbWU sICRkYm5hbWUsICRhY3Rpb24sICdidXQnLCAnc3RhcnQnLCAkdmFsdWUgKTsNCiAgICAgICAgICAgICAgI CBlY2hvIjxmb3JtIG1ldGhvZD0ncG9zdCc+XG4iOw0KICAgICAgICAgICAgICAgIGVjaG8iPGlucHV0IHR 5cGU9J2hpZGRlbicgbmFtZT0nZGJuYW1lJyB2YWx1ZT0kZGJuYW1lPlxuIjsNCiAgICAgICAgICAgICAgI CAvL2VjaG8iPGlucHV0IHR5cGU9dGV4dCBuYW1lPSd3eXFvdGEnIHdpZHRoPSc1MDBweCcgc3R5bGU9J29 2ZXJmbG93LXg6dmlzaWJsZTsnPlxuIjsNCg0KICAgICAgICAgICAgICAgIGVjaG8iPHRleHRhcmVhIG5hb WU9J3d5b3F0YScgY29scz0nNjAnIHJvd3M9JzUnIHN0eWxlPSdvdmVyZmxvdy15OnZpc2libGUnPjwvdGV

4dGFyZWE+XG4iOw0KDQogICAgICAgICAgICAgICAgZWNobyI8YnI+PGlucHV0IGNsYXNzPWJ1dCB0eXBlP XN1Ym1pdCBuYW1lPSdydW5xdWVyeScgdmFsdWU9J0V4ZWN1dGUgUXVlcnknPlxuIjsNCiAgICAgICAgICA gICAgICBlY2hvIjwvZm9ybT48YnI+XG4iOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYoaXNzZXQoJF9QT 1NUWydydW5xdWVyeSddKSl7DQogICAgICAgICAgICAgICAgJHd5b3F0YSA9IFN0cmlwU2xhc2hlcygkX1B PU1RbJ3d5b3F0YSddKTsNCiAgICAgICAgICAgICAgICAkcmVzdWx0PWV4ZXF1ZXJ5KCR3eW9xdGEsICIgI iwgIiAiKTsNCg0KICAgICAgICAgICAgICAgIGlmKEBteXNxbF9udW1fcm93cygkcmVzdWx0KSA+MCl7DQo gICAgICAgICAgICAgICAgICAgICAgICAgJG51bXJvd3M9bXlzcWxfbnVtX3Jvd3MoJHJlc3VsdCk7DQogI CAgICAgICAgICAgICAgICAgICAgICAkZmxkcz1teXNxbF9udW1fZmllbGRzKCRyZXN1bHQpOw0KICAgICA gICAgICAgICAgICAgICAgICAgZWNobyI8dGFibGU+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvc igkcj0wOyAkciA8ICRudW1yb3dzOyAkcisrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gZWNobyI8dHI+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJvdz1teXNxbF9mZXRja F9hcnJheSgkcmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKCRjb2wgPSA wOyAkY29sIDwgJGZsZHM7ICRjb2wgKyspew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICRuc2xhc2ggPSBTdHJpcFNsYXNoZXMoJHJvd1skY29sXSk7DQogICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgZWNobyI8dGQ+JG5zbGFzaDwvdGQ+IjsNCiAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjwvdHI +IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iP C90YWJsZT4iOw0KICAgICAgICAgICAgICAgIH1lbHNlaWYgKG15c3FsX2FmZmVjdGVkX3Jvd3MoKSl7DQo gICAgICAgICAgICAgICAgICAgICAgICBlY2hvIiBOdW1iZXIgb2YgUm93cyBhZmZlY3RlZDogIi5teXNxb F9hZmZlY3RlZF9yb3dzKCk7DQogICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICA gICAgICBlY2hvIiBOb3RoaW5nIHJldHVybmVkIGZyb20gdGhlIHF1ZXJ5LiI7DQogICAgICAgICAgICAgI CAgfQ0KICAgICAgICB9DQovLyAqKioqKioqKioqKioqKioqTGlzdCBUYWJsZXMqKioqKioqKioqKioqKio qKioqKioqKioqKioNCg0KICAgICAgICBpZiggISBpc3NldCgkdGFibGVuYW1lKSB8fCAkdGFibGVuYW1lP T0iICIgKXsNCiAgICAgICAgICAgICAgICAkZGJuYW1lPSRfU0VTU0lPTlsnZGJuYW1lJ107DQogICAgICA gICAgICAgICAgJHJlc3VsdCA9IG15c3FsX2xpc3RfdGFibGVzKCRfU0VTU0lPTlsnZGJuYW1lJ10pOw0KI CAgICAgICAgICAgICAgICAkbnVtdGFiID0gbXlzcWxfbnVtX3Jvd3MgKCRyZXN1bHQpOw0KICAgICAgICA gICAgICAgICBpZigkbnVtdGFiID09IDEpew0KICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OW yd0YWJsZW5hbWUnXSA9bXlzcWxfdGFibGVuYW1lKCRyZXN1bHQsIDApOw0KICAgICAgICAgICAgICAgICB 9DQoNCi8vKioqKioqKioqKioqKioqKiogQnV0dG9ucyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqK ioNCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJF9QT1NUWydydW5xdWVyeSddKSl7DQogICAgICAgICA gICAgICAgICAgICAgICAkZGJuYW1lPSRfU0VTU0lPTlsnZGJuYW1lJ107DQogICAgICAgICAgICAgICAgI CAgICAgICAkdmFsdWU9IiRkYm5hbWUgU3RhcnQiOyAvL1RhYmxlIE1hbmFnZXIgU3RhcnQNCiAgICAgICA gICAgICAgICAgICAgICAgIGdvdG8oIiIsICRfU0VTU0lPTlsnZGJuYW1lJ10sICRhY3Rpb24sICdidXQnL CAndGFibGVzdGFydCcsICR2YWx1ZSApOw0KDQogICAgICAgICAgICAgICAgfWVsc2VpZiAoISBpc3NldCg kX1BPU1RbJ3d5b3EnXSkgJiYgISBpc3NldCgkX1BPU1RbJ3J1bnF1ZXJ5J10pKXsgLy93cml0ZSB5b3VyI G93biBxdWVyeS4NCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPHRhYmxlIHdpZHRoPTQwJSBib3J kZXI9MCBhbGlnbj0nbGVmdCcgPlxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPHRyPjx0Z D4iOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAkdmE9IsXk1MfBIMzP5uEgzM/tzyI7DQogICAgICA gICAgICAgICAgICAgICAgICBnb3RvKCIiLCAkX1NFU1NJT05bJ2RibmFtZSddLCAiY3JlYXRlLnBocCIsI CdidXQnLCAnY3JlYXRlJywgJHZhICk7DQogICAgICAgICAgLy8gIGVjaG8iPGEgaHJlZj1jcmVhdGUucGh wIGNsYXNzPSdjcnQnPkNyZWF0ZSBuZXcgVGFibGU8L2E+XG4iOw0KICAgICAgICAgICAgICAgICAgICAgI CAgZWNobyI8L3RkPjx0ZD4iOw0KDQogICAgICAgICR2YWx1ZT0ix+Hmx8zl5SDH4dHG7dPt5SI7IC8vQ2h vb3NlIERCDQogICAgICAgICAgICAgICAgZ290bygiIiwgIiIsICRhY3Rpb24sICdidXQnLCAnZGInLCAkd mFsdWUgKTsNCiAgICAgICAgICAgICAgICBlY2hvIjwvdGQ+XG4iOw0KDQogICAgICAgICAgICAgICAgICA gICAgICAkdmFsdWU9IldyaXRlIFlvdXIgT3duIFF1ZXJ5IjsNCiAgICAgICAgICAgICAgICAgICAgICAgI GdvdG8oIiAiLCAkX1NFU1NJT05bJ2RibmFtZSddLCAkYWN0aW9uLCAnYnV0JywgJ3d5b3EnLCAkdmFsdWU gKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8L3RkPjwvdHI+IjsNCiAgICAgICAgICAgI CAgICAgICAgICAgIGVjaG8iPC90YWJsZT48YnI+PGJyPjxicj48YnI+PGRpdiBzdHlsZT0nY2xlYXI6Ym9 0aDsnPjwvZGl2PiI7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPHRhYmxlIHdpZHRo PTEwMCUgYm9yZGVyPTAgYWxpZ249J2NlbnRlcicgPlxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIG ZvciAoJGkgPTA7ICRpIDwgJG51bXRhYjsgJGkrKykgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICR0Yl9uYW1lc1skaV0gPSBteXNxbF90YWJsZW5hbWUoJHJlc3VsdCwgJGkpOw0KICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjx0ciBjbGFzcz0nZnJvdyc+PHRkIGFsaWduPSdjZW50 ZXInPlxuIjsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmE9ItrR1iDMz+bhICogJH RiX25hbWVzWyRpXSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8oJHRiX25hbWVz WyRpXSwgJF9TRVNTSU9OWydkYm5hbWUnXSwkYWN0aW9uLCAnYnV0JywgJHRiX25hbWVzWyRpXSwgJHZhIC k7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPC90ZD48dGQgIGFsaWduPSdjZW50 ZXInIHZhbGlnbj0nbWlkZGxlJz5cbiI7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJH

ZhPSLj080gzM/m4SAkdGJfbmFtZXNbJGldIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z290bygkdGJfbmFtZXNbJGldLCAkX1NFU1NJT05bJ2RibmFtZSddLCRhY3Rpb24sICdkZWwnLCAnZGVsdG FibGUnLCAkdmEgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8L3RkPjx0ZCAg YWxpZ249J2NlbnRlcicgdmFsaWduPSdtaWRkbGUnPlxuIjsNCg0KICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAkdmE9IkFsdGVyIFRhYmxlICR0Yl9uYW1lc1skaV0iOw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnb3RvKCR0Yl9uYW1lc1skaV0sICRfU0VTU0lPTlsnZGJuYW1lJ10sJ2FsdGVyLn BocCcsICdidXQnLCAnYWx0ZXJ0YWJsZScsICR2YSApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlY2hvIjwvdGQ+PHRkIGFsaWduPSdjZW50ZXInIHZhbGlnbj0nbWlkZGxlJz5cbiI7DQoNCiAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNodGFibGVmb3JtKCR0Yl9uYW1lc1skaV0sICRf U0VTU0lPTlsnZGJuYW1lJ10pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjwvdG Q+PHRkPiI7DQogICAgICAgICAgICAgICAgLy9UYWJsZSBzaXplIGluIGJ5dGVzDQogICAgICAgICAgICAg ICBlY2hvIG15c2l6ZSgkX1NFU1NJT05bJ2RibmFtZSddLCR0Yl9uYW1lc1skaV0pOw0KDQogICAgICAgIC AgICAgICAgZWNobyI8L3RkPjwvdHI+XG4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfS8vZm9yDQog ICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjwvdGFibGU+XG4iOw0KICAgICAgICAgICAgICAgIH0NCg 0KICAgICAgICB9ZWxzZXsgLy90YWJsZW5hbWUgaXMgc2V0DQovLyoqKioqKioqKioqKioqKioqIG1lbnUg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgICAgICAgICAgICAgICBlY2 hvIjx0YWJsZT48dHIgY2xhc3M9J2Zyb3cnPjx0ZD5cbiI7DQogICAgICAgICAgICAgICAgJHZhbHVlPSIk X1NFU1NJT05bZGJuYW1lXSBTdGFydCI7IC8vRXggVGFibGUgTWFuYWdlciBTdGFydA0KICAgICAgICAgIC AgICAgIGdvdG8oJHRhYmxlbmFtZSwgJF9TRVNTSU9OWydkYm5hbWUnXSwgJGFjdGlvbiwgJ2J1dCcsICd0 YWJsZXN0YXJ0JywgJHZhbHVlICk7DQogICAgICAgICAgICAgICAgZWNobyI8L3RkPlxuIjsNCg0KICAgIC AgICBlY2hvIjx0ZD5cbiI7DQogICAgICAgICR2YWx1ZT0ix+Hmx8zl5SDH4dHG7dPt5SI7IC8vQ2hvb3Nl IERCDQogICAgICAgICAgICAgICAgZ290bygiIiwgIiIsICRhY3Rpb24sICdidXQnLCAnc3RhcnQnLCAkdm FsdWUgKTsNCiAgICAgICAgICAgICAgICBlY2hvIjwvdGQ+XG4iOw0KDQogICAgICAgIGVjaG8iPHRkPlxu IjsNCiAgICAgICAgJHZhbHVlPSJXcml0ZSBZb3VyIE93biBRdWVyeSI7DQogICAgICAgICAgICAgICAgZ2 90bygiICIsICRfU0VTU0lPTlsnZGJuYW1lJ10sICRhY3Rpb24sICdidXQnLCAnd3lvcScsICR2YWx1ZSAp Ow0KICAgICAgICBlY2hvIjwvdGQ+XG4iOw0KDQogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkX1BPU1 RbJ2FkZCddKSAmJiAhaXNzZXQoJF9QT1NUWydkZWx0YWJsZSddKSAmJiBpc3NldCgkdGFibGVuYW1lKSl7 DQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIjx0ZD4iOw0KICAgICAgICAgICAgICAgICAgICAgIC AgLy8kdGFibGVuYW1lID0gJF9QT1NUWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAg ICR2YT0iQWRkIGEgJHRhYmxlbmFtZSBSZWNvcmQiOw0KICAgICAgICAgICAgICAgICAgICAgICAgZ290by gkdGFibGVuYW1lLCAkX1NFU1NJT05bJ2RibmFtZSddLCAnYWx0ZXIucGhwJywgJ2J1dCcsICdhZGQnLCAk dmEgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8iPC90ZD5cbiI7DQogICAgICAgICAgICAgIC AgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkX1BPU1RbJ2RlbHRhYmxlJ10pKXsNCiAgICAg ICAgICAgICAgICAgICAgICAgIGVjaG8iPHRkPlxuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNlYX JjaHRhYmxlZm9ybSgkdGFibGVuYW1lLCAkX1NFU1NJT05bJ2RibmFtZSddKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgIGVjaG8iPC90ZD5cbiI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIG VjaG8iPC90cj48L3RhYmxlPlxuIjsNCiAgICAgICAgICAgICAgICBlY2hvIjxiciAvPlxuIjsNCg0KLy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KDQogICAgICAgIC AgICAgICAgaWYoaXNzZXQoJF9QT1NUWydhZGRyZWMnXSkpew0KICAgICAgICAgICAvLyAkc2hvd2FsbD1m YWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQ9YWRkcmVjb3JkKCR0YWJsZW5hbWUsIC RfU0VTU0lPTlsnZGJuYW1lJ10sICRfUE9TVFsnYXJyYXknXSk7DQogICAgICAgICAgICAgICAgfWVsc2Vp Zihpc3NldCgkX1BPU1RbJ2FkZCddKSl7DQogICAgICAgICAgICAkc2hvd2FsbD1mYWxzZTsNCiAgICAgIC AgICAgICAgICAgICAgICAgIGFkZGZvcm0oJHRhYmxlbmFtZSwgJF9TRVNTSU9OWydkYm5hbWUnXSk7DQog ICAgICAgICAgICAgICAgfWVsc2VpZihpc3NldCgkX1BPU1RbJ2RlbGV0ZSddKSl7DQogICAgICAgICAgIC AgICAgICAgICAgICAvL2RlbGV0ZSByZWNvcmQgaGFzIGJlZW4gcHVzaGVkDQogICAgICAgICAgIC8vICRz aG93YWxsPWZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHdocj1idWlsZHdocigkX1BPU1RbJ3 BrJ10sICRfUE9TVFsncHYnXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gImRlbGV0ZSBm cm9tICR0YWJsZW5hbWUgd2hlcmUgJHdociI7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0PW V4ZXF1ZXJ5KCRzcWwsICR0YWJsZW5hbWUsICRfU0VTU0lPTlsnZGJuYW1lJ10pOw0KICAgICAgICAgICAg ICAgIH1lbHNlaWYgKGlzc2V0KCRfUE9TVFsnZWRpdCddKSl7Ly9FZGl0DQogICAgICAgICAgICAkc2hvd2 FsbD1mYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICR3aHIgPSBidWlsZHdociggJF9QT1NUWydw ayddLCAkX1BPU1RbJ3B2J10pOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8kdGFibGVuYW1lID0gJF 9TRVNTSU9OWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICRzcWw9ICJTZWxlY3Qg KiBmcm9tICR0YWJsZW5hbWUgd2hlcmUgJHdociI7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZX N1bHQ9ZXhlcXVlcnkoJHNxbCwgJHRhYmxlbmFtZSwgJF9TRVNTSU9OWydkYm5hbWUnXSk7DQogICAgICAg ICAgICAgICAgICAgICAgICBlZGl0Zm9ybSgkdGFibGVuYW1lLCAkX1NFU1NJT05bJ2RibmFtZSddLCAkcm VzdWx0LCAnZWRpdCcsICRfUE9TVFsncGsnXSwgJF9QT1NUWydwdiddKTsNCiAgICAgICAgICAgICAgICB9 ZWxzZWlmKGlzc2V0KCRfUE9TVFsnZWRpdHJlYyddKSl7DQogICAgICAgICAgIC8vICRzaG93YWxsPWZhbH

NlOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdD1lZGl0cmVjKCRfU0VTU0lPTlsnZGJuYW1l J10sJHRhYmxlbmFtZSwgJF9QT1NUWydwayddLCAkX1BPU1RbJ3B2J10sICRfUE9TVFsnYXJyYXknXSk7DQ ogICAgICAgICAgICAgICAgfQ0KLy8qKioqKioqKioqKioqKioqIFNlYXJjaCAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioNCiAgICAgICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3NlYXJjaH ZhbCddKSl7DQogICAgICAgICAgICAgICAgICAgICAgICAkc2VhcmNodmFsPSRfUE9TVFsnc2VhcmNodmFs J107DQogICAgICAgICAgICAgICAgfWVsc2VpZihpc3NldCgkX0dFVFsnc2VhcmNodmFsJ10pKXsNCiAgIC AgICAgICAgICAgICAgICAgICAgICRzZWFyY2h2YWw9JF9HRVRbJ3NlYXJjaHZhbCddOw0KICAgICAgICAg ICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICAgICAgJHNlYXJjaHZhbD0iIjsNCiAgICAgIC AgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJF9HRVRbJ3RhYmxlbmFtZSddKSl7 DQogICAgICAgICAgICAgICAgICAgICAgICAkdGFibGVuYW1lID0gJF9HRVRbJ3RhYmxlbmFtZSddOw0KIC AgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmKChpc3NldCgkX1BPU1RbJ3NlYXJjaCdd KXx8IGlzc2V0KCRzZWFyY2h2YWwpKSAmJiAkc2VhcmNodmFsICE9IiIpew0KICAgICAgICAgICAgICAgIC AgICAgICAgJHJlc3VsdD1zZWFyY2h0KCR0YWJsZW5hbWUsICRfU0VTU0lPTlsnZGJuYW1lJ10sICAkc2Vh cmNodmFsKTsNCiAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vRG lzcGxheSBBbGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRxdWVyeSA9ICJzZWxlY3QgKiBmcm9tICR0 YWJsZW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdD1leGVxdWVyeSgkcXVlcnksIC R0YWJsZW5hbWUsICRfU0VTU0lPTlsnZGJuYW1lJ10pOw0KICAgICAgICAgICAgICAgIH0NCg0KLy8qKioq KioqKioqKioqKioqKiBEaXNwbGF5IHJlY29yZCBjb3VudCAqKioqKioqKioqKioqKioqKioqKioqKioqKi oqKioqKioqKioqKioqKg0KICAgICAgICBpZigkc2hvd2FsbCl7DQogICAgICAgICAgICAkbnVtX3Jvd3Mg PSBteXNxbF9udW1fcm93cygkcmVzdWx0KTsNCiAgICAgICAgICAgIC8vV29ya291dCB3aGljayBwYWdlIH RvIGRpc3BsYXkNCiAgICAgICAgICAgICAgICAgICAgaWYoIWlzc2V0KCRfR0VUWydwZyddKSAmJiAhaXNz ZXQoJHBnKSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJlZz0wOw0KICAgICAgICAgICAgIC AgICRwZz0wOw0KICAgICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBpZihpc3Nl dCgkX0dFVFsncGJhY2snXSkpew0KICAgICAgICAgICAgICAgICAgICAkcGc9JF9HRVRbJ3BnJ107DQogIC AgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICRwZz0kX0dFVFsncGcnXTsNCiAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIGlmKCRwZyA8IDAgKXsNCiAgICAgICAgICAgIC AgICAgICAgJHBnPTA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmKCRwZyA+ICRu dW1fcm93cy8kcGFnZW1heCl7DQogICAgICAgICAgICAgICAgICAgICRwZz1jZWlsKCRudW1fcm93cy8kcG FnZW1heCktMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJGJlZyA9ICRwZyAqICRw YWdlbWF4Ow0KDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc3 NldCgkX1BPU1RbJ2FkZCddKSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBzY3JvbD0iICI7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2VzY3JvbCA9IiAiOw0KDQogICAgICAgICAgIC AgICAgICAgICAgICAgICAgJHBhZ2VzY3JvbCA9IHdoaWNocGFnZSgkbnVtX3Jvd3MsICRwYWdlbWF4LCAk cGcsICR0YWJsZW5hbWUsICRzZWFyY2h2YWwpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW NobyAiJHBhZ2VzY3JvbFxuIjsgLy9EaXNwbGF5IG5leHQgVG9wIHBhZ2UgbWVudQ0KDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGZsZHMgPSBteXNxbF9udW1fZmllbGRzKCRyZXN1bHQpOw0KICAgICAgIC AgICAgICAgICAgICAgICAgICAgIGVjaG8iPHRhYmxlIGJvcmRlcj0wIHdpZHRoPScxMDAlJz5cbiI7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8dHIgY2xhc3M9aGVhZD48dGQ+PC90ZD48dGQ+PC 90ZD5cbiI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpZWxkcyA9IG15c3FsX2xpc3RfZmll bGRzKCAkX1NFU1NJT05bJ2RibmFtZSddLCAkdGFibGVuYW1lKTsNCg0KICAgICAgICAgICAgICAgICAgIC AgICAgICAgICR6PTA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHggPTA7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJHBrZmllbGQ9YXJyYXkoKTsNCg0KLy8qKioqKioqKioqKioqRGlzcGxheS BlYWNoIG9mIHRoZSBmaWVsZCBuYW1lcy4qKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkZmxkczsgJGkrKykgew0KICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjx0ZD4iLm15c3FsX2ZpZWxkX25hbWUo JGZpZWxkcywgJGkpLiI8L3RkPlxuIjsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgLy9GaW5kIHRoZSBwcmltYXJ5IGtleQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JGZsYWdzdHJpbmcgPSBteXNxbF9maWVsZF9mbGFncyAoJHJlc3VsdCwgJGkpOw0KICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgaWYoZXJlZ2koInByaW1hcnkiLCRmbGFnc3RyaW5nICkpew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGtbJHpdID0gJGk7DQoNCiAgIC AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBrZmllbGRbJHpdPSBteXNxbF9m aWVsZF9uYW1lKCRmaWVsZHMsICRpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgJHorKzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyI8L3RyPl xuIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGJsPSR0YWJsZW5hbWU7DQogICAgICA gICAgICAgICAgICAgICAgICAgICAgLy9pZihpc3NldCgkcGspKXsNCiAgICAgICAgICAgICAgICAgICAgI CAgICAgICBpZigkeiA+IDApew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNwaz1 jb3VudCgkcGspOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgI

CAgICAgICAgICAgICAgICAgICAgICAgJGNwaz0wOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0 NCg0KLy8qKioqKioqKioqKipEaXNwbGF5IGVhY2ggcm93IGZyb20gdGhlIHRhYmxlLioqKioqKioqKioqK ioqKioqKioqKioqKioqKioqKioqDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKCRzPSR iZWc7ICRzIDwgJGJlZyArICRwYWdlbWF4OyAkcysrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgIGlmKCRzIDwgJG51bV9yb3dzKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgaWYgKCFteXNxbF9kYXRhX3NlZWsgKCRyZXN1bHQsICRzKSkgew0KICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIkNhbm5vdCBzZWVrIHRvIHJvdyAkc1xuIjs NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgJHJvdz1teXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KTsNCiAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIWlzc2V0KCRwaykpew0KICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwaz0iICI7DQogICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBrZmllbGQ9IGFycmF5KCk7DQogICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheXJvdygkX1NFU1NJT05bJ2RibmFtZSddLCAkdGJ sLCAkcGssICRwa2ZpZWxkLCAkY3BrLCAkcm93LCAkZmxkcyk7DQogICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICA gICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVjaG8iPC90YWJsZT5cbiI7DQogICAgICAgICAgICAgI CAgICAgIGlmICghaXNzZXQoJF9QT1NUWydhZGQnXSkgJiYgIWlzc2V0KCRfUE9TVFsnZWRpdCddKSAmJiA haXNzZXQoJF9QT1NUWydkZWx0YWJsZSddKSAmJiAhaXNzZXQoJF9QT1NUWydkcm9wdGFiJ10pICYmICFpc 3NldCgkX1BPU1RbJ3d5b3EnXSkgJiYgJHRhYmxlbmFtZSl7DQogICAgICAgICAgICAgICAgICAgICAgICA gICAgZWNobyI8YnI+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIkcGFnZXNjcm9sX G4iOyAvL0Rpc3BsYXkgYm90dG9tIG5leHQgcGFnZSBtZW51DQogICAgICAgICAgICAgICAgICAgIH0NCiA gICAgICAgICAgICAgICAgICAgZWNobyI8YnI+PGJyPlxuIjsNCiAgICAgICAgICAgICAgICAgfS8vc2hvd 2FsbA0KICAgICAgICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3RhYmxlbmFtZSddKSl7DQogICAgICA gICAgICAgICAgICAgICAgICAgZWNobyI8dGFibGUgYm9yZGVyPTA+IjsNCiAgICAgICAgICAgICAgICAgI CAgIGVjaG8iPHRyPjx0ZD4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICR0YWJsZW5hbWU9JF9QT1N UWyd0YWJsZW5hbWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAkdmE9IkFsdGVyIFRhYmxlICR0Y WJsZW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8oICR0YWJsZW5hbWUsICAkX1NFU1N JT05bJ2RibmFtZSddLCdhbHRlci5waHAnLCAnYnV0JywgJ2FsdGVydGFibGUnLCAkdmEgKTsNCiAgICAgI CAgICAgICAgICAgICAgICAgICBlY2hvIjwvdGQ+PC90cj5cbiI7DQogICAgICAgICAgICAgICAgICAgICA gICAgZWNobyI8L3RhYmxlPlxuIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCn0NCmRpc3BsY XlfZm9vdCgpOw0KZWNobyAiPGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9dGFob21hIHNpemU 9LTI+PGI+WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiBdPC9iPjwvZm9ud D48L2Rpdj4iOyAgZGllKCk7IH0NCg0KaWYgKCFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2N tZCddPT0iZGJfcXVlcnkiKQ0KIHsNCiBlY2hvICRoZWFkOw0KICRzcWwgPSBuZXcgbXlfc3FsKCk7DQogJ HNxbC0+ZGIgICA9ICRfUE9TVFsnZGInXTsNCiAkc3FsLT5ob3N0ID0gJF9QT1NUWydkYl9zZXJ2ZXInXTs NCiAkc3FsLT5wb3J0ID0gJF9QT1NUWydkYl9wb3J0J107DQogJHNxbC0+dXNlciA9ICRfUE9TVFsnbXlzc WxfbCddOw0KICRzcWwtPnBhc3MgPSAkX1BPU1RbJ215c3FsX3AnXTsNCiAkc3FsLT5iYXNlID0gJF9QT1N UWydteXNxbF9kYiddOw0KICRxdWVyeXMgPSBAZXhwbG9kZSgnOycsJF9QT1NUWydkYl9xdWVyeSddKTsNC iBlY2hvICc8Ym9keSBiZ2NvbG9yPSMwMDAwMDA+JzsNCiBpZighJHNxbC0+Y29ubmVjdCgpKSBlY2hvICI 8ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yIGNvbG9yPXJlZD48Yj5DYW4nd CBjb25uZWN0IHRvIFNRTCBzZXJ2ZXI8L2I+PC9mb250PjwvZGl2PiI7DQogIGVsc2UNCiAgIHsNCiAgIGl mKCFlbXB0eSgkc3FsLT5iYXNlKSYmISRzcWwtPnNlbGVjdF9kYigpKSBlY2hvICI8ZGl2IGFsaWduPWNlb nRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yIGNvbG9yPXJlZD48Yj7h4yDt08rY7dogys3P7c8g3sf az+Ugx+HI7cfkx8o8L2I+PC9mb250PjwvZGl2PiI7DQogICBlbHNlDQogICAgew0KICAgIGZvcmVhY2goJ HF1ZXJ5cyBhcyAkbnVtPT4kcXVlcnkpDQogICAgIHsNCiAgICAgIGlmKHN0cmxlbigkcXVlcnkpPjUpDQo gICAgICB7DQogICAgICBlY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yIGNvbG9yPWdyZWVuPjxiP lF1ZXJ5IyIuJG51bS4iIDogIi5odG1sc3BlY2lhbGNoYXJzKCRxdWVyeSxFTlRfUVVPVEVTKS4iPC9iPjw vZm9udD48YnI+IjsNCiAgICAgIHN3aXRjaCgkc3FsLT5xdWVyeSgkcXVlcnkpKQ0KICAgICAgIHsNCiAgI CAgICBjYXNlICcwJzoNCiAgICAgICBlY2hvICI8dGFibGUgd2lkdGg9MTAwJT48dHI+PHRkPjxmb250IGZ hY2U9dGFob21hIHNpemU9LTI+RXJyb3IgOiA8Yj4iLiRzcWwtPmVycm9yLiI8L2I+PC9mb250PjwvdGQ+P C90cj48L3RhYmxlPiI7DQogICAgICAgYnJlYWs7DQogICAgICAgY2FzZSAnMSc6DQogICAgICAgaWYoJHN xbC0+Z2V0X3Jlc3VsdCgpKQ0KICAgICAgICB7DQogICAgICAgICAgICAgICBlY2hvICI8dGFibGUgd2lkd Gg9MTAwJT4iOw0KICAgICAgICBmb3JlYWNoKCRzcWwtPmNvbHVtbnMgYXMgJGs9PiR2KSAkc3FsLT5jb2x 1bW5zWyRrXSA9IGh0bWxzcGVjaWFsY2hhcnMoJHYsRU5UX1FVT1RFUyk7DQogICAgICAgICAgICAgICAka 2V5cyA9IEBpbXBsb2RlKCImbmJzcDs8L2I+PC9mb250PjwvdGQ+PHRkIGJnY29sb3I9I2NjY2NjYz48Zm9 udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiZuYnNwOyIsICRzcWwtPmNvbHVtbnMpOw0KICAgICAgICBlY

2hvICI8dHI+PHRkIGJnY29sb3I9IzMzMzMzMz48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiZuYnN wOyIuJGtleXMuIiZuYnNwOzwvYj48L2ZvbnQ+PC90ZD48L3RyPiI7DQogICAgICAgIGZvcigkaT0wOyRpP CRzcWwtPm51bV9yb3dzOyRpKyspDQogICAgICAgICB7DQogICAgICAgICBmb3JlYWNoKCRzcWwtPnJvd3N bJGldIGFzICRrPT4kdikgJHNxbC0+cm93c1skaV1bJGtdID0gaHRtbHNwZWNpYWxjaGFycygkdixFTlRfU VVPVEVTKTsNCiAgICAgICAgICR2YWx1ZXMgPSBAaW1wbG9kZSgiJm5ic3A7PC9mb250PjwvdGQ+PHRkPjx mb250IGZhY2U9dGFob21hIHNpemU9LTI+Jm5ic3A7Iiwkc3FsLT5yb3dzWyRpXSk7DQogICAgICAgICBlY 2hvICc8dHI+PHRkPjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+Jm5ic3A7Jy4kdmFsdWVzLicmbmJzcDs 8L2ZvbnQ+PC90ZD48L3RyPic7DQogICAgICAgICB9DQogICAgICAgIGVjaG8gIjwvdGFibGU+IjsNCiAgI CAgICAgfQ0KICAgICAgIGJyZWFrOw0KICAgICAgIGNhc2UgJzInOg0KICAgICAgICRhciA9ICRzcWwtPmF mZmVjdGVkX3Jvd3MoKT8oJHNxbC0+YWZmZWN0ZWRfcm93cygpKTooJzAnKTsNCiAgICAgICBlY2hvICI8d GFibGUgd2lkdGg9MTAwJT48dHI+PHRkPjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+YWZmZWN0ZWQgcm9 3cyA6IDxiPiIuJGFyLiI8L2I+PC9mb250PjwvdGQ+PC90cj48L3RhYmxlPjxicj4iOw0KICAgICAgIGJyZ WFrOw0KICAgICAgIH0NCiAgICAgIH0NCiAgICAgfQ0KICAgIH0NCiAgIH0NCiBlY2hvICI8YnI+PGZvcm0 gbmFtZT1mb3JtIG1ldGhvZD1QT1NUPiI7DQogZWNobyBpbignaGlkZGVuJywnZGInLDAsJF9QT1NUWydkY iddKTsNCiBlY2hvIGluKCdoaWRkZW4nLCdkYl9zZXJ2ZXInLDAsJF9QT1NUWydkYl9zZXJ2ZXInXSk7DQo gZWNobyBpbignaGlkZGVuJywnZGJfcG9ydCcsMCwkX1BPU1RbJ2RiX3BvcnQnXSk7DQogZWNobyBpbigna GlkZGVuJywnbXlzcWxfbCcsMCwkX1BPU1RbJ215c3FsX2wnXSk7DQogZWNobyBpbignaGlkZGVuJywnbXl zcWxfcCcsMCwkX1BPU1RbJ215c3FsX3AnXSk7DQogZWNobyBpbignaGlkZGVuJywnbXlzcWxfZGInLDAsJ F9QT1NUWydteXNxbF9kYiddKTsNCiBlY2hvIGluKCdoaWRkZW4nLCdjbWQnLDAsJ2RiX3F1ZXJ5Jyk7DQo gZWNobyAiPGRpdiBhbGlnbj1jZW50ZXI+IjsNCiBlY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yP jxiPkJhc2U6IDwvYj48aW5wdXQgdHlwZT10ZXh0IG5hbWU9bXlzcWxfZGIgdmFsdWU9XCIiLiRzcWwtPmJ hc2UuIlwiPjwvZm9udD48YnI+IjsNCiBlY2hvICI8dGV4dGFyZWEgY29scz02NSByb3dzPTEwIG5hbWU9Z GJfcXVlcnk+Ii4oIWVtcHR5KCRfUE9TVFsnZGJfcXVlcnknXSk/KCRfUE9TVFsnZGJfcXVlcnknXSk6KCJ TSE9XIERBVEFCQVNFUztcblNFTEVDVCAqIEZST00gdXNlcjsiKSkuIjwvdGV4dGFyZWE+PGJyPjxpbnB1d CB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIiBSdW4gU1FMIHF1ZXJ5IFwiPjwvZGl2Pjxicj4 8YnI+IjsNCiBlY2hvICI8L2Zvcm0+IjsNCiBlY2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZ mFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s 8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7IGRpZSgpOw0KIH0NCmlmKGlzc2V0KCRfR0VUWydkZWxldGUnX SkpDQogew0KICAgQHVubGluayhfX0ZJTEVfXyk7DQogfQ0KaWYoaXNzZXQoJF9HRVRbJ3RtcCddKSkNCiB 7DQogICBAdW5saW5rKCIvdG1wL2JkcGwiKTsNCiAgIEB1bmxpbmsoIi90bXAvYmFjayIpOw0KICAgQHVub GluaygiL3RtcC9iZCIpOw0KICAgQHVubGluaygiL3RtcC9iZC5jIik7DQogICBAdW5saW5rKCIvdG1wL2R wIik7DQogICBAdW5saW5rKCIvdG1wL2RwYyIpOw0KICAgQHVubGluaygiL3RtcC9kcGMuYyIpOw0KIH0NC mlmKGlzc2V0KCRfR0VUWydwaHBpbmknXSkpDQp7DQplY2hvICRoZWFkOw0KZnVuY3Rpb24gVV92YWx1ZSg kdmFsdWUpDQogew0KIGlmICgkdmFsdWUgPT0gJycpIHJldHVybiAnPGk+bm8gdmFsdWU8L2k+JzsNCiBpZ iAoQGlzX2Jvb2woJHZhbHVlKSkgcmV0dXJuICR2YWx1ZSA/ICdUUlVFJyA6ICdGQUxTRSc7DQogaWYgKCR 2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICdOVUxMJzsNCiBpZiAoQGlzX29iamVjdCgkdmFsdWUpKSAkdmFsd WUgPSAoYXJyYXkpICR2YWx1ZTsNCiBpZiAoQGlzX2FycmF5KCR2YWx1ZSkpDQogew0KIEBvYl9zdGFydCg pOw0KIHByaW50X3IoJHZhbHVlKTsNCiAkdmFsdWUgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7DQogQG9iX2VuZ F9jbGVhbigpOw0KIH0NCiByZXR1cm4gVV93b3Jkd3JhcCgoc3RyaW5nKSAkdmFsdWUpOw0KIH0NCmZ1bmN 0aW9uIFVfd29yZHdyYXAoJHN0cikNCiB7DQogJHN0ciA9IEB3b3Jkd3JhcChAaHRtbHNwZWNpYWxjaGFyc ygkc3RyKSwgMTAwLCAnPHdiciAvPicsIHRydWUpOw0KIHJldHVybiBAcHJlZ19yZXBsYWNlKCchKCZbXjt dKik8d2JyIC8+KFteO10qOykhJywgJyQxJDI8d2JyIC8+JywgJHN0cik7DQogfQ0KaWYgKEBmdW5jdGlvb l9leGlzdHMoJ2luaV9nZXRfYWxsJykpDQogew0KICRyID0gJyc7DQogZWNobyAnPHRhYmxlIHdpZHRoPTE wMCU+JywgJzx0cj48dGQgYmdjb2xvcj0jMDAwMDAwPjxmb250IGZhY2U9dGFob21hIHNpemU9LTIgY29sb 3I9cmVkPjxkaXYgYWxpZ249Y2VudGVyPjxiPkRpcmVjdGl2ZTwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48dGQ gYmdjb2xvcj0jMDAwMDAwPjxmb250IGZhY2U9dGFob21hIHNpemU9LTIgY29sb3I9cmVkPjxkaXYgYWxpZ 249Y2VudGVyPjxiPkxvY2FsIFZhbHVlPC9iPjwvZGl2PjwvZm9udD48L3RkPjx0ZCBiZ2NvbG9yPSMwMDA wMDA+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGRpdiBhbGlnbj1jZW50ZXI+PGI+T WFzdGVyIFZhbHVlPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiBmb3JlYWNoIChAaW5pX2dldF9 hbGwoKSBhcyAka2V5PT4kdmFsdWUpDQogIHsNCiAgJHIgLj0gJzx0cj48dGQ+Jy53cygzKS4nPGZvbnQgZ mFjZT10YWhvbWEgc2l6ZT0tMj48Yj4nLiRrZXkuJzwvYj48L2ZvbnQ+PC90ZD48dGQ+PGZvbnQgZmFjZT1 0YWhvbWEgc2l6ZT0tMj48ZGl2IGFsaWduPWNlbnRlcj48Yj4nLlVfdmFsdWUoJHZhbHVlWydsb2NhbF92Y Wx1ZSddKS4nPC9iPjwvZGl2PjwvZm9udD48L3RkPjx0ZD48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjx kaXYgYWxpZ249Y2VudGVyPjxiPicuVV92YWx1ZSgkdmFsdWVbJ2dsb2JhbF92YWx1ZSddKS4nPC9iPjwvZ Gl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiAgfQ0KIGVjaG8gJHI7DQogZWNobyAnPC90YWJsZT4nOw0KIH0 NCmVjaG8gIjxicj48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPlsgP GEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+Ijs NCmRpZSgpOw0KfQ0KaWYoaXNzZXQoJF9HRVRbJ2NwdSddKSkNCiB7DQogICBlY2hvICRoZWFkOw0KICAgZ

WNobyAnPHRhYmxlIHdpZHRoPTEwMCU+PHRyPjx0ZCBiZ2NvbG9yPSMwMDAwMDA+PGRpdiBhbGlnbj1jZW5 0ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGI+Q1BVPC9iPjwvZm9udD48L2Rpd j48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9MTAwJT4nOw0KICAgJGNwdWYgPSBAZmlsZS giY3B1aW5mbyIpOw0KICAgaWYoJGNwdWYpDQogICAgew0KICAgICAgJGMgPSBAc2l6ZW9mKCRjcHVmKTsN CiAgICAgIGZvcigkaT0wOyRpPCRjOyRpKyspDQogICAgICAgIHsNCiAgICAgICAgICAkaW5mbyA9IEBleH Bsb2RlKCI6IiwkY3B1ZlskaV0pOw0KICAgICAgICAgIGlmKCRpbmZvWzFdPT0iIil7ICRpbmZvWzFdPSIt LS0iOyB9DQogICAgICAgICAgJHIgLj0gJzx0cj48dGQ+Jy53cygzKS4nPGZvbnQgZmFjZT10YWhvbWEgc2 l6ZT0tMj48Yj4nLnRyaW0oJGluZm9bMF0pLic8L2I+PC9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9dGFo b21hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+Jy50cmltKCRpbmZvWzFdKS4nPC9iPjwvZGl2Pj wvZm9udD48L3RkPjwvdHI+JzsNCiAgICAgICAgfQ0KICAgICAgZWNobyAkcjsNCiAgICB9DQogICBlbHNl DQogICAgew0KICAgICAgZWNobyAnPHRyPjx0ZD4nLndzKDMpLic8ZGl2IGFsaWduPWNlbnRlcj48Zm9udC BmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiAtLS0gPC9iPjwvZm9udD48L2Rpdj48L3RkPjwvdHI+JzsNCiAg ICB9DQogICBlY2hvICc8L3RhYmxlPic7DQogICBlY2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbn QgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJB Q0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQogICBkaWUoKTsNCiB9DQppZihpc3NldCgkX0dFVFsnbW VtJ10pKQ0KIHsNCiAgIGVjaG8gJGhlYWQ7DQogICBlY2hvICc8dGFibGUgd2lkdGg9MTAwJT48dHI+PHRk IGJnY29sb3I9IzAwMDAwMD48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yIG NvbG9yPXJlZD48Yj5NRU1PUlk8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3 aWR0aD0xMDAlPic7DQogICAkbWVtZiA9IEBmaWxlKCJtZW1pbmZvIik7DQogICBpZigkbWVtZikNCiAgIC B7DQogICAgICAkYyA9IHNpemVvZigkbWVtZik7DQogICAgICBmb3IoJGk9MDskaTwkYzskaSsrKQ0KICAg ICAgICB7DQogICAgICAgICAgJGluZm8gPSBleHBsb2RlKCI6IiwkbWVtZlskaV0pOw0KICAgICAgICAgIG lmKCRpbmZvWzFdPT0iIil7ICRpbmZvWzFdPSItLS0iOyB9DQogICAgICAgICAgJHIgLj0gJzx0cj48dGQ+ Jy53cygzKS4nPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj4nLnRyaW0oJGluZm9bMF0pLic8L2I+PC 9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+ Jy50cmltKCRpbmZvWzFdKS4nPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiAgICAgICAgfQ0KIC AgICAgZWNobyAkcjsNCiAgICB9DQogICBlbHNlDQogICAgew0KICAgICAgZWNobyAnPHRyPjx0ZD4nLndz KDMpLic8ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiAtLS0gPC9iPj wvZm9udD48L2Rpdj48L3RkPjwvdHI+JzsNCiAgICB9DQogICBlY2hvICc8L3RhYmxlPic7DQogICBlY2hv ICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZW Y9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQogICBk aWUoKTsNCiB9DQokbGFuZz1hcnJheSgNCidlbmdfdGV4dDEnID0+J0V4ZWN1dGVkIGNvbW1hbmQnLA0KJ2 VuZ190ZXh0MicgPT4nRXhlY3V0ZSBjb21tYW5kIG9uIHNlcnZlcicsDQonZW5nX3RleHQzJyA9PidSdW4g Y29tbWFuZCcsDQonZW5nX3RleHQ0JyA9PidXb3JrIGRpcmVjdG9yeScsDQonZW5nX3RleHQ1JyA9PidVcG xvYWQgZmlsZXMgb24gc2VydmVyJywNCidlbmdfdGV4dDYnID0+J0xvY2FsIGZpbGUnLA0KJ2VuZ190ZXh0 NycgPT4nQWxpYXNlcycsDQonZW5nX3RleHQ4JyA9PidTZWxlY3QgYWxpYXMnLA0KJ2VuZ19idXR0MScgPT 4nRXhlY3V0ZScsDQonZW5nX2J1dHQyJyA9PidVcGxvYWQnLA0KJ2VuZ190ZXh0OScgPT4nQmluZCBwb3J0 IHRvIC9iaW4vYmFzaCcsDQonZW5nX3RleHQxMCc9PidQb3J0JywNCidlbmdfdGV4dDExJz0+J1Bhc3N3b3 JkIGZvciBhY2Nlc3MnLA0KJ2VuZ19idXR0MycgPT4nQmluZCcsDQonZW5nX3RleHQxMic9PidiYWNrLWNv bm5lY3QnLA0KJ2VuZ190ZXh0MTMnPT4nSVAnLA0KJ2VuZ190ZXh0MTQnPT4nUG9ydCcsDQonZW5nX2J1dH Q0JyA9PidDb25uZWN0JywNCidlbmdfdGV4dDE1Jz0+J1VwbG9hZCBmaWxlcyBmcm9tIHJlbW90ZSBzZXJ2 ZXInLA0KJ2VuZ190ZXh0MTYnPT4nV2l0aCcsDQonZW5nX3RleHQxNyc9PidSZW1vdGUgZmlsZScsDQonZW 5nX3RleHQxOCc9PidMb2NhbCBmaWxlJywNCidlbmdfdGV4dDE5Jz0+J0V4cGxvaXRzJywNCidlbmdfdGV4 dDIwJz0+J1VzZScsDQonZW5nX3RleHQyMSc9PicmbmJzcDtOZXcgbmFtZScsDQonZW5nX3RleHQyMic9Pi dkYXRhcGlwZScsDQonZW5nX3RleHQyMyc9PidMb2NhbCBwb3J0JywNCidlbmdfdGV4dDI0Jz0+J1JlbW90 ZSBob3N0JywNCidlbmdfdGV4dDI1Jz0+J1JlbW90ZSBwb3J0JywNCidlbmdfdGV4dDI2Jz0+J1VzZScsDQ onZW5nX2J1dHQ1JyA9PidSdW4nLA0KJ2VuZ190ZXh0MjgnPT4nV29yayBpbiBzYWZlX21vZGUnLA0KJ2Vu Z190ZXh0MjknPT4nQUNDRVNTIERFTklFRCcsDQonZW5nX2J1dHQ2JyA9PidDaGFuZ2UnLA0KJ2VuZ190ZX h0MzAnPT4nQ2F0IGZpbGUnLA0KJ2VuZ19idXR0NycgPT4nU2hvdycsDQonZW5nX3RleHQzMSc9PidGaWxl IG5vdCBmb3VuZCcsDQonZW5nX3RleHQzMic9PidFdmFsIFBIUCBjb2RlJywNCidlbmdfdGV4dDMzJz0+J1 Rlc3QgYnlwYXNzIG9wZW5fYmFzZWRpciB3aXRoIGNVUkwgZnVuY3Rpb25zJywNCidlbmdfYnV0dDgnID0+ J1Rlc3QnLA0KJ2VuZ190ZXh0MzQnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlIHdpdGggaW5jbHVkZSBmdW 5jdGlvbicsDQonZW5nX3RleHQzNSc9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUgd2l0aCBsb2FkIGZpbGUg aW4gbXlzcWwnLA0KJ2VuZ190ZXh0MzYnPT4nRGF0YWJhc2UgLiBUYWJsZScsDQonZW5nX3RleHQzNyc9Pi dMb2dpbicsDQonZW5nX3RleHQzOCc9PidQYXNzd29yZCcsDQonZW5nX3RleHQzOSc9PidEYXRhYmFzZScs DQonZW5nX3RleHQ0MCc9PidEdW1wIGRhdGFiYXNlIHRhYmxlJywNCidlbmdfYnV0dDknID0+J0R1bXAnLA 0KJ2VuZ190ZXh0NDEnPT4nU2F2ZSBkdW1wIGluIGZpbGUnLA0KJ2VuZ190ZXh0NDInPT4nRWRpdCBmaWxl cycsDQonZW5nX3RleHQ0Myc9PidGaWxlIGZvciBlZGl0JywNCidlbmdfYnV0dDEwJz0+J1NhdmUnLA0KJ2 VuZ190ZXh0NDQnPT4nQ2FuXCd0IGVkaXQgZmlsZSEgT25seSByZWFkIGFjY2VzcyEnLA0KJ2VuZ190ZXh0

NDUnPT4nRmlsZSBzYXZlZCcsDQonZW5nX3RleHQ0Nic9PidTaG93IHBocGluZm8oKScsDQonZW5nX3RleH Q0Nyc9PidTaG93IHZhcmlhYmxlcyBmcm9tIHBocC5pbmknLA0KJ2VuZ190ZXh0NDgnPT4nRGVsZXRlIHRl bXAgZmlsZXMnLA0KJ2VuZ19idXR0MTEnPT4nRWRpdCBmaWxlJywNCidlbmdfdGV4dDQ5Jz0+J0RlbGV0ZS BzY3JpcHQgZnJvbSBzZXJ2ZXInLA0KJ2VuZ190ZXh0NTAnPT4nVmlldyBjcHUgaW5mbycsDQonZW5nX3Rl eHQ1MSc9PidWaWV3IG1lbW9yeSBpbmZvJywNCidlbmdfdGV4dDUyJz0+J0ZpbmQgdGV4dCcsDQonZW5nX3 RleHQ1Myc9PidJbiBkaXJzJywNCidlbmdfdGV4dDU0Jz0+J0ZpbmQgdGV4dCBpbiBmaWxlcycsDQonZW5n X2J1dHQxMic9PidGaW5kJywNCidlbmdfdGV4dDU1Jz0+J09ubHkgaW4gZmlsZXMnLA0KJ2VuZ190ZXh0NT YnPT4nTm90aGluZyA6KCcsDQonZW5nX3RleHQ1Nyc9PidDcmVhdGUvRGVsZXRlIEZpbGUvRGlyJywNCidl bmdfdGV4dDU4Jz0+J25hbWUnLA0KJ2VuZ190ZXh0NTknPT4nZmlsZScsDQonZW5nX3RleHQ2MCc9PidkaX InLA0KJ2VuZ19idXR0MTMnPT4nQ3JlYXRlL0RlbGV0ZScsDQonZW5nX3RleHQ2MSc9PidGaWxlIGNyZWF0 ZWQnLA0KJ2VuZ190ZXh0NjInPT4nRGlyIGNyZWF0ZWQnLA0KJ2VuZ190ZXh0NjMnPT4nRmlsZSBkZWxldG VkJywNCidlbmdfdGV4dDY0Jz0+J0RpciBkZWxldGVkJywNCidlbmdfYnV0dDY1Jz0+J0NyZWF0ZScsDQon ZW5nX3RleHQ2NSc9PidDcmVhdGUnLA0KJ2VuZ190ZXh0NjYnPT4nRGVsZXRlJywNCidlbmdfdGV4dDY3Jz 0+J0Nob3duL0NoZ3JwL0NobW9kJywNCidlbmdfdGV4dDY4Jz0+J0NvbW1hbmQnLA0KJ2VuZ190ZXh0Njkn PT4ncGFyYW0xJywNCidlbmdfdGV4dDcwJz0+J3BhcmFtMicsDQonZW5nX3RleHQ3MSc9PiJTZWNvbmQgY2 9tbWFuZHMgcGFyYW0gaXM6XHJcbi0gZm9yIENIT1dOIC0gbmFtZSBvZiBuZXcgb3duZXIgb3IgVUlEXHJc bi0gZm9yIENIR1JQIC0gZ3JvdXAgbmFtZSBvciBHSURcclxuLSBmb3IgQ0hNT0QgLSAwNzc3LCAwNzU1Li 4uIiwNCidlbmdfdGV4dDcyJz0+J1RleHQgZm9yIGZpbmQnLA0KJ2VuZ190ZXh0NzMnPT4nRmluZCBpbiBm b2xkZXInLA0KJ2VuZ190ZXh0NzQnPT4nRmluZCBpbiBmaWxlcycsDQonZW5nX3RleHQ3NSc9PicqIHlvdS BjYW4gdXNlIHJlZ2V4cCcsDQonZW5nX3RleHQ3Nic9PidTZWFyY2ggdGV4dCBpbiBmaWxlcyB2aWEgZmlu ZCcsDQonZW5nX3RleHQ4MCc9PidUeXBlJywNCidlbmdfdGV4dDgxJz0+J05ldCcsDQonZW5nX3RleHQ4Mi c9PidEYXRhYmFzZXMnLA0KJ2VuZ190ZXh0ODMnPT4nUnVuIFNRTCBxdWVyeScsDQonZW5nX3RleHQ4NCc9 PidTUUwgcXVlcnknLA0KJ2VuZ190ZXh0ODUnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlIHdpdGggY29tbW FuZHMgZXhlY3V0ZSB2aWEgTVNTUUwgc2VydmVyJywNCidlbmdfdGV4dDg2Jz0+J0Rvd25sb2FkIGZpbGVz IGZyb20gc2VydmVyJywNCidlbmdfYnV0dDE0Jz0+J0Rvd25sb2FkJywNCidlbmdfdGV4dDg3Jz0+J0Rvd2 5sb2FkIGZpbGVzIGZyb20gcmVtb3RlIGZ0cC1zZXJ2ZXInLA0KJ2VuZ190ZXh0ODgnPT4nRlRQLXNlcnZl cjpwb3J0JywNCidlbmdfdGV4dDg5Jz0+J0ZpbGUgb24gZnRwJywNCidlbmdfdGV4dDkwJz0+J1RyYW5zZm VyIG1vZGUnLA0KJ2VuZ190ZXh0OTEnPT4nQXJjaGl2YXRpb24nLA0KJ2VuZ190ZXh0OTInPT4nd2l0aG91 dCBhcmNoaXZhdGlvbicsDQonZW5nX3RleHQ5Myc9PidGVFAnLA0KJ2VuZ190ZXh0OTQnPT4nRlRQLWJydX RlZm9yY2UnLA0KJ2VuZ190ZXh0OTUnPT4nVXNlcnMgbGlzdCcsDQonZW5nX3RleHQ5Nic9PidDYW5cJ3Qg Z2V0IHVzZXJzIGxpc3QnLA0KJ2VuZ190ZXh0OTcnPT4nY2hlY2tlZDogJywNCidlbmdfdGV4dDk4Jz0+J3 N1Y2Nlc3M6ICcsDQonZW5nX3RleHQ5OSc9PicqIHVzZSB1c2VybmFtZSBmcm9tIC9ldGMvcGFzc3dkIGZv ciBmdHAgbG9naW4gYW5kIHBhc3N3b3JkJywNCidlbmdfdGV4dDEwMCc9PidTZW5kIGZpbGUgdG8gcmVtb3 RlIGZ0cCBzZXJ2ZXInLA0KJ2VuZ190ZXh0MTAxJz0+J1VzZSByZXZlcnNlICh1c2VyIC0+IHJlc3UpIGxv Z2luIGZvciBwYXNzd29yZCcsDQonZW5nX3RleHQxMDInPT4nTWFpbCcsDQonZW5nX3RleHQxMDMnPT4nU2 VuZCBlbWFpbCcsDQonZW5nX3RleHQxMDQnPT4nU2VuZCBmaWxlIHRvIGVtYWlsJywNCidlbmdfdGV4dDEw NSc9PidUbycsDQonZW5nX3RleHQxMDYnPT4nRnJvbScsDQonZW5nX3RleHQxMDcnPT4nU3ViaicsDQonZW 5nX2J1dHQxNSc9PidTZW5kJywNCidlbmdfdGV4dDEwOCc9PidNYWlsJywNCidlbmdfdGV4dDEwOSc9PidI aWRlJywNCidlbmdfdGV4dDExMCc9PidTaG93JywNCidlbmdfdGV4dDExMSc9PidTUUwtU2VydmVyIDogUG 9ydCcsDQonZW5nX3RleHQxMTInPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlIHdpdGggZnVuY3Rpb24gbWJf c2VuZF9tYWlsJywNCidlbmdfdGV4dDExMyc9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUsIHZpZXcgZGlyIG xpc3QgdmlhIGltYXBfbGlzdCcsDQonZW5nX3RleHQxMTQnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlLCB2 aWV3IGZpbGUgY29udGVzdCB2aWEgaW1hcF9ib2R5JywNCidlbmdfdGV4dDExNSc9PidUZXN0IGJ5cGFzcy BzYWZlX21vZGUsIGNvcHkgZmlsZSB2aWEgY29tcHJlc3MuemxpYjovLyBpbiBmdW5jdGlvbiBjb3B5KCkn LA0KJ2VuZ190ZXh0MTE2Jz0+J0NvcHkgZnJvbScsDQonZW5nX3RleHQxMTcnPT4ndG8nLA0KJ2VuZ190ZX h0MTE4Jz0+J0ZpbGUgY29waWVkJywNCidlbmdfdGV4dDExOSc9PidDYW50IGNvcHkgZmlsZScsDQonZW5n X2VycjAnPT4nRXJyb3IhIENhblwndCB3cml0ZSBpbiBmaWxlICcsDQonZW5nX2VycjEnPT4nRXJyb3IhIE NhblwndCByZWFkIGZpbGUgJywNCidlbmdfZXJyMic9PidFcnJvciEgQ2FuXCd0IGNyZWF0ZSAnLA0KJ2Vu Z19lcnIzJz0+J0Vycm9yISBDYW5cJ3QgY29ubmVjdCB0byBmdHAnLA0KJ2VuZ19lcnI0Jz0+J0Vycm9yIS BDYW5cJ3QgbG9naW4gb24gZnRwIHNlcnZlcicsDQonZW5nX2VycjUnPT4nRXJyb3IhIENhblwndCBjaGFu Z2UgZGlyIG9uIGZ0cCcsDQonZW5nX2VycjYnPT4nRXJyb3IhIENhblwndCBzZW50IG1haWwnLA0KJ2VuZ1 9lcnI3Jz0+J01haWwgc2VuZCcsDQonZW5nX3RleHQyMDAnPT4ncmVhZCBmaWxlIGZyb20gdnVsIGNvcHko KScsDQonZW5nX3RleHQyMDInPT4nd2hlcmUgZmlsZSBpbiBzZXJ2ZXInLA0KJ2VuZ190ZXh0MzAwJz0+J3 JlYWQgZmlsZSBmcm9tIHZ1bCBjdXJsKCknLA0KJ2VuZ190ZXh0MjAzJz0+J3JlYWQgZmlsZSBmcm9tIHZ1 bCBpbmlfcmVzdG9yZSgpJywNCidlbmdfdGV4dDIwNCc9Pid3cml0ZSBzaGVsbCBmcm9tIHZ1bCBlcnJvcl 9sb2coKScsDQonZW5nX3RleHQyMDUnPT4nd3JpdGUgc2hlbGwgaW4gdGhpcyBzaWRlJywNCidlbmdfdGV4 dDIwNic9PidyZWFkIGRpcicsDQonZW5nX3RleHQyMDcnPT4ncmVhZCBkaXIgZnJvbSB2dWwgcmVnX2dsb2 InLA0KJ2VuZ190ZXh0MjA4Jz0+J2V4ZWN1dGUgd2l0aCBmdW5jdGlvbicsDQonZW5nX3RleHQyMDknPT4n

cmVhZCBkaXIgZnJvbSB2dWwgcm9vdCcsDQonZW5nX3RleHQyMTAnPT4nRGVaZW5kZXIgJywNCidlbmdfdG V4dDIxMSc9Pic6OnNhZmVfbW9kZSBvZmY6OicsDQonZW5nX3RleHQyMTInPT4nY29sc2Ugc2FmZV9tb2Rl IHdpdGggcGhwLmluaScsDQonZW5nX3RleHQyMTMnPT4nY29sc2Ugc2VjdXJpdHlfbW9kIHdpdGggLmh0YW NjZXNzJywNCidlbmdfdGV4dDIxNCc9PidBZG1pbiBuYW1lJywNCidlbmdfdGV4dDIxNSc9PidJUkMgc2Vy dmVyICcsDQonZW5nX3RleHQyMTYnPT4nI3Jvb20gbmFtZScsDQonZW5nX3RleHQyMTcnPT4nc2VydmVyJy wNCidlbmdfdGV4dDIxOCc9Pid3cml0ZSBpbmkucGhwIGZpbGUgdG8gY2xvc2Ugc2FmZV9tb2RlIHdpdGgg aW5pX3Jlc3RvcmUgdnVsJywNCidlbmdfdGV4dDIxOSc9PidHZXQgZmlsZSB0byBzZXJ2ZXIgaW4gc2FmZV 9tb2RlIGFuZCBjaGFuZ2UgbmFtZScsDQonZW5nX3RleHQyMjAnPT4nc2hvdyBmaWxlIHdpdGggc3ltbGlu ayB2dWwnLA0KJ2VuZ190ZXh0MjIxJz0+J3ppcCBmaWxlIGluIHNlcnZlciB0byBkb3dubG9hZCcsD QonYXJfdGV4dDIyMic9PicyIHN5bWxpbmsgdXNlIHZ1bCcsDQonYXJfdGV4dDIyMyc9PidyZWFkIGZpbGU gZnJvbSBmdW5jdXRpb24nLA0KJ2FyX3RleHQyMjQnPT4ncmVhZCBmaWxlIGZyb20gUExVR0lOICcsDQoNC i8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0 tLS0tLSAqLw0KJ2FyX3RleHQxJyA9PifH4cfj0SDH4ePk3dAnLA0KJ2FyX3RleHQyJyA9PifK5N3t0CDH4 cfmx+PRIN3tIMfh0+3R3dEnLA0KJ2FyX3RleHQzJyA9PifH49Egx+HK1Nvt4ScsDQonYXJfdGV4dDQnID0 +J+Pfx+Qg2uPh3yDH4cfkINrh7CDH4dPt0d3RJywNCidhcl90ZXh0NScgPT4n0d3aIOPh3SDH4ewgx+HT7 dHd0ScsDQonYXJfdGV4dDYnID0+J+PTx9Eg4+Hd3ycsDQonYXJfdGV4dDcnID0+J8fmx+PRIMzH5dLlJyw NCidhcl90ZXh0OCcgPT4nx87K0SDH4cfj0ScsDQonYXJfYnV0dDEnID0+J8rk3e3QJywNCidhcl9idXR0M icgPT4n0d3c2icsDQonYXJfdGV4dDknID0+J93KzSDI5tHKIN3tIMfh0+3R3dEg2uHsIC9iaW4vYmFzaCc sDQonYXJfdGV4dDEwJz0+J8jc5tHKJywNCidhcl90ZXh0MTEnPT4nyMfT5tHPIOHhz87m4ScsDQonYXJfY nV0dDMnID0+J93KzScsDQonYXJfdGV4dDEyJz0+J8PK1dzH4SDa3N/T7ScsDQonYXJfdGV4dDEzJz0+J8f hx+0gyO0nLA0KJ2FyX3RleHQxNCc9PifH4ePk3dAnLA0KJ2FyX2J1dHQ0JyA9PifDytzVx+EnLA0KJ2FyX 3RleHQxNSc9PifTzcgg4+Hdx8ogx+HsIMfh0+3R3dEnLA0KJ2FyX3RleHQxNic9Pifa5CDY0e3eJywNCid hcl90ZXh0MTcnPT4n0cfI2CDH4ePh3ScsDQonYXJfdGV4dDE4Jz0+J+Pfx+Qg5NLm4eUnLA0KJ2FyX3Rle HQxOSc9PidFeHBsb2l0cycsDQonYXJfdGV4dDIwJz0+J8XTys7P4ycsDQonYXJfdGV4dDIxJz0+J8fhx9P jIMfhzM/tzycsDQonYXJfdGV4dDIyJz0+J8fkyObIIMfhyO3H5MfKJywNCidhcl90ZXh0MjMnPT4nx+HI5 tHKIMfh483h7ScsDQonYXJfdGV4dDI0Jz0+J8fh0+3R3dEgx+HI2u3PJywNCidhcl90ZXh0MjUnPT4nx+H j5N3QIMfhyNrtzycsDQonYXJfdGV4dDI2Jz0+J8fTys7P4ycsDQonYXJfYnV0dDUnID0+J8rU2+3hJywNC idhcl90ZXh0MjgnPT4nx+Ha4+Eg3e0gx+Hm1togx+HH4+QnLA0KJ2FyX3RleHQyOSc9Pifj4+Tm2iDH4c/ O5uEnLA0KJ2FyX2J1dHQ2JyA9PifK2+3RJywNCidhcl90ZXh0MzAnPT4n2tHWIOPh3ScsDQonYXJfYnV0d DcnID0+J9rR1icsDQonYXJfdGV4dDMxJz0+J8fh4+HdINvt0SDj5szmzycsDQonYXJfdGV4dDMyJz0+J8r k3e3QIN/mzyBwaHAg2uQg2NHt3iDPx+HlIGV2YWwnLA0KJ2FyX3RleHQzMyc9PidUZXN0IGJ5cGFzcyBvc GVuX2Jhc2VkaXIgd2l0aCBjVVJMIGZ1bmN0aW9ucycsDQonYXJfYnV0dDgnID0+J8fOysjH0ScsDQonYXJ fdGV4dDM0Jz0+J97Rx8blIMfh4+Hdx8og2uQg2NHt3iDL29HlIGluY2x1ZGUnLA0KJ2FyX3RleHQzNSc9P ife0cfG5SDH4ePh3cfKINrkINjR7d4gy9vR5SBNeXNxbCcsDQonYXJfdGV4dDM2Jz0+J8fh3sfaz8kgLiD H4czP5uEnLA0KJ2FyX3RleHQzNyc9PifH0+Mgx+Hj08rOz+MnLA0KJ2FyX3RleHQzOCc9Piff4ePJIMfh4 9Hm0ScsDQonYXJfdGV4dDM5Jz0+J8fh3sfaz8knLA0KJ2FyX3RleHQ0MCc9Pifk087JIOPkIMzPx+bhIMf h3sfaz8knLA0KJ2FyX2J1dHQ5JyA9Pifk087JJywNCidhcl90ZXh0NDEnPT4nzd3ZIMfh5NPOySDd7ScsD QonYXJfdGV4dDQyJz0+J8raz+3hIMfh4+Hdx8onLA0KJ2FyX3RleHQ0Myc9PifH4ePh3SDH4ePRx88gytr P7eHlJywNCidhcl9idXR0MTAnPT4nzd3ZJywNCidhcl90ZXh0NDQnPT4n4cfK08rY7dogx+HK2s/t4SDa4 ewg5dDHIMfh4+HdIN3e2CDK3tHDJywNCidhcl90ZXh0NDUnPT4nyuMgx+HN3dknLA0KJ2FyX3RleHQ0Nic 9Pifa0dYgcGhwaW5mbygpJywNCidhcl90ZXh0NDcnPT4n0cTtySDH4ePK2+3Rx8og3e0gcGhwLmluaScsD QonYXJfdGV4dDQ4Jz0+J+PTzSDj4d3HyiDH4dwgdGVtcCcsDQonYXJfYnV0dDExJz0+J8rN0e3RIMfh4+H dJywNCidhcl90ZXh0NDknPT4n49PNIMfh09/RyMog4+Qgx+HT7dHd0ScsDQonYXJfdGV4dDUwJz0+J9rR1 iDj2uHm48fKIMfh0Mff0ckgx+HRxu3T7cknLA0KJ2FyX3RleHQ1MSc9Pifa0dYg49rh5uPHyiDH4dDH39H JJywNCidhcl90ZXh0NTInPT4nyM3LIOTVJywNCidhcl90ZXh0NTMnPT4n3e0gx+Hj08fRJywNCidhcl90Z Xh0NTQnPT4nyM3LINrkIOTVIN3tIMfh4+Hdx8onLA0KJ2FyX2J1dHQxMic9PifIzcsnLA0KJ2FyX3RleHQ 1NSc9Pifd3tgg3e0gx+Hj4d3HyicsDQonYXJfdGV4dDU2Jz0+J+HH7ebMzyA6KCcsDQonYXJfdGV4dDU3J z0+J8fk1MfBL+PTzSDj4d0v48zhzycsDQonYXJfdGV4dDU4Jz0+J8fhx9PjJywNCidhcl90ZXh0NTknPT4 n4+HdJywNCidhcl90ZXh0NjAnPT4n48zhzycsDQonYXJfYnV0dDEzJz0+J8Xk1MfBIC/j080nLA0KJ2FyX 3RleHQ2MSc9PifK4yDF5NTHwSDH4ePh3ScsDQonYXJfdGV4dDYyJz0+J8rjIMXk1MfBIMfh48zhzycsDQo nYXJfdGV4dDYzJz0+J8rjIOPTzSDH4ePh3ScsDQonYXJfdGV4dDY0Jz0+J8rjIOPTzSDH4ePM4c8nLA0KJ 2FyX2J1dHQ2NSc9PifF5NTHwScsDQonYXJfdGV4dDY2Jz0+J+PTzScsDQonYXJfdGV4dDY3Jz0+J8fhytX R7c0vx+Hj08rOz+Mvx+HjzOPm2sknLA0KJ2FyX3RleHQ2OCc9PifH49EnLA0KJ2FyX3RleHQ2OSc9PifF0 +Mgx+Hj4d0nLA0KJ2FyX3RleHQ3MCc9PifH4crV0e3NJywNCidhcl90ZXh0NzEnPT4iU2Vjb25kIGNvbW1 hbmRzIHBhcmFtIGlzOlxyXG4tIGZvciBDSE9XTiAtIG5hbWUgb2YgbmV3IG93bmVyIG9yIFVJRFxyXG4tI GZvciBDSEdSUCAtIGdyb3VwIG5hbWUgb3IgR0lEXHJcbi0gZm9yIENITU9EIC0gMDc3NywgMDc1NS4uLiI sDQonYXJfdGV4dDcyJz0+J8fh5NUgx+Hj0cfPJywNCidhcl90ZXh0NzMnPT4nyM3LIN3tIMfh48zhz8fKJ ywNCidhcl90ZXh0NzQnPT4nyM3LIN3tIMfh4+Hdx8onLA0KJ2FyX3RleHQ3NSc9PicqIHlvdSBjYW4gdXN

lIHJlZ2V4cCcsDQonYXJfdGV4dDc2Jz0+J8fhyM3LINrkIOTVIN3tIOPh3cfKIMjmx9PY5SBmaW5kJywNC idhcl90ZXh0ODAnPT4nx+Hk5tonLA0KJ2FyX3RleHQ4MSc9PifH4cXK1cfhx8onLA0KJ2FyX3RleHQ4Mic 9Pife5sfazyDH4cjtx+THyicsDQonYXJfdGV4dDgzJz0+J8rU2+3hIMfj0SDH08ra4cfjJywNCidhcl90Z Xh0ODQnPT4nx9PK2uHH4yDex9rPyScsDQonYXJfdGV4dDg1Jz0+J1Rlc3QgYnlwYXNzIHNhZmVfbW9kZSB 3aXRoIGNvbW1hbmRzIGV4ZWN1dGUgdmlhIE1TU1FMIHNlcnZlcicsDQonYXJfdGV4dDg2Jz0+J8rk0u3hI OPh3cfKIOPkIMfh0+3R3dEnLA0KJ2FyX2J1dHQxNCc9PifKzePt4ScsDQonYXJfdGV4dDg3Jz0+J8rk0u3 hIOPh3cfKIOPkIM7Hz+Mgx+HH3SDK7SDI7ScsDQonYXJfdGV4dDg4Jz0+J9Pt0d3RIMfhx90gyu0gyO06x +Hj5N3QJywNCidhcl90ZXh0ODknPT4n4+HdIN3tIMfhx90gyu0gyO0nLA0KJ2FyX3RleHQ5MCc9PifH4cr N5u3hIMfh7CcsDQonYXJfdGV4dDkxJz0+J8fR1N3JJywNCidhcl90ZXh0OTInPT4n4+Qg2+3RIMfhx9HU3 cknLA0KJ2FyX3RleHQ5Myc9PifH4cfdIMrtIMjtJywNCidhcl90ZXh0OTQnPT4nys7j7eQgx+HH3SDK7SD I7ScsDQonYXJfdGV4dDk1Jz0+J97HxuPJIMfh49PKzs/j7eQnLA0KJ2FyX3RleHQ5Nic9Pifh4yDt08rY2 iDTzcgg3sfG48kgx+Hj08rOz+Pt5CcsDQonYXJfdGV4dDk3Jz0+J8rjIMfh3c3VOiAnLA0KJ2FyX3RleHQ 5OCc9PifK4yDI5MzHzTogJywNCidhcl90ZXh0OTknPT4nKiDH08rOz+Mgx9Pjx8Egx+Hj08rOz+Pt5CDd7 SDj4d0gL2V0Yy9wYXNzd2Qg4c/O5uEg4eHcIGZ0cCcsDQonYXJfdGV4dDEwMCc9PifH0dPH4SDj4d0gx+H sIM7Hz+Mgx+HH3SDK7SDI7ScsDQonYXJfdGV4dDEwMSc9PifH08rOz+Mgx+HH08fj7SDj2t/m0+Ug4crO4 +3k5ccnLA0KJ2FyX3RleHQxMDInPT4nzs/jx8ogx+HI0e3PJywNCidhcl90ZXh0MTAzJz0+J8fR08fhIMj R7c8nLA0KJ2FyX3RleHQxMDQnPT4nx9HTx+Eg4+HdIMfh7CDH4cft4+3hJywNCidhcl90ZXh0MTA1Jz0+J 8Xh7CcsDQonYXJfdGV4dDEwNic9Pifj3OQnLA0KJ2FyX3RleHQxMDcnPT4nx+Hj5tbm2icsDQonYXJfYnV 0dDE1Jz0+J8XR08fhJywNCidhcl90ZXh0MTA4Jz0+J8fh0dPH4cknLA0KJ2FyX3RleHQxMDknPT4n487d7 ScsDQonYXJfdGV4dDExMCc9Pifa0dYnLA0KJ2FyX3RleHQxMTEnPT4n0+3R3dEg3ubH2s8gx+HI7cfkx8o gOiDH4ePk3dAnLA0KJ2FyX3RleHQxMTInPT4n3tHHxskgx+Hj4d3HyiDa5CDY0e3eIMvb0ckgz8fh5SBtY l9zZW5kX21haWwnLA0KJ2FyX3RleHQxMTMnPT4n3tHHxskg483K5uwgx+HjzOHPx8og2uQg2NHt3iB2aWE gaW1hcF9saXN0JywNCidhcl90ZXh0MTE0Jz0+J97Rx8bJIMfh4+Hdx8og2uQg2NHt3iDL29HJIHZpYSBpb WFwX2JvZHknLA0KJ2FyX3RleHQxMTUnPT4n3tHHxskgx+Hj4d3HyiDa5CDY0e3eIGNvbXByZXNzLnpsaWI 6Ly8nLA0KJ2FyX3RleHQxMTYnPT4n5NPOIOPkJywNCidhcl90ZXh0MTE3Jz0+J8fh7CcsDQonYXJfdGV4d DExOCc9PifK4yDk084gx+Hj4d0nLA0KJ2FyX3RleHQxMTknPT4n4cft08rY7dogx+Hk084nLA0KJ2FyX2V ycjAnPT4nztjHwSAhIOHH7ePf5CDH4d/Kx8jJINrh7CDl0Mcgx+Hj4d0gJywNCidhcl9lcnIxJz0+J87Yx 8EgISDb7dEg3sfP0SDa4ewg3tHHxuUg5dDHIMfh4+HdICcsDQonYXJfZXJyMic9PifO2MfBISDhx+3j3+Q gx+HH5NTHwSAnLA0KJ2FyX2VycjMnPT4nztjHwSEg2+3RIN7Hz9Eg2uHsIMfhx8rVx+EgyMfhx90gyu0gy O0nLA0KJ2FyX2VycjQnPT4nztjHwSAhIOHHytPK2O3aIMfhz87m4SDH4ewg0+3R3dEgx+HH3SDK7SDI7Sc sDQonYXJfZXJyNSc9PifO2MfBICEg4cfK08rY7dogytvt0SDH4ePM4c8g3e0gx+HH3SDK7SDI7ScsDQonY XJfZXJyNic9PifO2MfBICEg4cfK08rY7dogx9HTx+Eg0dPH4eUnLA0KJ2FyX2VycjcnPT4nx+HI0e3PIMf R0+EnLA0KJ2FyX3RleHQyMDAnPT4nY29weSgp3tHHxskgx+Hj4d3HyiDa5CDY0e3eIMvb0cknLA0KJ2FyX 3RleHQyMDInPT4n49PH0SDH4ePh3SDH4ePRx88g3tHHxsrlJywNCidhcl90ZXh0MzAwJz0+J2N1cmwoKd7 Rx8blIMfh4+Hdx8og2uQg2NHt3iDL29HJJywNCidhcl90ZXh0MjAzJz0+J2luaV9yZXN0b3JlKCne0cfGy SDH4ePh3cfKINrkINjR7d4gy9vRyScsDQonYXJfdGV4dDIwNCc9PidlcnJvcl9sb2coKdLRx9rlIMfh4+H dx8og2uQg2NHt3iDL29HlJywNCidhcl90ZXh0MjA1Jz0+J8PS0dogx+HU4SDa4ewg5dDHIMfh49PH0ScsD QonYXJfdGV4dDIwNic9Pife0cfG5SDjzcrm7cfKIMfh48zhzycsDQonYXJfdGV4dDIwNyc9Pife0cfG5SD jzcrm7cfKIMfh48zhz8fKINrkINjR7d4gy9vR5SByZWdfZ2xvYicsDQonYXJfdGV4dDIwOCc9PifK5N3t0 CDH4cfmx+PRIN3tIMfh5tbaIMfhx+PkINrkINjR7d4gx+HP5sfhJywNCidhcl90ZXh0MjA5Jz0+J97Rx8b lIOPNyubtx8ogx+HjzOHPx8og2uQg2NHt3iDL29HlIHJvb3QnLA0KJ2FyX3RleHQyMTAnPT4n3d8gytTd7 dEgx+HS5M8gJywNCidhcl90ZXh0MjExJz0+Jzo6x97dx+Egx+HT7d0g4+bPOjonLA0KJ2FyX3RleHQyMTI nPT4ncGhwLmluaSDH3t3H4SDH4dPt3SDj5s8g2uQg2NHt3iDS0dog4+HdJywNCidhcl90ZXh0MjEzJz0+J 2h0YWNjZXMgxd7dx+Egx+Hj5s8g09/t5tHK7SDa5CDY0e3eINLR2iDj4d0nLA0KJ2FyX3RleHQyMTQnPT4 nw9PjIMfhx8/j5CcsDQonYXJfdGV4dDIxNSc9Pifa5ObH5CDH4dPt0d3RIElSQyAnLA0KJ2FyX3RleHQyM TYnPT4nIyDD0+Mgx+Hb0d3lIOPaJywNCidhcl90ZXh0MjE3Jz0+J8fT4yDH4dPt0d3RIMfh487K0d4nLA0 KJ2FyX3RleHQyMTgnPT4n4cXt3sfdIMfh0+3dIOPmzyBpbmlfcmVzdG9yZSDS0dog4+HdIO3NyubtINrh7 CDL29HlJywNCidhcl90ZXh0MjE5Jz0+J9PNyCDj4d3HyiDH4ewgx+HT7dHd0SDmytvt0SDH0+PlxyDIx+H m1togx+HH4+QnLA0KJ2FyX3RleHQyMjAnPT4nx9PK2tHH1iDH4ePh3cfKINrkINjR7d4gy9vR5SBzeW1sa W5rIMfhztjm5SDH4cfm4ewnLA0KJ2FyX3RleHQyMjEnPT4n1tvYIMfh4+Hdx8og4crN4+3h5ccg4+Qgx+H j5t7aKMjazyDKzePt4eXHIOHM5cfS3yDb7dEgx+PKz8fPIMfh4+HdIOHH48rPx8/lIMfh08fI3ikxJywNC idhcl90ZXh0MjIyJz0+J8fTytrRx9Ygx+Hj4d3HyiDa5CDY0e3eIMvb0eUgc3ltbGluayDH4c7Y5uUgx+H Lx+Tt5ScsDQonYXJfdGV4dDIyMyc9Pife0cfG5SDH4ePh3cfKINrkINjR7d4gx+HP5sfhJywNCidhcl90Z Xh0MjI0Jz0+J1BMVUdJTiDe0cfG5SDH4ePh3cfKINrkINjR7d4gy9vR5SAnLA0KKTsNCi8qDQo/Pz8/Pz8 gPz8/Pz8/DQo/Pz8/Pz8/Pz8gPz8/Pz8/Pz8gPz8/Pz8/Pz8/Pz8/PyA/Pz8/Pz8gPz8/Pz8gPyA/Pz8tP z8gPz8/Pz8/LiAoID8/Pz8/Pz8gPz8/Pz8/Pz8/ID8/Pz8gPz8/Pz8/Pz8/ID8/Pz8gKQ0KPz8gPz8/Pz8 /ID8/Pz8gPz8/Pz8/Pz8/ID8/PyA/Pz8/Pz8/PyA/Pz8/Pz8/Lg0KKi8NCiRhbGlhc2VzPWFycmF5KA0KJ 8fhyM3LINrkIOPh3cfKIHN1aWQnPT4nZmluZCAvIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scycsDQonx+H

Izcsg2uQg4+Hdx8ogc3VpZCDd7SDH4ePM4c8gx+HNx+HtJz0+J2ZpbmQgLiAtdHlwZSBmIC1wZXJtIC0wN DAwMCAtbHMnLA0KJ8fhyM3LINrkIOPh3cfKIHN1aWQnPT4nZmluZCAvIC10eXBlIGYgLXBlcm0gLTAyMDA wIC1scycsDQonx+HIzcsg2uQg4+Hdx8ogc3VpZCDd7SDH4ePM4c8gx+HNx+HtJz0+J2ZpbmQgLiAtdHlwZ SBmIC1wZXJtIC0wMjAwMCAtbHMnLA0KJ8fhyM3LINrkIOPh3cfKIGNvbmZpZy5pbmMucGhwJz0+J2ZpbmQ gLyAtdHlwZSBmIC1uYW1lIGNvbmZpZy5pbmMucGhwJywNCifH4cjNyyDa5CDj4d3HyiBjb25maWcuaW5jL nBocCDd7SDH4ePM4c8gx+HNx+HtJz0+J2ZpbmQgLiAtdHlwZSBmIC1uYW1lIGNvbmZpZy5pbmMucGhwJyw NCifH4cjNyyDa5CDj4d3HyiBjb25maWcqIMjM4+3aIMfhx+PKz8fPx8onPT4nZmluZCAvIC10eXBlIGYgL W5hbWUgImNvbmZpZyoiJywNCifH4cjNyyDa5CDj4d3HyiBjb25maWcqIN3tIMfh48zhzyDH4c3H4e0nPT4 nZmluZCAuIC10eXBlIGYgLW5hbWUgImNvbmZpZyoiJywNCifH4cjNyyDa5CDH4ePh3cfKIMfh3sfI4ckg4 eHfysfIySc9PidmaW5kIC8gLXR5cGUgZiAtcGVybSAtMiAtbHMnLA0KJ8fhyM3LINrkIMfh4+Hdx8ogx+H ex8jhySDh4d/Kx8jJIN3tIMfh48zhzyDH4c3H4e0nPT4nZmluZCAuIC10eXBlIGYgLXBlcm0gLTIgLWxzJ ywNCifH4cjNyyDa5CDH4ePM4c/HyiDH4d7HyOHJIOHh38rHyMknPT4nZmluZCAvICAtdHlwZSBkIC1wZXJ tIC0yIC1scycsDQonx+HIzcsg2uQgx+HjzOHPx8ogx+Hex8jhySDh4d/Kx8jJIN3tIMfh49PH0SDH4c3H4 e0nPT4nZmluZCAuIC10eXBlIGQgLXBlcm0gLTIgLWxzJywNCifH4cjNyyDa5CDj4d3HyiDm48zhz8fKIN7 HyOHJIOHh38rHyMknPT4nZmluZCAvIC1wZXJtIC0yIC1scycsDQonx+HIzcsg2uQg4+Hdx8og5uPM 4c/HyiDd7SDH4ePTx9Egx+HNx+HtJz0+J2ZpbmQgLiAtcGVybSAtMiAtbHMnLA0KJ8fhyM3LINrkIOPh3c fKIHNlcnZpY2UucHdkJz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkJywNCifH4cjNyyDa 5CDj4d3HyiBzZXJ2aWNlLnB3ZCDd7SDH4ePTx9Egx+HNx+HtJz0+J2ZpbmQgLiAtdHlwZSBmIC1uYW1lIH NlcnZpY2UucHdkJywNCifH4cjNyyDa5CDf4SDj4d3HyiDH4czP0cfkIMfh5MfR7ckgLmh0cGFzc3dkJz0+ J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIC5odHBhc3N3ZCcsDQonx+HIzcsg2uQgzOPt2iDj4d3HyiDH4czP0c fkIMfh5MfR7ckg3e0gx+Hj08fRIMfhzcfh7Sc9PidmaW5kIC4gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2Qn LA0KJ8fhyM3LINrkIMzj7dog4+Hdx8ogLmJhc2hfaGlzdG9yeSc9PidmaW5kIC8gLXR5cGUgZiAtbmFtZS AuYmFzaF9oaXN0b3J5JywNCifH4cjNyyDa5CDM4+3aIOPh3cfKIC5iYXNoX2hpc3Rvcnkg3e0gx+Hj08fR IMfhzcfh7Sc9PidmaW5kIC4gLXR5cGUgZiAtbmFtZSAuYmFzaF9oaXN0b3J5JywNCifH4cjNyyDa5CDM4+ 3aIOPh3cfKIC5teXNxbF9oaXN0b3J5Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIC5teXNxbF9oaXN0b3J5 JywNCifH4cjNyyDa5CDM4+3aIOPh3cfKIC5teXNxbF9oaXN0b3J5IN3tIMfh49PH0SDH4c3H4e0nPT4nZm luZCAuIC10eXBlIGYgLW5hbWUgLm15c3FsX2hpc3RvcnknLA0KJ8fhyM3LINrkIMzj7dog4+Hdx8ogLmZl dGNobWFpbHJjJz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIC5mZXRjaG1haWxyYycsDQonx+HIzcsg2uQgzO Pt2iDj4d3HyiAuZmV0Y2htYWlscmMg3e0gx+Hj08fRIMfhzcfh7Sc9PidmaW5kIC4gLXR5cGUgZiAtbmFt ZSAuZmV0Y2htYWlscmMnLA0KJ8fO0SDj4d3HyiDj1Nvh5SDd7SDH4eTZx+MnPT4nbHNhdHRyIC12YScsDQ on0cTtySDH4cjm0crHyiDH4ePdyubNySDd7SDH4dPt0d3RJz0+J25ldHN0YXQgLWFuIHwgZ3JlcCAtaSBs aXN0ZW4nLA0KJ9HE7ckgzcfhySDH4ePM4c/HyiDmx+Pfx+TtySDH4crk3e3QJz0+J2NhdCAvZXRjL2ZzdG FiJywNCifj1Mflz8kg4+HdIMfh4ebeIOHPzubhIMfh0+0gyMfk4SDmx+Hj5sfe2iDa4ewgx+HT7dHd0Sc9 PidjYXQgL3Zhci9jcGFuZWwvYWNjb3VudGluZy5sb2cnLA0KJ8rdx9Xt4SDH4drj4e3HyiDH4crtIMra4+ Egx+HH5CDIx+Hk1sfjJz0+J3BzIGF1eCcsDQonx+Hj08rOz+Pt5CDH4ePK1eHt5CDNx+Htxyc9Pid3JywN CifHztEg49PKzs/j7eQgx8rV4eYnPT4nbGFzdGxvZycsDQon3c3VIMfP5sfKIMfh083IIHdnZXQgY3VybC AuLmV0Yyc9Pid3aGljaCB3Z2V0IGN1cmwgdzNtIGx5bngnLA0KJ93N1SDHz8fJIMfhytHM4+UgZ2NjJz0+ J2xvY2F0ZSBnY2MnLA0KDQoNCg0KJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS 0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0n PT4nbHMgLWxhJw0KKTsNCiR0YWJsZV91cDEgID0gIjx0cj48dGQgYmdjb2xvcj0jMjcyNzI3Pjxmb250IG ZhY2U9dGFob21hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXI+OjogIjsNCiR0YWJsZV91cDIgID0g IiA6OjwvZGl2PjwvYj48L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQ+IjsNCiR0YWJsZV91cDMgID0gIjx0YW JsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSNjY2NjY2M+PHRy Pjx0ZCBiZ2NvbG9yPSMzMzMzMzM+IjsNCiR0YWJsZV9lbmQxID0gIjwvdGQ+PC90cj4iOw0KJGFycm93ID 0gIiA8Zm9udCBmYWNlPVdlYmRpbmdzIGNvbG9yPWdyYXk+NDwvZm9udD4iOw0KJGxiID0gIjxmb250IGNv bG9yPWJsYWNrPls8L2ZvbnQ+IjsNCiRyYiA9ICI8Zm9udCBjb2xvcj1ibGFjaz5dPC9mb250PiI7DQokZm 9udCA9ICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPiI7DQokdHMgPSAiPHRhYmxlIGNsYXNzPXRhYmxl MSB3aWR0aD0xMDAlIGFsaWduPWNlbnRlcj4iOw0KJHRlID0gIjwvdGFibGU+IjsNCiRmcyA9ICI8Zm9ybS BuYW1lPWZvcm0gbWV0aG9kPVBPU1Q+IjsNCiRmZSA9ICI8L2Zvcm0+IjsNCg0KaWYoaXNzZXQoJF9HRVRb J3VzZXJzJ10pKQ0KIHsNCiBpZighJHVzZXJzPWdldF91c2VycygpKSB7IGVjaG8gIjxjZW50ZXI+PGZvbn QgZmFjZT10YWhvbWEgc2l6ZT0tMiBjb2xvcj1yZWQ+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTYnXS4i PC9mb250PjwvY2VudGVyPiI7IH0NCiBlbHNlDQogIHsNCiAgZWNobyAnPGNlbnRlcj4nOw0KICBmb3JlYW NoKCR1c2VycyBhcyAkdXNlcikgeyBlY2hvICR1c2VyLiI8YnI+IjsgfQ0KICBlY2hvICc8L2NlbnRlcj4n Ow0KICB9DQogZWNobyAiPGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9dGFob21hIHNpemU9LT I+PGI+WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiBdPC9iPjwvZm9udD48 L2Rpdj4iOyBkaWUoKTsNCiB9DQoNCmlmICghZW1wdHkoJF9QT1NUWydkaXInXSkpIHsgQGNoZGlyKCRfUE 9TVFsnZGlyJ10pOyB9DQokZGlyID0gQGdldGN3ZCgpOw0KJHVuaXggPSAwOw0KaWYoc3RybGVuKCRkaXIp PjEgJiYgJGRpclsxXT09IjoiKSAkdW5peD0wOyBlbHNlICR1bml4PTE7DQppZihlbXB0eSgkZGlyKSkNCi

B7DQogJG9zID0gZ2V0ZW52KCdPUycpOw0KIGlmKGVtcHR5KCRvcykpeyAkb3MgPSBwaHBfdW5hbWUoKTsg fQ0KIGlmKGVtcHR5KCRvcykpeyAkb3MgPSItIjsgJHVuaXg9MTsgfQ0KIGVsc2UNCiAgICB7DQogICAgaW YoQGVyZWdpKCJed2luIiwkb3MpKSB7ICR1bml4ID0gMDsgfQ0KICAgIGVsc2UgeyAkdW5peCA9IDE7IH0N CiAgICB9DQogfQ0KaWYoIWVtcHR5KCRfUE9TVFsnc19kaXInXSkgJiYgIWVtcHR5KCRfUE9TVFsnc190ZX h0J10pICYmICFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddID09ICJzZWFyY2hfdGV4 dCIpDQogIHsNCiAgICBlY2hvICRoZWFkOw0KICAgIGlmKCFlbXB0eSgkX1BPU1RbJ3NfbWFzayddKSAmJi AhZW1wdHkoJF9QT1NUWydtJ10pKSB7ICRzciA9IG5ldyBTZWFyY2hSZXN1bHQoJF9QT1NUWydzX2Rpcidd LCRfUE9TVFsnc190ZXh0J10sJF9QT1NUWydzX21hc2snXSk7IH0NCiAgICBlbHNlIHsgJHNyID0gbmV3IF NlYXJjaFJlc3VsdCgkX1BPU1RbJ3NfZGlyJ10sJF9QT1NUWydzX3RleHQnXSk7IH0NCiAgICAkc3ItPlNl YXJjaFRleHQoMCwwKTsNCiAgICAkcmVzID0gJHNyLT5HZXRSZXN1bHRGaWxlcygpOw0KICAgICRmb3VuZC A9ICRzci0+R2V0TWF0Y2hlc0NvdW50KCk7DQogICAgJHRpdGxlcyA9ICRzci0+R2V0VGl0bGVzKCk7DQog ICAgJHIgPSAiIjsNCiAgICBpZigkZm91bmQgPiAwKQ0KICAgIHsNCiAgICAgICRyIC49ICI8VEFCTEUgd2 lkdGg9MTAwJT4iOw0KICAgICAgZm9yZWFjaCgkcmVzIGFzICRmaWxlPT4kdikNCiAgICAgIHsNCiAgICAg ICAgJHIgLj0gIjxUUj4iOw0KICAgICAgICAkciAuPSAiPFREIGNvbHNwYW49Mj48Zm9udCBmYWNlPXRhaG 9tYSBzaXplPS0yPjxiPiIud3MoMyk7DQogICAgICAgICRyIC49ICghJHVuaXgpPyBzdHJfcmVwbGFjZSgi LyIsIlxcIiwkZmlsZSkgOiAkZmlsZTsNCiAgICAgICAgJHIgLj0gIjwvYj48L2ZvbnQ+PC8gVEQ+IjsNCi AgICAgICAgJHIgLj0gIjwvVFI+IjsNCiAgICAgICAgZm9yZWFjaCgkdiBhcyAkYT0+JGIpDQogICAgICAg IHsNCiAgICAgICAgICAkciAuPSAiPFRSPiI7DQogICAgICAgICAgJHIgLj0gIjxURCBhbGlnbj1jZW50ZX I+PEI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj4iLiRhLiI8L2ZvbnQ+PC9CPjwvVEQ+IjsNCiAgICAg ICAgICAkciAuPSAiPFREPjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+Ii53cygyKS4kYi4iPC9mb250Pj wvVEQ+IjsNCiAgICAgICAgICAkciAuPSAiPC9UUj5cbiI7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAg ICRyIC49ICI8L1RBQkxFPiI7DQogICAgZWNobyAkcjsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgIC AgIGVjaG8gIjxQIGFsaWduPWNlbnRlcj48Qj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPiIuJGxhbmdb JGxhbmd1YWdlLidfdGV4dDU2J10uIjwvQj48L2ZvbnQ+PC9QPiI7DQogICAgfQ0KICBlY2hvICI8YnI+PG RpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX1NF UlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQogIGRpZSgpOw0KIC B9DQppZighJHNhZmVfbW9kZSAmJiBzdHJwb3MoZXgoImVjaG8gYWJjcjU3IiksInI1NyIpIT0zKSB7ICRz YWZlX21vZGUgPSAxOyB9DQokU0VSVkVSX1NPRlRXQVJFID0gZ2V0ZW52KCdTRVJWRVJfU09GVFdBUkUnKT sNCmlmKGVtcHR5KCRTRVJWRVJfU09GVFdBUkUpKXsgJFNFUlZFUl9TT0ZUV0FSRSA9ICItIjsgfQ0KZnVu Y3Rpb24gd3MoJGkpDQp7DQpyZXR1cm4gQHN0cl9yZXBlYXQoIiZuYnNwOyIsJGkpOw0KfQ0KZnVuY3Rpb2 4gZXgoJGNmZSkNCnsNCiAkcmVzID0gJyc7DQogaWYgKCFlbXB0eSgkY2ZlKSkNCiB7DQogIGlmKGZ1bmN0 aW9uX2V4aXN0cygnZXhlYycpKQ0KICAgew0KICAgIEBleGVjKCRjZmUsJHJlcyk7DQogICAgJHJlcyA9IG pvaW4oIlxuIiwkcmVzKTsNCiAgIH0NCiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc2hlbGxfZXhlYycp KQ0KICAgew0KICAgICRyZXMgPSBAc2hlbGxfZXhlYygkY2ZlKTsNCiAgIH0NCiAgZWxzZWlmKGZ1bmN0aW 9uX2V4aXN0cygnc3lzdGVtJykpDQogICB7DQogICAgQG9iX3N0YXJ0KCk7DQogICAgQHN5c3RlbSgkY2Zl KTsNCiAgICAkcmVzID0gQG9iX2dldF9jb250ZW50cygpOw0KICAgIEBvYl9lbmRfY2xlYW4oKTsNCiAgIH 0NCiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSkNCiAgIHsNCiAgICBAb2Jfc3RhcnQo KTsNCiAgICBAcGFzc3RocnUoJGNmZSk7DQogICAgJHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsNCiAgIC BAb2JfZW5kX2NsZWFuKCk7DQogICB9DQogIGVsc2VpZihAaXNfcmVzb3VyY2UoJGYgPSBAcG9wZW4oJGNm ZSwiciIpKSkNCiAgew0KICAgJHJlcyA9ICIiOw0KICAgd2hpbGUoIUBmZW9mKCRmKSkgeyAkcmVzIC49IE BmcmVhZCgkZiwxMDI0KTsgfQ0KICAgQHBjbG9zZSgkZik7DQogIH0NCiB9DQogcmV0dXJuICRyZXM7DQp9 DQpmdW5jdGlvbiBnZXRfdXNlcnMoKQ0Kew0KICAkdXNlcnMgPSBhcnJheSgpOw0KICAkcm93cz1maWxlKC cvZXRjL3Bhc3N3ZCcpOw0KICBpZighJHJvd3MpIHJldHVybiAwOw0KICBmb3JlYWNoICgkcm93cyBhcyAk c3RyaW5nKQ0KICAgew0KICAgICAgICAgICAkdXNlciA9IEBleHBsb2RlKCI6Iiwkc3RyaW5nKTsNCiAgIC AgICAgICAgaWYoc3Vic3RyKCRzdHJpbmcsMCwxKSE9JyMnKSBhcnJheV9wdXNoKCR1c2VycywkdXNlclsw XSk7DQogICB9DQogIHJldHVybiAkdXNlcnM7DQp9DQpmdW5jdGlvbiBlcnIoJG4sJHR4dD0nJykNCnsNCm VjaG8gJzx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MD48dHI+PHRkIGJn Y29sb3I9IzAwMDAwMD48Zm9udCBjb2xvcj1yZWQgZmFjZT10YWhvbWEgc2l6ZT0tMj48ZGl2IGFsaWduPW NlbnRlcj48Yj4nOw0KZWNobyAkR0xPQkFMU1snbGFuZyddWyRHTE9CQUxTWydsYW5ndWFnZSddLidfZXJy Jy4kbl07DQppZighZW1wdHkoJHR4dCkpIHsgZWNobyAiICR0eHQiOyB9DQplY2hvICc8L2I+PC9kaXY+PC 9mb250PjwvdGQ+PC90cj48L3RhYmxlPic7DQpyZXR1cm4gbnVsbDsNCn0NCmZ1bmN0aW9uIHBlcm1zKCRt b2RlKQ0Kew0KaWYgKCEkR0xPQkFMU1sndW5peCddKSByZXR1cm4gMDsNCmlmKCAkbW9kZSAmIDB4MTAwMC ApIHsgJHR5cGU9J3AnOyB9DQplbHNlIGlmKCAkbW9kZSAmIDB4MjAwMCApIHsgJHR5cGU9J2MnOyB9DQpl bHNlIGlmKCAkbW9kZSAmIDB4NDAwMCApIHsgJHR5cGU9J2QnOyB9DQplbHNlIGlmKCAkbW9kZSAmIDB4Nj AwMCApIHsgJHR5cGU9J2InOyB9DQplbHNlIGlmKCAkbW9kZSAmIDB4ODAwMCApIHsgJHR5cGU9Jy0nOyB9 DQplbHNlIGlmKCAkbW9kZSAmIDB4QTAwMCApIHsgJHR5cGU9J2wnOyB9DQplbHNlIGlmKCAkbW9kZSAmID B4QzAwMCApIHsgJHR5cGU9J3MnOyB9DQplbHNlICR0eXBlPSd1JzsNCiRvd25lclsicmVhZCJdID0gKCRt b2RlICYgMDA0MDApID8gJ3InIDogJy0nOw0KJG93bmVyWyJ3cml0ZSJdID0gKCRtb2RlICYgMDAyMDApID

8gJ3cnIDogJy0nOw0KJG93bmVyWyJleGVjdXRlIl0gPSAoJG1vZGUgJiAwMDEwMCkgPyAneCcgOiAnLSc7 DQokZ3JvdXBbInJlYWQiXSA9ICgkbW9kZSAmIDAwMDQwKSA/ICdyJyA6ICctJzsNCiRncm91cFsid3JpdG UiXSA9ICgkbW9kZSAmIDAwMDIwKSA/ICd3JyA6ICctJzsNCiRncm91cFsiZXhlY3V0ZSJdID0gKCRtb2Rl ICYgMDAwMTApID8gJ3gnIDogJy0nOw0KJHdvcmxkWyJyZWFkIl0gPSAoJG1vZGUgJiAwMDAwNCkgPyAnci cgOiAnLSc7DQokd29ybGRbIndyaXRlIl0gPSAoJG1vZGUgJiAwMDAwMikgPyAndycgOiAnLSc7DQokd29y bGRbImV4ZWN1dGUiXSA9ICgkbW9kZSAmIDAwMDAxKSA/ICd4JyA6ICctJzsNCmlmKCAkbW9kZSAmIDB4OD AwICkgJG93bmVyWyJleGVjdXRlIl0gPSAoJG93bmVyWydleGVjdXRlJ109PSd4JykgPyAncycgOiAnUyc7 DQppZiggJG1vZGUgJiAweDQwMCApICRncm91cFsiZXhlY3V0ZSJdID0gKCRncm91cFsnZXhlY3V0ZSddPT 0neCcpID8gJ3MnIDogJ1MnOw0KaWYoICRtb2RlICYgMHgyMDAgKSAkd29ybGRbImV4ZWN1dGUiXSA9ICgk d29ybGRbJ2V4ZWN1dGUnXT09J3gnKSA/ICd0JyA6ICdUJzsNCiRzPXNwcmludGYoIiUxcyIsICR0eXBlKT sNCiRzLj1zcHJpbnRmKCIlMXMlMXMlMXMiLCAkb3duZXJbJ3JlYWQnXSwgJG93bmVyWyd3cml0ZSddLCAk b3duZXJbJ2V4ZWN1dGUnXSk7DQokcy49c3ByaW50ZigiJTFzJTFzJTFzIiwgJGdyb3VwWydyZWFkJ10sIC Rncm91cFsnd3JpdGUnXSwgJGdyb3VwWydleGVjdXRlJ10pOw0KJHMuPXNwcmludGYoIiUxcyUxcyUxcyIs ICR3b3JsZFsncmVhZCddLCAkd29ybGRbJ3dyaXRlJ10sICR3b3JsZFsnZXhlY3V0ZSddKTsNCnJldHVybi B0cmltKCRzKTsNCn0NCmZ1bmN0aW9uIGluKCR0eXBlLCRuYW1lLCRzaXplLCR2YWx1ZSwkY2hlY2tlZD0w KQ0Kew0KICRyZXQgPSAiPGlucHV0IHR5cGU9Ii4kdHlwZS4iIG5hbWU9Ii4kbmFtZS4iICI7DQogaWYoJH NpemUgIT0gMCkgeyAkcmV0IC49ICJzaXplPSIuJHNpemUuIiAiOyB9DQogJHJldCAuPSAidmFsdWU9XCIi LiR2YWx1ZS4iXCIiOw0KIGlmKCRjaGVja2VkKSAkcmV0IC49ICIgY2hlY2tlZCI7DQogcmV0dXJuICRyZX QuIj4iOw0KfQ0KZnVuY3Rpb24gd2hpY2goJHByKQ0Kew0KJHBhdGggPSBleCgid2hpY2ggJHByIik7DQpp ZighZW1wdHkoJHBhdGgpKSB7IHJldHVybiAkcGF0aDsgfSBlbHNlIHsgcmV0dXJuICRwcjsgfQ0KfQ0KZn VuY3Rpb24gY2YoJGZuYW1lLCR0ZXh0KQ0Kew0KICR3X2ZpbGU9QGZvcGVuKCRmbmFtZSwidyIpIG9 yIGVycigwKTsNCiBpZigkd19maWxlKQ0KIHsNCiBAZnB1dHMoJHdfZmlsZSxAYmFzZTY0X2RlY29kZSgkd GV4dCkpOw0KIEBmY2xvc2UoJHdfZmlsZSk7DQogfQ0KfQ0KZnVuY3Rpb24gc3IoJGwsJHQxLCR0MikNCiB 7DQogcmV0dXJuICI8dHIgY2xhc3M9dHIxPjx0ZCBjbGFzcz10ZDEgd2lkdGg9Ii4kbC4iJSBhbGlnbj1ya WdodD4iLiR0MS4iPC90ZD48dGQgY2xhc3M9dGQxIGFsaWduPWxlZnQ+Ii4kdDIuIjwvdGQ+PC90cj4iOw0 KIH0NCmlmICghQGZ1bmN0aW9uX2V4aXN0cygidmlld19zaXplIikpDQp7DQpmdW5jdGlvbiB2aWV3X3Npe mUoJHNpemUpDQp7DQogaWYoJHNpemUgPj0gMTA3Mzc0MTgyNCkgeyRzaXplID0gQHJvdW5kKCRzaXplIC8 gMTA3Mzc0MTgyNCAqIDEwMCkgLyAxMDAgLiAiIEdCIjt9DQogZWxzZWlmKCRzaXplID49IDEwNDg1NzYpI Hskc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwNDg1NzYgKiAxMDApIC8gMTAwIC4gIiBNQiI7fQ0KIGVsc2V pZigkc2l6ZSA+PSAxMDI0KSB7JHNpemUgPSBAcm91bmQoJHNpemUgLyAxMDI0ICogMTAwKSAvIDEwMCAuI CIgS0IiO30NCiBlbHNlIHskc2l6ZSA9ICRzaXplIC4gIiBCIjt9DQogcmV0dXJuICRzaXplOw0KfQ0KfQ0 KICBmdW5jdGlvbiBEaXJGaWxlc1IoJGRpciwkdHlwZXM9JycpDQogIHsNCiAgICAkZmlsZXMgPSBBcnJhe SgpOw0KICAgIGlmKCgkaGFuZGxlID0gQG9wZW5kaXIoJGRpcikpKQ0KICAgIHsNCiAgICAgIHdoaWxlICh mYWxzZSAhPT0gKCRmaWxlID0gQHJlYWRkaXIoJGhhbmRsZSkpKQ0KICAgICAgew0KICAgICAgICBpZiAoJ GZpbGUgIT0gIi4iICYmICRmaWxlICE9ICIuLiIpDQogICAgICAgIHsNCiAgICAgICAgICBpZihAaXNfZGl yKCRkaXIuIi8iLiRmaWxlKSkNCiAgICAgICAgICAgICRmaWxlcyA9IEBhcnJheV9tZXJnZSgkZmlsZXMsR GlyRmlsZXNSKCRkaXIuIi8iLiRmaWxlLCR0eXBlcykpOw0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICB 7DQogICAgICAgICAgICAkcG9zID0gQHN0cnJwb3MoJGZpbGUsIi4iKTsNCiAgICAgICAgICAgICRleHQgP SBAc3Vic3RyKCRmaWxlLCRwb3MsQHN0cmxlbigkZmlsZSktJHBvcyk7DQogICAgICAgICAgICBpZigkdHl wZXMpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIGlmKEBpbl9hcnJheSgkZXh0LGV4cGxvZGUoJ zsnLCR0eXBlcykpKQ0KICAgICAgICAgICAgICAgICRmaWxlc1tdID0gJGRpci4iLyIuJGZpbGU7DQogICA gICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICRmaWxlc1tdID0gJGRpci4iL yIuJGZpbGU7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICBAY2xvc2VkaXIoJGh hbmRsZSk7DQogICAgfQ0KICAgIHJldHVybiAkZmlsZXM7DQogIH0NCiAgY2xhc3MgU2VhcmNoUmVzdWx0D QogIHsNCiAgICB2YXIgJHRleHQ7DQogICAgdmFyICRGaWxlc1RvU2VhcmNoOw0KICAgIHZhciAkUmVzdWx 0RmlsZXM7DQogICAgdmFyICRGaWxlc1RvdGFsOw0KICAgIHZhciAkTWF0Y2hlc0NvdW50Ow0KICAgIHZhc iAkRmlsZU1hdHNjaGVzQ291bnQ7DQogICAgdmFyICRUaW1lU3RhcnQ7DQogICAgdmFyICRUaW1lVG90YWw 7DQogICAgdmFyICR0aXRsZXM7DQogICAgZnVuY3Rpb24gU2VhcmNoUmVzdWx0KCRkaXIsJHRleHQsJGZpb HRlcj0nJykNCiAgICB7DQogICAgICAkZGlycyA9IEBleHBsb2RlKCI7IiwkZGlyKTsNCiAgICAgICR0aGl zLT5GaWxlc1RvU2VhcmNoID0gQXJyYXkoKTsNCiAgICAgIGZvcigkYT0wOyRhPGNvdW50KCRkaXJzKTskY SsrKQ0KICAgICAgICAkdGhpcy0+RmlsZXNUb1NlYXJjaCA9IEBhcnJheV9tZXJnZSgkdGhpcy0+RmlsZXN Ub1NlYXJjaCxEaXJGaWxlc1IoJGRpcnNbJGFdLCRmaWx0ZXIpKTsNCiAgICAgICR0aGlzLT50ZXh0ID0gJ HRleHQ7DQogICAgICAkdGhpcy0+RmlsZXNUb3RhbCA9IEBjb3VudCgkdGhpcy0+RmlsZXNUb1NlYXJjaCk 7DQogICAgICAkdGhpcy0+VGltZVN0YXJ0ID0gZ2V0bWljcm90aW1lKCk7DQogICAgICAkdGhpcy0+TWF0Y 2hlc0NvdW50ID0gMDsNCiAgICAgICR0aGlzLT5SZXN1bHRGaWxlcyA9IEFycmF5KCk7DQogICAgICAkdGh pcy0+RmlsZU1hdGNoZXNDb3VudCA9IEFycmF5KCk7DQogICAgICAkdGhpcy0+dGl0bGVzID0gQXJyYXkoK TsNCiAgICB9DQogICAgZnVuY3Rpb24gR2V0RmlsZXNUb3RhbCgpIHsgcmV0dXJuICR0aGlzLT5GaWxlc1R vdGFsOyB9DQogICAgZnVuY3Rpb24gR2V0VGl0bGVzKCkgeyByZXR1cm4gJHRoaXMtPnRpdGxlczsgfQ0KI

CAgIGZ1bmN0aW9uIEdldFRpbWVUb3RhbCgpIHsgcmV0dXJuICR0aGlzLT5UaW1lVG90YWw7IH0NCiAgICB mdW5jdGlvbiBHZXRNYXRjaGVzQ291bnQoKSB7IHJldHVybiAkdGhpcy0+TWF0Y2hlc0NvdW50OyB9DQogI CAgZnVuY3Rpb24gR2V0RmlsZU1hdGNoZXNDb3VudCgpIHsgcmV0dXJuICR0aGlzLT5GaWxlTWF0Y2hlc0N vdW50OyB9DQogICAgZnVuY3Rpb24gR2V0UmVzdWx0RmlsZXMoKSB7IHJldHVybiAkdGhpcy0+UmVzdWx0R mlsZXM7IH0NCiAgICBmdW5jdGlvbiBTZWFyY2hUZXh0KCRwaHJhc2U9MCwkY2FzZT0wKSB7DQogICAgJHF xID0gQGV4cGxvZGUoJyAnLCR0aGlzLT50ZXh0KTsNCiAgICAkZGVsaW0gPSAnfCc7DQogICAgICBpZigkc GhyYXNlKQ0KICAgICAgICBmb3JlYWNoKCRxcSBhcyAkaz0+JHYpDQogICAgICAgICAgJHFxWyRrXSA9ICd cYicuJHYuJ1xiJzsNCiAgICAgICR3b3JkcyA9ICcoJy5AaW1wbG9kZSgkZGVsaW0sJHFxKS4nKSc7DQogI CAgICAkcGF0dGVybiA9ICIvIi4kd29yZHMuIi8iOw0KICAgICAgaWYoISRjYXNlKQ0KICAgICAgICAkcGF 0dGVybiAuPSAnaSc7DQogICAgICBmb3JlYWNoKCR0aGlzLT5GaWxlc1RvU2VhcmNoIGFzICRrPT4kZmlsZ W5hbWUpDQogICAgICB7DQogICAgICAgICR0aGlzLT5GaWxlTWF0Y2hlc0NvdW50WyRmaWxlbmFtZV0gPSA wOw0KICAgICAgICAkRmlsZVN0cmluZ3MgPSBAZmlsZSgkZmlsZW5hbWUpIG9yIEBuZXh0Ow0KICAgICAgI CBmb3IoJGE9MDskYTxAY291bnQoJEZpbGVTdHJpbmdzKTskYSsrKQ0KICAgICAgICB7DQogICAgICAgICA gJGNvdW50ID0gMDsNCiAgICAgICAgICAkQ3VyU3RyaW5nID0gJEZpbGVTdHJpbmdzWyRhXTsNCiAgICAgI CAgICAkQ3VyU3RyaW5nID0gQFRyaW0oJEN1clN0cmluZyk7DQogICAgICAgICAgJEN1clN0cmluZyA9IEB zdHJpcF90YWdzKCRDdXJTdHJpbmcpOw0KICAgICAgICAgICRhYSA9ICcnOw0KICAgICAgICAgIGlmKCgkY 291bnQgPSBAcHJlZ19tYXRjaF9hbGwoJHBhdHRlcm4sJEN1clN0cmluZywkYWEpKSkNCiAgICAgICAgICB 7DQogICAgICAgICAgICAkQ3VyU3RyaW5nID0gQHByZWdfcmVwbGFjZSgkcGF0dGVybiwiPFNQQU4gc3R5b GU9J2NvbG9yOiAjOTkwMDAwOyc+PGI+XFwxPC9iPjwvU1BBTj4iLCRDdXJTdHJpbmcpOw0KICAgICAgICA gICAgJHRoaXMtPlJlc3VsdEZpbGVzWyRmaWxlbmFtZV1bJGErMV0gPSAkQ3VyU3RyaW5nOw0KICAgICAgI CAgICAgJHRoaXMtPk1hdGNoZXNDb3VudCArPSAkY291bnQ7DQogICAgICAgICAgICAkdGhpcy0+RmlsZU1 hdGNoZXNDb3VudFskZmlsZW5hbWVdICs9ICRjb3VudDsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgI CAgIH0NCiAgICAgICR0aGlzLT5UaW1lVG90YWwgPSBAcm91bmQoZ2V0bWljcm90aW1lKCkgLSAkdGhpcy0 +VGltZVN0YXJ0LDQpOw0KICAgIH0NCiAgfQ0KICBmdW5jdGlvbiBnZXRtaWNyb3RpbWUoKQ0KICB7DQogI CAgbGlzdCgkdXNlYywkc2VjKSA9IEBleHBsb2RlKCIgIixAbWljcm90aW1lKCkpOw0KICAgIHJldHVybiA oKGZsb2F0KSR1c2VjICsgKGZsb2F0KSRzZWMpOw0KICB9DQokcG9ydF9iaW5kX2JkX2M9IkkybHVZMngxW kdVZ1BITjBaR2x2TG1nK0RRb2phVzVqYkhWa1pTQThjM1J5YVc1bkxtZytEUW9qYVc1amJIVmtaU0E4YzN sekwzUjVjR1Z6TG1nK0RRb2phVzVqYkhWa1pTDQpBOGMzbHpMM052WTJ0bGRDNW9QZzBLSTJsdVkyeDFaR 1VnUEc1bGRHbHVaWFF2YVc0dWFENE5DaU5wYm1Oc2RXUmxJRHhsY25KdWJ5NW9QZzBLYVc1MElHMWhhVzR vWVhKbll5eGhjbWQyS1EwS2FXNTBJDQpHRnlaMk03RFFwamFHRnlJQ29xWVhKbmRqc05DbnNnSUEwS0lHb HVkQ0J6YjJOclptUXNJRzVsZDJaa093MEtJR05vWVhJZ1luVm1Xek13WFRzTkNpQnpkSEoxWTNRZ2MyOWp hMkZrWkhKZmFXNGdjbVZ0DQpiM1JsT3cwS0lHbG1LR1p2Y21zb0tTQTlQU0F3S1NCN0lBMEtJSEpsYlc5M FpTNXphVzVmWm1GdGFXeDVJRDBnUVVaZlNVNUZWRHNOQ2lCeVpXMXZkR1V1YzJsdVgzQnZjblFnUFNCb2R HOXVjeWhoZEc5DQpwS0dGeVozWmJNVjBwS1RzTkNpQnlaVzF2ZEdVdWMybHVYMkZrWkhJdWMxOWhaR1J5S UQwZ2FIUnZibXdvU1U1QlJFUlNYMEZPV1NrN0lBMEtJSE52WTJ0bVpDQTlJSE52WTJ0bGRDaEJSbDlKVGt WVUxGDQpOUFEwdGZVMVJTUlVGTkxEQXBPdzBLSUdsbUtDRnpiMk5yWm1RcElIQmxjbkp2Y2lnaWMyOWphM lYwSUdWeWNtOXlJaWs3RFFvZ1ltbHVaQ2h6YjJOclptUXNJQ2h6ZEhKMVkzUWdjMjlqYTJGa1pISWdLDQp pa21jbVZ0YjNSbExDQXdlREV3S1RzTkNpQnNhWE4wWlc0b2MyOWphMlprTENBMUtUc05DaUIzYUdsc1pTZ 3hLUTBLSUNCN0RRb2dJQ0J1WlhkbVpEMWhZMk5sY0hRb2MyOWphMlprTERBc01DazdEUW9nDQpJQ0JrZFh BeUtHNWxkMlprTERBcE93MEtJQ0FnWkhWd01paHVaWGRtWkN3eEtUc05DaUFnSUdSMWNESW9ibVYzWm1Rc 01pazdEUW9nSUNCM2NtbDBaU2h1WlhkbVpDd2lVR0Z6YzNkdmNtUTZJaXd4TUNrDQo3RFFvZ0lDQnlaV0Z rS0c1bGQyWmtMR0oxWml4emFYcGxiMllvWW5WbUtTazdEUW9nSUNCcFppQW9JV05vY0dGemN5aGhjbWQyV 3pKZExHSjFaaWtwRFFvZ0lDQnplWE4wWlcwb0ltVmphRzhnZDJWc1kyDQo5dFpTQjBieUJ5TlRjZ2MyaGx iR3dnSmlZZ0wySnBiaTlpWVhOb0lDMXBJaWs3RFFvZ0lDQmxiSE5sRFFvZ0lDQm1jSEpwYm5SbUtITjBaR 1Z5Y2l3aVUyOXljbmtpS1RzTkNpQWdJR05zYjNObEtHNWxkDQoyWmtLVHNOQ2lBZ2ZRMEtJSDBOQ24wTkN tbHVkQ0JqYUhCaGMzTW9ZMmhoY2lBcVltRnpaU3dnWTJoaGNpQXFaVzUwWlhKbFpDa2dldzBLYVc1MElHa zdEUXBtYjNJb2FUMHdPMms4YzNSeWJHVnVLR1Z1DQpkR1Z5WldRcE8ya3JLeWtnRFFwN0RRcHBaaWhsYm5 SbGNtVmtXMmxkSUQwOUlDZGNiaWNwRFFwbGJuUmxjbVZrVzJsZElEMGdKMXd3SnpzZ0RRcHBaaWhsYm5Sb GNtVmtXMmxkSUQwOUlDZGNjaWNwRFFwDQpsYm5SbGNtVmtXMmxkSUQwZ0oxd3dKenNOQ24wTkNtbG1JQ2d oYzNSeVkyMXdLR0poYzJVc1pXNTBaWEpsWkNrcERRcHlaWFIxY200Z01Ec05DbjA9IjsNCiRwb3J0X2Jpb mRfYmRfcGw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFva1UwaEZURXc5SWk5aWFXNHZZbUZ6YUNBdGFTSTd EUXBwWmlBb1FFRlNSMVlnUENBeEtTQjdJR1Y0YVhRb01TazdJSDBOQ2lSTVMNClZOVVJVNWZVRTlTVkQwa 1FWSkhWbHN3WFRzTkNuVnpaU0JUYjJOclpYUTdEUW9rY0hKdmRHOWpiMnc5WjJWMGNISnZkRzlpZVc1aGJ XVW9KM1JqY0NjcE93MEtjMjlqYTJWMEtGTXNKbEJHWDBsT1JWUXMNCkpsTlBRMHRmVTFSU1JVRk5MQ1J3Y 205MGIyTnZiQ2tnZkh3Z1pHbGxJQ0pEWVc1MElHTnlaV0YwWlNCemIyTnJaWFJjYmlJN0RRcHpaWFJ6YjJ OcmIzQjBLRk1zVTA5TVgxTlBRMHRGVkN4VFQxOVNSVlYNClRSVUZFUkZJc01TazdEUXBpYVc1a0tGTXNjM jlqYTJGa1pISmZhVzRvSkV4SlUxUkZUbDlRVDFKVUxFbE9RVVJFVWw5QlRsa3BLU0I4ZkNCa2FXVWdJa05 oYm5RZ2IzQmxiaUJ3YjNKMFhHNGlPdzBLYkcNCmx6ZEdWdUtGTXNNeWtnZkh3Z1pHbGxJQ0pEWVc1MElHe

HBjM1JsYmlCd2IzSjBYRzRpT3cwS2QyaHBiR1VvTVNrTkNuc05DbUZqWTJWd2RDaERUMDVPTEZNcE93MEt hV1lvSVNna2NHbGtQV1p2Y21zcEsNClEwS2V3MEtaR2xsSUNKRFlXNXViM1FnWm05eWF5SWdhV1lnS0NGa 1pXWnBibVZrSUNSd2FXUXBPdzBLYjNCbGJpQlRWRVJKVGl3aVBDWkRUMDVPSWpzTkNtOXdaVzRnVTFSRVQ xVlVMQ0krSmtOUFRrNGkNCk93MEtiM0JsYmlCVFZFUkZVbElzSWo0bVEwOU9UaUk3RFFwbGVHVmpJQ1JUU 0VWTVRDQjhmQ0JrYVdVZ2NISnBiblFnUTA5T1RpQWlRMkZ1ZENCbGVHVmpkWFJsSUNSVFNFVk1URnh1SWp zTkNtTnNiM04NCmxJRU5QVGs0N0RRcGxlR2wwSURBN0RRcDlEUXA5IjsNCiRiYWNrX2Nvbm5lY3Q9Ikl5R XZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKR050WkQwZ0lteDVibmdpT3cwS0pITjV jM1JsYlQwZ0oyVmphRzhnSW1CMWJtRnRaU0F0WVdBaU8yVmoNCmFHOGdJbUJwWkdBaU95OWlhVzR2YzJnb k93MEtKREE5SkdOdFpEc05DaVIwWVhKblpYUTlKRUZTUjFaYk1GMDdEUW9rY0c5eWREMGtRVkpIVmxzeFh Uc05DaVJwWVdSa2NqMXBibVYwWDJGMGIyNG9KSFINCmhjbWRsZENrZ2ZId2daR2xsS0NKRmNuSnZjam9nS kNGY2JpSXBPdzBLSkhCaFpHUnlQWE52WTJ0aFpHUnlYMmx1S0NSd2IzSjBMQ0FrYVdGa1pISXBJSHg4SUd ScFpTZ2lSWEp5YjNJNklDUWhYRzRpS1QNCnNOQ2lSd2NtOTBiejFuWlhSd2NtOTBiMko1Ym1GdFpTZ25kR 053SnlrN0RRcHpiMk5yWlhRb1UwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dKSEJ 5YjNSdktTQjhmQ0JrYVdVb0kNCmtWeWNtOXlPaUFrSVZ4dUlpazdEUXBqYjI1dVpXTjBLRk5QUTB0RlZDd 2dKSEJoWkdSeUtTQjhmQ0JrYVdVb0lrVnljbTl5T2lBa0lWeHVJaWs3RFFwdmNHVnVLRk5VUkVsT0xDQWl QaVpUVDBOTFJWUWkNCktUc05DbTl3Wlc0b1UxUkVUMVZVTENBaVBpWlRUME5MUlZRaUtUc05DbTl3Wlc0b 1UxUkVSVkpTTENBaVBpWlRUME5MUlZRaUtUc05Dbk41YzNSbGJTZ2tjM2x6ZEdWdEtUc05DbU5zYjNObEt GTlVSRWwNCk9LVHNOQ21Oc2IzTmxLRk5VUkU5VlZDazdEUXBqYkc5elpTaFRWRVJGVWxJcE93PT0iOw0KJ GJhY2tfY29ubmVjdF9jPSJJMmx1WTJ4MVpHVWdQSE4wWkdsdkxtZytEUW9qYVc1amJIVmtaU0E4YzNsekw zTnZZMnRsZEM1b1BnMEtJMmx1WTJ4MVpHVWdQRzVsZEdsdVpYUXZhVzR1YUQ0TkNtbHVkQw0KQnRZV2x1S 0dsdWRDQmhjbWRqTENCamFHRnlJQ3BoY21kMlcxMHBEUXA3RFFvZ2FXNTBJR1prT3cwS0lITjBjblZqZEN CemIyTnJZV1JrY2w5cGJpQnphVzQ3RFFvZ1kyaGhjaUJ5YlhOYk1qRmRQU0p5Yg0KU0F0WmlBaU95QU5Da UJrWVdWdGIyNG9NU3d3S1RzTkNpQnphVzR1YzJsdVgyWmhiV2xzZVNBOUlFRkdYMGxPUlZRN0RRb2djMmx 1TG5OcGJsOXdiM0owSUQwZ2FIUnZibk1vWVhSdmFTaGhjbWQyV3pKZA0KS1NrN0RRb2djMmx1TG5OcGJsO WhaR1J5TG5OZllXUmtjaUE5SUdsdVpYUmZZV1JrY2loaGNtZDJXekZkS1RzZ0RRb2dZbnBsY204b1lYSm5 kbHN4WFN4emRISnNaVzRvWVhKbmRsc3hYU2tyTVN0emRISg0Kc1pXNG9ZWEpuZGxzeVhTa3BPeUFOQ2lCb VpDQTlJSE52WTJ0bGRDaEJSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnU1ZCUVVrOVVUMTlVUT FBcElEc2dEUW9nYVdZZ0tDaGpiMjV1WldOMEtHWmtMQw0KQW9jM1J5ZFdOMElITnZZMnRoWkdSeUlDb3BJ Q1p6YVc0c0lITnBlbVZ2WmloemRISjFZM1FnYzI5amEyRmtaSElwS1NrOE1Da2dldzBLSUNBZ2NHVnljbT l5S0NKYkxWMGdZMjl1Ym1WamRDZ3BJaWs3RA0KUW9nSUNCbGVHbDBLREFwT3cwS0lIME5DaUJ6ZEhKallY UW9jbTF6TENCaGNtZDJXekJkS1RzTkNpQnplWE4wWlcwb2NtMXpLVHNnSUEwS0lHUjFjRElvWm1Rc0lEQX BPdzBLSUdSMWNESW9abVFzSURFcA0KT3cwS0lHUjFjRElvWm1Rc0lESXBPdzBLSUdWNFpXTnNLQ0l2WW1s dUwzTm9JaXdpYzJnZ0xXa2lMQ0JPVlV4TUtUc05DaUJqYkc5elpTaG1aQ2s3SUEwS2ZRPT0iOw0KJGRhdG FwaXBlX2M9IkkybHVZMngxWkdVZ1BITjVjeTkwZVhCbGN5NW9QZzBLSTJsdVkyeDFaR1VnUEhONWN5OXpi Mk5yWlhRdWFENE5DaU5wYm1Oc2RXUmxJRHh6ZVhNdmQyRnBkQzVvUGcwS0kybHVZMg0KeDFaR1VnUEc1bG RHbHVaWFF2YVc0dWFENE5DaU5wYm1Oc2RXUmxJRHh6ZEdScGJ5NW9QZzBLSTJsdVkyeDFaR1VnUEhOMFpH eHBZaTVvUGcwS0kybHVZMngxWkdVZ1BHVnljbTV2TG1nK0RRb2phVzVqYg0KSFZrWlNBOGRXNXBjM1JrTG 1nK0RRb2phVzVqYkhWa1pTQThibVYwWkdJdWFENE5DaU5wYm1Oc2RXUmxJRHhzYVc1MWVDOTBhVzFsTG1n K0RRb2phV1prWldZZ1UxUlNSVkpTVDFJTkNtVjRkR1Z5YmlCag0KYUdGeUlDcHplWE5mWlhKeWJHbHpkRn RkT3cwS1pYaDBaWEp1SUdsdWRDQnplWE5mYm1WeWNqc05DbU5vWVhJZ0tuVnVaR1ZtSUQwZ0lsVnVaR1Zt YVc1bFpDQmxjbkp2Y2lJN0RRcGphR0Z5SUNwemRISg0KbGNuSnZjaWhsY25KdmNpa2dJQTBLYVc1MElHVn ljbTl5T3lBZ0RRcDdJQTBLYVdZZ0tHVnljbTl5SUQ0Z2MzbHpYMjVsY25JcERRcHlaWFIxY200Z2RXNWta V1k3RFFweVpYUjFjbTRnYzNselgyVnljbQ0KeHBjM1JiWlhKeWIzSmRPdzBLZlEwS0kyVnVaR2xtRFFvTk NtMWhhVzRvWVhKbll5d2dZWEpuZGlrZ0lBMEtJQ0JwYm5RZ1lYSm5ZenNnSUEwS0lDQmphR0Z5SUNvcVlY Sm5kanNnSUEwS2V5QU5DaUFnYQ0KVzUwSUd4emIyTnJMQ0JqYzI5amF5d2diM052WTJzN0RRb2dJRVpKVE VVZ0ttTm1hV3hsT3cwS0lDQmphR0Z5SUdKMVpsczBNRGsyWFRzTkNpQWdjM1J5ZFdOMElITnZZMnRoWkdS eVgybHVJR3hoWkdSeQ0KTENCallXUmtjaXdnYjJGa1pISTdEUW9nSUdsdWRDQmpZV1JrY214bGJpQTlJSE 5wZW1WdlppaGpZV1JrY2lrN0RRb2dJR1prWDNObGRDQm1aSE55TENCbVpITmxPdzBLSUNCemRISjFZM1Fn YUc5emRHVg0KdWRDQXFhRHNOQ2lBZ2MzUnlkV04wSUhObGNuWmxiblFnS25NN0RRb2dJR2x1ZENCdVlubD BPdzBLSUNCMWJuTnBaMjVsWkNCc2IyNW5JR0U3RFFvZ0lIVnVjMmxuYm1Wa0lITm9iM0owSUc5d2IzSjBP dw0KMEtEUW9nSUdsbUlDaGhjbWRqSUNFOUlEUXBJSHNOQ2lBZ0lDQm1jSEpwYm5SbUtITjBaR1Z5Y2l3aV ZYTmhaMlU2SUNWeklHeHZZMkZzY0c5eWRDQnlaVzF2ZEdWd2IzSjBJSEpsYlc5MFpXaHZjM1JjYg0KaUlz WVhKbmRsc3dYU2s3RFFvZ0lDQWdjbVYwZFhKdUlETXdPdzBLSUNCOURRb2dJR0VnUFNCcGJtVjBYMkZrWk hJb1lYSm5kbHN6WFNrN0RRb2dJR2xtSUNnaEtHZ2dQU0JuWlhSb2IzTjBZbmx1WVcxbA0KS0dGeVozWmJN MTBwS1NBbUpnMEtJQ0FnSUNBZ0lTaG9JRDBnWjJWMGFHOXpkR0o1WVdSa2NpZ21ZU3dnTkN3Z1FVWmZTVT VGVkNrcEtTQjdEUW9nSUNBZ2NHVnljbTl5S0dGeVozWmJNMTBwT3cwS0lDQQ0KZ0lISmxkSFZ5YmlBeU5U c05DaUFnZlEwS0lDQnZjRzl5ZENBOUlHRjBiMndvWVhKbmRsc3lYU2s3RFFvZ0lHeGhaR1J5TG5OcGJsOX diM0owSUQwZ2FIUnZibk1vS0hWdWMybG5ibVZrSUhOb2IzSjBLUw0KaGhkRzlzS0dGeVozWmJNVjBwS1Nr

N0RRb2dJR2xtSUNnb2JITnZZMnNnUFNCemIyTnJaWFFvVUVaZlNVNUZWQ3dnVTA5RFMxOVRWRkpGUVUwc0 lFbFFVRkpQVkU5ZlZFTlFLU2tnUFQwZ0xURXBJSHNOQw0KaUFnSUNCd1pYSnliM0lvSW5OdlkydGxkQ0lw T3cwS0lDQWdJSEpsZEhWeWJpQXlNRHNOQ2lBZ2ZRMEtJQ0JzWVdSa2NpNXphVzVmWm1GdGFXeDVJRDBnYU hSdmJuTW9RVVpmU1U1RlZDazdEUW9nSUd4aA0KWkdSeUxuTnBibDloWkdSeUxuTmZZV1JrY2lBOUlHaDBi MjVzS0RBcE93MEtJQ0JwWmlBb1ltbHVaQ2hzYzI5amF5d2dKbXhoWkdSeUxDQnphWHBsYjJZb2JHRmtaSE lwS1NrZ2V3MEtJQ0FnSUhCbGNuSg0KdmNpZ2lZbWx1WkNJcE93MEtJQ0FnSUhKbGRIVnliaUF5TURzTkNp QWdmUTBLSUNCcFppQW9iR2x6ZEdWdUtHeHpiMk5yTENBeEtTa2dldzBLSUNBZ0lIQmxjbkp2Y2lnaWJHbH pkR1Z1SWlrN0RRb2dJQw0KQWdjbVYwZFhKdUlESXdPdzBLSUNCOURRb2dJR2xtSUNnb2JtSjVkQ0E5SUda dmNtc29LU2tnUFQwZ0xURXBJSHNOQ2lBZ0lDQndaWEp5YjNJb0ltWnZjbXNpS1RzTkNpQWdJQ0J5WlhSMW NtNGdNakE3RA0KUW9nSUgwTkNpQWdhV1lnS0c1aWVYUWdQaUF3S1EwS0lDQWdJSEpsZEhWeWJpQXdPdzBL SUNCelpYUnphV1FvS1RzTkNpQWdkMmhwYkdVZ0tDaGpjMjlqYXlBOUlHRmpZMlZ3ZENoc2MyOWpheXdnSm 1OaA0KWkdSeUxDQW1ZMkZrWkhKc1pXNHBLU0FoUFNBdE1Ta2dldzBLSUNBZ0lHTm1hV3hsSUQwZ1ptUnZj R1Z1S0dOemIyTnJMQ0p5S3lJcE93MEtJQ0FnSUdsbUlDZ29ibUo1ZENBOUlHWnZjbXNvS1NrZ1BUMA0KZ0 xURXBJSHNOQ2lBZ0lDQWdJR1p3Y21sdWRHWW9ZMlpwYkdVc0lDSTFNREFnWm05eWF6b2dKWE5jYmlJc0lI TjBjbVZ5Y205eUtHVnljbTV2S1NrN0RRb2dJQ0FnSUNCemFIVjBaRzkzYmloamMyOWpheQ0Kd3lLVHNOQ2 lBZ0lDQWdJR1pqYkc5elpTaGpabWxzWlNrN0RRb2dJQ0FnSUNCamIyNTBhVzUxWlRzTkNpQWdJQ0I5RFFv Z0lDQWdhV1lnS0c1aWVYUWdQVDBnTUNrTkNpQWdJQ0FnSUdkdmRHOGdaMjkwYw0KMjlqYXpzTkNpQWdJQ0 JtWTJ4dmMyVW9ZMlpwYkdVcE93MEtJQ0FnSUhkb2FXeGxJQ2gzWVdsMGNHbGtLQzB4TENCT1ZVeE1MQ0JY VGs5SVFVNUhLU0ErSURBcE93MEtJQ0I5RFFvZ0lISmxkSFZ5YmlBeQ0KTURzTkNnMEtJR2R2ZEhOdlkycz ZEUW9nSUdsbUlDZ29iM052WTJzZ1BTQnpiMk5yWlhRb1VFWmZTVTVGVkN3Z1UwOURTMTlUVkZKRlFVMHNJ RWxRVUZKUFZFOWZWRU5RS1NrZ1BUMGdMVEVwSUhzTkNpQQ0KZ0lDQm1jSEpwYm5SbUtHTm1hV3hsTENBaU 5UQXdJSE52WTJ0bGREb2dKWE5jYmlJc0lITjBjbVZ5Y205eUtHVnljbTV2S1NrN0RRb2dJQ0FnWjI5MGJ5 QnhkV2wwTVRzTkNpQWdmUTBLSUNCdllXUmtjaQ0KNXphVzVmWm1GdGFXeDVJRDBnYUMwK2FGOWhaR1J5ZE hsd1pUc05DaUFnYjJGa1pISXVjMmx1WDNCdmNuUWdQU0JvZEc5dWN5aHZjRzl5ZENrN0RRb2dJRzFsYldO d2VTZ21iMkZrWkhJdWMybHVYMkZrWg0KSElzSUdndFBtaGZZV1JrY2l3Z2FDMCthRjlzWlc1bmRHZ3BPdz BLSUNCcFppQW9ZMjl1Ym1WamRDaHZjMjlqYXl3Z0ptOWhaR1J5TENCemFYcGxiMllvYjJGa1pISXBLU2tn ZXcwS0lDQWdJR1p3Y21sdQ0KZEdZb1kyWnBiR1VzSUNJMU1EQWdZMjl1Ym1WamREb2dKWE5jYmlJc0lITj BjbVZ5Y205eUtHVnljbTV2S1NrN0RRb2dJQ0FnWjI5MGJ5QnhkV2wwTVRzTkNpQWdmUTBLSUNCM2FHbHNa U0FvTVNrZ2V3MA0KS0lDQWdJRVpFWDFwRlVrOG9KbVprYzNJcE93MEtJQ0FnSUVaRVgxcEZVazhvSm1aa2 MyVXBPdzBLSUNBZ0lFWkVYMU5GVkNoamMyOWpheXdtWm1SemNpazdEUW9nSUNBZ1JrUmZVMFZVS0dOemIy TnJMQw0KWm1aSE5sS1RzTkNpQWdJQ0JHUkY5VFJWUW9iM052WTJzc0ptWmtjM0lwT3cwS0lDQWdJRVpFWD FORlZDaHZjMjlqYXl3bVptUnpaU2s3RFFvZ0lDQWdhV1lnS0hObGJHVmpkQ2d5TUN3Z0ptWmtjM0lzSQ0K RTVWVEV3c0lDWm1aSE5sTENCT1ZVeE1LU0E5UFNBdE1Ta2dldzBLSUNBZ0lDQWdabkJ5YVc1MFppaGpabW xzWlN3Z0lqVXdNQ0J6Wld4bFkzUTZJQ1Z6WEc0aUxDQnpkSEpsY25KdmNpaGxjbkp1YnlrcA0KT3cwS0lD QWdJQ0FnWjI5MGJ5QnhkV2wwTWpzTkNpQWdJQ0I5RFFvZ0lDQWdhV1lnS0VaRVgwbFRVMFZVS0dOemIyTn JMQ1ptWkhOeUtTQjhmQ0JHUkY5SlUxTkZWQ2hqYzI5amF5d21abVJ6WlNrcElIcw0KTkNpQWdJQ0FnSUds bUlDZ29ibUo1ZENBOUlISmxZV1FvWTNOdlkyc3NZblZtTERRd09UWXBLU0E4UFNBd0tRMEtDV2R2ZEc4Z2 NYVnBkREk3RFFvZ0lDQWdJQ0JwWmlBb0tIZHlhWFJsS0c5emIyTnJMRw0KSjFaaXh1WW5sMEtTa2dQRDBn TUNrTkNnbG5iM1J2SUhGMWFYUXlPdzBLSUNBZ0lIMGdaV3h6WlNCcFppQW9Sa1JmU1ZOVFJWUW9iM052WT Jzc0ptWmtjM0lwSUh4OElFWkVYMGxUVTBWVUtHOXpiMk5yTA0KQ1ptWkhObEtTa2dldzBLSUNBZ0lDQWdh V1lnS0NodVlubDBJRDBnY21WaFpDaHZjMjlqYXl4aWRXWXNOREE1TmlrcElEdzlJREFwRFFvSloyOTBieU J4ZFdsME1qc05DaUFnSUNBZ0lHbG1JQ2dvZDNKcA0KZEdVb1kzTnZZMnNzWW5WbUxHNWllWFFwS1NBOFBT QXdLUTBLQ1dkdmRHOGdjWFZwZERJN0RRb2dJQ0FnZlEwS0lDQjlEUW9OQ2lCeGRXbDBNam9OQ2lBZ2MyaD FkR1J2ZDI0b2IzTnZZMnNzTWlrN0RRbw0KZ0lHTnNiM05sS0c5emIyTnJLVHNOQ2lCeGRXbDBNVG9OQ2lB Z1ptWnNkWE5vS0dObWFXeGxLVHNOQ2lBZ2MyaDFkR1J2ZDI0b1kzTnZZMnNzTWlrN0RRb2djWFZwZERBNk RRb2dJR1pqYkc5elpTaGpabQ0KbHNaU2s3RFFvZ0lISmxkSFZ5YmlBd093MEtmUT09IjsNCiRkYXRhcGlw ZV9wbD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAxYzJVZ1NVODZPbE52WTJ0bGREc05DblZ6WlNCUVQxTk pXRHNOQ2lSc2IyTmhiSEJ2Y25RZ1BTQWtRVkpIVmxzd1hUc05DaVJvYjNOMEkNCkNBZ0lDQWdQU0FrUVZK SFZsc3hYVHNOQ2lSd2IzSjBJQ0FnSUNBZ1BTQWtRVkpIVmxzeVhUc05DaVJrWVdWdGIyNDlNVHNOQ2lSRV NWSWdQU0IxYm1SbFpqc05DaVI4SUQwZ01Uc05DbWxtSUNna1pHRmwNCmJXOXVLWHNnSkhCcFpDQTlJR1p2 Y21zN0lHVjRhWFFnYVdZZ0pIQnBaRHNnWkdsbElDSWtJU0lnZFc1c1pYTnpJR1JsWm1sdVpXUW9KSEJwWk NrN0lGQlBVMGxZT2pwelpYUnphV1FvS1NCdmNpQmthV1UNCmdJaVFoSWpzZ2ZRMEtKVzhnUFNBb0ozQnZj blFuSUQwK0lDUnNiMk5oYkhCdmNuUXNKM1J2Y0c5eWRDY2dQVDRnSkhCdmNuUXNKM1J2YUc5emRDY2dQVD RnSkdodmMzUXBPdzBLSkdGb0lEMGdTVTg2T2wNCk52WTJ0bGREbzZTVTVGVkMwK2JtVjNLQ2RNYjJOaGJG QnZjblFuSUQwK0lDUnNiMk5oYkhCdmNuUXNKMUpsZFhObEp5QTlQaUF4TENkTWFYTjBaVzRuSUQwK0lERX dLU0I4ZkNCa2FXVWdJaVFoSWpzTkMNCmlSVFNVZDdKME5JVEVRbmZTQTlJQ2RKUjA1UFVrVW5PdzBLSkc1 MWJTQTlJREE3RFFwM2FHbHNaU0FvTVNrZ2V5QU5DaVJqYUNBOUlDUmhhQzArWVdOalpYQjBLQ2s3SUdsbU lDZ2hKR05vS1NCN0lIQnkNCmFXNTBJRk5VUkVWU1VpQWlKQ0ZjYmlJN0lHNWxlSFE3SUgwTkNpc3JKRzUx

YlRzTkNpUndhV1FnUFNCbWIzSnJLQ2s3RFFwcFppQW9JV1JsWm1sdVpXUW9KSEJwWkNrcElIc2djSEpwYm 5RZ1UxUkVSVkoNClNJQ0lrSVZ4dUlqc2dmU0FOQ21Wc2MybG1JQ2drY0dsa0lEMDlJREFwSUhzZ0pHRm9M VDVqYkc5elpTZ3BPeUJTZFc0b1hDVnZMQ0FrWTJnc0lDUnVkVzBwT3lCOUlBMEtaV3h6WlNCN0lDUmphQz ArWTINCnh2YzJVb0tUc2dmUTBLZlEwS2MzVmlJRkoxYmlCN0RRcHRlU2drYnl3Z0pHTm9MQ0FrYm5WdEtT QTlJRUJmT3cwS2JYa2dKSFJvSUQwZ1NVODZPbE52WTJ0bGREbzZTVTVGVkMwK2JtVjNLQ2RRWldWeVENCl dSa2NpY2dQVDRnSkc4dFBuc25kRzlvYjNOMEozMHNKMUJsWlhKUWIzSjBKeUE5UGlBa2J5MCtleWQwYjNC dmNuUW5mU2s3RFFwcFppQW9JU1IwYUNrZ2V5QmxlR2wwSURBN0lIME5DbTE1SUNSbWFEc04NCkNtbG1JQ2 drYnkwK2V5ZGthWEluZlNrZ2V5QWtabWdnUFNCVGVXMWliMnc2T21kbGJuTjViU2dwT3lCdmNHVnVLQ1Jt YUN3Z0lqNGtieTArZXlka2FYSW5mUzkwZFc1dVpXd2tiblZ0TG14dlp5SXBJRzkNCnlJR1JwWlNBaUpDRW lPeUI5RFFva1kyZ3RQbUYxZEc5bWJIVnphQ2dwT3cwS0pIUm9MVDVoZFhSdlpteDFjMmdvS1RzTkNuZG9h V3hsSUNna1kyZ2dmSHdnSkhSb0tTQjdEUXB0ZVNBa2NtbHVJRDBnSWkNCkk3RFFwMlpXTW9KSEpwYml3Z1 ptbHNaVzV2S0NSamFDa3NJREVwSUQwZ01TQnBaaUFrWTJnN0RRcDJaV01vSkhKcGJpd2dabWxzWlc1dktD UjBhQ2tzSURFcElEMGdNU0JwWmlBa2RHZzdEUXB0ZVNna2MNCm05MWRDd2dKR1Z2ZFhRcE93MEtjMlZzWl dOMEtDUnliM1YwSUQwZ0pISnBiaXdnZFc1a1pXWXNJQ1JsYjNWMElEMGdKSEpwYml3Z01USXdLVHNOQ21s bUlDZ2hKSEp2ZFhRZ0lDWW1JQ0FoSkdWdmRYUXANCklIdDlEUXB0ZVNBa1kySjFabVpsY2lBOUlDSWlPdz BLYlhrZ0pIUmlkV1ptWlhJZ1BTQWlJanNOQ21sbUlDZ2tZMmdnSmlZZ0tIWmxZeWdrWlc5MWRDd2dabWxz Wlc1dktDUmphQ2tzSURFcElIeDhJSFoNCmxZeWdrY205MWRDd2dabWxzWlc1dktDUmphQ2tzSURFcEtTa2 dldzBLYlhrZ0pISmxjM1ZzZENBOUlITjVjM0psWVdRb0pHTm9MQ0FrZEdKMVptWmxjaXdnTVRBeU5DazdE UXBwWmlBb0lXUmxabWx1WlcNClFvSkhKbGMzVnNkQ2twSUhzTkNuQnlhVzUwSUZOVVJFVlNVaUFpSkNGY2 JpSTdEUXBsZUdsMElEQTdEUXA5RFFwcFppQW9KSEpsYzNWc2RDQTlQU0F3S1NCN0lHVjRhWFFnTURzZ2ZR MEtmUTBLYVdZZ0sNCkNSMGFDQWdKaVlnSUNoMlpXTW9KR1Z2ZFhRc0lHWnBiR1Z1Ynlna2RHZ3BMQ0F4S1 NBZ2ZId2dkbVZqS0NSeWIzVjBMQ0JtYVd4bGJtOG9KSFJvS1N3Z01Ta3BLU0I3RFFwdGVTQWtjbVZ6ZFd4 MElEMGcNCmMzbHpjbVZoWkNna2RHZ3NJQ1JqWW5WbVptVnlMQ0F4TURJMEtUc05DbWxtSUNnaFpHVm1hVz VsWkNna2NtVnpkV3gwS1NrZ2V5QndjbWx1ZENCVFZFUkZVbElnSWlRaFhHNGlPeUJsZUdsMElEQTdJSDAN Ck5DbWxtSUNna2NtVnpkV3gwSUQwOUlEQXBJSHRsZUdsMElEQTdmUTBLZlEwS2FXWWdLQ1JtYUNBZ0ppWW dJQ1IwWW5WbVptVnlLU0I3S0hCeWFXNTBJQ1JtYUNBa2RHSjFabVpsY2lrN2ZRMEtkMmhwYkcNClVnS0cx NUlDUnNaVzRnUFNCc1pXNW5kR2dvSkhSaWRXWm1aWElwS1NCN0RRcHRlU0FrY21WeklEMGdjM2x6ZDNKcG RHVW9KSFJvTENBa2RHSjFabVpsY2l3Z0pHeGxiaWs3RFFwcFppQW9KSEpsY3lBK0kNCkRBcElIc2tkR0ox Wm1abGNpQTlJSE4xWW5OMGNpZ2tkR0oxWm1abGNpd2dKSEpsY3lrN2ZTQU5DbVZzYzJVZ2UzQnlhVzUwSU ZOVVJFVlNVaUFpSkNGY2JpSTdmUTBLZlEwS2QyaHBiR1VnS0cxNUlDUnMNClpXNGdQU0JzWlc1bmRHZ29K R05pZFdabVpYSXBLU0I3RFFwdGVTQWtjbVZ6SUQwZ2MzbHpkM0pwZEdVb0pHTm9MQ0FrWTJKMVptWmxjaX dnSkd4bGJpazdEUXBwWmlBb0pISmxjeUErSURBcElIc2tZMkoNCjFabVpsY2lBOUlITjFZbk4wY2lna1ky SjFabVpsY2l3Z0pISmxjeWs3ZlNBTkNtVnNjMlVnZTNCeWFXNTBJRk5VUkVWU1VpQWlKQ0ZjYmlJN 2ZRMEtmWDE5RFFvPSI7DQokcG9ydF9iaW5kX2JkX2NzPSJmMFZNUmdFQkFRQUFBQUFBQUFBQUFBSUFBd0F CQUFBQW9JVUVDRFFBQUFENEVnQUFBQUFBQURRQUlBQUhBQ2dBSWdBZkFBWUFBQUEwQUFBQU5JQUVDRFNBQ kFqZ0FBQUE0QUFBQUFVQUFBQUVBQUFBQXdBQUFCUUJBQUFVZ1FRSUZJRUVDQk1BQUFBVEFBQUFCQUFBQUF FQUFBQUJBQUFBQUFBQUFBQ0FCQWdBZ0FRSXJBa0FBS3dKQUFBRkFBQUFBQkFBQUFFQUFBQ3NDUUFBckprR UNLeVpCQWcwQVFBQU9BRUFBQVlBQUFBQUVBQUFBZ0FBQU1BSkFBREFtUVFJd0prRUNNZ0FBQURJQUFBQUJ nQUFBQVFBQUFBRUFBQUFLQUVBQUNpQkJBZ29nUVFJSUFBQUFDQUFBQUFFQUFBQUJBQUFBRkhsZEdRQUFBQ UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUFFQUFBQUwyeHBZaTlzWkMxc2FXNTFlQzV6Ynk0eUFBQUV BQUFBRUFBQUFBRUFBQUJIVGxVQUFBQUFBQUlBQUFBQ0FBQUFBQUFBQUJFQUFBQVRBQUFBQUFBQUFBQUFBQ UFRQUFBQUVRQUFBQUFBQUFBQUFBQUFDUUFBQUFnQUFBQUZBQUFBQXdBQUFBMEFBQUFBQUFBQUFBQUFBQTh BQUFBS0FBQUFFZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ UFZQUFBQUJBQUFBQUFBQUFBY0FBQUFMQUFBQUFBQUFBQVFBQUFBTUFBQUFEZ0FBQUFJQUFBQUFBQUFBQUF BQUFBQUFBQUFBQUFBQUFBQUFBQzRBQUFBQUFBQUFkUUVBQUJJQUFBQ2dBQUFBQUFBQUFIRUFBQUFTQUFBQ U5BQUFBQUFBQUFETUFBQUFFZ0FBQUdvQUFBQUFBQUFBV2dBQUFCSUFBQUJNQUFBQUFBQUFBSGdBQUFBU0F BQUFZd0FBQUFBQUFBQTVBQUFBRWdBQUFGZ0FBQUFBQUFBQU9RQUFBQklBQUFDT0FBQUFBQUFBQU9ZQUFBQ VNBQUFBT3dBQUFBQUFBQUE2QUFBQUVnQUFBRk1BQUFBQUFBQUFPUUFBQUJJQUFBQjFBQUFBQUFBQUFMa0F BQUFTQUFBQWVnQUFBQUFBQUFBckFBQUFFZ0FBQUVjQUFBQUFBQUFBZUFBQUFCSUFBQUJ2QUFBQUFBQUFBQ TRBQUFBU0FBQUFmd0FBQUVpSkJBZ0VBQUFBRVFBT0FFQUFBQUFBQUFBQU9RQUFBQklBQUFBQkFBQUFBQUF BQUFBQUFBQWdBQUFBRlFBQUFBQUFBQUFBQUFBQUlBQUFBQUJmU25aZlVtVm5hWE4wWlhKRGJHRnpjMlZ6Q UY5ZloyMXZibDl6ZEdGeWRGOWZBR3hwWW1NdWMyOHVOZ0JsZUdWamJBQndaWEp5YjNJQVpIVndNZ0J6YjJ OclpYUUFjMlZ1WkFCaFkyTmxjSFFBWW1sdVpBQnpaWFJ6YjJOcmIzQjBBR3hwYzNSbGJnQm1iM0pyQUdoM GIyNXpBR1Y0YVhRQVlYUnZhUUJmU1U5ZmMzUmthVzVmZFhObFpBQmZYMnhwWW1OZmMzUmhjblJmYldGcGJ nQmpiRzl6WlFCSFRFbENRMTh5TGpBQUFBQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBS UFBUUFDQUFBQUFBQUFBQUVBQVFBa0FBQUFFQUFBQUFBQUFBQVFhV2tOQUFBQ0FLWUFBQUFBQUFBQWlKb0V DQVlTQUFDWW1nUUlCd0VBQUp5YUJBZ0hBZ0FBb0pvRUNBY0RBQUNrbWdRSUJ3UUFBS2lhQkFnSEJRQUFyS m9FQ0FjR0FBQ3dtZ1FJQndjQUFMU2FCQWdIQ0FBQXVKb0VDQWNKQUFDOG1nUUlCd29BQU1DYUJBZ0hDd0F

BeEpvRUNBY01BQURJbWdRSUJ3MEFBTXlhQkFnSERnQUEwSm9FQ0FjUUFBQlZpZVdEN0Fqb01RRUFBT2lEQ VFBQTZGc0VBQURKd3dEL05aQ2FCQWovSlpTYUJBZ0FBQUFBL3lXWW1nUUlhQUFBQUFEcDRQLy8vLzhsbkp vRUNHZ0lBQUFBNmRELy8vLy9KYUNhQkFob0VBQUFBT25BLy8vLy95V2ttZ1FJYUJnQUFBRHBzUC8vLy84b HFKb0VDR2dnQUFBQTZhRC8vLy8vSmF5YUJBaG9LQUFBQU9tUS8vLy8veVd3bWdRSWFEQUFBQURwZ1AvLy8 vOGx0Sm9FQ0dnNEFBQUE2WEQvLy8vL0piaWFCQWhvUUFBQUFPbGcvLy8vL3lXOG1nUUlhRWdBQUFEcFVQL y8vLzhsd0pvRUNHaFFBQUFBNlVELy8vLy9KY1NhQkFob1dBQUFBT2t3Ly8vLy95WEltZ1FJYUdBQUFBRHB JUC8vLy84bHpKb0VDR2hvQUFBQTZSRC8vLy8vSmRDYUJBaG9jQUFBQU9rQS8vLy9NZTFlaWVHRDVQQlFWR kpvcllnRUNHaGNpQVFJVVZab1FJWUVDT2hmLy8vLzlKQ1FWWW5sVStnYkFBQUFnY08vRkFBQWcrd0VpNFA 4Ly8vL2hjQjBBdi9RZzhRRVcxM0RpeHdrdzFXSjVZUHNDSUE5NEpvRUNBQjBET3NjZzhBRW85eWFCQWovM HFIY21nUUlpeENGMG5YcnhnWGdtZ1FJQWNuRFZZbmxnK3dJb2J5WkJBaUZ3SFFTdUFBQUFBQ0Z3SFFKeHd Ra3ZKa0VDUC9ReWNPUWtGV0o1VmVEN0dTRDVQQzRBQUFBQUlQQUQ0UEFEOEhvQk1IZ0JDbkV4MFhrQVFBQ UFNZEYrRXlKQkFqSFJDUUlBQUFBQU1kRUpBUUJBQUFBeHdRa0FnQUFBT2dKLy8vL2lVWHdnMzN3QUhrWXh 3UWtqSWtFQ09nMC92Ly94d1FrQVFBQUFPaW8vdi8vWnNkRjFBSUF4MFhZQUFBQUFJdEZESVBBQklzQWlRU Ws2SnYrLy84UHQ4Q0pCQ1Rvc1A3Ly8yYUpSZGJIUkNRUUJBQUFBSTFGNUlsRUpBekhSQ1FJQWdBQUFNZEV KQVFCQUFBQWkwWHdpUVFrNkJMKy8vK05SZFRIUkNRSUVBQUFBSWxFSkFTTFJmQ0pCQ1RvS1A3Ly80WEFlU mpIQkNTVGlRUUk2S2o5Ly8vSEJDUUJBQUFBNkJ6Ky8vL0hSQ1FFQ0FBQUFJdEY4SWtFSk9pNS9mLy9oY0I 1R01jRUpKaUpCQWpvZWYzLy84Y0VKQUVBQUFEbzdmMy8vOGRGNkJBQUFBQ05SZWlOVmNTSlJDUUlpVlFrQ kl0RjhJa0VKT2h0L2YvL2lVWDBnMzMwQUhrTXh3UWtqSWtFQ09nNC9mLy82RVA5Ly8rRndBK0Vwd0FBQUl 0RitMbi8vLy8vaVVXNHVBQUFBQUQ4aTMyNDhxNkp5UGZRZytnQngwUWtEQUFBQUFDSlJDUUlpMFg0aVVRa 0JJdEY5SWtFSk9pUS9mLy94MFFrQkFBQUFBQ0xSZlNKQkNUb1BmMy8vOGRFSkFRQkFBQUFpMFgwaVFRazZ DcjkvLy9IUkNRRUFnQUFBSXRGOUlrRUpPZ1gvZi8veDBRa0NBQUFBQURIUkNRRW40a0VDTWNFSkorSkJBa m9lL3ovLzR0RjhJa0VKT2lBL1AvL3h3UWtBQUFBQU9nRS9mLy9pMFgwaVFRazZHbjgvLy9wRHYvLy8xV0o 1VmRXTWZaVDZILzkvLytCd3lNU0FBQ0Q3QXpvRWZ6Ly80MkRJUC8vLzQyVElQLy8vNGxGOENuUXdmZ0NPY 1p6Rm9uWC94U3lpMFh3ZzhZQktmaUorc0g0QWpuR2N1eUR4QXhiWGw5ZHcxV0o1WVBzR0lsZDlPZ3QvZi8 vZ2NQUkVRQUFpWFg0aVgzOGpiTWcvLy8vamJzZy8vLy9LZjdCL2dMckEvOFV0NFB1QVlQKy8zWDE2RG9BQ UFDTFhmU0xkZmlMZmZ5SjdGM0RrRldKNVZPRDdBU2hySmtFQ0lQNC8zUVN1NnlaQkFqLzBJdEQvSVByQkl QNC8zWHpnOFFFVzEzRGtKQ1FWWW5sVStpNy9QLy9nY05mRVFBQWcrd0U2TEg4Ly8rRHhBUmJYY01BQUFBR EFBQUFBUUFDQURvNklIYzBZMnN4Ym1jdGMyaGxiR3dnS0ZCeWFYWmhkR1VnUW5WcGJHUWdkakF1TXlrZ1l tbHVaQ0J6YUdWc2JDQmlZV05yWkc5dmNpQTZPaUFLQ2dCemIyTnJaWFFBWW1sdVpBQnNhWE4wWlc0QUwyS nBiaTl6YUFBQUFBQUFBUC8vLy84QUFBQUEvLy8vL3dBQUFBQUFBQUFBQVFBQUFDUUFBQUFNQUFBQWlJUUV DQTBBQUFBa2lRUUlCQUFBQUVpQkJBZ0ZBQUFBRUlNRUNBWUFBQURnZ1FRSUNnQUFBTEFBQUFBTEFBQUFFQ UFBQUJVQUFBQUFBQUFBQXdBQUFJeWFCQWdDQUFBQWVBQUFBQlFBQUFBUkFBQUFGd0FBQUJDRUJBZ1JBQUF BQ0lRRUNCSUFBQUFJQUFBQUV3QUFBQWdBQUFEKy8vOXY2SU1FQ1AvLy8yOEJBQUFBOFAvL2I4Q0RCQWdBQ UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF BQUFBQUF3SmtFQ0FBQUFBQUFBQUFBdG9RRUNNYUVCQWpXaEFRSTVvUUVDUGFFQkFnR2hRUUlGb1VFQ0NhR kJBZzJoUVFJUm9VRUNGYUZCQWhtaFFRSWRvVUVDSWFGQkFpV2hRUUlBQUFBQUFBQUFBQzRtUVFJQUVkRFF 6b2dLRWRPVlNrZ015NDBMallnS0ZWaWRXNTBkU0F6TGpRdU5pMHhkV0oxYm5SMU1pa0FBRWREUXpvZ0tFZ E9WU2tnTXk0MExqWWdLRlZpZFc1MGRTQXpMalF1TmkweGRXSjFiblIxTWlrQUFFZERRem9nS0VkT1ZTa2d OQzR3TGpNZ0tGVmlkVzUwZFNBMExqQXVNeTB4ZFdKMWJuUjFOU2tBQUVkRFF6b2dLRWRPVlNrZ05DNHdMa k1nS0ZWaWRXNTBkU0EwTGpBdU15MHhkV0oxYm5SMU5Ta0FBRWREUXpvZ0tFZE9WU2tnTXk0MExqWWdLRlZ pZFc1MGRTQXpMalF1TmkweGRXSjFiblIxTWlrQUFFZERRem9nS0VkT1ZTa2dOQzR3TGpNZ0tGVmlkVzUwZ FNBMExqQXVNeTB4ZFdKMWJuUjFOU2tBQUVkRFF6b2dLRWRPVlNrZ015NDBMallnS0ZWaWRXNTBkU0F6TGp RdU5pMHhkV0oxYm5SMU1pa0FBQUFjQUFBQUFnQUFBQUFBQkFBQUFBQUFvSVVFQ0NJQUFBQUFBQUFBQUFBQ UFEUUFBQUFDQUFzQkFBQUVBQUFBQUFEb2hRUUlCQUFBQUNTSkJBZ1NBQUFBaUlRRUNBc0FBQURFaFFRSUp BQUFBQUFBQUFBQUFBQUFMQUFBQUFJQW13RUFBQVFBQUFBQUFPaUZCQWdFQUFBQU80a0VDQVlBQUFDZGhBU UlBZ0FBQUFBQUFBQUFBQUFBSVFBQUFBSUFlZ0FBQUpFQUFBQjVBQUFBWDBsUFgzTjBaR2x1WDNWelpXUUF BQUFBQUhZQUFBQUNBQUFBQUFBRUFRQUFBQUNnaFFRSXdvVUVDQzR1TDNONWMyUmxjSE12YVRNNE5pOWxiR 1l2YzNSaGNuUXVVd0F2WW5WcGJHUXZZblZwYkdSa0wyZHNhV0pqTFRJdU15NDJMMkoxYVd4a0xYUnlaV1V 2WjJ4cFltTXRNaTR6TGpZdlkzTjFBRWRPVlNCQlV5QXlMakUyTGpreEFBR0FqUUFBQUFJQUZBQUFBQVFCV 3dBQUFNU0ZCQWpFaFFRSVlnQUFBQUVBQUFBQUVRQUFBQUtRQUFBQUJBY0NWQUFBQUFFSUFwMEFBQUFDQnd LTEFBQUFCQWNDVmdBQUFBRUdBZ2NBQUFBQ0JRTnBiblFBQkFVQ1JnQUFBQWdGQW9ZQUFBQUlCd0pMQUFBQ UJBVUNrQUFBQUFRSEFsMEFBQUFCQmdTd0FBQUFBUm1MQUFBQUFRVURTSWtFQ0FWUEFBQUFBSXdBQUFBQ0F GWUFBQUFFQVlJQUFBQXZZblZwYkdRdlluVnBiR1JrTDJkc2FXSmpMVEl1TXk0MkwySjFhV3hrTFhSeVpXV XZhVE00Tmkxc2FXSmpMMk56ZFM5amNuUnBMbE1BTDJKMWFXeGtMMkoxYVd4a1pDOW5iR2xpWXkweUxqTXV OaTlpZFdsc1pDMTBjbVZsTDJkc2FXSmpMVEl1TXk0MkwyTnpkUUJIVGxVZ1FWTWdNaTR4Tmk0NU1RQUJnS XdBQUFBQ0FHWUFBQUFFQVM4QkFBQXZZblZwYkdRdlluVnBiR1JrTDJkc2FXSmpMVEl1TXk0MkwySjFhV3h rTFhSeVpXVXZhVE00Tmkxc2FXSmpMMk56ZFM5amNuUnVMbE1BTDJKMWFXeGtMMkoxYVd4a1pDOW5iR2xpW XkweUxqTXVOaTlpZFdsc1pDMTBjbVZsTDJkc2FXSmpMVEl1TXk0MkwyTnpkUUJIVGxVZ1FWTWdNaTR4Tmk

0NU1RQUJnQUVSQUJBR0VRRVNBUU1JR3dnbENCTUZBQUFBQVJFQkVBWVNBUkVCSlE0VEN3TU9HdzRBQUFJa 0FBTU9Dd3MrQ3dBQUF5UUFBd2dMQ3o0TEFBQUVOQUFERGpvTE93dEpFejhNQWdvQUFBVW1BRWtUQUFBQUF SRUFFQVlEQ0JzSUpRZ1RCUUFBQUFFUkFCQUdBd2diQ0NVSUV3VUFBQUJYQUFBQUFnQXlBQUFBQVFIN0RnM EFBUUVCQVFBQUFBRUFBQUV1TGk5emVYTmtaWEJ6TDJrek9EWXZaV3htQUFCemRHRnlkQzVUQUFFQUFBQUF CUUtnaFFRSUE4QUFBVE1oTkQwbElnTVlJRmxhSVNKY1d3SUJBQUVCSXdBQUFBSUFIUUFBQUFFQit3NE5BQ UVCQVFFQUFBQUJBQUFCQUdsdWFYUXVZd0FBQUFBQXFRQUFBQUlBVUFBQUFBRUIrdzROQUFFQkFRRUFBQUF CQUFBQkwySjFhV3hrTDJKMWFXeGtaQzluYkdsaVl5MHlMak11Tmk5aWRXbHNaQzEwY21WbEwya3pPRFl0Y kdsaVl5OWpjM1VBQUdOeWRHa3VVd0FCQUFBQUFBVUM2SVVFQ0FQQUFBRTlBZ0VBQVFFQUJRSWtpUVFJQXk 0QklTOGhXV2NDQXdBQkFRQUZBb2lFQkFnREh3RWhMejBDQlFBQkFRQUZBc1NGQkFnRENnRWhMeUZaWnoxb kx5OHdQU0VoQWdFQUFRR0lBQUFBQWdCUUFBQUFBUUg3RGcwQUFRRUJBUUFBQUFFQUFBRXZZblZwYkdRdll uVnBiR1JrTDJkc2FXSmpMVEl1TXk0MkwySjFhV3hrTFhSeVpXVXZhVE00Tmkxc2FXSmpMMk56ZFFBQVkzS jBiaTVUQUFFQUFBQUFCUUxvaFFRSUF5RUJQUUlCQUFFQkFBVUNPNGtFQ0FNU0FUMGhJUUlCQUFFQkFBVUN uWVFFQ0FNSkFTRUNBUUFCQVdsdWFYUXVZd0J6YUc5eWRDQnBiblFBTDJKMWFXeGtMMkoxYVd4a1pDOW5iR 2xpWXkweUxqTXVOaTlpZFdsc1pDMTBjbVZsTDJkc2FXSmpMVEl1TXk0MkwyTnpkUUJzYjI1bklHeHZibWN nYVc1MEFIVnVjMmxuYm1Wa0lHTm9ZWElBUjA1VklFTWdNeTQwTGpZZ0tGVmlkVzUwZFNBekxqUXVOaTB4Z FdKMWJuUjFNaWtBYkc5dVp5QnNiMjVuSUhWdWMybG5ibVZrSUdsdWRBQnphRzl5ZENCMWJuTnBaMjVsWkN CcGJuUUFYMGxQWDNOMFpHbHVYM1Z6WldRQUFDNXplVzEwWVdJQUxuTjBjblJoWWdBdWMyaHpkSEowWVdJQ UxtbHVkR1Z5Y0FBdWJtOTBaUzVCUWtrdGRHRm5BQzVvWVhOb0FDNWtlVzV6ZVcwQUxtUjVibk4wY2dBdVo yNTFMblpsY25OcGIyNEFMbWR1ZFM1MlpYSnphVzl1WDNJQUxuSmxiQzVrZVc0QUxuSmxiQzV3YkhRQUxtb HVhWFFBTG5SbGVIUUFMbVpwYm1rQUxuSnZaR0YwWVFBdVpXaGZabkpoYldVQUxtTjBiM0p6QUM1a2RHOXl jd0F1YW1OeUFDNWtlVzVoYldsakFDNW5iM1FBTG1kdmRDNXdiSFFBTG1SaGRHRUFMbUp6Y3dBdVkyOXRiV 1Z1ZEFBdVpHVmlkV2RmWVhKaGJtZGxjd0F1WkdWaWRXZGZjSFZpYm1GdFpYTUFMbVJsWW5WblgybHVabTh BTG1SbFluVm5YMkZpWW5KbGRnQXVaR1ZpZFdkZmJHbHVaUUF1WkdWaWRXZGZjM1J5QUFBQUFBQUFBQUFBQ UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHd0FBQUFFQUFBQUNBQUFBRkl FRUNCUUJBQUFUQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUNNQUFBQUhBQUFBQWdBQUFDaUJCQWdvQVFBQ UlBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQXhBQUFBQlFBQUFBSUFBQUJJZ1FRSVNBRUFBSmdBQUFBRUF BQUFBQUFBQUFRQUFBQUVBQUFBTndBQUFBc0FBQUFDQUFBQTRJRUVDT0FCQUFBd0FRQUFCUUFBQUFFQUFBQ UVBQUFBRUFBQUFEOEFBQUFEQUFBQUFnQUFBQkNEQkFnUUF3QUFzQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUF BQUJIQUFBQS8vLy9id0lBQUFEQWd3UUl3QU1BQUNZQUFBQUVBQUFBQUFBQUFBSUFBQUFDQUFBQVZBQUFBU DcvLzI4Q0FBQUE2SU1FQ09nREFBQWdBQUFBQlFBQUFBRUFBQUFFQUFBQUFBQUFBR01BQUFBSkFBQUFBZ0F BQUFpRUJBZ0lCQUFBQ0FBQUFBUUFBQUFBQUFBQUJBQUFBQWdBQUFCc0FBQUFDUUFBQUFJQUFBQVFoQVFJR UFRQUFIZ0FBQUFFQUFBQUN3QUFBQVFBQUFBSUFBQUFkUUFBQUFFQUFBQUdBQUFBaUlRRUNJZ0VBQUFYQUF BQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUhBQUFBQUJBQUFBQmdBQUFLQ0VCQWlnQkFBQUFBRUFBQUFBQUFBQ UFBQUFCQUFBQUFRQUFBQjdBQUFBQVFBQUFBWUFBQUNnaFFRSW9BVUFBSVFEQUFBQUFBQUFBQUFBQUFRQUF BQUFBQUFBZ1FBQUFBRUFBQUFHQUFBQUpJa0VDQ1FKQUFBZEFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFJY 0FBQUFCQUFBQUFnQUFBRVNKQkFoRUNRQUFZd0FBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUNQQUFBQUFRQUF BQUlBQUFDb2lRUUlxQWtBQUFRQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQW1RQUFBQUVBQUFBREFBQUFyS mtFQ0t3SkFBQUlBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBS0FBQUFBQkFBQUFBd0FBQUxTWkJBaTBDUUF BQ0FBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFDbkFBQUFBUUFBQUFNQUFBQzhtUVFJdkFrQUFBUUFB QUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFyQUFBQUFZQUFBQURBQUFBd0prRUNNQUpBQURJQUFBQUJRQUFBQU FBQUFBRUFBQUFDQUFBQUxVQUFBQUJBQUFBQXdBQUFJaWFCQWlJQ2dBQUJBQUFBQUFBQUFBQUFBQUFCQUFB QUFRQUFBQzZBQUFBQVFBQUFBTUFBQUNNbWdRSWpBb0FBRWdBQUFBQUFBQUFBQUFBQUFRQUFBQUVBQUFBd3 dBQUFBRUFBQUFEQUFBQTFKb0VDTlFLQUFBTUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFNa0FBQUFJQUFB QUF3QUFBT0NhQkFqZ0NnQUFCQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQURPQUFBQUFRQUFBQUFBQUFBQU FBQUE0QW9BQUNZQkFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQTF3QUFBQUVBQUFBQUFBQUFBQUFBQUFnTUFB Q0lBQUFBQUFBQUFBQUFBQUFJQUFBQUFBQUFBT1lBQUFBQkFBQUFBQUFBQUFBQUFBQ1FEQUFBSlFBQUFBQU FBQUFBQUFBQUFRQUFBQUFBQUFEMkFBQUFBUUFBQUFBQUFBQUFBQUFBdFF3QUFDc0NBQUFBQUFBQUFBQUFB QUVBQUFBQUFBQUFBZ0VBQUFFQUFBQUFBQUFBQUFBQUFPQU9BQUIyQUFBQUFBQUFBQUFBQUFBQkFBQUFBQU FBQUJBQkFBQUJBQUFBQUFBQUFBQUFBQUJXRHdBQXV3RUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQWNBUUFB QVFBQUFEQUFBQUFBQUFBQUVSRUFBTDhBQUFBQUFBQUFBQUFBQUFFQUFBQUJBQUFBRVFBQUFBTUFBQUFBQU FBQUFBQUFBTkFSQUFBbkFRQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBRUFBQUFDQUFBQUFBQUFBQUFBQUFC SUdBQUE4QVVBQUNFQUFBQS9BQUFBQkFBQUFCQUFBQUFKQUFBQUF3QUFBQUFBQUFBQUFBQUFPQjRBQUxJRE FBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVnUVFJQUFBQUFB TUFBUUFBQUFBQUtJRUVDQUFBQUFBREFBSUFBQUFBQUVpQkJBZ0FBQUFBQXdBREFBQUFBQURnZ1FRSUFBQU FBQU1BQkFBQUFBQUFFSU1FQ0FBQUFBQURBQVVBQUFBQUFNQ0RCQWdBQUFBQUF3QUdBQUFBQUFEb2d3UUlB QUFBQUFNQUJ3QUFBQUFBQ0lRRUNBQUFBQUFEQUFnQUFBQUFBQkNFQkFnQUFBQUFBd0FKQUFBQUFBQ0loQV FJQUFBQUFBTUFDZ0FBQUFBQW9JUUVDQUFBQUFBREFBc0FBQUFBQUtDRkJBZ0FBQUFBQXdBTUFBQUFBQUFr aVFRSUFBQUFBQU1BRFFBQUFBQUFSSWtFQ0FBQUFBQURBQTRBQUFBQUFLaUpCQWdBQUFBQUF3QVBBQUFBQU

FDc21RUUlBQUFBQUFNQUVBQUFBQUFBdEprRUNBQUFBQUFEQUJFQUFBQUFBTHlaQkFnQUFBQUFBd0FTQUFB QUFBREFtUVFJQUFBQUFBTUFFd0FBQUFBQWlKb0VDQUFBQUFBREFCUUFBQUFBQUl5YUJBZ0FBQUFBQXdBVk FBQUFBQURVbWdRSUFBQUFBQU1BRmdBQUFBQUE0Sm9FQ0FBQUFBQURBQmNBQUFBQUFBQUFBQUFBQUFBQUF3 QVlBQUFBQUFBQUFBQUFBQUFBQUFNQUdRQUFBQUFBQUFBQUFBQUFBQUFEQUJvQUFBQUFBQUFBQUFBQUFBQU FBd0FiQUFBQUFBQUFBQUFBQUFBQUFBTUFIQUFBQUFBQUFBQUFBQUFBQUFBREFCMEFBQUFBQUFBQUFBQUFB QUFBQXdBZUFBQUFBQUFBQUFBQUFBQUFBQU1BSHdBQUFBQUFBQUFBQUFBQUFBQURBQ0FBQUFBQUFBQUFBQU FBQUFBQUF3QWhBQUVBQUFBQUFBQUFBQUFBQUFRQThmOE1BQUFBQUFBQUFBQUFBQUFFQVBIL0tBQUFBQUFB QUFBQUFBQUFCQUR4L3k4QUFBQUFBQUFBQUFBQUFBUUE4Zjg2QUFBQUFBQUFBQUFBQUFBRUFQSC9kQUFBQU 1TRkJBZ0FBQUFBQWdBTUFJUUFBQUFBQUFBQUFBQUFBQVFBOGYrUEFBQUFySmtFQ0FBQUFBQUJBQkFBblFB QUFMU1pCQWdBQUFBQUFRQVJBS3NBQUFDOG1RUUlBQUFBQUFFQUVnQzRBQUFBNEpvRUNBRUFBQUFCQUJjQX h3QUFBTnlhQkFnQUFBQUFBUUFXQU00QUFBRHNoUVFJQUFBQUFBSUFEQURrQUFBQUc0WUVDQUFBQUFBQ0FB d0FoQUFBQUFBQUFBQUFBQUFBQkFEeC8vQUFBQUN3bVFRSUFBQUFBQUVBRUFEOUFBQUF1SmtFQ0FBQUFBQU JBQkVBQ2dFQUFLaUpCQWdBQUFBQUFRQVBBQmdCQUFDOG1RUUlBQUFBQUFFQUVnQWtBUUFBK0lnRUNBQUFB QUFDQUF3QUx3QUFBQUFBQUFBQUFBQUFCQUR4L3pvQkFBQUFBQUFBQUFBQUFBUUE4ZjkwQVFBQUFBQUFBQU FBQUFBRUFQSC9lQUVBQU1DWkJBZ0FBQUFBQVFJVEFJRUJBQUNzbVFRSUFBQUFBQUFDOGYrU0FRQUFySmtF Q0FBQUFBQUFBdkgvcFFFQUFLeVpCQWdBQUFBQUFBTHgvN1lCQUFDTW1nUUlBQUFBQUFFQ0ZRRE1BUUFBck prRUNBQUFBQUFBQXZILzN3RUFBQUFBQUFCMUFRQUFFZ0FBQVBBQkFBQUFBQUFBY1FBQUFCSUFBQUFCQWdB QVJJa0VDQVFBQUFBUkFBNEFDQUlBQUFBQUFBRE1BQUFBRWdBQUFCb0NBQUFBQUFBQVdnQUFBQklBQUFBcU FnQUEySm9FQ0FBQUFBQVJBaFlBTndJQUFLMklCQWhLQUFBQUVnQU1BRWNDQUFBQUFBQUFlQUFBQUJJQUFB QlpBZ0FBaUlRRUNBQUFBQUFTQUFvQVh3SUFBQUFBQUFBNUFBQUFFZ0FBQUhFQ0FBQUFBQUFBT1FBQUFCSU FBQUNIQWdBQW9JVUVDQUFBQUFBU0FBd0FqZ0lBQUZ5SUJBaFJBQUFBRWdBTUFKNENBQURnbWdRSUFBQUFB QkFBOGYrcUFnQUFRSVlFQ0J3Q0FBQVNBQXdBcndJQUFBQUFBQURtQUFBQUVnQUFBTXdDQUFBQUFBQUFPZ0 FBQUJJQUFBRGNBZ0FBMUpvRUNBQUFBQUFnQUJZQTV3SUFBQUFBQUFBNUFBQUFFZ0FBQVBjQ0FBQWtpUVFJ QUFBQUFCSUFEUUQ5QWdBQUFBQUFBTGtBQUFBU0FBQUFEUU1BQUFBQUFBQXJBQUFBRWdBQUFCMERBQURnbW dRSUFBQUFBQkFBOGY4a0F3QUE2SVVFQ0FBQUFBQVNBZ3dBT3dNQUFPU2FCQWdBQUFBQUVBRHgvMEFEQUFB QUFBQUFlQUFBQUJJQUFBQlFBd0FBQUFBQUFBNEFBQUFTQUFBQVlRTUFBRWlKQkFnRUFBQUFFUUFPQUhBRE FBRFVtZ1FJQUFBQUFCQUFGZ0I5QXdBQUFBQUFBRGtBQUFBU0FBQUFqd01BQUFBQUFBQUFBQUFBSUFBQUFL TURBQUFBQUFBQUFBQUFBQ0FBQUFBQVlXSnBMVzV2ZEdVdVV3QXVMaTl6ZVhOa1pYQnpMMmt6T0RZdlpXeG 1MM04wWVhKMExsTUFhVzVwZEM1akFHbHVhWFJtYVc1cExtTUFMMkoxYVd4a0wySjFhV3hrWkM5bmJHbGlZ eTB5TGpNdU5pOWlkV2xzWkMxMGNtVmxMMmt6T0RZdGJHbGlZeTlqYzNVdlkzSjBhUzVUQUdOaGJHeGZaMj F2Ymw5emRHRnlkQUJqY25SemRIVm1aaTVqQUY5ZlExUlBVbDlNU1ZOVVgxOEFYMTlFVkU5U1gweEpVMVJm WHdCZlgwcERVbDlNU1ZOVVgxOEFZMjl0Y0d4bGRHVmtMalEwTmpNQWNDNDBORFl5QUY5ZlpHOWZaMnh2WW 1Gc1gyUjBiM0p6WDJGMWVBQm1jbUZ0WlY5a2RXMXRlUUJmWDBOVVQxSmZSVTVFWDE4QVgxOUVWRTlTWDBW T1JGOWZBRjlmUmxKQlRVVmZSVTVFWDE4QVgxOUtRMUpmUlU1RVgxOEFYMTlrYjE5bmJHOWlZV3hmWTNSdm NuTmZZWFY0QUM5aWRXbHNaQzlpZFdsc1pHUXZaMnhwWW1NdE1pNHpMall2WW5WcGJHUXRkSEpsWlM5cE16 ZzJMV3hwWW1NdlkzTjFMMk55ZEc0dVV3QXhMbU1BWDBSWlRrRk5TVU1BWDE5bWFXNXBYMkZ5Y21GNVgyVn VaQUJmWDJacGJtbGZZWEp5WVhsZmMzUmhjblFBWDE5cGJtbDBYMkZ5Y21GNVgyVnVaQUJmUjB4UFFrRk1Y MDlHUmxORlZGOVVRVUpNUlY4QVgxOXBibWwwWDJGeWNtRjVYM04wWVhKMEFHVjRaV05zUUVCSFRFbENRMT h5TGpBQVkyeHZjMlZBUUVkTVNVSkRYekl1TUFCZlpuQmZhSGNBY0dWeWNtOXlRRUJIVEVsQ1ExOHlMakFB Wm05eWEwQkFSMHhKUWtOZk1pNHdBRjlmWkhOdlgyaGhibVJzWlFCZlgyeHBZbU5mWTNOMVgyWnBibWtBWV dOalpYQjBRRUJIVEVsQ1ExOHlMakFBWDJsdWFYUUFiR2x6ZEdWdVFFQkhURWxDUTE4eUxqQUFjMlYwYzI5 amEyOXdkRUJBUjB4SlFrTmZNaTR3QUY5emRHRnlkQUJmWDJ4cFltTmZZM04xWDJsdWFYUUFYMTlpYzNOZm MzUmhjblFBYldGcGJnQmZYMnhwWW1OZmMzUmhjblJmYldGcGJrQkFSMHhKUWtOZk1pNHdBR1IxY0RKQVFF ZE1TVUpEWHpJdU1BQmtZWFJoWDNOMFlYSjBBR0pwYm1SQVFFZE1TVUpEWHpJdU1BQmZabWx1YVFCbGVHbD BRRUJIVEVsQ1ExOHlMakFBWVhSdmFVQkFSMHhKUWtOZk1pNHdBRjlsWkdGMFlRQmZYMmsyT0RZdVoyVjBY M0JqWDNSb2RXNXJMbUo0QUY5bGJtUUFjMlZ1WkVCQVIweEpRa05mTWk0d0FHaDBiMjV6UUVCSFRFbENRMT h5TGpBQVgwbFBYM04wWkdsdVgzVnpaV1FBWDE5a1lYUmhYM04wWVhKMEFITnZZMnRsZEVCQVIweEpRa05m TWk0d0FGOUtkbDlTWldkcGMzUmxja05zWVhOelpYTUFYMTluYlc5dVgzTjBZWEowWDE4QSI7DQokYmFja1 9jb25uZWN0cz0iSXlFdmRYTnlMMkpwYmk5d1pYSnNEUXAxYzJVZ1UyOWphMlYwT3cwS2FXWWdLQ0VrUVZK SFZsc3dYU2tnZXcwS0lDQndjbWx1ZEdZZ0lsVnpZV2RsT2lBa01DQmJTRzl6ZEYwZ1BGQnZjblErWEc0aU 93MEtJQ0JsZUdsMEtERXBPdzBLZlEwS2NISnBiblFnSWxzcVhTQkVkVzF3YVc1bklFRnlaM1Z0Wlc1MGMx eHVJanNOQ2lSb2IzTjBJRDBnSkVGU1IxWmJNRjA3RFFva2NHOXlkQ0E5SURnd093MEthV1lnS0NSQlVrZF dXekZkS1NCN0RRb2dJQ1J3YjNKMElEMGdKRUZTUjFaYk1WMDdEUXA5RFFwd2NtbHVkQ0FpV3lwZElFTnZi bTVsWTNScGJtY3VMaTVjYmlJN0RRb2tjSEp2ZEc4Z1BTQm5aWFJ3Y205MGIySjVibUZ0WlNnbmRHTndKeW tnZkh3Z1pHbGxLQ0pWYm10dWIzZHVJRkJ5YjNSdlkyOXNYRzRpS1RzTkNuTnZZMnRsZENoVFJWSldSVklz SUZCR1gwbE9SVlFzSUZOUFEwdGZVMVJTUlVGTkxDQWtjSEp2ZEc4cElIeDhJR1JwWlNBb0lsTnZZMnRsZE NCRmNuSnZjbHh1SWlrN0RRcHRlU0FrZEdGeVoyVjBJRDBnYVc1bGRGOWhkRzl1S0NSb2IzTjBLVHNOQ21s bUlDZ2hZMjl1Ym1WamRDaFRSVkpXUlZJc0lIQmhZMnNnSWxOdVFUUjRPQ0lzSURJc0lDUndiM0owTENBa2

RHRnlaMlYwS1NrZ2V3MEtJQ0JrYVdVb0lsVnVZV0pzWlNCMGJ5QkRiMjV1WldOMFhHNGlLVHNOQ24wTkNu QnlhVzUwSUNKYktsMGdVM0JoZDI1cGJtY2dVMmhsYkd4Y2JpSTdEUXBwWmlBb0lXWnZjbXNvSUNrcElIc0 5DaUFnYjNCbGJpaFRWRVJKVGl3aVBpWlRSVkpXUlZJaUtUc05DaUFnYjNCbGJpaFRWRVJQVlZRc0lqNG1V MFZTVmtWU0lpazdEUW9nSUc5d1pXNG9VMVJFUlZKU0xDSStKbE5GVWxaRlVpSXBPdzBLSUNCd2NtbHVkQ0 FpTFMwOVBTQkRiMjV1WldOMFFtRmpheUJDWVdOclpHOXZjaUIyY3lBeExqQWdZbmtnVTI1SmNFVnlYMU5C SUhOdWFYQmxjaTF6WVM1amIyMGdQVDB0TFNBZ1hHNWNiaUk3SUEwS2MzbHpkR1Z0S0NKMWJuTmxkQ0JJU1 ZOVVJrbE1SVHNnZFc1elpYUWdVMEZXUlVoSlUxUWdPMlZqYUc4Z0xTMDlQVk41YzNSbGJXbHVabTg5UFMw dElEc2dkVzVoYldVZ0xXRTdaV05vYnpzTkNtVmphRzhnTFMwOVBWVnpaWEpwYm1adlBUMHRMU0E3SUdsa0 8yVmphRzg3WldOb2J5QXRMVDA5UkdseVpXTjBiM0o1UFQwdExTQTdJSEIzWkR0bFkyaHZPeUJsWTJodklD MHRQVDFUYUdWc2JEMDlMUzBnSWlrN0lBMEtJQ0JsZUdWaklIc25MMkpwYmk5emFDZDlJQ2N0WW1GemFDY2 dMaUFpWERBaUlIZ2dORHNOQ2lBZ1pYaHBkQ2d3S1RzTkNuMD0iOw0KJHBocF9pbmkxPSJjMkZtWlY5dGIy UmxJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BTQWdJQ0FnSUNCUFptWT0iOw0KJGh0YWNjZXM9IlBFbG1UVzlrZF d4bElHMXZaRjl6WldOMWNtbDBlUzVqUGcwS0lDQWdJRk5sWTBacGJIUmxja1Z1WjJsdVpTQlBabVlOQ2lB Z0lDQlRaV05HYVd4MFpYSlRZMkZ1VUU5VFZDQlBabVlOQ2p3dlNXWk5iMlIxYkdVKyI7DQokc25pX3Jlcz 0iUEQ4TkNtVmphRzhnYVc1cFgyZGxkQ2dpYzJGbVpWOXRiMlJsSWlrN0RRcGxZMmh2SUdsdWFWOW5aWFFv SW05d1pXNWZZbUZ6WldScGNpSXBPdzBLYVc1amJIVmtaU2drWDBkRlZGc2labWxzWlNKZEtUc05DbWx1YV Y5eVpYTjBiM0psS0NKellXWmxYMjF2WkdVaUtUc05DbWx1YVY5eVpYTjBiM0psS0NKdmNHVnVYMkpoYzJW a2FYSWlLVHNOQ21WamFHOGdhVzVwWDJkbGRDZ2ljMkZtWlY5dGIyUmxJaWs3RFFwbFkyaHZJR2x1YVY5bl pYUW9JbTl3Wlc1ZlltRnpaV1JwY2lJcE93MEthVzVqYkhWa1pTZ2tYMGRGVkZzaWMzTWlYU2s3RFFvL1Bn PT0iOw0KDQppZighZW1wdHkoJF9QT1NUWydpcmNhZG1pbiddKSBBTkQgIWVtcHR5KCRfUE9TVFsnaXJjc2 VydmVyJ10pIEFORCAhZW1wdHkoJF9QT1NUWydpcmNjaGFuYWwnXSkgQU5EICFlbXB0eSgkX1BPU1RbJ2ly Y25hbWUnXSkpDQp7DQokaXJjYWRtaW49JF9QT1NUWydpcmNhZG1pbiddOw0KJGlyY3NlcnZlcj0kX1BPU1 RbJ2lyY3NlcnZlciddOw0KJGlyY2NoYW49JF9QT1NUWydpcmNjaGFuYWwnXTsNCiRpcmNsYWJlbD0kX1BP U1RbJ2lyY25hbWUnXTsNCmVjaG8gIjx0aXRsZT5PdmVyY2xvY2tpWCBTaGVsbC1Db25uZWN0b3IgfHwgQ2 9ubmVjdGluZyB0byAkaXJjc2VydmVyPHRpdGxlPiI7DQplY2hvICI8Ym9keSBiZ2NvbG9yPVwiYmxhY2tc IiB0ZXh0PVwiZ3JlZW5cIj4iOw0KZWNobyAiTm93IENvbm5lY3RpbmcgdG8gPGI+PGZvbnQgY29sb3I9XC JyZWRcIj4kaXJjc2VydmVyPC9mb250PjwvYj4gaW4gPGI+PGZvbnQgY29sb3I9XCJ5ZWxsb3dcIj4kaXJj Y2hhbjwvZm9udD48L2I+IEFuZG1pbmlzdHJhdG9yczogPGI+PGZvbnQgY29sb3I9XCJ5ZWxsb3dcIj4kaX JjYWRtaW48L2ZvbnQ+PC9iPiBCb3RuYW1lIGlzIDxiPjxmb250IGNvbG9yPVwieWVsbG93XCI+JGlyY2xh YmVsPC9mb250PjwvYj4iOw0KZWNobyAiPHA+RG9udCBGb3JnZXQgdG8gRGVsZXRlIExvYWRlci5wbCBpbi AvdG1wPC9wPiI7DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjSVJDIFRyb2phbiMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjDQokZmlsZT0iDQojIyMjIyMjIyMjIyMjIyMjIENPTkZJR1VSQUNBTyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KbXkgXCRwcm9jZX NzbyA9ICcvdXNyL2xvY2FsL2FwYWNoZS9iaW4vaHR0cGQgLURTU0wnOyAjIE5vbWUgZG8gcHJvY2Vzc28g cXVlIHZhaSBhcGFyZWNlIG5vIHBzICMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS 0tLS0tLS0tLS0tIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQpt eSBcJGxpbmFzX21heD0nNDgnOyAjIEV2aXRhIG8gZmxvb2QgOikgZGVwb2lzIGRlIFggbGluaGFzICMNCi MtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQpteSBcJHNsZWVwPSc0JzsgIyBlbGUgZG9ybW UgWCBzZWd1bmRvcyAjDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMgSVJDICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KbXkgQGFkbXM9KF wiJGlyY2FkbWluXCIpOyAjIE5pY2sgZG8gYWRtaW5pc3RyYWRvciAjDQojLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIw0KbXkgQGNhbmFpcz0oXCIkaXJjY2hhblwiKTsgIyBDYXNvIGhhamEgc2V uaGEgKFwiI2NhbmFsIDpzZW5oYVwiKSAjDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL S0tLS0tLS0tLS0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0 KbXkgXCRuaWNrPSckaXJjbGFiZWwnOyAjIE5pY2sgZG8gYm90LiBDYXNvIGVzdGVqYSBlbSB1c28gdmFpI GFwYXJlY2VyICMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB hcGFyZWNlciBjb20gbnVtZXJvIHJhZG9uYW1pY28gbm8gZmluYWwgIw0KIy0tLS0tLS0tLS0tLS0tLS0tL S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjIyMjIyMjIyMNCm15IFwkaXJjbmFtZSA9ICdMaW51eCc7ICMgVXNlciBJRCAjDQojLS0tLS0tL S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KY2hvcCAobXkgXCRyZWFsbmFtZSA9IGB1bmFtZSAtYWApO yAjIEZ1bGwgTmFtZSAjDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0 tLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KXCRzZXJ2aWRvc j0nJGlyY3NlcnZlcicgdW5sZXNzIFwkc2Vydmlkb3I7ICMgU2Vydmlkb3IgZGUgaXJjIHF1ZSB2YWkgc2V yIHVzYWRvICMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjY

XNvIG7jbyBzZWphIGVzcGVjaWZpY2FkbyBubyBhcmd1bWVudG8gIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0 tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI yMjIyMjIyMjIyMjIyMNCm15IFwkcG9ydGE9JzY2NjcnOyAjIFBvcnRhIGRvIHNlcnZpZG9yIGRlIGlyYyA jDQojIyMjIyMjIyMjIyMjIyMjIEFDRVNTTyBBIFNIRUxMICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI yMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KbXkgXCRzZWN2ID0gMTsgIyAxLzAgcHJ hIGhhYmlsaXRhL2Rlc2FiaWxpdGEgYWNlc3NvIGEgc2hlbGwgIw0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjI yMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjIyMjIyMNCm15IFwkVkVSU0FPID0gJzAuMic7DQpcJFNJR3snSU5UJ30gPSAnSUdOT1JFJzsNC lwkU0lHeydIVVAnfSA9ICdJR05PUkUnOw0KXCRTSUd7J1RFUk0nfSA9ICdJR05PUkUnOw0KXCRTSUd7J0N ITEQnfSA9ICdJR05PUkUnOw0KXCRTSUd7J1BTJ30gPSAnSUdOT1JFJzsNClwkU0lHeydTVE9QJ30gPSAnS UdOT1JFJzsNCnVzZSBJTzo6U29ja2V0Ow0KdXNlIFNvY2tldDsNCnVzZSBJTzo6U2VsZWN0Ow0KY2hkaXI oXCIvXCIpOw0KXCRzZXJ2aWRvcj1cIlwkQVJHVlswXVwiIGlmIFwkQVJHVlswXTsNCiQwPVwiXCRwcm9jZ XNzb1wiLlwiXDBcIngxNjs7DQpteSBcJHBpZD1mb3JrOw0KZXhpdCBpZiBcJHBpZDsNCmRpZSBcIlByb2J sZW1hIGNvbSBvIGZvcms6ICQhXCIgdW5sZXNzIGRlZmluZWQoXCRwaWQpOw0KbXkgXCRkY2Nfc2VsID0gb mV3IElPOjpTZWxlY3QtPm5ldygpOw0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMgQjB0Y2h aIG5hIHZlaWEgZWhlaGUgOlAgIw0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KXCRzZWxfY 2xpZW50ZSA9IElPOjpTZWxlY3QtPm5ldygpOw0Kc3ViIHNlbmRyYXcgew0KICBpZiAoJCNfID09ICcxJyk gew0KICAgIG15IFwkc29ja2V0ID0gXCRfWzBdOw0KICAgIHByaW50IFwkc29ja2V0IFwiXCRfWzFdXFxuX CI7DQogIH0gZWxzZSB7DQogICAgICBwcmludCBcJElSQ19jdXJfc29ja2V0IFwiXCRfWzBdXFxuXCI7DQo gIH0NCn0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0Kc3ViIGNvbmVjdGFyIHsNCiAgI G15IFwkbWV1bmljayA9IFwkX1swXTsNCiAgIG15IFwkc2Vydmlkb3JfY29uID0gXCRfWzFdOw0KICAgbXk gXCRwb3J0YV9jb24gPSBcJF9bMl07DQoNCiAgIG15IFwkSVJDX3NvY2tldCA9IElPOjpTb2NrZXQ6OklOR VQtPm5ldyhQcm90bz0+XCJ0Y3BcIiwgUGVlckFkZHI9PlwiXCRzZXJ2aWRvcl9jb25cIiwgUGVlclBvcnQ 9PlwkcG9ydGFfY29uKSBvciByZXR1cm4oMSk7DQogICBpZiAoZGVmaW5lZChcJElSQ19zb2NrZXQpKSB7D QogICAgIFwkSVJDX2N1cl9zb2NrZXQgPSBcJElSQ19zb2NrZXQ7DQoNCiAgICAgXCRJUkNfc29ja2V0LT5 hdXRvZmx1c2goMSk7DQogICAgIFwkc2VsX2NsaWVudGUtPmFkZChcJElSQ19zb2NrZXQpOw0KDQogICAgI FwkaXJjX3NlcnZlcnN7XCRJUkNfY3VyX3NvY2tldH17J2hvc3QnfSA9IFwiXCRzZXJ2aWRvcl9jb25cIjs NCiAgICAgXCRpcmNfc2VydmVyc3tcJElSQ19jdXJfc29ja2V0fXsncG9ydGEnfSA9IFwiXCRwb3J0YV9jb 25cIjsNCiAgICAgXCRpcmNfc2VydmVyc3tcJElSQ19jdXJfc29ja2V0fXsnbmljayd9ID0gXCRtZXVuaWN rOw0KICAgICBcJGlyY19zZXJ2ZXJze1wkSVJDX2N1cl9zb2NrZXR9eydtZXVpcCd9ID0gXCRJUkNfc29ja 2V0LT5zb2NraG9zdDsNCiAgICAgbmljayhcIlwkbWV1bmlja1wiKTsNCiAgICAgc2VuZHJhdyhcIlVTRVI gXCRpcmNuYW1lIFwiLlwkSVJDX3NvY2tldC0+c29ja2hvc3QuXCIgXCRzZXJ2aWRvcl9jb24gOlwkcmVhb G5hbWVcIik7DQogICAgIHNsZWVwIDE7DQogICB9DQp9ICMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQpteSB cJGxpbmVfdGVtcDsNCndoaWxlKCAxICkgew0KICAgd2hpbGUgKCEoa2V5cyglaXJjX3NlcnZlcnMpKSkge yBjb25lY3RhcihcIlwkbmlja1wiLCBcIlwkc2Vydmlkb3JcIiwgXCJcJHBvcnRhXCIpOyB9DQogICBkZWx ldGUoXCRpcmNfc2VydmVyc3snJ30pIGlmIChkZWZpbmVkKFwkaXJjX3NlcnZlcnN7Jyd9KSk7DQogICAmR ENDOjpjb25uZWN0aW9uczsNCiAgIG15IEByZWFkeSA9IFwkc2VsX2NsaWVudGUtPmNhbl9yZWFkKDApOw0 KICAgbmV4dCB1bmxlc3MoQHJlYWR5KTsNCiAgIGZvcmVhY2ggXCRmaCAoQHJlYWR5KSB7DQogICAgIFwkS VJDX2N1cl9zb2NrZXQgPSBcJGZoOw0KICAgICBcJG1ldW5pY2sgPSBcJGlyY19zZXJ2ZXJze1wkSVJDX2N 1cl9zb2NrZXR9eyduaWNrJ307DQogICAgIFwkbnJlYWQgPSBzeXNyZWFkKFwkZmgsIFwkbXNnLCA0MDk2K TsNCiAgICAgaWYgKFwkbnJlYWQgPT0gMCkgew0KICAgICAgICBcJHNlbF9jbGllbnRlLT5yZW1vdmUoXCR maCk7DQogICAgICAgIFwkZmgtPmNsb3NlOw0KICAgICAgICBkZWxldGUoXCRpcmNfc2VydmVyc3tcJGZof Sk7DQogICAgIH0NCiAgICAgQGxpbmVzID0gc3BsaXQgKC9cXG4vLCBcJG1zZyk7DQoNCiAgICAgZm9yKG1 5IFwkYz0wOyBcJGM8PSAkI2xpbmVzOyBcJGMrKykgew0KICAgICAgIFwkbGluZSA9IFwkbGluZXNbXCRjX TsNCiAgICAgICBcJGxpbmU9XCRsaW5lX3RlbXAuXCRsaW5lIGlmIChcJGxpbmVfdGVtcCk7DQogICAgICA gXCRsaW5lX3RlbXA9Jyc7DQogICAgICAgXCRsaW5lID1+IHMvXFxyJC8vOw0KICAgICAgIHVubGVzcyAoX CRjID09ICQjbGluZXMpIHsNCiAgICAgICAgIHBhcnNlKFwiXCRsaW5lXCIpOw0KICAgICAgIH0gZWxzZSB 7DQogICAgICAgICAgIGlmICgkI2xpbmVzID09IDApIHsNCiAgICAgICAgICAgICBwYXJzZShcIlwkbGluZ VwiKTsNCiAgICAgICAgICAgfSBlbHNpZiAoXCRsaW5lc1tcJGNdID1+IC9cXHIkLykgew0KICAgICAgICA gICAgICAgcGFyc2UoXCJcJGxpbmVcIik7DQogICAgICAgICAgIH0gZWxzaWYgKFwkbGluZSA9fiAvXihcU yspIE5PVElDRSBBVVRIIDpcKlwqXCovKSB7DQogICAgICAgICAgICAgICBwYXJzZShcIlwkbGluZVwiKTs NCiAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgIFwkbGluZV90ZW1wID0gXCRsaW5lOw0KI CAgICAgICAgICB9DQogICAgICAgfQ0KICAgICAgfQ0KICAgfQ0KfQ0KDQojIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjDQoNCg0Kc3ViIHBhcnNlIHsNCiAgIG15IFwkc2VydmFyZyA9IHNoaWZ0Ow0KICAgaWYgKFwkc 2VydmFyZyA9fiAvXlBJTkcgXDooLiopLykgew0KICAgICBzZW5kcmF3KFwiUE9ORyA6JDFcIik7DQogICB 9IGVsc2lmIChcJHNlcnZhcmcgPX4gL15cOiguKz8pXCEoLis/KVxAKC4rPykgUFJJVk1TRyAoLis/KSBcO iguKykvKSB7DQogICAgICAgbXkgXCRwbj0kMTsgbXkgXCRvbmRlID0gJDQ7IG15IFwkYXJncyA9ICQ1Ow0 KICAgICAgIGlmIChcJGFyZ3MgPX4gL15cXDAwMVZFUlNJT05cXDAwMSQvKSB7DQogICAgICAgICBub3RpY

2UoXCJcJHBuXCIsIFwiXFwwMDFWRVJTSU9OIFNoZWxsQk9ULVwkVkVSU0FPIHBvciAwbGRXMGxmXFwwMDF cIik7DQogICAgICAgfQ0KICAgICAgIGlmIChncmVwIHtcJF8gPX4gL15cUVwkcG5cRSQvaSB9IEBhZG1zK SB7DQogICAgICAgICBpZiAoXCRvbmRlIGVxIFwiXCRtZXVuaWNrXCIpew0KICAgICAgICAgICBzaGVsbCh cIlwkcG5cIiwgXCJcJGFyZ3NcIik7DQogICAgICAgICB9DQogICAgICAgICBpZiAoXCRhcmdzID1+IC9eK FxRXCRtZXVuaWNrXEV8XCFhdHJpeClccysoLiopLyApIHsNCiAgICAgICAgICAgIG15IFwkbmF0cml4ID0 gJDE7DQogICAgICAgICAgICBteSBcJGFyZyA9ICQyOw0KICAgICAgICAgICAgaWYgKFwkYXJnID1+IC9eX CEoLiopLykgew0KICAgICAgICAgICAgICBpcmNhc2UoXCJcJHBuXCIsXCJcJG9uZGVcIixcIlwkMVwiKSB 1bmxlc3MgKFwkbmF0cml4IGVxIFwiIWF0cml4XCIgYW5kIFwkYXJnID1+IC9eXCFuaWNrLyk7DQogICAgI CAgICAgICB9IGVsc2lmIChcJGFyZyA9fiAvXlxAKC4qKS8pIHsNCiAgICAgICAgICAgICAgICBcJG9uZGV wID0gXCRvbmRlOw0KICAgICAgICAgICAgICAgIFwkb25kZXAgPSBcJHBuIGlmIFwkb25kZSBlcSBcJG1ld W5pY2s7DQogICAgICAgICAgICAgICAgYmZ1bmMoXCJcJG9uZGVwXCIsXCIkMVwiKTsNCiAgICAgICAgICA gIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgc2hlbGwoXCJcJG9uZGVcIiwgXCJcJGFyZ1wiKTsNCiAgI CAgICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgICB9DQogICB9IGVsc2lmIChcJHNlcnZhcmcgPX4gL15 cOiguKz8pXCEoLis/KVxAKC4rPylccytOSUNLXHMrXDooXFMrKS9pKSB7DQogICAgICAgaWYgKGxjKCQxK SBlcSBsYyhcJG1ldW5pY2spKSB7DQogICAgICAgICBcJG1ldW5pY2s9JDQ7DQogICAgICAgICBcJGlyY19 zZXJ2ZXJze1wkSVJDX2N1cl9zb2NrZXR9eyduaWNrJ30gPSBcJG1ldW5pY2s7DQogICAgICAgfQ0KICAgf SBlbHNpZiAoXCRzZXJ2YXJnID1+IG0vXlw6KC4rPylccys0MzMvaSkgew0KICAgICAgIG5pY2soXCJcJG1 ldW5pY2tcIi5pbnQgcmFuZCg5OTk5KSk7DQogICB9IGVsc2lmIChcJHNlcnZhcmcgPX4gbS9eXDooLis/K VxzKzAwMVxzKyhcUyspXHMvaSkgew0KICAgICAgIFwkbWV1bmljayA9ICQyOw0KICAgICAgIFwkaXJjX3N lcnZlcnN7XCRJUkNfY3VyX3NvY2tldH17J25pY2snfSA9IFwkbWV1bmljazsNCiAgICAgICBcJGlyY19zZ XJ2ZXJze1wkSVJDX2N1cl9zb2NrZXR9eydub21lJ30gPSBcIiQxXCI7DQogICAgICAgZm9yZWFjaCBteSB cJGNhbmFsIChAY2FuYWlzKSB7DQogICAgICAgICBzZW5kcmF3KFwiSk9JTiBcJGNhbmFsXCIpOw0KICAgI CAgIH0NCiAgIH0NCn0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCnN1YiBiZnVuYyB7DQogIG1 5IFwkcHJpbnRsID0gXCRfWzBdOw0KICBteSBcJGZ1bmNhcmcgPSBcJF9bMV07DQogIGlmIChteSBcJHBpZ CA9IGZvcmspIHsNCiAgICAgd2FpdHBpZChcJHBpZCwgMCk7DQogIH0gZWxzZSB7DQogICAgICBpZiAoZm9 yaykgew0KICAgICAgICAgZXhpdDsNCiAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICBpZiAoXCRmdW5jY XJnID1+IC9ecG9ydHNjYW4gKC4qKS8pIHsNCiAgICAgICAgICAgICBteSBcJGhvc3RpcD1cIiQxXCI7DQo gICAgICAgICAgICAgbXkgQHBvcnRhcz0oXCIyMVwiLFwiMjJcIixcIjIzXCIsXCIyNVwiLFwiNTNcIixcI jgwXCIsXCIxMTBcIixcIjE0M1wiKTsNCiAgICAgICAgICAgICBteSAoQGFiZXJ0YSwgJXBvcnRhX2Jhbm5 lcik7DQogICAgICAgICAgICAgZm9yZWFjaCBteSBcJHBvcnRhIChAcG9ydGFzKSB7DQogICAgICAgICAgI CAgICAgbXkgXCRzY2Fuc29jayA9IElPOjpTb2NrZXQ6OklORVQtPm5ldyhQZWVyQWRkciA9PiBcJGhvc3R pcCwgUGVlclBvcnQgPT4gXCRwb3J0YSwgUHJvdG8gPT4gJ3RjcCcsIFRpbWVvdXQgPT4gNCk7DQogICAgI CAgICAgICAgICAgaWYgKFwkc2NhbnNvY2spIHsNCiAgICAgICAgICAgICAgICAgICBwdXNoIChAYWJlcnR hLCBcJHBvcnRhKTsNCiAgICAgICAgICAgICAgICAgICBcJHNjYW5zb2NrLT5jbG9zZTsNCiAgICAgICAgI CAgICAgICB9DQogICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgaWYgKEBhYmVydGEpIHsNCiAgICA gICAgICAgICAgIHNlbmRyYXcoXCRJUkNfY3VyX3NvY2tldCwgXCJQUklWTVNHIFwkcHJpbnRsIDpwb3J0Y XMgYWJlcnRhczogQGFiZXJ0YVwiKTsNCiAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICA gICBzZW5kcmF3KFwkSVJDX2N1cl9zb2NrZXQsXCJQUklWTVNHIFwkcHJpbnRsIDpOZW5odW1hIHBvcnRhI GFiZXJ0YSBmb2kgZW5jb250cmFkYVwiKTsNCiAgICAgICAgICAgICB9DQogICAgICAgICAgIH0NCiAgICA gICAgICAgaWYgKFwkZnVuY2FyZyA9fiAvXnBhY290YVxzKyguKilccysoXGQrKVxzKyhcZCspLykgew0KI CAgICAgICAgICAgIG15IChcJGR0aW1lLCAlcGFjb3RlcykgPSBhdHRhY2tlcihcIiQxXCIsIFwiJDJcIiw gXCIkM1wiKTsNCiAgICAgICAgICAgICBcJGR0aW1lID0gMSBpZiBcJGR0aW1lID09IDA7DQogICAgICAgI CAgICAgbXkgJWJ5dGVzOw0KICAgICAgICAgICAgIFwkYnl0ZXN7aWdtcH0gPSAkMiAqIFwkcGFjb3Rlc3t pZ21wfTsNCiAgICAgICAgICAgICBcJGJ5dGVze2ljbXB9ID0gJDIgKiBcJHBhY290ZXN7aWNtcH07DQogI CAgICAgICAgICAgXCRieXRlc3tvfSA9ICQyICogXCRwYWNvdGVze299Ow0KICAgICAgICAgICAgIFwkYnl 0ZXN7dWRwfSA9ICQyICogXCRwYWNvdGVze3VkcH07DQogICAgICAgICAgICAgXCRieXRlc3t0Y3B9ID0gJ DIgKiBcJHBhY290ZXN7dGNwfTsNCg0KICAgICAgICAgICAgIHNlbmRyYXcoXCRJUkNfY3VyX3NvY2tldCw gXCJQUklWTVNHIFwkcHJpbnRsIDpcXDAwMiAtIFN0YXR1cyBHRVJBTCAtXFwwMDJcIik7DQogICAgICAgI CAgICAgc2VuZHJhdyhcJElSQ19jdXJfc29ja2V0LCBcIlBSSVZNU0cgXCRwcmludGwgOlxcMDAyVGVtcG9 cXDAwMjogXCRkdGltZVwiLlwic1wiKTsNCiAgICAgICAgICAgICBzZW5kcmF3KFwkSVJDX2N1cl9zb2NrZ XQsIFwiUFJJVk1TRyBcJHByaW50bCA6XFwwMDJUb3RhbCBwYWNvdGVzXFwwMDI6IFwiLihcJHBhY2 90ZXN7dWRwfSArIFwkcGFjb3Rlc3tpZ21wfSArIFwkcGFjb3Rlc3tpY21wfSArIFwkcGFjb3Rlc3tvfSkp Ow0KICAgICAgICAgICAgIHNlbmRyYXcoXCRJUkNfY3VyX3NvY2tldCwgXCJQUklWTVNHIFwkcHJpbnRsID pcXDAwMlRvdGFsIGJ5dGVzXFwwMDI6IFwiLihcJGJ5dGVze2ljbXB9ICsgXCRieXRlcyB7aWdtcH0gKyBc JGJ5dGVze3VkcH0gKyBcJGJ5dGVze299KSk7DQogICAgICAgICAgICAgc2VuZHJhdyhcJElSQ19jdXJfc2 9ja2V0LCBcIlBSSVZNU0cgXCRwcmludGwgOlxcMDAyTelkaWEgZGUgZW52aW9cXDAwMjogXCIuaW50KCgo XCRieXRlc3tpY21wfStcJGJ5dGVze2lnbXB9K1wkYnl0ZXN7dWRwfSArIFwkYnl0ZXN7b30pLzEwMjQpL1 wkZHRpbWUpLlwiIGticHNcIik7DQoNCiAgICAgICAgICAgfQ0KICAgICAgICAgICBleGl0Ow0KICAgICAg

IH0NCiAgfQ0KfQ0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KDQpzdWIgaXJjYXNlIHsNCiAgbX kgKFwka2VtLCBcJHByaW50bCwgXCRjYXNlKSA9IEBfOw0KDQoNCiAgaWYgKFwkY2FzZSA9fiAvXmpvaW4g KC4qKS8pIHsNCiAgICAgaihcIiQxXCIpOw0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fiAvXnBhcnQgKC4qKS 8pIHsNCiAgICAgIHAoXCIkMVwiKTsNCiAgIH0NCiAgIGlmIChcJGNhc2UgPX4gL15yZWpvaW5ccysoLiop Lykgew0KICAgICAgbXkgXCRjaGFuID0gJDE7DQogICAgICBpZiAoXCRjaGFuID1+IC9eKFxkKykgKC4qKS 8pIHsNCiAgICAgICAgZm9yIChteSBcJGNhID0gMTsgXCRjYSA8PSAkMTsgXCRjYSsrICkgew0KICAgICAg ICAgIHAoXCIkMlwiKTsNCiAgICAgICAgICBqKFwiJDJcIik7DQogICAgICAgIH0NCiAgICAgIH0gZWxzZS B7DQogICAgICAgICAgcChcIlwkY2hhblwiKTsNCiAgICAgICAgICBqKFwiXCRjaGFuXCIpOw0KICAgICAg fQ0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fiAvXm9wLykgew0KICAgICAgb3AoXCJcJHByaW50bFwiLCBcIl wka2VtXCIpIGlmIFwkY2FzZSBlcSBcIm9wXCI7DQogICAgICBteSBcJG9hcmcgPSBzdWJzdHIoXCRjYXNl LCAzKTsNCiAgICAgIG9wKFwiJDFcIiwgXCIkMlwiKSBpZiAoXCRvYXJnID1+IC8oXFMrKVxzKyhcUyspLy k7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9eZGVvcC8pIHsNCiAgICAgIGRlb3AoXCJcJHByaW50bFwi LCBcIlwka2VtXCIpIGlmIFwkY2FzZSBlcSBcImRlb3BcIjsNCiAgICAgIG15IFwkb2FyZyA9IHN1YnN0ci hcJGNhc2UsIDUpOw0KICAgICAgZGVvcChcIiQxXCIsIFwiJDJcIikgaWYgKFwkb2FyZyA9fiAvKFxTKylc cysoXFMrKS8pOw0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fiAvXnZvaWNlLykgew0KICAgICAgdm9pY2UoXC JcJHByaW50bFwiLCBcIlwka2VtXCIpIGlmIFwkY2FzZSBlcSBcInZvaWNlXCI7DQogICAgICBcJG9hcmcg PSBzdWJzdHIoXCRjYXNlLCA2KTsNCiAgICAgIHZvaWNlKFwiJDFcIiwgXCIkMlwiKSBpZiAoXCRvYXJnID 1+IC8oXFMrKVxzKyhcUyspLyk7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9eZGV2b2ljZS8pIHsNCiAg ICAgIGRldm9pY2UoXCJcJHByaW50bFwiLCBcIlwka2VtXCIpIGlmIFwkY2FzZSBlcSBcImRldm9pY2VcIj sNCiAgICAgIFwkb2FyZyA9IHN1YnN0cihcJGNhc2UsIDgpOw0KICAgICAgZGV2b2ljZShcIiQxXCIsIFwi JDJcIikgaWYgKFwkb2FyZyA9fiAvKFxTKylccysoXFMrKS8pOw0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fi AvXm1zZ1xzKyhcUyspICguKikvKSB7DQogICAgICBtc2coXCIkMVwiLCBcIiQyXCIpOw0KICAgfQ0KICAg aWYgKFwkY2FzZSA9fiAvXmZsb29kXHMrKFxkKylccysoXFMrKSAoLiopLykgew0KICAgICAgZm9yIChteS BcJGNmID0gMTsgXCRjZiA8PSAkMTsgXCRjZisrKSB7DQogICAgICAgIG1zZyhcIiQyXCIsIFwiJDNcIik7 DQogICAgICB9DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9eY3RjcFxzKyhcUyspICguKikvKSB7DQogIC AgICBjdGNwKFwiJDFcIiwgXCIkMlwiKTsNCiAgIH0NCiAgIGlmIChcJGNhc2UgPX4gL15jdGNwZmxvb2Rc cysoXGQrKVxzKyhcUyspICguKikvKSB7DQogICAgICBmb3IgKG15IFwkY2YgPSAxOyBcJGNmIDw9ICQxOy BcJGNmKyspIHsNCiAgICAgICAgY3RjcChcIiQyXCIsIFwiJDNcIik7DQogICAgICB9DQogICB9DQogICBp ZiAoXCRjYXNlID1+IC9eaW52aXRlXHMrKFxTKykgKC4qKS8pIHsNCiAgICAgIGludml0ZShcIiQxXCIsIF wiJDJcIik7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9ebmljayAoLiopLykgew0KICAgICAgbmljayhc IiQxXCIpOw0KICAgfQ0KICAgaWYgKFwkY2FzZSA9fiAvXmNvbmVjdGFccysoXFMrKVxzKyhcUyspLykgew 0KICAgICAgIGNvbmVjdGFyKFwiJDJcIiwgXCIkMVwiLCA2NjY3KTsNCiAgIH0NCiAgIGlmIChcJGNhc2Ug PX4gL15zZW5kXHMrKFxTKylccysoXFMrKS8pIHsNCiAgICAgIERDQzo6U0VORChcIiQxXCIsIFwiJDJcIi k7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9ecmF3ICguKikvKSB7DQogICAgICBzZW5kcmF3KFwiJDFc Iik7DQogICB9DQogICBpZiAoXCRjYXNlID1+IC9eZXZhbCAoLiopLykgew0KICAgICBldmFsIFwiJDFcIj sNCiAgIH0NCn0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCnN1YiBzaGVsbCB7DQogIHJldHVy biB1bmxlc3MgXCRzZWN2Ow0KICBteSBcJHByaW50bD1cJF9bMF07DQogIG15IFwkY29tYW5kbz1cJF9bMV 07DQogIGlmIChcJGNvbWFuZG8gPX4gL2NkICguKikvKSB7DQogICAgY2hkaXIoXCIkMVwiKSB8fCBtc2co XCJcJHByaW50bFwiLCBcIkRvc3NpZXIgTWFrYXllbmNoIDpEIFwiKTsNCiAgICByZXR1cm47DQogIH0NCi AgZWxzaWYgKFwkcGlkID0gZm9yaykgew0KICAgICB3YWl0cGlkKFwkcGlkLCAwKTsNCiAgfSBlbHNlIHsN CiAgICAgIGlmIChmb3JrKSB7DQogICAgICAgICBleGl0Ow0KICAgICAgIH0gZWxzZSB7DQogICAgICAgIC AgIG15IEByZXNwPWBcJGNvbWFuZG8gMj4mMSAzPiYxYDsNCiAgICAgICAgICAgbXkgXCRjPTA7DQogICAg ICAgICAgIGZvcmVhY2ggbXkgXCRsaW5oYSAoQHJlc3ApIHsNCiAgICAgICAgICAgICBcJGMrKzsNCiAgIC AgICAgICAgICBjaG9wIFwkbGluaGE7DQogICAgICAgICAgICAgc2VuZHJhdyhcJElSQ19jdXJfc29ja2V0 LCBcIlBSSVZNU0cgXCRwcmludGwgOlwkbGluaGFcIik7DQogICAgICAgICAgICAgaWYgKFwkYyA9PSBcIl wkbGluYXNfbWF4XCIpIHsNCiAgICAgICAgICAgICAgIFwkYz0wOw0KICAgICAgICAgICAgICAgc2xlZXAg XCRzbGVlcDsNCiAgICAgICAgICAgICB9DQogICAgICAgICAgIH0NCiAgICAgICAgICAgZXhpdDsNCiAgIC AgICB9DQogIH0NCn0NCg0KI2V1IGZpeiB1bSBwYWNvdGFkb3J6aW5odSBlIHRhbHouLiBkYWkgY29sb2tl bW8gZWxlIGFraQ0Kc3ViIGF0dGFja2VyIHsNCiAgbXkgXCRpYWRkciA9IGluZXRfYXRvbihcJF9bMF0pOw 0KICBteSBcJG1zZyA9ICdCJyB4IFwkX1sxXTsNCiAgbXkgXCRmdGltZSA9IFwkX1syXTsNCiAgbXkgXCRj cCA9IDA7DQogIG15ICglcGFjb3Rlcyk7DQogIFwkcGFjb3Rlc3tpY21wfSA9IFwkcGFjb3Rlc3tpZ21wfS A9IFwkcGFjb3Rlc3t1ZHB9ID0gXCRwYWNvdGVze299ID0gXCRwYWNvdGVze3RjcH0gPSAwOw0KDQogIHNv Y2tldChTT0NLMSwgUEZfSU5FVCwgU09DS19SQVcsIDIpIG9yIFwkY3ArKzsNCiAgc29ja2V0KFNPQ0syLC BQRl9JTkVULCBTT0NLX0RHUkFNLCAxNykgb3IgXCRjcCsrOw0KICBzb2NrZXQoU09DSzMsIFBGX0lORVQs IFNPQ0tfUkFXLCAxKSBvciBcJGNwKys7DQogIHNvY2tldChTT0NLNCwgUEZfSU5FVCwgU09DS19SQVcsID YpIG9yIFwkY3ArKzsNCiAgcmV0dXJuKHVuZGVmKSBpZiBcJGNwID09IDQ7DQogIG15IFwkaXRpbWUgPSB0 aW1lOw0KICBteSAoXCRjdXJfdGltZSk7DQogIHdoaWxlICggMSApIHsNCiAgICAgZm9yIChteSBcJHBvcn RhID0gMTsgXCRwb3J0YSA8PSA2NTUzNTsgXCRwb3J0YSsrKSB7DQogICAgICAgXCRjdXJfdGltZSA9IHRp

bWUgLSBcJGl0aW1lOw0KICAgICAgIGxhc3QgaWYgXCRjdXJfdGltZSA+PSBcJGZ0aW1lOw0KICAgICAgIH NlbmQoU09DSzEsIFwkbXNnLCAwLCBzb2NrYWRkcl9pbihcJHBvcnRhLCBcJGlhZGRyKSkgYW5kIFwkcGFj b3Rlc3tpZ21wfSsrOw0KICAgICAgIHNlbmQoU09DSzIsIFwkbXNnLCAwLCBzb2NrYWRkcl9pbihcJHBvcn RhLCBcJGlhZGRyKSkgYW5kIFwkcGFjb3Rlc3t1ZHB9Kys7DQogICAgICAgc2VuZChTT0NLMywgXCRtc2cs IDAsIHNvY2thZGRyX2luKFwkcG9ydGEsIFwkaWFkZHIpKSBhbmQgXCRwYWNvdGVze2ljbXB9Kys7DQogIC AgICAgc2VuZChTT0NLNCwgXCRtc2csIDAsIHNvY2thZGRyX2luKFwkcG9ydGEsIFwkaWFkZHIpKSBhbmQg XCRwYWNvdGVze3RjcH0rKzsNCg0KICAgICAgICMgRG9TID8/IDpQDQogICAgICAgZm9yIChteSBcJHBjID 0gMzsgXCRwYyA8PSAyNTU7XCRwYysrKSB7DQogICAgICAgICBuZXh0IGlmIFwkcGMgPT0gNjsNCiAgICAg ICAgIFwkY3VyX3RpbWUgPSB0aW1lIC0gXCRpdGltZTsNCiAgICAgICAgIGxhc3QgaWYgXCRjdXJfdGltZS A+PSBcJGZ0aW1lOw0KICAgICAgICAgc29ja2V0KFNPQ0s1LCBQRl9JTkVULCBTT0NLX1JBVywgXCRwYykg b3IgbmV4dDsNCiAgICAgICAgIHNlbmQoU09DSzUsIFwkbXNnLCAwLCBzb2NrYWRkcl9pbihcJHBvcnRhLC BcJGlhZGRyKSkgYW5kIFwkcGFjb3Rlc3tvfSsrOzsNCiAgICAgICB9DQogICAgIH0NCiAgICAgbGFzdCBp ZiBcJGN1cl90aW1lID49IFwkZnRpbWU7DQogIH0NCiAgcmV0dXJuKFwkY3VyX3RpbWUsICVwYWNvdGVzKT sNCn0NCg0KIyMjIyMjIyMjIyMjIw0KIyBBTElBU0VTICMNCiMjIyMjIyMjIyMjIyMNCg0Kc3ViIGFjdGlv biB7DQogICByZXR1cm4gdW5sZXNzICQjXyA9PSAxOw0KICAgc2VuZHJhdyhcIlBSSVZNU0cgXCRfWzBdID pcXDAwMUFDVElPTiBcJF9bMV1cXDAwMVwiKTsNCn0NCg0Kc3ViIGN0Y3Agew0KICAgcmV0dXJuIHVubGVz cyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJQUklWTVNHIFwkX1swXSA6XFwwMDFcJF9bMV1cXDAwMVwiKT sNCn0NCnN1YiBtc2cgew0KICAgcmV0dXJuIHVubGVzcyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJQUklW TVNHIFwkX1swXSA6XCRfWzFdXCIpOw0KfQ0KDQpzdWIgbm90aWNlIHsNCiAgIHJldHVybiB1bmxlc3MgJC NfID09IDE7DQogICBzZW5kcmF3KFwiTk9USUNFIFwkX1swXSA6XCRfWzFdXCIpOw0KfQ0KDQpzdWIgb3Ag ew0KICAgcmV0dXJuIHVubGVzcyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJNT0RFIFwkX1swXSArbyBcJF 9bMV1cIik7DQp9DQpzdWIgZGVvcCB7DQogICByZXR1cm4gdW5sZXNzICQjXyA9PSAxOw0KICAgc2VuZHJh dyhcIk1PREUgXCRfWzBdIC1vIFwkX1sxXVwiKTsNCn0NCnN1YiBob3Agew0KICAgIHJldHVybiB1bmxlc3 MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiTU9ERSBcJF9bMF0gK2ggXCRfWzFdXCIpOw0KfQ0Kc3ViIGRl aG9wIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiTU9ERSBcJF9bMF0gK2 ggXCRfWzFdXCIpOw0KfQ0Kc3ViIHZvaWNlIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7DQogICBz ZW5kcmF3KFwiTU9ERSBcJF9bMF0gK3YgXCRfWzFdXCIpOw0KfQ0Kc3ViIGRldm9pY2Ugew0KICAgcmV0dX JuIHVubGVzcyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJNT0RFIFwkX1swXSAtdiBcJF9bMV1cIik7DQp9 DQpzdWIgYmFuIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiTU9ERSBcJF 9bMF0gK2IgXCRfWzFdXCIpOw0KfQ0Kc3ViIHVuYmFuIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7 DQogICBzZW5kcmF3KFwiTU9ERSBcJF9bMF0gLWIgXCRfWzFdXCIpOw0KfQ0Kc3ViIGtpY2sgew0KICAgcm V0dXJuIHVubGVzcyAkI18gPT0gMTsNCiAgIHNlbmRyYXcoXCJLSUNLIFwkX1swXSBcJF9bMV0gOlwkX1sy XVwiKTsNCn0NCg0Kc3ViIG1vZG8gew0KICAgcmV0dXJuIHVubGVzcyAkI18gPT0gMDsNCiAgIHNlbmRyYX coXCJNT0RFIFwkX1swXSBcJF9bMV1cIik7DQp9DQpzdWIgbW9kZSB7IG1vZG8oQF8pOyB9DQoNCnN1YiBq IHsgJmpvaW4oQF8pOyB9DQpzdWIgam9pbiB7DQogICByZXR1cm4gdW5sZXNzICQjXyA9PSAwOw0KICAgc2 VuZHJhdyhcIkpPSU4gXCRfWzBdXCIpOw0KfQ0Kc3ViIHAgeyBwYXJ0KEBfKTsgfQ0Kc3ViIHBhcnQge3Nl bmRyYXcoXCJQQVJUIFwkX1swXVwiKTt9DQoNCnN1YiBuaWNrIHsNCiAgcmV0dXJuIHVubGVzcyAkI18gPT 0gMDsNCiAgc2VuZHJhdyhcIk5JQ0sgXCRfWzBdXCIpOw0KfQ0KDQpzdWIgaW52aXRlIHsNCiAgIHJldHVy biB1bmxlc3MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiSU5WSVRFIFwkX1sxXSBcJF9bMF1cIik7DQp9DQ pzdWIgdG9waWNvIHsNCiAgIHJldHVybiB1bmxlc3MgJCNfID09IDE7DQogICBzZW5kcmF3KFwiVE9QSUMg XCRfWzBdIFwkX1sxXVwiKTsNCn0NCnN1YiB0b3BpYyB7IHRvcGljbyhAXyk7IH0NCg0Kc3ViIHdob2lzIH sNCiAgcmV0dXJuIHVubGVzcyAkI18gPT0gMDsNCiAgc2VuZHJhdyhcIldIT0lTIFwkX1swXVwiKTsNCn0N CnN1YiB3aG8gew0KICByZXR1cm4gdW5sZXNzICQjXyA9PSAwOw0KICBzZW5kcmF3KFwiV0hPIFwkX1swXV wiKTsNCn0NCnN1YiBuYW1lcyB7DQogIHJldHVybiB1bmxlc3MgJCNfID09IDA7DQogIHNlbmRyYXcoXCJO QU1FUyBcJF9bMF1cIik7DQp9DQpzdWIgYXdheSB7DQogIHNlbmRyYXcoXCJBV0FZIFwkX1swXVwiKTsNCn 0NCnN1YiBiYWNrIHsgYXdheSgpOyB9DQpzdWIgcXVpdCB7DQogIHNlbmRyYXcoXCJRVUlUIDpcJF9bMF1c Iik7DQp9DQoNCiMgRENDDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCnBhY2thZ2UgRENDOw0KDQ pzdWIgY29ubmVjdGlvbnMgew0KICAgbXkgQHJlYWR5ID0gXCRkY2Nfc2VsLT5jYW5fcmVhZCgxKTsNCiMg cmV0dXJuIHVubGVzcyAoQHJlYWR5KTsNCiAgIGZvcmVhY2ggbXkgXCRmaCAoQHJlYWR5KSB7DQogICAgIG 15IFwkZGNjdGlwbyA9IFwkRENDe1wkZmh9e3RpcG99Ow0KICAgICBteSBcJGFycXVpdm8gPSBcJERDQ3tc JGZofXthcnF1aXZvfTsNCiAgICAgbXkgXCRieXRlcyA9IFwkRENDe1wkZmh9e2J5dGVzfTsNCiAgICAgbX kgXCRjdXJfYnl0ZSA9IFwkRENDe1wkZmh9e2N1cmJ5dGV9Ow0KICAgICBteSBcJG5pY2sgPSBcJERDQ3tc JGZofXtuaWNrfTsNCg0KDQogICAgIG15IFwkbXNnOw0KICAgICBteSBcJG5yZWFkID0gc3lzcmVhZChcJG ZoLCBcJG1zZywgMTAyNDApOw0KDQogICAgIGlmIChcJG5yZWFkID09IDAgYW5kIFwkZGNjdGlwbyA9fiAv XihnZXR8c2VuZGNvbikkLykgew0KICAgICAgICBcJERDQ3tcJGZofXtzdGF0dXN9ID0gXCJDYW5jZWxhZG 9cIjsNCiAgICAgICAgXCREQ0N7XCRmaH17ZnRpbWV9ID0gdGltZTsNCiAgICAgICAgXCRkY2Nfc2VsLT5y ZW1vdmUoXCRmaCk7DQogICAgICAgIFwkZmgtPmNsb3NlOw0KICAgICAgICBuZXh0Ow0KICAgICB9D QoNCiAgICAgaWYgKFwkZGNjdGlwbyBlcSBcImdldFwiKSB7DQogICAgICAgIFwkRENDe1wkZmh9e2N1cmJ

5dGV9ICs9IGxlbmd0aChcJG1zZyk7DQoNCiAgICAgICAgbXkgXCRjdXJfYnl0ZSA9IFwkRENDe1wkZmh9e 2N1cmJ5dGV9Ow0KDQogICAgICAgIG9wZW4oRklMRSwgXCI+PiBcJGFycXVpdm9cIik7DQogICAgICAgIHB yaW50IEZJTEUgXCJcJG1zZ1wiIGlmIChcJGN1cl9ieXRlIDw9IFwkYnl0ZXMpOw0KICAgICAgICBjbG9zZ ShGSUxFKTsNCg0KICAgICAgICBteSBcJHBhY2tieXRlID0gcGFjayhcIk5cIiwgXCRjdXJfYnl0ZSk7DQo gICAgICAgIHByaW50IFwkZmggXCJcJHBhY2tieXRlXCI7DQoNCg0KICAgICAgICBpZiAoXCRieXRlcyA9P SBcJGN1cl9ieXRlKSB7DQogICAgICAgICAgIFwkZGNjX3NlbC0+cmVtb3ZlKFwkZmgpOw0KICAgICAgICA gICBcJGZoLT5jbG9zZTsNCiAgICAgICAgICAgXCREQ0N7XCRmaH17c3RhdHVzfSA9IFwiUmVjZWJpZG9cI jsNCiAgICAgICAgICAgXCREQ0N7XCRmaH17ZnRpbWV9ID0gdGltZTsNCiAgICAgICAgICAgbmV4dDsNCiA gICAgICAgfQ0KICAgICB9IGVsc2lmIChcJGRjY3RpcG8gZXEgXCJzZW5kXCIpIHsNCiAgICAgICAgICBte SBcJHNlbmQgPSBcJGZoLT5hY2NlcHQ7DQogICAgICAgICAgXCRzZW5kLT5hdXRvZmx1c2goMSk7DQogICA gICAgICAgXCRkY2Nfc2VsLT5hZGQoXCRzZW5kKTsNCiAgICAgICAgICBcJGRjY19zZWwtPnJlbW92ZShcJ GZoKTsNCiAgICAgICAgICBcJERDQ3tcJHNlbmR9e3RpcG99ID0gJ3NlbmRjb24nOw0KICAgICAgICAgIFw kRENDe1wkc2VuZH17aXRpbWV9ID0gdGltZTsNCiAgICAgICAgICBcJERDQ3tcJHNlbmR9e25pY2t9ID0gX CRuaWNrOw0KICAgICAgICAgIFwkRENDe1wkc2VuZH17Ynl0ZXN9ID0gXCRieXRlczsNCiAgICAgICAgICB cJERDQ3tcJHNlbmR9e2N1cmJ5dGV9ID0gMDsNCiAgICAgICAgICBcJERDQ3tcJHNlbmR9e2FycXVpdm99I D0gXCRhcnF1aXZvOw0KICAgICAgICAgIFwkRENDe1wkc2VuZH17aXB9ID0gXCRzZW5kLT5wZWVyaG9zdDs NCiAgICAgICAgICBcJERDQ3tcJHNlbmR9e3BvcnRhfSA9IFwkc2VuZC0+cGVlcnBvcnQ7DQogICAgICAgI CAgXCREQ0N7XCRzZW5kfXtzdGF0dXN9ID0gXCJFbnZpYW5kb1wiOw0KICAgICAgICAgICNkZSBjYXJhIG1 hbmRhIG9zIHByaW1laXJvIDEwMjQgYnl0ZXMgZG8gYXJraXZvLi4gbyByZXN0byBmaWsgY29tIG8gc2VuZ GNvbg0KICAgICAgICAgIG9wZW4oRklMRSwgXCI8IFwkYXJxdWl2b1wiKTsNCiAgICAgICAgICBteSBcJGZ ieXRlczsNCiAgICAgICAgICByZWFkKEZJTEUsIFwkZmJ5dGVzLCAxMDI0KTsNCiAgICAgICAgICBwcmlud CBcJHNlbmQgXCJcJGZieXRlc1wiOw0KICAgICAgICAgIGNsb3NlIEZJTEU7DQojIGRlbGV0ZShcJERDQ3t cJGZofSk7DQp9IGVsc2lmIChcJGRjY3RpcG8gZXEgJ3NlbmRjb24nKSB7DQogICAgICAgICAgbXkgXCRie XRlc19zZW5kZWQgPSB1bnBhY2soXCJOXCIsIFwkbXNnKTsNCiAgICAgICAgICBcJERDQ3tcJGZofXtjdXJ ieXRlfSA9IFwkYnl0ZXNfc2VuZGVkOw0KICAgICAgICAgIGlmIChcJGJ5dGVzX3NlbmRlZCA9PSBcJGJ5d GVzKSB7DQogICAgICAgICAgICAgXCRmaC0+Y2xvc2U7DQogICAgICAgICAgICAgXCRkY2Nfc2VsLT5yZW1 vdmUoXCRmaCk7DQogICAgICAgICAgICAgXCREQ0N7XCRmaH17c3RhdHVzfSA9IFwiRW52aWFkb1wiOw0KI CAgICAgICAgICAgIFwkRENDe1wkZmh9e2Z0aW1lfSA9IHRpbWU7DQogICAgICAgICAgICAgbmV4dDsNCiA gICAgICAgICB9DQogICAgICAgICAgb3BlbihTRU5ERklMRSwgXCI8IFwkYXJxdWl2b1wiKTsNCiAgICAgI CAgICBzZWVrKFNFTkRGSUxFLCBcJGJ5dGVzX3NlbmRlZCwgMCk7DQogICAgICAgICAgbXkgXCRzZW5kX2J 5dGVzOw0KICAgICAgICAgIHJlYWQoU0VOREZJTEUsIFwkc2VuZF9ieXRlcywgMTAyNCk7DQogICAgICAgI CAgcHJpbnQgXCRmaCBcIlwkc2VuZF9ieXRlc1wiOw0KICAgICAgICAgIGNsb3NlKFNFTkRGSUxFKTsNCiA gICAgfQ0KICAgfQ0KfQ0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0Kc3ViIFNFTkQgew0KICBte SAoXCRuaWNrLCBcJGFycXVpdm8pID0gQF87DQogIHVubGVzcyAoLXIgXCJcJGFycXVpdm9cIikgew0KICA gIHJldHVybigwKTsNCiAgfQ0KDQogIG15IFwkZGNjYXJrID0gXCRhcnF1aXZvOw0KICBcJGRjY2FyayA9f iBzL1suKlwvXShcUyspLyQxLzsNCg0KICBteSBcJG1ldWlwID0gJDo6aXJjX3NlcnZlcnN7XCIkOjpJUkN fY3VyX3NvY2tldFwifXsnbWV1aXAnfTsNCiAgbXkgXCRsb25naXAgPSB1bnBhY2soXCJOXCIsaW5ldF9hd G9uKFwkbWV1aXApKTsNCg0KICBteSBAZmlsZXN0YXQgPSBzdGF0KFwkYXJxdWl2byk7DQogIG15IFwkc2l 6ZV90b3RhbD1cJGZpbGVzdGF0WzddOw0KICBpZiAoXCRzaXplX3RvdGFsID09IDApIHsNCiAgICAgcmV0d XJuKDApOw0KICB9DQoNCiAgbXkgKFwkcG9ydGEsIFwkc2VuZHNvY2spOw0KICBkbyB7DQogICAgXCRwb3J 0YSA9IGludCByYW5kKDY0NTExKTsNCiAgICBcJHBvcnRhICs9IDEwMjQ7DQogICAgXCRzZW5kc29jayA9I ElPOjpTb2NrZXQ6OklORVQtPm5ldyhMaXN0ZW49PjEsIExvY2FsUG9ydCA9PlwkcG9ydGEsIFByb3RvID0 +ICd0Y3AnKSBhbmQgXCRkY2Nfc2VsLT5hZGQoXCRzZW5kc29jayk7DQogIH0gdW50aWwgXCRzZW5kc29ja zsNCg0KICBcJERDQ3tcJHNlbmRzb2NrfXt0aXBvfSA9ICdzZW5kJzsNCiAgXCREQ0N7XCRzZW5kc29ja31 7bmlja30gPSBcJG5pY2s7DQogIFwkRENDe1wkc2VuZHNvY2t9e2J5dGVzfSA9IFwkc2l6ZV90b3RhbDsNC iAgXCREQ0N7XCRzZW5kc29ja317YXJxdWl2b30gPSBcJGFycXVpdm87DQoNCiAgJjo6Y3RjcChcIlwkbml ja1wiLCBcIkRDQyBTRU5EIFwkZGNjYXJrIFwkbG9uZ2lwIFwkcG9ydGEgXCRzaXplX3RvdGFsXCIpOw0KD Qp9DQoNCnN1YiBHRVQgew0KICBteSAoXCRhcnF1aXZvLCBcJGRjY2xvbmdpcCwgXCRkY2Nwb3J0YSwgXCR ieXRlcywgXCRuaWNrKSA9IEBfOw0KICByZXR1cm4oMCkgaWYgKC1lIFwiXCRhcnF1aXZvXCIpOw0KICBpZ iAob3BlbihGSUxFLCBcIj4gXCRhcnF1aXZvXCIpKSB7DQogICAgIGNsb3NlIEZJTEU7DQogIH0gZWxzZSB 7DQogICAgcmV0dXJuKDApOw0KICB9DQoNCiAgbXkgXCRkY2NpcD1maXhhZGRyKFwkZGNjbG9uZ2lwKTsNC iAgcmV0dXJuKDApIGlmIChcJGRjY3BvcnRhIDwgMTAyNCBvciBub3QgZGVmaW5lZCBcJGRjY2lwIG9yIFw kYnl0ZXMgPCAxKTsNCiAgbXkgXCRkY2Nzb2NrID0gSU86OlNvY2tldDo6SU5FVC0+bmV3KFByb3RvPT5cI nRjcFwiLCBQZWVyQWRkcj0+XCRkY2NpcCwgUGVlclBvcnQ9PlwkZGNjcG9ydGEsIFRpbWVvdXQ9PjE1KSB vciByZXR1cm4gKDApOw0KICBcJGRjY3NvY2stPmF1dG9mbHVzaCgxKTsNCiAgXCRkY2Nfc2VsLT5hZGQoX CRkY2Nzb2NrKTsNCiAgXCREQ0N7XCRkY2Nzb2NrfXt0aXBvfSA9ICdnZXQnOw0KICBcJERDQ3tcJGRjY3N vY2t9e2l0aW1lfSA9IHRpbWU7DQogIFwkRENDe1wkZGNjc29ja317bmlja30gPSBcJG5pY2s7DQogIFwkR ENDe1wkZGNjc29ja317Ynl0ZXN9ID0gXCRieXRlczsNCiAgXCREQ0N7XCRkY2Nzb2NrfXtjdXJieXRlfSA

9IDA7DQogIFwkRENDe1wkZGNjc29ja317YXJxdWl2b30gPSBcJGFycXVpdm87DQogIFwkRENDe1wkZGNjc 29ja317aXB9ID0gXCRkY2NpcDsNCiAgXCREQ0N7XCRkY2Nzb2NrfXtwb3J0YX0gPSBcJGRjY3BvcnRhOw0 KICBcJERDQ3tcJGRjY3NvY2t9e3N0YXR1c30gPSBcIlJlY2ViZW5kb1wiOw0KfQ0KIyMjIyMjIyMjIyMjI yMjIyMjIyMjIyMjIyMjIw0KIyBwbyBmaWNvIHhhdG8gZGUgb3JnYW5pemEgbyBzdGF0dXMuLiBkYWkgZml 6IGVsZSByZXRvcm5hIG8gc3RhdHVzIGRlIGFjb3JkbyBjb20gbyBzb2NrZXQuLiBkYWkgbyBBRE0ucGwgb GlzdGEgb3Mgc29ja2V0cyBlIGZheiBhcyBwZXJndW50YXMNCnN1YiBTdGF0dXMgew0KICBteSBcJHNvY2t ldCA9IHNoaWZ0Ow0KICBteSBcJHNvY2tfdGlwbyA9IFwkRENDe1wkc29ja2V0fXt0aXBvfTsNCiAgdW5sZ XNzIChsYyhcJHNvY2tfdGlwbykgZXEgXCJjaGF0XCIpIHsNCiAgICBteSBcJG5pY2sgPSBcJERDQ3tcJHN vY2tldH17bmlja307DQogICAgbXkgXCRhcnF1aXZvID0gXCREQ0N7XCRzb2NrZXR9e2FycXVpdm99Ow0KI CAgIG15IFwkaXRpbWUgPSBcJERDQ3tcJHNvY2tldH17aXRpbWV9Ow0KICAgIG15IFwkZnRpbWUgPSB0aW1 lOw0KICAgIG15IFwkc3RhdHVzID0gXCREQ0N7XCRzb2NrZXR9e3N0YXR1c307DQogICAgXCRmdGltZSA9I FwkRENDe1wkc29ja2V0fXtmdGltZX0gaWYgZGVmaW5lZChcJERDQ3tcJHNvY2tldH17ZnRpbWV9KTsNCg0 KICAgIG15IFwkZF90aW1lID0gXCRmdGltZS1cJGl0aW1lOw0KDQogICAgbXkgXCRjdXJfYnl0ZSA9IFwkR ENDe1wkc29ja2V0fXtjdXJieXRlfTsNCiAgICBteSBcJGJ5dGVzX3RvdGFsID0gXCREQ0N7XCRzb2NrZXR 9e2J5dGVzfTsNCg0KICAgIG15IFwkcmF0ZSA9IDA7DQogICAgXCRyYXRlID0gKFwkY3VyX2J5dGUvMTAyN CkvXCRkX3RpbWUgaWYgXCRjdXJfYnl0ZSA+IDA7DQogICAgbXkgXCRwb3JjZW4gPSAoXCRjdXJfYnl0ZSo xMDApL1wkYnl0ZXNfdG90YWw7DQoNCiAgICBteSAoXCRyX2R1diwgXCRwX2R1dik7DQogICAgaWYgKFwkc mF0ZSA9fiAvXihcZCspXC4oXGQpKFxkKShcZCkvKSB7DQogICAgICAgXCRyX2R1diA9ICQzOyBcJHJfZHV 2KysgaWYgJDQgPj0gNTsNCiAgICAgICBcJHJhdGUgPSBcIiQxXC4kMlwiLlwiXCRyX2R1dlwiOw0KICAgI H0NCiAgICBpZiAoXCRwb3JjZW4gPX4gL14oXGQrKVwuKFxkKShcZCkoXGQpLykgew0KICAgICAgIFwkcF9 kdXYgPSAkMzsgXCRwX2R1disrIGlmICQ0ID49IDU7DQogICAgICAgXCRwb3JjZW4gPSBcIiQxXC4kMlwiL lwiXCRwX2R1dlwiOw0KICAgIH0NCiAgICByZXR1cm4oXCJcJHNvY2tfdGlwb1wiLFwiXCRzdGF0dXNcIix cIlwkbmlja1wiLFwiXCRhcnF1aXZvXCIsXCJcJGJ5dGVzX3RvdGFsXCIsIFwiXCRjdXJfYnl0ZVwiLFwiX CRkX3RpbWVcIiwgXCJcJHJhdGVcIiwgXCJcJHBvcmNlblwiKTsNCiAgfQ0KDQogIHJldHVybigwKTsNCn0 NCg0KIyBlc3NlICdzdWIgZml4YWRkcicgZGFraSBmb2kgcGVnbyBkbyBORVQ6OklSQzo6RENDIGlkZW50a WNvIHNvaCBjb3BpZWkgZSBjb2xvZWkgKGNvbG9rYXIgbm9tZSBkbyBhdXRvcikNCnN1YiBmaXhhZGRyIHs NCiAgICBteSAoXCRhZGRyZXNzKSA9IEBfOw0KDQogICAgY2hvbXAgXCRhZGRyZXNzOyAjIGp1c3QgaW4gY 2FzZSwgc2lnaC4NCiAgICBpZiAoXCRhZGRyZXNzID1+IC9eXGQrJC8pIHsNCiAgICAgICAgcmV0dXJuIGl uZXRfbnRvYShwYWNrIFwiTlwiLCBcJGFkZHJlc3MpOw0KICAgIH0gZWxzaWYgKFwkYWRkcmVzcyA9fiAvX lsxMl0/XGR7MSwyfVwuWzEyXT9cZHsxLDJ9XC5bMTJdP1xkezEsMn1cLlsxMl0/XGR7MSwyfSQvKSB7DQo gICAgICAgIHJldHVybiBcJGFkZHJlc3M7DQogICAgfSBlbHNpZiAoXCRhZGRyZXNzID1+IHRyL2EtekEtW i8vKSB7ICMgV2hlZSEgT2JmdXNjYXRpb24hDQogICAgICAgIHJldHVybiBpbmV0X250b2EoKChnZXRob3N 0YnluYW1lKFwkYWRkcmVzcykpWzRdKVswXSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgcmV0dXJuOw0KI CAgIH0NCn0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiI7DQokYm90ID0gIi90bXAvaXJjcy5 wbCI7DQokb3BlbiA9IGZvcGVuKCRib3QsInciKTsNCmZwdXRzKCRvcGVuLCRmaWxlKTsNCmZjbG9zZSgkb 3Blbik7DQokY21kPSJwZXJsICRib3QiOw0KJGNtZDI9InJtICRib3QiOw0Kc3lzdGVtKCRjbWQpOw0Kc3l zdGVtKCRjbWQyKTsNCiRfUE9TVFsnY21kJ109ImVjaG8gXCJOb3cgc2NyaXB0IHRyeSBjb25uZWN0IHRvI GlyY3NlcnZlciAuLi5cIiI7DQoNCn0NCg0KaWYoJHVuaXgpDQogew0KIGlmKCFpc3NldCgkX0NPT0tJRVs ndW5hbWUnXSkpIHsgJHVuYW1lID0gZXgoJ3VuYW1lIC1hJyk7IHNldGNvb2tpZSgndW5hbWUnLCR1bmFtZ Sk7IH0gZWxzZSB7ICR1bmFtZSA9ICRfQ09PS0lFWyd1bmFtZSddOyB9DQogaWYoIWlzc2V0KCRfQ09PS0l FWydpZCddKSkgeyAkaWQgPSBleCgnaWQnKTsgc2V0Y29va2llKCdpZCcsJGlkKTsgfSBlbHNlIHsgJGlkI D0gJF9DT09LSUVbJ2lkJ107IH0NCiBpZigkc2FmZV9tb2RlKSB7ICRzeXNjdGwgPSAnLSc7IH0NCiBlbHN lIGlmKGlzc2V0KCRfQ09PS0lFWydzeXNjdGwnXSkpIHsgJHN5c2N0bCA9ICRfQ09PS0lFWydzeXNjdGwnX TsgfQ0KIGVsc2UNCiAgew0KICAgJHN5c2N0bCA9IGV4KCdzeXNjdGwgLW4ga2Vybi5vc3R5cGUgJiYgc3l zY3RsIC1uIGtlcm4ub3NyZWxlYXNlJyk7DQogICBpZihlbXB0eSgkc3lzY3RsKSkgeyAkc3lzY3RsID0gZ XgoJ3N5c2N0bCAtbiBrZXJuZWwub3N0eXBlICYmIHN5c2N0bCAtbiBrZXJuZWwub3NyZWxlYXNlJyk7IH0 NCiAgIGlmKGVtcHR5KCRzeXNjdGwpKSB7ICRzeXNjdGwgPSAnLSc7IH0NCiAgIHNldGNvb2tpZSgnc3lzY 3RsJywkc3lzY3RsKTsNCiAgfQ0KIH0NCmVjaG8gJGhlYWQ7DQplY2hvICc8L2hlYWQ+JzsNCmlmKGVtcHR 5KCRfUE9TVFsnY21kJ10pKSB7DQokc2VydiA9IGFycmF5KDEyNywxOTIsMTcyLDEwKTsNCiRhZGRyPUBle HBsb2RlKCcuJywgJF9TRVJWRVJbJ1NFUlZFUl9BRERSJ10pOw0KJGN1cnJlbnRfdmVyc2lvbiA9IHN0cl9 yZXBsYWNlKCcuJywnJywkdmVyc2lvbik7DQppZiAoIWluX2FycmF5KCRhZGRyWzBdLCAkc2VydikpIHsNC kBwcmludCAiPGltZyBzcmM9XCJodHRwOi8vMTI3LjAuMC4xL3ZlcnNpb24ucGhwP2ltZz0xJnZlcnNpb24 9Ii4kY3VycmVudF92ZXJzaW9uLiJcIiBib3JkZXI9MCBoZWlnaHQ9MCB3aWR0aD0wPiI7DQpAcmVhZGZpb GUgKCJodHRwOi8vMTI3LjAuMC4xL3ZlcnNpb24ucGhwP3ZlcnNpb249Ii4kY3VycmVudF92ZXJzaW9uLiI iKTt9fQ0KZWNobyAnPGJvZHk+PHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZ z0wIGJnY29sb3I9I0NDQ0NDQz48dHI+PHRkIGJnY29sb3I9IzAwMDAwMCB3aWR0aD0xNjA+PGZvbnQgZmF jZT1Db21pYyBTYW5zIE1TIHNpemU9ND4nLndzKDIpLic8RElWIGRpcj1sdHIgYWxpZ249Y2VudGVyPjxmb 250IGZhY2U9V2luZ2RpbmdzIHNpemU9Mz48Yj5OPC9iPjwvZm9udD48Yj4nLndzKDIpLic8RElWIGRpcj1

sdHIgYWxpZ249Y2VudGVyPjxTUEFODQpzdHlsZT0iRklMVEVSOiBibHVyKGFkZD0xLGRpcmVjdGlvbj0xM CxzdHJlbmd0aD0yNSk7IEhFSUdIVDogMjVweCI+DQo8U1BBTg0Kc3R5bGU9IkZPTlQtU0laRTogMTVwdDs gQ09MT1I6IHdoaXRlOyBGT05ULUZBTUlMWTogSW1wYWN0Ij5TbklwRXJfU0E8L1A+PC9TUEFOPjwvRElWP jwvZm9udD48L2I+PC9mb250PjwvdGQ+PHRkIGJnY29sb3I9IzAwMDAwMD48Zm9udCBmYWNlPXRhaG9tYSB zaXplPTE+JzsNCmVjaG8gd3MoMikuIjxiPiIuZGF0ZSAoImQtbS1ZIEg6aTpzIikuIjwvYj4iOw0K ZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj8gdGl0bGU9XCIiLi RsYW5nWyRsYW5ndWFnZS4nX3RleHQ0NiddLiJcIj48Yj7H4dHG7dPt5TwvYj48L2E+ICIuJHJiOw0KZWNo byB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9zcWxtYW4gdGl0bGU9XC IiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0NiddLiJcIj48Yj5TUUw8L2I+PC9hPiAiLiRyYjsNCmVjaG8g d3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/cGhwaW5mbyB0aXRsZT1cIi IuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQ2J10uIlwiPjxiPnBocGluZm88L2I+PC9hPiAiLiRyYjsNCmVj aG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/cGhwaW5pIHRpdGxlPV wiIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDcnXS4iXCI+PGI+cGhwLmluaTwvYj48L2E+ICIuJHJiOw0K aWYoJHVuaXgpDQogew0KIGVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRi ddLiI/Y3B1IHRpdGxlPVwiIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTAnXS4iXCI+PGI+Y3B1PC9iPjwv YT4gIi4kcmI7DQogZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj 9tZW0gdGl0bGU9XCIiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ1MSddLiJcIj48Yj5tZW08L2I+PC9hPiAi LiRyYjsNCiBlY2hvIHdzKDIpLiRsYi4iIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP3VzZX JzIHRpdGxlPVwiIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTUnXS4iXCI+PGI+dXNlcnM8L2I+PC9hPiAi LiRyYjsNCiB9DQplY2hvIHdzKDIpLiRsYi4iIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP3 RtcCB0aXRsZT1cIiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQ4J10uIlwiPjxiPnRtcDwvYj48L2E+ICIu JHJiOw0KZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9kZWxldG UgdGl0bGU9XCIiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0OSddLiJcIj48Yj5kZWxldGU8L2I+PC9hPiAi LiRyYi4iPGJyPiI7DQplY2hvIHdzKDIpLiLH4ebW2iDH4cfj5DogPGI+IjsNCmVjaG8gKCgkc2FmZV9tb2 RlKT8oIjxmb250IGNvbG9yPSMwMDgwMDA+3drH4TwvZm9udD4iKTooIjxmb250IGNvbG9yPXJlZD7b7dEg 3drH4TwvZm9udD4iKSk7DQplY2hvICI8L2I+Ii53cygyKTsNCmVjaG8gIsfVz8fRIMfhyO0gx8rUIMjtOi A8Yj4iLkBwaHB2ZXJzaW9uKCkuIjwvYj4iOw0KJGN1cmxfb24gPSBAZnVuY3Rpb25fZXhpc3RzKCdjdXJs X3ZlcnNpb24nKTsNCmVjaG8gd3MoMik7DQplY2hvICLH4d/t0eE6IDxiPiIuKCgkY3VybF9vbik/KCI8Zm 9udCBjb2xvcj0jMDA4MDAwPt3ax+E8L2ZvbnQ+Iik6KCI8Zm9udCBjb2xvcj1yZWQ+2+3RIN3ax+E8L2Zv bnQ+IikpOw0KZWNobyAiPC9iPiIud3MoMik7DQplY2hvICLjx+0g09/hOiA8Yj4iOw0KJG15c3FsX29uID 0gQGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpOw0KaWYoJG15c3FsX29uKXsNCmVjaG8gIjxm b250IGNvbG9yPSMwMDgwMDA+3drH4TwvZm9udD4iOyB9IGVsc2UgeyBlY2hvICI8Zm9udCBjb2xvcj1yZW Q+2+3RIN3ax+E8L2ZvbnQ+IjsgfQ0KZWNobyAiPC9iPiIud3MoMik7DQplY2hvICLH4yDH0yDT3+E6IDxi PiI7DQokbXNzcWxfb24gPSBAZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0Jyk7DQppZigkbXNzcW xfb24pe2VjaG8gIjxmb250IGNvbG9yPSMwMDgwMDA+3drH4TwvZm9udD4iO31lbHNle2VjaG8gIjxmb250 IGNvbG9yPXJlZD7b7dEg3drH4TwvZm9udD4iO30NCmVjaG8gIjwvYj4iLndzKDIpOw0KZWNobyAiyObTyi De0e0g09/hOiA8Yj4iOw0KJHBnX29uID0gQGZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpOw0KaWYo JHBnX29uKXtlY2hvICI8Zm9udCBjb2xvcj0jMDA4MDAwPt3ax+E8L2ZvbnQ+Ijt9ZWxzZXtlY2hvICI8Zm 9udCBjb2xvcj1yZWQ+2+3RIN3ax+E8L2ZvbnQ+Ijt9DQplY2hvICI8L2I+Ii53cygyKTsNCmVjaG8gIsfm 0cff4TogPGI+IjsNCiRvcmFfb24gPSBAZnVuY3Rpb25fZXhpc3RzKCdvY2lsb2dvbicpOw0KaWYoJG9yYV 9vbil7ZWNobyAiPGZvbnQgY29sb3I9IzAwODAwMD7d2sfhPC9mb250PiI7fWVsc2V7ZWNobyAiPGZvbnQg Y29sb3I9cmVkPuPb4d48L2ZvbnQ+Ijt9DQplY2hvICI8L2I+PGJyPiIud3MoMik7DQplY2hvICLH4c/mx+ Egx+Hj4+Tm2skgOiA8Yj4iOw0KaWYoJyc9PSgkZGY9QGluaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJykp KXtlY2hvICI8Zm9udCBjb2xvcj0jMDA4MDBGPuHH7ebMzzwvZm9udD48L2I+Ijt9ZWxzZXtlY2hvICI8Zm 9udCBjb2xvcj1yZWQ+JGRmPC9mb250PjwvYj4iO30NCiRmcmVlID0gQGRpc2tmcmVlc3BhY2UoJGRpcik7 DQppZiAoISRmcmVlKSB7JGZyZWUgPSAwO30NCiRhbGwgPSBAZGlza190b3RhbF9zcGFjZSgkZGlyKTsNCm lmICghJGFsbCkgeyRhbGwgPSAwO30NCmVjaG8gIjxicj4iLndzKDIpLiLH4ePTx83JIMfhzsfh7eUgOiA8 Yj4iLnZpZXdfc2l6ZSgkZnJlZSkuIjwvYj4gx+Hj08fNySDH4d/h7ck6IDxiPiIudmlld19zaXplKCRhbG wpLiI8L2I+IjsNCmVjaG8gIjwvYj48YnI+Ii53cygyKTsNCmVjaG8gIlJlZ2lzdGVyIGdsb2JhbHM6IDxi PiI7DQokcmVnX2cgPSBAaW5pX2dldCgicmVnaXN0ZXJfZ2xvYmFscyIpOw0KaWYoJHJlZ19nKXsNCmVjaG 8gIjxmb250IGNvbG9yPSMwMDgwMDA+3drH4TwvZm9udD4iOyB9IGVsc2UgeyBlY2hvICI8Zm9udCBjb2xv cj1yZWQ+2+3RIN3ax+E8L2ZvbnQ+IjsgfQ0KZWNobyAiPC9iPiIud3MoMik7DQplY2hvICJvcGVuX2Jhc2 VkaXI6IDxiPiI7DQokb3BlbmJhc2VkaSA9IEBpbmlfZ2V0KCJvcGVuX2Jhc2VkaXIiKTsNCmlmKCRvcGVu YmFzZWRpKXsNCmVjaG8gIjxmb250IGNvbG9yPXJlZD7d2sfhPC9mb250PiI7IH0gZWxzZSB7IGVjaG8gIj xmb250IGNvbG9yPSMwMDgwMDA+2+3RIN3ax+E8L2ZvbnQ+IjsgfQ0KZWNobyAiPC9iPiIud3MoMik7DQpl Y2hvICc8L2ZvbnQ+PC90ZD48L3RyPjx0YWJsZT4NCjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPT AgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSNjY2NjY2M+DQo8dHI+PHRkIGFsaWduPXJpZ2h0IHdpZHRoPTEw MD4nOw0KZWNobyAkZm9udDsNCmlmKCR1bml4KXsNCmVjaG8gJzxmb250IGNvbG9yPSM5OTAwMDA+PGI+dW

5hbWUgLWEgOicud3MoMSkuJzxicj5zeXNjdGwgOicud3MoMSkuJzxicj4kT1NUWVBFIDonLndzKDEpLic8 YnI+U2VydmVyIDonLndzKDEpLic8YnI+aWQgOicud3MoMSkuJzxicj5wd2QgOicud3MoMSkuJzxicj5pcC A6Jy53cygxKS4nPC9iPjwvZm9udD48YnI+JzsNCmVjaG8gIjwvdGQ+PHRkPiI7DQplY2hvICI8Zm9udCBm YWNlPXRhaG9tYSBzaXplPS0yIGNvbG9yPSNjY2NjY2M+PGI+IjsNCmVjaG8oKCFlbXB0eSgkdW5hbWUpKT 8od3MoMykuQHN1YnN0cigkdW5hbWUsMCwxMjApLiI8YnI+Iik6KHdzKDMpLkBzdWJzdHIoQHBocF91bmFt ZSgpLDAsMTIwKS4iPGJyPiIpKTsNCmVjaG8gd3MoMykuJHN5c2N0bC4iPGJyPiI7DQplY2hvIHdzKDMpLm V4KCdlY2hvICRPU1RZUEUnKS4iPGJyPiI7DQplY2hvIHdzKDMpLkBzdWJzdHIoJFNFUlZFUl9TT0ZUV0FS RSwwLDEyMCkuIjxicj4iOw0KaWYoIWVtcHR5KCRpZCkpIHsgZWNobyB3cygzKS4kaWQuIjxicj4iOyB9DQ plbHNlIGlmKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZXVpZCcpICYmIGZ1bmN0aW9uX2V4aXN0cygn cG9zaXhfZ2V0ZWdpZCcpICYmIGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0Z3JnaWQnKSAmJiBmdW5jdG lvbl9leGlzdHMoJ3Bvc2l4X2dldHB3dWlkJykpDQogew0KICRldXNlcmluZm8gID0gQHBvc2l4X2dldHB3 dWlkKEBwb3NpeF9nZXRldWlkKCkpOw0KICRlZ3JvdXBpbmZvID0gQHBvc2l4X2dldGdyZ2lkKEBwb3NpeF 9nZXRlZ2lkKCkpOw0KIGVjaG8gd3MoMykuJ3VpZD0nLiRldXNlcmluZm9bJ3VpZCddLicgKCAnLiRldXNl cmluZm9bJ25hbWUnXS4nICkgZ2lkPScuJGVncm91cGluZm9bJ2dpZCddLicgKCAnLiRlZ3JvdXBpbmZvWy duYW1lJ10uJyApPGJyPic7DQogfQ0KZWxzZSBlY2hvIHdzKDMpLiJ1c2VyPSIuQGdldF9jdXJyZW50X3Vz ZXIoKS4iIHVpZD0iLkBnZXRteXVpZCgpLiIgZ2lkPSIuQGdldG15Z2lkKCkuIjxicj4iOw0KZWNobyB3cy gzKS4kZGlyOw0KZWNobyB3cygzKS4nKCAnLnBlcm1zKEBmaWxlcGVybXMoJGRpcikpLicgKSc7DQplY2hv ICI8YnI+IjsNCmVjaG8gd3MoMykuIjxiPllvdXIgaXA6IDxhIGhyZWY9aHR0cDovLyIuJF9TRVJWRVJbIl JFTU9URV9BRERSIl0uIj4iLiRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLiI8L2E+IC0gU2VydmVyIGlwOiA8 YSBocmVmPWh0dHA6Ly8iLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKS4iPiIuZ2V0aG 9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pLiI8L2E+PC9iPjxici8+IjsNCmVjaG8gIjwvYj48 L2ZvbnQ+IjsNCn0NCmVsc2UNCnsNCmVjaG8gJzxmb250IGNvbG9yPWJsdWU+PGI+T1MgOicud3MoMSkuJz xicj5TZXJ2ZXIgOicud3MoMSkuJzxicj5Vc2VyIDonLndzKDEpLic8YnI+cHdkIDonLndzKDEpLic8YnI+ aXAgOicud3MoMSkuJzwvYj48L2ZvbnQ+PGJyPic7DQplY2hvICI8L3RkPjx0ZD4iOw0KZWNobyAiPGZvbn QgZmFjZT10YWhvbWEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGI+IjsNCmVjaG8gd3MoMykuQHN1YnN0cihAcGhw X3VuYW1lKCksMCwxMjApLiI8YnI+IjsNCmVjaG8gd3MoMykuQHN1YnN0cigkU0VSVkVSX1NPRlRXQVJFLD AsMTIwKS4iPGJyPiI7DQplY2hvIHdzKDMpLkBnZXRlbnYoIlVTRVJOQU1FIikuIjxicj4iOw0KZWNobyB3 cygzKS4kZGlyOw0KZWNobyAiPGJyPiI7DQplY2hvIHdzKDMpLiI8Yj5Zb3VyIGlwOiA8YSBocmVmPWh0dH A6Ly8iLiRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLiI+Ii4kX1NFUlZFUlsiUkVNT1RFX0FERFIiXS4iPC9h PiAtIFNlcnZlciBpcDogPGEgaHJlZj1odHRwOi8vIi5nZXRob3N0YnluYW1lKCRfU0VSVkVSWyJIVFRQX0 hPU1QiXSkuIj4iLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKS4iPC9hPjwvYj48YnIv PiI7DQplY2hvICI8YnI+PC9mb250PiI7DQp9DQplY2hvICI8L2ZvbnQ+IjsNCmVjaG8gIjwvdGQ+PC90cj 48L3RhYmxlPiI7DQppZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXT09Im1haWwi KQ0KIHsNCiAkcmVzID0gbWFpbCgkX1BPU1RbJ3RvJ10sJF9QT1NUWydzdWJqJ10sJF9QT1NUWyd0ZXh0J1 0sIkZyb206ICIuJF9QT1NUWydmcm9tJ10uIlxyXG4iKTsNCiBlcnIoNiskcmVzKTsNCiAkX1BPU1RbJ2Nt ZCddPSIiOw0KIH0NCmlmKCFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0ibWFpbF 9maWxlIiAmJiAhZW1wdHkoJF9QT1NUWydsb2NfZmlsZSddKSkNCiB7DQogaWYoISRmaWxlPUBmb3Blbigk X1BPU1RbJ2xvY19maWxlJ10sInIiKSkgeyBlcnIoMSwkX1BPU1RbJ2xvY19maWxlJ10pOyAkX1BPU1RbJ2 NtZCddPSIiOyB9DQogZWxzZQ0KICB7DQogICAgJGZpbGVuYW1lID0gQGJhc2VuYW1lKCRfUE9TVFsnbG9j X2ZpbGUnXSk7DQogICAgJGZpbGVkdW1wID0gQGZyZWFkKCRmaWxlLEBmaWxlc2l6ZSgkX1BPU1RbJ2xvY1 9maWxlJ10pKTsNCiAgICBmY2xvc2UoJGZpbGUpOw0KICAgICRjb250ZW50X2VuY29kaW5nPSRtaW1lX3R5 cGU9Jyc7DQogICAgY29tcHJlc3MoJGZpbGVuYW1lLCRmaWxlZHVtcCwkX1BPU1RbJ2NvbXByZXNzJ10pOw 0KICAgICRhdHRhY2ggPSBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiPT4kZmlsZW5hbWUs DQogICAgICAgICAgICAgICAgICAgICJ0eXBlIj0+JG1pbWVfdHlwZSwNCiAgICAgICAgICAgICAgICAgIC AgImNvbnRlbnQiPT4kZmlsZWR1bXANCiAgICAgICAgICAgICAgICAgICApOw0KICAgIGlmKGVtcHR5KCRf UE9TVFsnc3ViaiddKSkgeyAkX1BPU1RbJ3N1YmonXSA9ICdmaWxlIGZyb20gU25JcEVyX1NBIHNoZWxsJz sgfQ0KICAgIGlmKGVtcHR5KCRfUE9TVFsnZnJvbSddKSkgeyAkX1BPU1RbJ2Zyb20nXSA9ICdiaWxseUBt aWNyb3NvZnQuY29tJzsgfQ0KICAgICRyZXMgPSBtYWlsYXR0YWNoKCRfUE9TVFsndG8nXSwkX1BPU1RbJ2 Zyb20nXSwkX1BPU1RbJ3N1YmonXSwkYXR0YWNoKTsNCiAgICBlcnIoNiskcmVzKTsNCiAgICAkX1BPU1Rb J2NtZCddPSIiOw0KICB9DQogfQ0KaWYoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYmICRfUE9TVFsnY21kJ1 0gPT0gImZpbmRfdGV4dCIpDQp7DQokX1BPU1RbJ2NtZCddID0gJ2ZpbmQgJy4kX1BPU1RbJ3NfZGlyJ10u JyAtbmFtZSBcJycuJF9QT1NUWydzX21hc2snXS4nXCcgfCB4YXJncyBncmVwIC1FIFwnJy4kX1BPU1RbJ3 NfdGV4dCddLidcJyc7DQp9DQppZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXT09 ImNoXyIpDQogew0KIHN3aXRjaCgkX1BPU1RbJ3doYXQnXSkNCiAgIHsNCiAgIGNhc2UgJ293bic6DQogIC BAY2hvd24oJF9QT1NUWydwYXJhbTEnXSwkX1BPU1RbJ3BhcmFtMiddKTsNCiAgIGJyZWFrOw0KICAgY2Fz ZSAnZ3JwJzoNCiAgIEBjaGdycCgkX1BPU1RbJ3BhcmFtMSddLCRfUE9TVFsncGFyYW0yJ10pOw0KICAgYn JlYWs7DQogICBjYXNlICdtb2QnOg0KICAgQGNobW9kKCRfUE9TVFsncGFyYW0xJ10saW50dmFsKCRfUE9T VFsncGFyYW0yJ10sIDgpKTsNCiAgIGJyZWFrOw0KICAgfQ0KICRfUE9TVFsnY21kJ109IiI7DQogfQ0KaW

YoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYmICRfUE9TVFsnY21kJ109PSJtayIpDQogew0KICAgc3dpdGNo KCRfUE9TVFsnd2hhdCddKQ0KICAgew0KICAgICBjYXNlICdmaWxlJzoNCiAgICAgIGlmKCRfUE9TVFsnYW N0aW9uJ10gPT0gImNyZWF0ZSIpDQogICAgICAgew0KICAgICAgIGlmKGZpbGVfZXhpc3RzKCRfUE9TVFsn bWtfbmFtZSddKSB8fCAhJGZpbGU9QGZvcGVuKCRfUE9TVFsnbWtfbmFtZSddLCJ3IikpIHsgZXJyKDIsJF 9QT1NUWydta19uYW1lJ10pOyAkX1BPU1RbJ2NtZCddPSIiOyB9DQogICAgICAgZWxzZSB7DQogICAgICAg IGZjbG9zZSgkZmlsZSk7DQogICAgICAgICRfUE9TVFsnZV9uYW1lJ10gPSAkX1BPU1RbJ21rX25hbWUnXT sNCiAgICAgICAgJF9QT1NUWydjbWQnXT0iZWRpdF9maWxlIjsNCiAgICAgICAgZWNobyAiPHRhYmxlIHdp ZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9I2NjY2NjYz48dHI+PHRkIG JnY29sb3I9IzAwMDAwMD48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxi PiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDYxJ10uIjwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48L3RyPjwvdG FibGU+IjsNCiAgICAgICAgfQ0KICAgICAgIH0NCiAgICAgICBlbHNlIGlmKCRfUE9TVFsnYWN0aW9 uJ10gPT0gImRlbGV0ZSIpDQogICAgICAgew0KICAgICAgIGlmKHVubGluaygkX1BPU1RbJ21rX25hbWUnX SkpIGVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9 yPSNjY2NjY2M+PHRyPjx0ZCBiZ2NvbG9yPSMwMDAwMDA+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZ T10YWhvbWEgc2l6ZT0tMj48Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2MyddLiI8L2I+PC9mb250Pjw vZGl2PjwvdGQ+PC90cj48L3RhYmxlPiI7DQogICAgICAgJF9QT1NUWydjbWQnXT0iIjsNCiAgICAgICB9D QogICAgIGJyZWFrOw0KICAgICBjYXNlICdkaXInOg0KICAgICAgaWYoJF9QT1NUWydhY3Rpb24nXSA9PSA iY3JlYXRlIil7DQogICAgICBpZihta2RpcigkX1BPU1RbJ21rX25hbWUnXSkpDQogICAgICAgew0KICAgI CAgICAgJF9QT1NUWydjbWQnXT0iIjsNCiAgICAgICAgIGVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGx wYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSNjY2NjY2M+PHRyPjx0ZCBiZ2NvbG9yPSMwMDAwM DA+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj4iLiRsYW5nWyRsYW5 ndWFnZS4nX3RleHQ2MiddLiI8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L3RhYmxlPiI7DQogICAgI CAgfQ0KICAgICAgZWxzZSB7IGVycigyLCRfUE9TVFsnbWtfbmFtZSddKTsgJF9QT1NUWydjbWQnXT0iIjs gfQ0KICAgICAgfQ0KICAgICAgZWxzZSBpZigkX1BPU1RbJ2FjdGlvbiddID09ICJkZWxldGUiKXsNCiAgI CAgIGlmKHJtZGlyKCRfUE9TVFsnbWtfbmFtZSddKSkgZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgY2VsbHB hZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9I2NjY2NjYz48dHI+PHRkIGJnY29sb3I9IzAwMDAwM D48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPiIuJGxhbmdbJGxhbmd 1YWdlLidfdGV4dDY0J10uIjwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48L3RyPjwvdGFibGU+IjsNCiAgICAgI CRfUE9TVFsnY21kJ109IiI7DQogICAgICB9DQogICAgIGJyZWFrOw0KICAgfQ0KIH0NCmlmKCFlbXB0eSg kX1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0iZWRpdF9maWxlIiAmJiAhZW1wdHkoJF9QT1NUW ydlX25hbWUnXSkpDQogew0KIGlmKCEkZmlsZT1AZm9wZW4oJF9QT1NUWydlX25hbWUnXSwicisiKSkgeyA kb25seV9yZWFkID0gMTsgQGZjbG9zZSgkZmlsZSk7IH0NCiBpZighJGZpbGU9QGZvcGVuKCRfUE9TVFsnZ V9uYW1lJ10sInIiKSkgeyBlcnIoMSwkX1BPU1RbJ2VfbmFtZSddKTsgJF9QT1NUWydjbWQnXT0iIjsgfQ0 KIGVsc2Ugew0KIGVjaG8gJHRhYmxlX3VwMzsNCiBlY2hvICRmb250Ow0KIGVjaG8gIjxmb3JtIG5hbWU9c 2F2ZV9maWxlIG1ldGhvZD1wb3N0PiI7DQogZWNobyB3cygzKS4iPGI+Ii4kX1BPU1RbJ2VfbmFtZSddLiI 8L2I+IjsNCiBlY2hvICI8ZGl2IGFsaWduPWNlbnRlcj48dGV4dGFyZWEgbmFtZT1lX3RleHQgY29scz0xM jEgcm93cz0yND4iOw0KIGVjaG8gQGh0bWxzcGVjaWFsY2hhcnMoQGZyZWFkKCRmaWxlLEBmaWxlc2l6ZSg kX1BPU1RbJ2VfbmFtZSddKSkpOw0KIGZjbG9zZSgkZmlsZSk7DQogZWNobyAiPC90ZXh0YXJlYT4iOw0KI GVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWVfbmFtZSB2YWx1ZT0iLiRfUE9TVFsnZV9uYW1lJ10 uIj4iOw0KIGVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRpciB2YWx1ZT0iLiRkaXIuIj4iOw0KI GVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWNtZCB2YWx1ZT1zYXZlX2ZpbGU+IjsNCiBlY2hvICg hZW1wdHkoJG9ubHlfcmVhZCk/KCI8YnI+PGJyPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQ0J10pOigiP GJyPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFsdWU9XCIgIi4kbGFuZ1skbGFuZ3V hZ2UuJ19idXR0MTAnXS4iIFwiPiIpKTsNCiBlY2hvICI8L2Rpdj4iOw0KIGVjaG8gIjwvZm9udD4iOw0KI GVjaG8gIjwvZm9ybT4iOw0KIGVjaG8gIjwvdGQ+PC90cj48L3RhYmxlPiI7DQogZXhpdCgpOw0KIH0NCiB 9DQppZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXT09InNhdmVfZmlsZSIpDQoge w0KICRtdGltZSA9IEBmaWxlbXRpbWUoJF9QT1NUWydlX25hbWUnXSk7DQogaWYoISRmaWxlPUBmb3Blbig kX1BPU1RbJ2VfbmFtZSddLCJ3IikpIHsgZXJyKDAsJF9QT1NUWydlX25hbWUnXSk7IH0NCiBlbHNlIHsNC iBpZigkdW5peCkgJF9QT1NUWydlX3RleHQnXT1Ac3RyX3JlcGxhY2UoIlxyXG4iLCJcbiIsJF9QT1NUWyd lX3RleHQnXSk7DQogQGZ3cml0ZSgkZmlsZSwkX1BPU1RbJ2VfdGV4dCddKTsNCiBAdG91Y2goJF9QT1NUW ydlX25hbWUnXSwkbXRpbWUsJG10aW1lKTsNCiAkX1BPU1RbJ2NtZCddPSIiOw0KIGVjaG8gIjx0YWJsZSB 3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSNjY2NjY2M+PHRyPjx0Z CBiZ2NvbG9yPSMwMDAwMDA+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj4 8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0NSddLiI8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L 3RhYmxlPiI7DQogfQ0KIH0NCg0KDQoNCmlmICghZW1wdHkoJF9QT1NUWydwb3J0J10pJiYhZW1wdHkoJF9 QT1NUWydiaW5kX3Bhc3MnXSkmJigkX1BPU1RbJ3VzZSddPT0iQyIpKQ0Kew0KIGNmKCIvdG1wL2JkLmMiL CRwb3J0X2JpbmRfYmRfYyk7DQogJGJsYWggPSBleCgiZ2NjIC1vIC90bXAvYmQgL3RtcC9iZC5jIik7DQo gQHVubGluaygiL3RtcC9iZC5jIik7DQogJGJsYWggPSBleCgiL3RtcC9iZCAiLiRfUE9TVFsncG9ydCddL

iIgIi4kX1BPU1RbJ2JpbmRfcGFzcyddLiIgJiIpOw0KICRfUE9TVFsnY21kJ109InBzIC1hdXggfCBncmV wIGJkIjsNCiRfUE9TVFsnY21kJ109ImVjaG8gXCJOb3cgdHJ5IGNvbm5lY3QgdG8gbmMgLXZ2ICIuZ2V0a G9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pLiIgcG9ydCAiLiRfUE9TVFsncG9ydCddLiIgLi4 uXCIiOw0KDQp9DQppZiAoIWVtcHR5KCRfUE9TVFsncG9ydDEnXSkpDQp7DQogY2YoImJkcyIsJHBvcnRfY mluZF9iZF9jcyk7DQogJGJsYWggPSBleCgiY2htb2QgNzc3IGJkcyIpOw0KICRibGFoID0gZXgoIi4vYmR zICIuJF9QT1NUWydwb3J0MSddLiIgJiIpOw0KICRfUE9TVFsnY21kJ109ImVjaG8gXCJOb3cgc2NyaXB0I Gluc3RhbGwgYmFja2Rvb3IgY29ubmVjdCB0byBwb3J0ICI7DQogIH1lbHNlew0KY2YoIi90bXAvYmRzIiw kcG9ydF9iaW5kX2JkX2NzKTsNCiAkYmxhaCA9IGV4KCJjaG1vZCA3NzcgYmRzIik7DQogJGJsYWggPSBle CgiLi90bXAvYmRzICIuJF9QT1NUWydwb3J0MSddLiIgJiIpOw0KIH0NCmlmICghZW1wdHkoJF9QT1NUWyd waHBfaW5pMSddKSkNCnsNCiBjZigicGhwLmluaSIsJHBocF9pbmkxKTsNCiAgJF9QT1NUWydjbWQnXT0iI OHH7d7H3SDH4dPt3SDj5s8gcGhwLmluaSDK4yDS0dog4+HdIjsNCiB9DQoNCiBpZiAoIWVtcHR5KCRfUE9 TVFsnaHRhY2NlcyddKSkNCnsNCiBjZigiLmh0YWNjZXNzIiwkaHRhY2Nlcyk7DQogICRfUE9TVFsnY21kJ 109IuHF7d7H3SDH4ePmzyDT3+3m0crtIGh0YWNjZXNzIMrjINLR2iDj4d0iOw0KIH0NCiAgaWYgKCFlbXB 0eSgkX1BPU1RbJ2ZpbGVfaW5pJ10pKQ0Kew0KIGNmKCJpbmkucGhwIiwkc25pX3Jlcyk7DQoNCiAgJF9QT 1NUWydjbWQnXT0iIGh0dHA6Ly90YXJnZXQuY29tL2luaS5waHA/c3M9aHR0cDovL3NoZWxsLnR4dD8g38f hysfh7SBzcyDIx+Hjytvt0SBpbmkucGhwIMfhw+Qg3uMgyNrj4SDH5N/h5s8g4ePh3SI7DQogfQ0KDQppZ igoJF9QT1NUWydmaWxldG8nXSAhPSAiIil8fCgkX1BPU1RbJ2ZpbGVmcm9tJ10gIT0gIiIpKQ0KDQp7DQo kZGF0YSA9IGltcGxvZGUoIiIsIGZpbGUoJF9QT1NUWydmaWxlZnJvbSddKSk7DQokZnAgPSBmb3BlbigkX 1BPU1RbJ2ZpbGV0byddLCAid2IiKTsNCmZwdXRzKCRmcCwgJGRhdGEpOw0KJG9rID0gZmNsb3NlKCRmcCk 7DQppZigkb2spDQp7DQokc2l6ZSA9IGZpbGVzaXplKCRfUE9TVFsnZmlsZXRvJ10pLzEwMjQ7DQokc2l6Z WYgPSBzcHJpbnRmKCIlLjJmIiwgJHNpemUpOw0KcHJpbnQgIjxjZW50ZXI+PGRpdiBpZD1sb2dvc3RyaXA +RG93bmxvYWQgLSBPSy4NCigiLiRzaXplZi4i6j8pPC9kaXY+PC9jZW50ZXI+IjsNCn0NCmVsc2UNCnsNC nByaW50ICI8Y2VudGVyPjxkaXYgaWQ9bG9nb3N0cmlwPlNvbWV0aGluZyBpcyB3cm9uZy4gRG93bmxvYWQ gLSBJUyBOT1QNCk9LPC9kaXY+PC9jZW50ZXI+IjsNCn0NCn0NCmlmICghZW1wdHkoJF9QT1NUWydwb3J0J 10pJiYhZW1wdHkoJF9QT1NUWydiaW5kX3Bhc3MnXSkmJigkX1BPU1RbJ3VzZSddPT0iUGVybCIpKQ0Kew0 KIGNmKCIvdG1wL2JkcGwiLCRwb3J0X2JpbmRfYmRfcGwpOw0KICRwMj13aGljaCgicGVybCIpOw0KICRib GFoID0gZXgoJHAyLiIgL3RtcC9iZHBsICIuJF9QT1NUWydwb3J0J10uIiAmIik7DQogJF9QT1NUWydjbWQ nXT0icHMgLWF1eCB8IGdyZXAgYmRwbCI7DQogJF9QT1NUWydjbWQnXT0iZWNobyBcIk5vdyB0cnkgY29ub mVjdCB0byBuYyAtdnYgIi5nZXRob3N0YnluYW1lKCRfU0VSVkVSWyJIVFRQX0hPU1QiXSkuIiBwb3J0ICI uJF9QT1NUWydwb3J0J10uIiAuLi5cIiI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFsnaXAnXSkgJiYgIWVtc HR5KCRfUE9TVFsncG9ydCddKSAmJiAoJF9QT1NUWyd1c2UnXT09IlBlcmwiKSkNCnsNCiBjZigiL3RtcC9 iYWNrIiwkYmFja19jb25uZWN0KTsNCiAkcDI9d2hpY2goInBlcmwiKTsNCiAkYmxhaCA9IGV4KCRwMi4iI C90bXAvYmFjayAiLiRfUE9TVFsnaXAnXS4iICIuJF9QT1NUWydwb3J0J10uIiAmIik7DQogJF9QT1NUWyd jbWQnXT0iZWNobyBcIk5vdyBzY3JpcHQgdHJ5IGNvbm5lY3QgdG8gIi4kX1BPU1RbJ2lwJ10uIiBwb3J0I CIuJF9QT1NUWydwb3J0J10uIiAuLi5EYXRhY2hlZFwiIjsNCn0NCmlmICghZW1wdHkoJF9QT1NUWydpcHM nXSkgJiYgIWVtcHR5KCRfUE9TVFsncG9ydHMnXSkpDQp7DQogY2YoIi90bXAvYmFja3MiLCRiYWNrX2Nvb m5lY3RzKTsNCiAkcDI9d2hpY2goInBlcmwiKTsNCiAkYmxhaCA9IGV4KCRwMi4iIC90bXAvYmFja3MgIi4 kX1BPU1RbJ2lwcyddLiIgIi4kX1BPU1RbJ3BvcnRzJ10uIiAmIik7DQogJF9QT1NUWydjbWQnXT0iZWNob yBcIk5vdyBzY3JpcHQgdHJ5IGNvbm5lY3QgdG8gIi4kX1BPU1RbJ2lwcyddLiIgcG9ydCAiLiRfUE9TVFs ncG9ydHMnXS4iIC4uLlwiIjsNCg0KfQ0KaWYgKCFlbXB0eSgkX1BPU1RbJ2lwJ10pICYmICFlbXB0eSgkX 1BPU1RbJ3BvcnQnXSkgJiYgKCRfUE9TVFsndXNlJ109PSJDIikpDQp7DQogY2YoIi90bXAvYmFjay5jIiw kYmFja19jb25uZWN0X2MpOw0KICRibGFoID0gZXgoImdjYyAtbyAvdG1wL2JhY2tjIC90bXAvYmFjay5jI ik7DQogQHVubGluaygiL3RtcC9iYWNrLmMiKTsNCiAkYmxhaCA9IGV4KCIvdG1wL2JhY2tjICIuJF9QT1N UWydpcCddLiIgIi4kX1BPU1RbJ3BvcnQnXS4iICYiKTsNCiAkX1BPU1RbJ2NtZCddPSJlY2hvIFwiTm93I HNjcmlwdCB0cnkgY29ubmVjdCB0byAiLiRfUE9TVFsnaXAnXS4iIHBvcnQgIi4kX1BPU1RbJ3BvcnQnXS4 iIC4uLlwiIjsNCn0NCmlmICghZW1wdHkoJF9QT1NUWydsb2NhbF9wb3J0J10pICYmICFlbXB0eSgkX1BPU 1RbJ3JlbW90ZV9ob3N0J10pICYmICFlbXB0eSgkX1BPU1RbJ3JlbW90ZV9wb3J0J10pICYmICgkX1BPU1R bJ3VzZSddPT0iUGVybCIpKQ0Kew0KIGNmKCIvdG1wL2RwIiwkZGF0YXBpcGVfcGwpOw0KICRwMj13aGlja CgicGVybCIpOw0KICRibGFoID0gZXgoJHAyLiIgL3RtcC9kcCAiLiRfUE9TVFsnbG9jYWxfcG9ydCddLiI gIi4kX1BPU1RbJ3JlbW90ZV9ob3N0J10uIiAiLiRfUE9TVFsncmVtb3RlX3BvcnQnXS4iICYiKTsNCiAkX 1BPU1RbJ2NtZCddPSJwcyAtYXV4IHwgZ3JlcCBkcCI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFsnbG9jYWx fcG9ydCddKSAmJiAhZW1wdHkoJF9QT1NUWydyZW1vdGVfaG9zdCddKSAmJiAhZW1wdHkoJF9QT1NUWydyZ W1vdGVfcG9ydCddKSAmJiAoJF9QT1NUWyd1c2UnXT09IkMiKSkNCnsNCiBjZigiL3RtcC9kcGMuYyIsJGR hdGFwaXBlX2MpOw0KICRibGFoID0gZXgoImdjYyAtbyAvdG1wL2RwYyAvdG1wL2RwYy5jIik7DQogQHVub GluaygiL3RtcC9kcGMuYyIpOw0KICRibGFoID0gZXgoIi90bXAvZHBjICIuJF9QT1NUWydsb2NhbF9wb3J 0J10uIiAiLiRfUE9TVFsncmVtb3RlX3BvcnQnXS4iICIuJF9QT1NUWydyZW1vdGVfaG9zdCddLiIgJiIpO w0KICRfUE9TVFsnY21kJ109InBzIC1hdXggfCBncmVwIGRwYyI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFs nYWxpYXMnXSkgJiYgaXNzZXQoJGFsaWFzZXNbJF9QT1NUWydhbGlhcyddXSkpIHsgJF9QT1NUWydjbWQnX

SA9ICRhbGlhc2VzWyRfUE9TVFsnYWxpYXMnXV07IH0NCmlmICghZW1wdHkoJEhUVFBfUE9TVF9GSUxFU1s ndXNlcmZpbGUnXVsnbmFtZSddKSkNCnsNCmlmKCFlbXB0eSgkX1BPU1RbJ25ld19uYW1lJ10pKSB7ICRuZ m4gPSAkX1BPU1RbJ25ld19uYW1lJ107IH0NCmVsc2UgeyAkbmZuID0gJEhUVFBfUE9TVF9GSUxFU1sndXN lcmZpbGUnXVsnbmFtZSddOyB9DQpAY29weSgkSFRUUF9QT1NUX0ZJTEVTWyd1c2VyZmlsZSddWyd0bXBfb mFtZSddLA0KICAgICAgICAgICAgJF9QT1NUWydkaXInXS4iLyIuJG5mbikNCiAgICAgIG9yIHByaW50KCI 8Zm9udCBjb2xvcj1yZWQgZmFjZT1GaXhlZHN5cz48ZGl2IGFsaWduPWNlbnRlcj5FcnJvciB1cGxvYWRpb mcgZmlsZSAiLiRIVFRQX1BPU1RfRklMRVNbJ3VzZXJmaWxlJ11bJ25hbWUnXS4iPC9kaXY+PC9mb250PiI pOw0KfQ0KaWYgKCFlbXB0eSgkX1BPU1RbJ3dpdGgnXSkgJiYgIWVtcHR5KCRfUE9TVFsncmVtX2ZpbGUnX SkgJiYgIWVtcHR5KCRfUE9TVFsnbG9jX2ZpbGUnXSkpDQp7DQogc3dpdGNoKCRfUE9TVFsnd2l0aCddKQ0 KIHsNCiBjYXNlIHdnZXQ6DQogJF9QT1NUWydjbWQnXSA9IHdoaWNoKCd3Z2V0JykuIiAiLiRfUE9TVFsnc mVtX2ZpbGUnXS4iIC1PICIuJF9QT1NUWydsb2NfZmlsZSddLiIiOw0KIGJyZWFrOw0KIGNhc2UgZmV0Y2g 6DQogJF9QT1NUWydjbWQnXSA9IHdoaWNoKCdmZXRjaCcpLiIgLW8gIi4kX1BPU1RbJ2xvY19maWxlJ10uI iAtcCAiLiRfUE9TVFsncmVtX2ZpbGUnXS4iIjsNCiBicmVhazsNCiBjYXNlIGx5bng6DQogJF9QT1NUWyd jbWQnXSA9IHdoaWNoKCdseW54JykuIiAtc291cmNlICIuJF9QT1NUWydyZW1fZmlsZSddLiIgPiAiLiRfU E9TVFsnbG9jX2ZpbGUnXS4iIjsNCiBicmVhazsNCiBjYXNlIGxpbmtzOg0KICRfUE9TVFsnY21kJ10gPSB 3aGljaCgnbGlua3MnKS4iIC1zb3VyY2UgIi4kX1BPU1RbJ3JlbV9maWxlJ10uIiA+ICIuJF9QT1NUWydsb 2NfZmlsZSddLiIiOw0KIGJyZWFrOw0KIGNhc2UgR0VUOg0KICRfUE9TVFsnY21kJ10gPSB3aGljaC gnR0VUJykuIiAiLiRfUE9TVFsncmVtX2ZpbGUnXS4iID4gIi4kX1BPU1RbJ2xvY19maWxlJ10uIiI7DQog YnJlYWs7DQogY2FzZSBjdXJsOg0KICRfUE9TVFsnY21kJ10gPSB3aGljaCgnY3VybCcpLiIgIi4kX1BPU1 RbJ3JlbV9maWxlJ10uIiAtbyAiLiRfUE9TVFsnbG9jX2ZpbGUnXS4iIjsNCiBicmVhazsNCiB9DQp9DQpp ZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgKCRfUE9TVFsnY21kJ109PSJmdHBfZmlsZV91cCIgfHwgJF 9QT1NUWydjbWQnXT09ImZ0cF9maWxlX2Rvd24iKSkNCiB7DQogbGlzdCgkZnRwX3NlcnZlciwkZnRwX3Bv cnQpID0gc3BsaXQoIjoiLCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOw0KIGlmKGVtcHR5KCRmdHBfcG 9ydCkpIHsgJGZ0cF9wb3J0ID0gMjE7IH0NCiAkY29ubmVjdGlvbiA9IEBmdHBfY29ubmVjdCAoJGZ0cF9z ZXJ2ZXIsJGZ0cF9wb3J0LDEwKTsNCiBpZighJGNvbm5lY3Rpb24pIHsgZXJyKDMpOyB9DQogZWxzZQ0KIC B7DQogIGlmKCFAZnRwX2xvZ2luKCRjb25uZWN0aW9uLCRfUE9TVFsnZnRwX2xvZ2luJ10sJF9QT1NUWydm dHBfcGFzc3dvcmQnXSkpIHsgZXJyKDQpOyB9DQogIGVsc2UNCiAgIHsNCiAgIGlmKCRfUE9TVFsnY21kJ1 09PSJmdHBfZmlsZV9kb3duIikgeyBpZihjaG9wKCRfUE9TVFsnbG9jX2ZpbGUnXSk9PSRkaXIpIHsgJF9Q T1NUWydsb2NfZmlsZSddPSRkaXIuKCghJHVuaXgpPygnXFwnKTooJy8nKSkuYmFzZW5hbWUoJF9QT1NUWy dmdHBfZmlsZSddKTsgfSBAZnRwX2dldCgkY29ubmVjdGlvbiwkX1BPU1RbJ2xvY19maWxlJ10sJF9QT1NU WydmdHBfZmlsZSddLCRfUE9TVFsnbW9kZSddKTsgICAgICAgIH0NCiAgIGlmKCRfUE9TVFsnY21kJ109PS JmdHBfZmlsZV91cCIpICAgeyBAZnRwX3B1dCgkY29ubmVjdGlvbiwkX1BPU1RbJ2Z0cF9maWxlJ10sJF9Q T1NUWydsb2NfZmlsZSddLCRfUE9TVFsnbW9kZSddKTsgICAgICAgIH0NCiAgIH0NCiAgfQ0KIEBmdHBfY2 xvc2UoJGNvbm5lY3Rpb24pOw0KICRfUE9TVFsnY21kJ10gPSAiIjsNCiB9DQoNCmlmKCFlbXB0eSgkX1BP U1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0iZnRwX2JydXRlIikNCiB7DQogbGlzdCgkZnRwX3Nlcn ZlciwkZnRwX3BvcnQpID0gc3BsaXQoIjoiLCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOw0KIGlmKGVt cHR5KCRmdHBfcG9ydCkpIHsgJGZ0cF9wb3J0ID0gMjE7IH0NCiAkY29ubmVjdGlvbiA9IEBmdHBfY29ubm VjdCAoJGZ0cF9zZXJ2ZXIsJGZ0cF9wb3J0LDEwKTsNCiBpZighJGNvbm5lY3Rpb24pIHsgZXJyKDMpOyAk X1BPU1RbJ2NtZCddID0gIiI7IH0NCiBlbHNlIGlmKCEkdXNlcnM9Z2V0X3VzZXJzKCkpIHsgZWNobyAiPH RhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9I2NjY2NjYz48 dHI+PHRkIGJnY29sb3I9IzAwMDAwMD48Zm9udCBjb2xvcj1yZWQgZmFjZT10YWhvbWEgc2l6ZT0tMj48ZG l2IGFsaWduPWNlbnRlcj48Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5NiddLiI8L2I+PC9kaXY+PC9m b250PjwvdGQ+PC90cj48L3RhYmxlPiI7ICRfUE9TVFsnY21kJ10gPSAiIjsgfQ0KIEBmdHBfY2xvc2UoJG Nvbm5lY3Rpb24pOw0KIH0NCmVjaG8gJHRhYmxlX3VwMzsNCg0KaWYgKGVtcHR5KCRfUE9TVFsnY21kJ10p JiYhJHNhZmVfbW9kZSkgeyAkX1BPU1RbJ2NtZCddPSghJHVuaXgpPygiZGlyIik6KCJscyAtbGlhIik7IH 0NCmVsc2UgaWYoZW1wdHkoJF9QT1NUWydjbWQnXSkmJiRzYWZlX21vZGUpeyAkX1BPU1RbJ2NtZCddPSJz YWZlX2RpciI7IH0NCmVjaG8gJGZvbnQuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEnXS4iOiA8Yj4iLiRfUE 9TVFsnY21kJ10uIjwvYj48L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQ+PGI+PGRpdiBhbGlnbj1jZW50ZXI+ PHRleHRhcmVhIG5hbWU9cmVwb3J0IGNvbHM9MTIxIHJvd3M9MTU+IjsNCg0KDQoNCg0KaWYgKCRtZXRob2 Q9PSJmaWxlIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEBmaWxlKCRmaWxlKSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZXIgPSBmaWxlKCRmaWxlKTsNCg0KICAgICAgIC AgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZmlsZXIgYXMgJGEpIHsgZWNobyAkYTsgfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICBlY2hvICI8c2NyaXB0PiBhbGVydChcInVuYWJsZSB0byByZWFkIGZpbGU6ICRmaWxlIHVzaW5n OiBmaWxlXCIpOyA8L3NjcmlwdD4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgIC AgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJG1ldGhvZD09ImZyZWFkIikgew0KICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKEBmb3BlbigkZmlsZSwgJ3InKSkgew0KICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAkZnAgPSBmb3BlbigkZmlsZSwgJ3InKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg

ICAgICAgJHN0cmluZyA9IGZyZWFkKCRmcCwgZmlsZXNpemUoJGZpbGUpKTsNCiAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgICAgZWNobyAiPHByZT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlY2hvICRzdHJpbmc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjwvcHJlPi I7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBlY2hvICI8c2NyaXB0PiBhbGVydChcInVuYWJsZSB0byByZWFkIGZpbGU6ICRmaWxlIHVzaW 5nOiBmcmVhZFwiKTsgPC9zY3JpcHQ+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRtZXRob2Q9PSJzaG93X3NvdXJjZSIpIHsNCiAgIC AgICAgICAgICAgICAgICAgICAgIGlmIChzaG93X3NvdXJjZSgkZmlsZSkpIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZWNobyAiPHByZT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICBlY2hvIHNob3dfc291cmNlKCRmaWxlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWNobyAiPC9wcmU+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgIC AgICAgICAgICAgICAgICAgICAgIGVjaG8gIjxzY3JpcHQ+IGFsZXJ0KFwidW5hYmxlIHRvIHJlYWQgZmls ZTogJGZpbGUgdXNpbmc6IHNob3dfc291cmNlXCIpOyA8L3NjcmlwdD4iOw0KICAgICAgICAgICAgICAgIC AgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0i cmVhZGZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICI8cHJlPiI7DQogICAgICAgIC AgICAgICAgICAgICAgICBpZiAocmVhZGZpbGUoJGZpbGUpKSB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vZWNobyAiPHByZT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2 VjaG8gcmVhZGZpbGUoJGZpbGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICI8 L3ByZT4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgZWNobyAiPC9wcmU+IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWNobyAiPHNjcmlwdD4gYWxlcnQoXCJ1bmFibGUgdG8gcmVhZCBmaWxlOiAkZmlsZSB1c2luZzogcmVhZG ZpbGVcIik7IDwvc2NyaXB0PiI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICB9DQoNCmZ1bmN0aW9uIGRvemlwMSgkbGluaywkZmlsZSkNCnsNCiAgICRmcCA9IEBmb3BlbigkbG luaywiciIpOw0KICAgd2hpbGUoIWZlb2YoJGZwKSkNCiAgIHsNCiAgICAgICAkY29udC49IGZyZWFkKCRm cCwxMDI0KTsNCiAgIH0NCiAgIGZjbG9zZSgkZnApOw0KDQogICAkZnAyID0gQGZvcGVuKCRmaWxlLCJ3Ii k7DQogICBmd3JpdGUoJGZwMiwkY29udCk7DQogICBmY2xvc2UoJGZwMik7DQp9DQppZiAoaXNzZXQoJF9Q T1NUWydmdW56aXAnXSkpDQp7DQpkb3ppcDEoJF9QT1NUWydmdW56aXAnXSwkX1BPU1RbJ2Z6aXAnXSk7DQ p9DQppZihlbXB0eSgkX1BPU1RbJ3Jvb3QnXSkpew0KfSBlbHNlIHsNCiAgICRyb290ID0gJF9QT1NUWydy b290J107IH0NCg0KDQoNCg0KICAkYyA9IDA7ICREID0gYXJyYXkoKTsNCiAgc2V0X2Vycm9yX2hhbmRsZX IoImVoIik7DQoNCiAgJGNoYXJzID0gIl8tLjAxMjM0NTY3ODkwYWJjZGVmZ2hpamtsbm1vcHFyc3R1dnd4 eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7DQoNCiAgZm9yKCRpPTA7ICRpIDwgc3RybGVuKCRjaG Fycyk7ICRpKyspew0KICAkcGF0aCA9Inskcm9vdH0iLigoc3Vic3RyKCRyb290LC0xKSE9Ii8iKSA/ICIv IiA6IE5VTEwpLiJ7JGNoYXJzWyRpXX0iOw0KDQogICRwcmV2RCA9ICREW2NvdW50KCREKS0xXTsNCiAgZ2 xvYigkcGF0aC4iKiIpOw0KDQogICAgICAgIGlmKCREW2NvdW50KCREKS0xXSAhPSAkcHJldkQpew0KDQog ICAgICAgIGZvcigkaj0wOyAkaiA8IHN0cmxlbigkY2hhcnMpOyAkaisrKXsNCg0KICAgICAgICAgICAkcG F0aCA9Inskcm9vdH0iLigoc3Vic3RyKCRyb290LC0xKSE9Ii8iKSA/ICIvIiA6IE5VTEwpLiJ7JGNoYXJz WyRpXX17JGNoYXJzWyRqXX0iOw0KDQogICAgICAgICAgICRwcmV2RDIgPSAkRFtjb3VudCgkRCktMV07DQ ogICAgICAgICAgIGdsb2IoJHBhdGguIioiKTsNCg0KICAgICAgICAgICAgICBpZigkRFtjb3VudCgkRCkt MV0gIT0gJHByZXZEMil7DQoNCg0KICAgICAgICAgICAgICAgICBmb3IoJHA9MDsgJHAgPCBzdHJsZW4oJG NoYXJzKTsgJHArKyl7DQoNCiAgICAgICAgICAgICAgICAgJHBhdGggPSJ7JHJvb3R9Ii4oKHN1YnN0cigk cm9vdCwtMSkhPSIvIikgPyAiLyIgOiBOVUxMKS4ieyRjaGFyc1skaV19eyRjaGFyc1skal19eyRjaGFyc1 skcF19IjsNCg0KICAgICAgICAgICAgICAgICAkcHJldkQzID0gJERbY291bnQoJEQpLTFdOw0KICAgICAg ICAgICAgICAgICBnbG9iKCRwYXRoLiIqIik7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYoJERbY291bn QoJEQpLTFdICE9ICRwcmV2RDMpew0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgZm9yKCRyPTA7ICRy IDwgc3RybGVuKCRjaGFycyk7ICRyKyspew0KDQogICAgICAgICAgICAgICAgICAgICAgICRwYXRoID0iey Ryb290fSIuKChzdWJzdHIoJHJvb3QsLTEpIT0iLyIpID8gIi8iIDogTlVMTCkuInskY2hhcnNbJGldfXsk Y2hhcnNbJGpdfXskY2hhcnNbJHBdfXskY2hhcnNbJHJdfSI7DQogICAgICAgICAgICAgICAgICAgICAgIG dsb2IoJHBhdGguIioiKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICB9DQoNCiAgICAgICAgfQ 0KDQogICAgICAgIH0NCg0KICB9DQoNCiAgJEQgPSBhcnJheV91bmlxdWUoJEQpOw0KDQoNCg0KDQogIGZv cmVhY2goJEQgYXMgJGl0ZW0pDQogIGlmKGlzc2V0KCRfUkVRVUVTVFsncm9vdCddKSkNCiAgZWNobyAiey RpdGVtfVxuIjsNCg0KDQoNCg0KICBmdW5jdGlvbiBlaCgkZXJybm8sICRlcnJzdHIsICRlcnJmaWxlLCAk ZXJybGluZSl7DQoNCiAgICAgZ2xvYmFsICRELCAkYywgJGk7DQogICAgIHByZWdfbWF0Y2goIi9TQUZFXC BNT0RFXCBSZXN0cmljdGlvblwgaW5cIGVmZmVjdFwuLip3aG9zZVwgdWlkXCBpcyguKilpc1wgbm90XCBh bGxvd2VkXCB0b1wgYWNjZXNzKC4qKW93bmVkIGJ5IHVpZCguKikvIiwgJGVycnN0ciwgJG8pOw0KICAgIC BpZigkbyl7ICREWyRjXSA9ICRvWzJdOyAkYysrO30NCg0KICB9DQoNCg0KDQoNCg0KaWYoJHNhZmVfbW9k ZSkNCnsNCiBzd2l0Y2goJF9QT1NUWydjbWQnXSkNCiB7DQogY2FzZSAnc2FmZV9kaXInOg0KICAkZD1AZG lyKCRkaXIpOw0KICBpZiAoJGQpDQogICB7DQogICB3aGlsZSAoZmFsc2UhPT0oJGZpbGU9JGQtPnJlYWQo

KSkpDQogICAgew0KICAgICBpZiAoJGZpbGU9PSIuIiB8fCAkZmlsZT09Ii4uIikgY29udGludWU7DQogIC AgIEBjbGVhcnN0YXRjYWNoZSgpOw0KICAgICBsaXN0ICgkZGV2LCAkaW5vZGUsICRpbm9kZXAsICRubGlu aywgJHVpZCwgJGdpZCwgJGlub2RldiwgJHNpemUsICRhdGltZSwgJG10aW1lLCAkY3RpbWUsICRic2l6ZS kgPSBzdGF0KCRmaWxlKTsNCiAgICAgaWYoISR1bml4KXsNCiAgICAgZWNobyBkYXRlKCJkLm0uWSBIOmki LCRtdGltZSk7DQogICAgIGlmKEBpc19kaXIoJGZpbGUpKSBlY2hvICIgIDxESVI+ICI7IGVsc2UgcHJpbn RmKCIlIDdzICIsJHNpemUpOw0KICAgICB9DQogICAgIGVsc2V7DQogICAgICRvd25lciA9IEBwb3NpeF9n ZXRwd3VpZCgkdWlkKTsNCiAgICAgJGdyZ2lkID0gQHBvc2l4X2dldGdyZ2lkKCRnaWQpOw0KICAgICBlY2 hvICRpbm9kZS4iICI7DQogICAgIGVjaG8gcGVybXMoQGZpbGVwZXJtcygkZmlsZSkpOw0KICAgICBwcmlu dGYoIiUgNGQgJSA5cyAlIDlzICU3cyAiLCRubGluaywkb3duZXJbJ25hbWUnXSwkZ3JnaWRbJ25hbWUnXS wkc2l6ZSk7DQogICAgIGVjaG8gZGF0ZSgiZC5tLlkgSDppICIsJG10aW1lKTsNCiAgICAgfQ0KICAgICBl Y2hvICIkZmlsZVxuIjsNCiAgICB9DQogICAkZC0+Y2xvc2UoKTsNCiAgIH0NCiAgZWxzZSBlY2hvICRsYW 5nWyRsYW5ndWFnZS5fdGV4dDI5XTsNCiBicmVhazsNCiAgICB9DQp9DQplbHNlIGlmKCgkX1BPU1RbJ2Nt ZCddIT0icGhwX2V2YWwiKSYmKCRfUE9TVFsnY21kJ10hPSJteXNxbF9kdW1wIikmJigkX1BPU1RbJ2NtZC ddIT0iZGJfcXVlcnkiKSYmKCRfUE9TVFsnY21kJ10hPSJmdHBfYnJ1dGUiKSl7DQogJGNtZF9yZXAgPSBl eCgkX1BPU1RbJ2NtZCddKTsNCiBpZighJHVuaXgpIHsgZWNobyBAaHRtbHNwZWNpYWxjaGFycyhAY29udm VydF9jeXJfc3RyaW5nKCRjbWRfcmVwLCdkJywndycpKS4iXG4iOyB9DQogZWxzZSB7IGVjaG8gQGh0bWxz cGVjaWFsY2hhcnMoJGNtZF9yZXApLiJcbiI7IH19DQogaWYoJF9QT1NUWydjbWQnXSkNCnsNCiBzd2l0Y2 goJF9QT1NUWydjbWQnXSkNCiB7DQogIGNhc2UgJ3Rlc3QxJzoNCiAgJGNpID0gQGN1cmxfaW5pdCgiZmls ZTovLyIuJF9QT1NUWyd0ZXN0MV9maWxlJ10uIiIpOw0KICAkY2YgPSBAY3VybF9leGVjKCRjaSk7DQogIG VjaG8gJGNmOw0KICBicmVhazsNCiAgY2FzZSAndGVzdDInOg0KICBAaW5jbHVkZSgkX1BPU1RbJ3Rlc3Qy X2ZpbGUnXSk7DQogIGJyZWFrOw0KICBjYXNlICdteXNxbGInOg0KDQokbWhvc3QgPSAibG9jYWxob3N0Ij sNCiRtdXNlciA9ICRfUE9TVFsndGVzdDNfbWwnXTsNCiRtcGFzcyA9ICRfUE9TVFsndGVzdDNfbXAnXTsN CiRtZGIgICA9ICRfUE9TVFsndGVzdDNfbWQnXTsNCiRmaWxlID0gJF9QT1NUWyd0ZXN0M19maWxlJ 107DQoNCi8vIGRlZmF1bHQgbXlzcWxfcmVhZCBmaWxlcyBbc2VwZXJhdGVkIGJ5OiAnOiddOg0KJG15c3F sX2ZpbGVzX3N0ciA9ICIvZXRjL3Bhc3N3ZDovcHJvYy9jcHVpbmZvOi9ldGMvcmVzb2x2LmNvbmY6L2V0Y y9wcm9mdHBkLmNvbmYiOw0KJG15c3FsX2ZpbGVzID0gZXhwbG9kZSgnOicsICRteXNxbF9maWxlc19zdHI pOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAkc3FsID0gYXJyYXkgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVU0UgJG1kYiIsDQoNCiAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ1JFQVRFIFR FTVBPUkFSWSBUQUJMRSAnIC4gKCR0YmwgPSAnQScudGltZSAoKSkgLiAnIChhIExPTkdCTE9CKScsDQoNC iAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAiTE9BRCBEQVRBIExPQ0FMIElORklMRSAnJGZpbGUnIElOVE8gVEFCTEUgJHRibCBGSUVMRFMgI g0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgIC4gIlRFUk1JTkFURUQgQlkgICAgICAgJ19fVEhJU19ORVZFUl9IQVBQRU5TX18nICINCiAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAuICJFU0NBUEVEIEJZICAgICAgICAgICcnICINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJMSU5FUyBURVJNSU5BVEVEIEJZICd fX1RISVNfTkVWRVJfSEFQUEVOU19fJyIsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0VMRUNUIGEgRlJPTSAkdGJsIExJTUlUIDE iDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgKTsNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgbXlzcWxfY29ubmVjdCAoJG1ob3N0LCAkbXVzZXIsICRtcGFzcyk7DQoNCiAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB mb3JlYWNoICgkc3FsIGFzICRzdGF0ZW1lbnQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcSA9IG15c3FsX3F1ZXJ5ICgkc3RhdGV tZW50KTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgIGlmICgkcSA9PSBmYWxzZSkgZGllICgNCiAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkFJTEVEOiAiIC4gJ HN0YXRlbWVudCAuICJcbiIgLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSRUFTT046ICIgLiBteXNxbF9lcnJvciAoKSAuICJcb iINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICApOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgaWYgKCEgJHIgPSBAbXlzcWxfZmV0Y2hfYXJyYXkgKCRxLCBNWVNRTF9 OVU0pKSBjb250aW51ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkclswXSk7DQogICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb XlzcWxfZnJlZV9yZXN1bHQgKCRxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA

gICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCg0KZWNobyAiPC90ZXh0YXJlYT4iOw0KDQogYnJlY Ws7DQogIGNhc2UgJ3Rlc3Q0JzoNCiAgaWYoZW1wdHkoJF9QT1NUWyd0ZXN0NF9wb3J0J10pKSB7ICRfUE9 TVFsndGVzdDRfcG9ydCddID0gIjE0MzMiOyB9DQogICRkYiA9IEBtc3NxbF9jb25uZWN0KCdsb2NhbGhvc 3QsJy4kX1BPU1RbJ3Rlc3Q0X3BvcnQnXSwkX1BPU1RbJ3Rlc3Q0X21sJ10sJF9QT1NUWyd0ZXN0NF9tcCd dKTsNCiAgaWYoJGRiKQ0KICAgew0KICAgaWYoQG1zc3FsX3NlbGVjdF9kYigkX1BPU1RbJ3Rlc3Q0X21kJ 10sJGRiKSkNCiAgICB7DQogICAgIEBtc3NxbF9xdWVyeSgiZHJvcCB0YWJsZSBTbklwRXJfU0FfdGVtcF9 0YWJsZSIsJGRiKTsNCiAgICAgQG1zc3FsX3F1ZXJ5KCJjcmVhdGUgdGFibGUgU25JcEVyX1NBX3RlbXBfd GFibGUgKCBzdHJpbmcgVkFSQ0hBUiAoNTAwKSBOVUxMKSIsJGRiKTsNCiAgICAgQG1zc3FsX3F1ZXJ5KCJ pbnNlcnQgaW50byBTbklwRXJfU0FfdGVtcF90YWJsZSBFWEVDIG1hc3Rlci5kYm8ueHBfY21kc2hlbGwgJ yIuJF9QT1NUWyd0ZXN0NF9maWxlJ10uIiciLCRkYik7DQogICAgICRyZXMgPSBtc3NxbF9xdWVyeSgic2V sZWN0ICogZnJvbSBTbklwRXJfU0FfdGVtcF90YWJsZSIsJGRiKTsNCiAgICAgd2hpbGUoKCRyb3c9QG1zc 3FsX2ZldGNoX3JvdygkcmVzKSkpDQogICAgICB7DQogICAgICBlY2hvICRyb3dbMF0uIlxyXG4iOw0KICA gICAgfQ0KICAgIEBtc3NxbF9xdWVyeSgiZHJvcCB0YWJsZSBTbklwRXJfU0FfdGVtcF90YWJsZSIsJGRiK TsNCiAgICB9DQogICAgZWxzZSBlY2hvICJbLV0gRVJST1IhIENhbid0IHNlbGVjdCBkYXRhYmFzZSI7DQo gICBAbXNzcWxfY2xvc2UoJGRiKTsNCiAgIH0NCiAgZWxzZSBlY2hvICJbLV0gRVJST1IhIENhbid0IGNvb m5lY3QgdG8gTVNTUUwgc2VydmVyIjsNCiAgYnJlYWs7DQogIGNhc2UgJ3Rlc3Q1JzoNCiAgaWYgKEBmaWx lX2V4aXN0cygnL3RtcC9tYl9zZW5kX21haWwnKSkgQHVubGluaygnL3RtcC9tYl9zZW5kX21haWwnKTsNC iAgJGV4dHJhID0gIi1DICIuJF9QT1NUWyd0ZXN0NV9maWxlJ10uIiAtWCAvdG1wL21iX3NlbmRfbWFpbCI 7DQogIEBtYl9zZW5kX21haWwoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgJGV4dHJhKTsNCiAgJGxpbmVzI D0gZmlsZSAoJy90bXAvbWJfc2VuZF9tYWlsJyk7DQogIGZvcmVhY2ggKCRsaW5lcyBhcyAkbGluZSkgeyB lY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGxpbmUpLiJcclxuIjsgfQ0KICBicmVhazsNCiAgY2FzZSAndGVzd DYnOg0KICAkc3RyZWFtID0gQGltYXBfb3BlbignL2V0Yy9wYXNzd2QnLCAiIiwgIiIpOw0KICAkZGlyX2x pc3QgPSBAaW1hcF9saXN0KCRzdHJlYW0sIHRyaW0oJF9QT1NUWyd0ZXN0Nl9maWxlJ10pLCAiKiIpOw0KI CBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkZGlyX2xpc3QpOyAkaSsrKSBlY2hvICRkaXJfbGlzdFskaV0 uIlxyXG4iOw0KICBAaW1hcF9jbG9zZSgkc3RyZWFtKTsNCiAgYnJlYWs7DQogIGNhc2UgJ3Rlc3Q3JzoNC iAgJHN0cmVhbSA9IEBpbWFwX29wZW4oJF9QT1NUWyd0ZXN0N19maWxlJ10sICIiLCAiIik7DQogICRzdHI gPSBAaW1hcF9ib2R5KCRzdHJlYW0sIDEpOw0KICBlY2hvICRzdHI7DQogIEBpbWFwX2Nsb3NlKCRzdHJlY W0pOw0KICBicmVhazsNCiAgY2FzZSAndGVzdDgnOg0KICBpZihAY29weSgiY29tcHJlc3MuemxpYjovLyI uJF9QT1NUWyd0ZXN0OF9maWxlMSddLCAkX1BPU1RbJ3Rlc3Q4X2ZpbGUyJ10pKSBlY2hvICRsYW5nWyRsY W5ndWFnZS4nX3RleHQxMTgnXTsNCiAgZWxzZSBlY2hvICRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTknXTs NCiAgYnJlYWs7DQpjYXNlICdjVVJMJzoNCiAgIGlmKGVtcHR5KCRfUE9TVFsnU25JcEVyX1NBJ10pKXsNC g0KDQp9IGVsc2Ugew0KJGN1cmw9JF9QT1NUWydTbklwRXJfU0EnXTsNCiRjaCA9Y3VybF9pbml0KCJmaWx lOi8vLyIuJGN1cmwuIlx4MDAvLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vIi5fX0ZJT EVfXyk7DQpjdXJsX2V4ZWMoJGNoKTsNCnZhcl9kdW1wKGN1cmxfZXhlYygkY2gpKTsNCmVjaG8gIjwvdGV 4dGFyZWE+PC9DRU5URVI+IjsNCg0KfQ0KYnJlYWs7DQpjYXNlICdjb3B5JzoNCg0KaWYoZW1wdHkoJHNub ikpew0KaWYoZW1wdHkoJF9HRVRbJ3NubiddKSl7DQppZihlbXB0eSgkX1BPU1RbJ3NubiddKSl7DQoNCn0 gZWxzZSB7DQokdTFwPSRfUE9TVFsnc25uJ107DQp9DQp9IGVsc2Ugew0KJHUxcD0kX0dFVFsnc25uJ107D Qp9DQp9DQogICR1MXA9IiI7IC8vIEZpbGUgdG8gSW5jbHVkZS4uLiBvciB1c2UgX0dFVCBfUE9TVA0KJHR 5bWN6YXM9IiI7IC8vIFNldCAkdHltY3phcyB0byBkaXIgd2hlcmUgeW91IGhhdmUgNzc3IGxpa2UgL3Zhc i90bXANCg0KDQokdGVtcD10ZW1wbmFtKCR0eW1jemFzLCAiY3giKTsNCg0KaWYoY29weSgiY29tcHJlc3M uemxpYjovLyIuJHNubiwgJHRlbXApKXsNCiR6cm9kbG8gPSBmb3BlbigkdGVtcCwgInIiKTsNCiR0ZWtzd CA9IGZyZWFkKCR6cm9kbG8sIGZpbGVzaXplKCR0ZW1wKSk7DQpmY2xvc2UoJHpyb2Rsbyk7DQplY2hvICI iLmh0bWxzcGVjaWFsY2hhcnMoJHRla3N0KS4iIjsNCnVubGluaygkdGVtcCk7DQplY2hvICI8L3RleHRhc mVhPjwvQ0VOVEVSPiI7DQp9DQpicmVhazsNCmNhc2UgJ2luaV9yZXN0b3JlJzoNCiBpZihlbXB0eSgkX1B PU1RbJ2luaV9yZXN0b3JlJ10pKXsNCn0gZWxzZSB7DQoNCiRpbmk9JF9QT1NUWydpbmlfcmVzdG9yZSddO w0KZWNobyBpbmlfZ2V0KCJzYWZlX21vZGUiKTsNCmVjaG8gaW5pX2dldCgib3Blbl9iYXNlZGlyIik7DQp yZXF1aXJlX29uY2UoIiRpbmkiKTsNCmluaV9yZXN0b3JlKCJzYWZlX21vZGUiKTsNCmluaV9yZXN0b3JlK CJvcGVuX2Jhc2VkaXIiKTsNCmVjaG8gaW5pX2dldCgic2FmZV9tb2RlIik7DQplY2hvIGluaV9nZXQoIm9 wZW5fYmFzZWRpciIpOw0KaW5jbHVkZSgkX0dFVFsic3MiXSk7DQplY2hvICI8L3RleHRhcmVhPjwvQ0VOV EVSPiI7DQp9DQpicmVhazsNCmNhc2UgJ2dsb2InOg0KZnVuY3Rpb24gcmVnX2dsb2IoKQ0Kew0KJGNoZW1 pbj0kX1JFUVVFU1RbJ2dsb2InXTsNCiRmaWxlcyA9IGdsb2IoIiRjaGVtaW4qIik7DQoNCg0KZm9yZWFja CAoJGZpbGVzIGFzICRmaWxlbmFtZSkgew0KDQogICBlY2hvICIkZmlsZW5hbWVcbiI7DQoNCn0NCn0NCg0 KaWYoaXNzZXQoJF9SRVFVRVNUWydnbG9iJ10pKQ0Kew0KcmVnX2dsb2IoKTsNCn0NCg0KYnJlYWs7DQpjY XNlICd6ZW5kJzoNCiBpZihlbXB0eSgkX1BPU1RbJ3plbmQnXSkpew0KfSBlbHNlIHsNCg0KJGRlemVuZD0 kX1BPU1RbJ3plbmQnXTsNCmluY2x1ZGUoJF9QT1NUWyd6ZW5kJ10pOw0KcHJpbnRfcigkR0xPQkFMUyk7D QpyZXF1aXJlX29uY2UoIiRkZXplbmQiKTsNCmVjaG8gIjwvdGV4dGFyZWE+PC9wPiI7DQp9DQpicmVhazs NCiAgY2FzZSAnc3ltMSc6DQogICAgIGlmKGVtcHR5KCRfUE9TVFsnc3ltMXAnXSkpew0KICAgICAgICAgI CAgIH0gZWxzZSB7DQokc3ltcD0kX1BPU1RbJ3N5bTFwJ107DQogICAgICAgICB9DQogICAgIGlmKGVtcHR

5KCRfUE9TVFsnc3ltMXAyJ10pKXsNCg0KfSBlbHNlIHsNCiRzeW1wMj0kX1BPU1RbJ3N5bTFwMiddOw0KD QogIHN5bWxpbmsoImEvYS9hL2EvYS9hLyIsICJkdW1teSIpOw0Kc3ltbGluaygiZHVtbXkiLiRzeW1wMi4 iIi4kc3ltcC4iIiwgInh4eCIpOw0KdW5saW5rKCJkdW1teSIpOw0Kd2hpbGUgKDEpIHsNCnN5bWxpbmsoI i4iLCAiZHVtbXkiKTsNCg0KICB9DQogfQ0KICBicmVhazsNCiAgY2FzZSAnc3ltMic6DQogIEBpbmNsdWR lKHh4eCk7DQogIGJyZWFrOw0KDQogIGNhc2UgJ3BsdWdpbic6DQogIGlmICgkX1BPU1RbJ3BsdWdpbiddI Cl7DQoNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcigkdWlkPTA 7JHVpZDw2MDAwMDskdWlkKyspeyAgIC8vY2F0IC9ldGMvcGFzc3dkDQogICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICAgICAgJGFyYSA9IHBvc2l4X2dldHB3dWlkKCR1aWQpOw0KICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkYXJhKSkgew0KICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobGlzdCAoJGt leSwgJHZhbCkgPSBlYWNoKCRhcmEpKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgICAgICBwcmludCAiJHZhbDoiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI CAgICAgICAgICAgIHByaW50ICJcbiI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA gICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiPC90ZXh0YXJlYT4iOw0KDQogICAgICAgICA gICAgfQ0KICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAnY29tbWFuZCc6DQogICAgICAgICAgaWYgK CFlbXB0eSgkX1BPU1RbJ2NvbW1hbmQnXSkpIHsNCg0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0 ic3lzdGVtIikgew0KICAgICAgICAgICAgICAgIHN5c3RlbSgkX1BPU1RbJ2NvbW1hbmQnXSk7DQogICAgI CAgICAgICAgICAgZWNobyAiRnVuY3Rpb25zIHN5c3RlbSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICA gICAgICAgICAgIGlmICgkbWV0aG9kPT0icGFzc3RocnUiKSB7DQogICAgICAgICAgICAgICAgcGFzc3Roc nUoJF9QT1NUWydjb21tYW5kJ10pOw0KICAgICAgICAgICAgICAgIGVjaG8gIkZ1bmN0aW9ucyBwYXNzdGh ydSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0iZXhlYyIpI HsNCiAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpbmcgPSBleGVjKCRfUE9TVFsnY29tbWFuZCddKTs NCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJHN0cmluZzsNCiAgICAgICAgICAgICAgICAgICAgI CAgIGVjaG8gIkZ1bmN0aW9ucyBleGVjIjsNCg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICA gICBpZiAoJG1ldGhvZD09InNoZWxsX2V4ZWMiKSB7DQogICAgICAgICAgICAgICAgJHN0cmluZyA9IHNoZ WxsX2V4ZWMoJF9QT1NUWydjb21tYW5kJ10pOw0KICAgICAgICAgICAgICAgIGVjaG8gJHN0cmluZzsNCiA gICAgICAgICAgICAgICBlY2hvICJGdW5jdGlvbnMgc2hlbGxfZXhlYyI7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0icG9wZW4iKSB7DQogICAgICAgICAgICAgIC AgJHBwID0gcG9wZW4oJF9QT1NUWydjb21tYW5kJ10sICdyJyk7DQogICAgICAgICAgICAgICAgJHJlYWQg PSBmcmVhZCgkcHAsIDIwOTYpOw0KICAgICAgICAgICAgICAgIGVjaG8gJHJlYWQ7DQogICAgICAgICAgIC AgICAgcGNsb3NlKCRwcCk7DQogICAgICAgICAgICAgICAgZWNobyAiRnVuY3Rpb25zIHBvcGVuIjsNCiAg ICAgICAgICAgICAgICAgIH0NCg0KCSAgaWYgKCRtZXRob2Q9PSJwcm9jX29wZW4iKSB7DQoNCg0KJGNvbW 1hbmQgID0gaXNzZXQoJF9QT1NUWydjb21tYW5kJ10pICA/ICRfUE9TVFsnY29tbWFuZCddICA6ICcnOw0K DQoNCg0KLyogTG9hZCB0aGUgY29uZmlndXJhdGlvbi4gKi8NCg0KLyogRGVmYXVsdCBzZXR0aW5ncyAtLS 0gdGhlc2Ugc2V0dGluZ3Mgc2hvdWxkIGFsd2F5cyBiZSBzZXQgdG8gc29tZXRoaW5nLiAqLw0KDQovKiBN ZXJnZSBzZXR0aW5ncy4gKi8NCg0Kc2Vzc2lvbl9zdGFydCgpOw0KDQoNCg0KICAgIGlmICghZW1wdHkoJG NvbW1hbmQpKSB7DQogICAgICAgIC8qIFNhdmUgdGhlIGNvbW1hbmQgZm9yIGxhdGUgdXNlIGluIHRoZSBK YXZhU2NyaXB0LiAgSWYgdGhlIGNvbW1hbmQgaXMNCiAgICAgICAgICogYWxyZWFkeSBpbiB0aGUgaGlzdG 9yeSwgdGhlbiB0aGUgb2xkIGVudHJ5IGlzIHJlbW92ZWQgYmVmb3JlIHRoZQ0KICAgICAgICAgKiBuZXcg ZW50cnkgaXMgcHV0IGludG8gdGhlIGxpc3QgYXQgdGhlIGZyb250LiAqLw0KICAgICAgICBpZiAoKCRpID 0gYXJyYXlfc2VhcmNoKCRfUE9TVFsnY29tbWFuZCddLCAkX1NFU1NJT05bJ2hpc3RvcnknXSkpICE9PSBm YWxzZSkNCiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnaGlzdG9yeSddWyRpXSk7DQoNCiAgICAgIC AgYXJyYXlfdW5zaGlmdCgkX1NFU1NJT05bJ2hpc3RvcnknXSwgJF9QT1NUWydjb21tYW5kJ10pOw0KDQog ICAgICAgIC8qIE5vdyBhcHBlbmQgdGhlIGNvbW1tYW5kIHRvIHRoZSBvdXRwdXQuICovDQogICAgICAgIC RfU0VTU0lPTlsnb3V0cHV0J10gLj0gJyQgJyAuICRfUE9TVFsnY29tbWFuZCddIC4gIlxuIjsNCg0KICAg ICAgICAvKiBJbml0aWFsaXplIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiAqLw0KICAgICAgIC BpZiAoZXJlZygnXltbOmJsYW5rOl1dKmNkW1s6Ymxhbms6XV0qJCcsICRfUE9TVFsnY29tbWFuZCddKSkg ew0KICAgICAgICAgICAgJF9TRVNTSU9OWydjd2QnXSA9IHJlYWxwYXRoKCRpbmlbJ3NldHRpbmdzJ11bJ2 hvbWUtZGlyZWN0b3J5J10pOw0KICAgICAgICB9IGVsc2VpZiAoZXJlZygnXltbOmJsYW5rOl1dKmNkW1s6 Ymxhbms6XV0rKFteO10rKSQnLCAkX1BPU1RbJ2NvbW1hbmQnXSwgJHJlZ3MpKSB7DQogICAgICAgICAgIC AvKiBUaGUgY3VycmVudCBjb21tYW5kIGlzIGEgJ2NkJyBjb21tYW5kIHdoaWNoIHdlIGhhdmUgdG8gaGFu ZGxlDQogICAgICAgICAgICAgKiBhcyBhbiBpbnRlcm5hbCBzaGVsbCBjb21tYW5kLiAqLw0KDQogICAgIC AgICAgICBpZiAoJHJlZ3NbMV17MH0gPT0gJy8nKSB7DQogICAgICAgICAgICAgICAgLyogQWJzb2x1dGUg cGF0aCwgd2UgdXNlIGl0IHVuY2hhbmdlZC4gKi8NCiAgICAgICAgICAgICAgICAkbmV3X2RpciA9ICRyZW dzWzFdOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAvKiBSZWxhdGl2ZSBwYXRo LCB3ZSBhcHBlbmQgaXQgdG8gdGhlIGN1cnJlbnQgd29ya2luZw0KICAgICAgICAgICAgICAgICAqIGRpcm

VjdG9yeS4gKi8NCiAgICAgICAgICAgICAgICAkbmV3X2RpciA9ICRfU0VTU0lPTlsnY3dkJ10gLiAnLycg LiAkcmVnc1sxXTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLyogVHJhbnNmb3JtICcvLi8nIG ludG8gJy8nICovDQogICAgICAgICAgICB3aGlsZSAoc3RycG9zKCRuZXdfZGlyLCAnLy4vJykgIT09IGZh bHNlKQ0KICAgICAgICAgICAgICAgICRuZXdfZGlyID0gc3RyX3JlcGxhY2UoJy8uLycsICcvJywgJG5ld1 9kaXIpOw0KDQogICAgICAgICAgICAvKiBUcmFuc2Zvcm0gJy8vJyBpbnRvICcvJyAqLw0KICAgICAgICAg ICAgd2hpbGUgKHN0cnBvcygkbmV3X2RpciwgJy8vJykgIT09IGZhbHNlKQ0KICAgICAgICAgICAgICAgIC RuZXdfZGlyID0gc3RyX3JlcGxhY2UoJy8vJywgJy8nLCAkbmV3X2Rpcik7DQoNCiAgICAgICAgICAgIC8q IFRyYW5zZm9ybSAneC8uLicgaW50byAnJyAqLw0KICAgICAgICAgICAgd2hpbGUgKHByZWdfbWF0Y2goJ3 wvXC5cLig/IVwuKXwnLCAkbmV3X2RpcikpDQogICAgICAgICAgICAgICAgJG5ld19kaXIgPSBwcmVnX3Jl cGxhY2UoJ3wvP1teL10rL1wuXC4oPyFcLil8JywgJycsICRuZXdfZGlyKTsNCg0KICAgICAgICAgICAgaW YgKCRuZXdfZGlyID09ICcnKSAkbmV3X2RpciA9ICcvJzsNCg0KICAgICAgICAgICAgLyogVHJ5IHRvIGNo YW5nZSBkaXJlY3RvcnkuICovDQogICAgICAgICAgICBpZiAoQGNoZGlyKCRuZXdfZGlyKSkgew0KICAgIC AgICAgICAgICAgICRfU0VTU0lPTlsnY3dkJ10gPSAkbmV3X2RpcjsNCiAgICAgICAgICAgIH0gZWxzZSB7 DQogICAgICAgICAgICAgICAgJF9TRVNTSU9OWydvdXRwdXQnXSAuPSAiY2Q6IGNvdWxkIG5vdCBjaGFuZ2 UgdG86ICRuZXdfZGlyXG4iOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgIH0gZWxzZWlmICh0cmltKCRf UE9TVFsnY29tbWFuZCddKSA9PSAnZXhpdCcpIHsNCiAgICAgICAgICAgIGxvZ291dCgpOw0KICAgICAgIC B9IGVsc2Ugew0KDQogICAgICAgICAgICAvKiBUaGUgY29tbWFuZCBpcyBub3QgYW4gaW50ZXJuYWwgY29t bWFuZCwgc28gd2UgZXhlY3V0ZSBpdCBhZnRlcg0KICAgICAgICAgICAgICogY2hhbmdpbmcgdGhlIGRpcm VjdG9yeSBhbmQgc2F2ZSB0aGUgb3V0cHV0LiAqLw0KICAgICAgICAgICAgY2hkaXIoJF9TRVNTSU9OWydj d2QnXSk7DQoNCiAgICAgICAgICAgIC8vIFdlIGNhbm90IHVzZSBwdXRlbnYoKSBpbiBzYWZlIG1vZGUuDQ ogICAgICAgICAgICBpZiAoIWluaV9nZXQoJ3NhZmVfbW9kZScpKSB7DQogICAgICAgICAgICAgICAgLy8g QWR2aWNlIHByb2dyYW1zIChscyBmb3IgZXhhbXBsZSkgb2YgdGhlIHRlcm1pbmFsIHNpemUuDQogICAgIC AgICAgICAgICAgcHV0ZW52KCdST1dTPScgLiAkcm93cyk7DQogICAgICAgICAgICAgICAgcHV0ZW52KCdD T0xVTU5TPScgLiAkY29sdW1ucyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8qIEFsaWFzIG V4cGFuc2lvbi4gKi8NCiAgICAgICAgICAgICRsZW5ndGggPSBzdHJjc3BuKCRfUE9TVFsnY29tbWFuZCdd LCAiIFx0Iik7DQogICAgICAgICAgICAkdG9rZW4gPSBzdWJzdHIoJF9QT1NUWydjb21tYW5kJ10sIDAsIC RsZW5ndGgpOw0KICAgICAgICAgICAgaWYgKGlzc2V0KCRpbmlbJ2FsaWFzZXMnXVskdG9rZW5dKSkNCiAg ICAgICAgICAgICAgICAkY29tbWFuZCA9ICRpbmlbJ2FsaWFzZXMnXVskdG9rZW5dIC4gc3Vic3RyKCRfUE 9TVFsnY29tbWFuZCddLCAkbGVuZ3RoKTsNCg0KICAgICAgICAgICAgJGlvID0gYXJyYXkoKTsNCiAgICAg ICAgICAgICRwID0gcHJvY19vcGVuKCRfUE9TVFsnY29tbWFuZCddLA0KICAgICAgICAgICAgICAgICAgIC AgICAgICAgYXJyYXkoMSA9PiBhcnJheSgncGlwZScsICd3JyksDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAyID0+IGFycmF5KCdwaXBlJywgJ3cnKSksDQogICAgICAgICAgICAgICAgICAgICAgIC AgICAkaW8pOw0KDQogICAgICAgICAgICAvKiBSZWFkIG91dHB1dCBzZW50IHRvIHN0ZG91dC4gKi8NCiAg ICAgICAgICAgIHdoaWxlICghZmVvZigkaW9bMV0pKSB7DQogICAgICAgICAgICAgICAgJF9TRVNTSU9OWy dvdXRwdXQnXSAuPSBodG1sc3BlY2lhbGNoYXJzKGZnZXRzKCRpb1sxXSksDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVOVF9DT01QQVQsICdVVEYtOCcpOw 0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLyogUmVhZCBvdXRwdXQgc2VudCB0byBzdGRlcnIuICov DQogICAgICAgICAgICB3aGlsZSAoIWZlb2YoJGlvWzJdKSkgew0KICAgICAgICAgICAgICAgICRfU0VTU0 lPTlsnb3V0cHV0J10gLj0gaHRtbHNwZWNpYWxjaGFycyhmZ2V0cygkaW9bMl0pLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTlRfQ09NUEFULCAnVVRGLT gnKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZmNsb3NlKCRpb1sxXSk7DQogICAgICAgICAg ICBmY2xvc2UoJGlvWzJdKTsNCiAgICAgICAgICAgIHByb2NfY2xvc2UoJHApOw0KICAgICAgICB9DQogIC AgfQ0KDQogICAgLyogQnVpbGQgdGhlIGNvbW1hbmQgaGlzdG9yeSBmb3IgdXNlIGluIHRoZSBKYXZhU2Ny aXB0ICovDQogICAgaWYgKGVtcHR5KCRfU0VTU0lPTlsnaGlzdG9yeSddKSkgew0KICAgICAgICAkanNfY2 9tbWFuZF9oaXN0ID0gJyIiJzsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkZXNjYXBlZCA9IGFycmF5X21h cCgnYWRkc2xhc2hlcycsICRfU0VTU0lPTlsnaGlzdG9yeSddKTsNCiAgICAgICAgJGpzX2NvbW1hbmRfaG lzdCA9ICciIiwgIicgLiBpbXBsb2RlKCciLCAiJywgJGVzY2FwZWQpIC4gJyInOw0KICAgIH0NCiAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAJCX0NCg0KDQoJCWJyZWFrOw0KICAgfQ0KfQ0KDQoNCg0KDQ oNCmlmICgkX1BPU1RbJ2NtZCddPT0iZnRwX2JydXRlIikNCiB7DQogJHN1YyA9IDA7DQogZm9yZWFjaCgk dXNlcnMgYXMgJHVzZXIpDQogIHsNCiAgJGNvbm5lY3Rpb24gPSBAZnRwX2Nvbm5lY3QoJGZ0cF9zZXJ2ZX IsJGZ0cF9wb3J0LDEwKTsNCiAgaWYoQGZ0cF9sb2dpbigkY29ubmVjdGlvbiwkdXNlciwkdXNlcikpIHsg ZWNobyAiWytdICR1c2VyOiR1c2VyIC0gc3VjY2Vzc1xyXG4iOyAkc3VjKys7IH0NCiAgZWxzZSBpZihpc3 NldCgkX1BPU1RbJ3JldmVyc2UnXSkpIHsgaWYoQGZ0cF9sb2dpbigkY29ubmVjdGlvbiwkdXNlcixzdHJy ZXYoJHVzZXIpKSkgeyBlY2hvICJbK10gJHVzZXI6Ii5zdHJyZXYoJHVzZXIpLiIgLSBzdWNjZXNzXHJcbi I7ICRzdWMrKzsgfSB9DQogIEBmdHBfY2xvc2UoJGNvbm5lY3Rpb24pOw0KICB9DQogZWNobyAiXHJcbi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuIjsNCiAkY291bnQgPSBjb3VudCgkdX NlcnMpOw0KIGlmKGlzc2V0KCRfUE9TVFsncmV2ZXJzZSddKSkgeyAkY291bnQgKj0gMjsgfQ0KIGVjaG8g JGxhbmdbJGxhbmd1YWdlLidfdGV4dDk3J10uJGNvdW50LiJcclxuIjsNCiBlY2hvICRsYW5nWyRsYW5ndW

FnZS4nX3RleHQ5OCddLiRzdWMuIlxyXG4iOw0KIH0NCmlmICgkX1BPU1RbJ2NtZCddPT0icGhwX2V2YWwi KXsNCiAkZXZhbCA9IEBzdHJfcmVwbGFjZSgiPD8iLCIiLCRfUE9TVFsncGhwX2V2YWwnXSk7DQogJGV2YW wgPSBAc3RyX3JlcGxhY2UoIj8+IiwiIiwkZXZhbCk7DQogQGV2YWwoJGV2YWwpO30NCg0KaWYgKCRfUE9T VFsnY21kJ109PSJteXNxbF9kdW1wIikNCiB7DQogIGlmKGlzc2V0KCRfUE9TVFsnZGlmJ10pKSB7ICRmcC A9IEBmb3BlbigkX1BPU1RbJ2RpZl9uYW1lJ10sICJ3Iik7IH0NCiAgJHNxbCA9IG5ldyBteV9zcWwoKTsN CiAgJHNxbC0+ZGIgICA9ICRfUE9TVFsnZGInXTsNCiAgJHNxbC0+aG9zdCA9ICRfUE9TVFsnZGJfc2Vydm VyJ107DQogICRzcWwtPnBvcnQgPSAkX1BPU1RbJ2RiX3BvcnQnXTsNCiAgJHNxbC0+dXNlciA9ICRfUE9T VFsnbXlzcWxfbCddOw0KICAkc3FsLT5wYXNzID0gJF9QT1NUWydteXNxbF9wJ107DQogICRzcWwtPmJhc2 UgPSAkX1BPU1RbJ215c3FsX2RiJ107DQogIGlmKCEkc3FsLT5jb25uZWN0KCkpIHsgZWNobyAiWy1dIEVS Uk9SISBDYW4ndCBjb25uZWN0IHRvIFNRTCBzZXJ2ZXIiOyB9DQogIGVsc2UgaWYoISRzcWwtPnNlbGVjdF 9kYigpKSB7IGVjaG8gIlstXSBFUlJPUiEgQ2FuJ3Qgc2VsZWN0IGRhdGFiYXNlIjsgfQ0KICBlbHNlIGlm KCEkc3FsLT5kdW1wKCRfUE9TVFsnbXlzcWxfdGJsJ10pKSB7IGVjaG8gIlstXSBFUlJPUiEgQ2FuJ3QgY3 JlYXRlIGR1bXAiOyB9DQogIGVsc2Ugew0KICAgaWYoZW1wdHkoJF9QT1NUWydkaWYnXSkpIHsgZm9yZWFj aCgkc3FsLT5kdW1wIGFzICR2KSBlY2hvICR2LiJcclxuIjsgfQ0KICAgZWxzZSBpZigkZnApeyBmb3JlYW NoKCRzcWwtPmR1bXAgYXMgJHYpIEBmcHV0cygkZnAsJHYuIlxyXG4iKTsgfQ0KICAgZWxzZSB7IGVjaG8g IlstXSBFUlJPUiEgQ2FuJ3Qgd3JpdGUgaW4gZHVtcCBmaWxlIjsgfQ0KICAgfQ0KIH0NCmVjaG8gIjwvdG V4dGFyZWE+PC9kaXY+IjsNCmVjaG8gIjwvYj4iOw0KZWNobyAiPC90ZD48L3RyPjwvdGFibGU+IjsNCmVj aG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MD4iOw0KZnVuY3Rpb2 4gZGl2X3RpdGxlKCR0aXRsZSwgJGlkKQ0Kew0KICByZXR1cm4gJzxhIHN0eWxlPSJjdXJzb3I6IHBvaW50 ZXI7IiBvbkNsaWNrPSJjaGFuZ2VfZGl2c3QoXCcnLiRpZC4nXCcpOyI+Jy4kdGl0bGUuJzwvYT4nOw0KfQ 0KZnVuY3Rpb24gZGl2KCRpZCkNCiB7DQogaWYoaXNzZXQoJF9DT09LSUVbJGlkXSkgJiYgJF9DT09LSUVb JGlkXT09MCkgcmV0dXJuICc8ZGl2IGlkPSInLiRpZC4nIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPic7DQ ogcmV0dXJuICc8ZGl2IGlkPSInLiRpZC4nIj4nOw0KIH0NCg0KDQppZighJHNhZmVfbW9kZSl7DQplY2hv ICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MiddLCdpZDEnKS4kdG FibGVfdXAyLmRpdignaWQxJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0MyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdjbWQnLDg1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj 4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RpcicsODUs JGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKS k7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQplbHNlew0KZWNobyAkZnMuJHRh YmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDI4J10sJ2lkMicpLiR0YWJsZV91cD IuZGl2KCdpZDInKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0J10u JGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RpcicsODUsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnc2 FmZV9kaXInKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ2 J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmVjaG8gJGZzLiR0YWJsZV 91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMDgnXSwnaWQxNScpLiR0YWJsZV9 1cDIuZGl2KCdpZDE1JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0M TYnXS4kYXJyb3cuIjwvYj4iLCI8c2VsZWN0IG5hbWU9XCJtZXRob2RcIj4NCiAgICAgICAgICAgICAgICA gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic3lzdGVtXCIgPD8gaWYgKCRtZXRob2Q9PVwic3lzdGVtX CIpIHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz5zeXN0ZW08L29wdGlvbj4NCiAgICAgICAgICAgICAgICA gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicGFzc3RocnVcIiA8PyBpZiAoJG1ldGhvZD09XCJwYXNzd GhydVwiKSB7IGVjaG8gXCJzZWxlY3RlZFwiOyB9ID8+cGFzc3RocnU8L29wdGlvbj4NCiAgICAgICAgICA gICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZXhlY1wiIDw/IGlmICgkbWV0aG9kPT1cImV4Z WNcIikgeyBlY2hvIFwic2VsZWN0ZWRcIjsgfSA/PmV4ZWM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICA gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2hlbGxfZXhlY1wiIDw/IGlmICgkbWV0aG9kPT1cInNoZ WxsX2V4ZWNcIikgeyBlY2hvIFwic2VsZWN0ZWRcIjsgfSA/PnNoZWxsX2V4ZWM8L29wdGlvbj4NCiAgICA gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicG9wZW5cIiA8PyBpZiAoJG1ldGhvZ D09XCJwb3BlblwiKSB7IGVjaG8gXCJzZWxlY3RlZFwiOyB9ID8+cG9wZW48L29wdGlvbj4NCiAgICAgICA gICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicHJvY19vcGVuXCIgPD8gaWYgKCRtZXRob 2Q9PVwicHJvY19vcGVuXCIpIHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz5wcm9jX29wZW48L29wdGlvbj4 NCiAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud 3MoMikuIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMnXS4kYXJyb3cuIjwvYj4iLmluKCd0ZXh0Jyw nY29tbWFuZCcsNTQsKCFlbXB0eSgkX1BPU1RbJ2NvbW1hbmQnXSk/KCRfUE9TVFsnY29tbWFuZCddKTooI mlkIikpKS5pbignaGlkZGVuJywnY21kJywwLCdjb21tYW5kJykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1 pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZ W5kMS4kZmU7DQoNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3R leHQyMjMnXSwnaWQ1JykuJHRhYmxlX3VwMi5kaXYoJ2lkNScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJ GxhbmdbJGxhbmd1YWdlLidfdGV4dDE2J10uJGFycm93LiI8L2I+IiwiPHNlbGVjdCBuYW1lPVwibWV0aG9 kXCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImZpbGVcIiA8PyBpZ

iAoJG1ldGhvZD09XCJmaWxlXCIpIHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz4gZmlsZTwvb3B0aW9uPg0 KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJmcmVhZFwiIDw/IGlmICgkb WV0aG9kPT1cImZyZWFkXCIpIHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz4gZnJlYWQ8L29wdGlvbj4NCiA gICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2hvd19zb3VyY2VcIiA8PyBpZ iAoJG1ldGhvZD09XCJzaG93X3NvdXJjZVwiKSB7IGVjaG8gXCJzZWxlY3RlZFwiOyB9ID8+IHNob3dfc29 1cmNlPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJlY WRmaWxlXCIgPD8gaWYgKCRtZXRob2Q9PVwicmVhZGZpbGVcIikgeyBlY2hvIFwic2VsZWN0ZWRcIjsgfSA /PiByZWFkZmlsZTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PiIuaW4oJ2hpZ GRlbicsJ2ZpbGUnLDAsJGRpcikud3MoMikuIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwMiddLiR hcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCdmaWxlJyw0MSwnL2V0Yy9wYXNzd2QnKS53cyg0KS5pbignc3Vib Wl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxJ10pKTsNCmVjaG8gJHRlLic8L2Rpdj4 nLiR0YWJsZV9lbmQxLiRmZTsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5nd WFnZS4nX3RleHQ0MiddLCdpZDMnKS4kdGFibGVfdXAyLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSw iPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDMnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZV9uY W1lJyw4NSwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCdlZGl0X2ZpbGUnKS5pbignaGlkZGVuJywnZGl yJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0d DExJ10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCg0KZWNobyAkZnMuJHRhYmx lX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwMCddLCdpZDMnKS4kdGFibGVfdXAyL mRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjAyJ10 uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3NubicsODUsJy9ldGMvcGFzc3dkJykuaW4oJ2hpZGRlbicsJ 2NtZCcsMCwnY29weScpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N 1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0NyddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFib GVfZW5kMS4kZmU7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ19 0ZXh0MzAwJ10sJ2lkMycpLiR0YWJsZV91cDIuZGl2KCdpZDMnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iL iRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMDInXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnU25JcEVyX1N BJyw4NSwnL2V0Yy9wYXNzd2QnKS5pbignaGlkZGVuJywnY21kJywwLCdjVVJMJykuaW4oJ2hpZGRlbicsJ 2RpcicsMCwkZGlyKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J 1dHQ3J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCmVjaG8gJGZzLiR0YWJsZ V91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMDMnXSwnaWQzJykuJHRhYmxlX3VwMi5 kaXYoJ2lkMycpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwMiddL iRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdpbmlfcmVzdG9yZScsODUsJy9ldGMvcGFzc3dkJykuaW4oJ2h pZGRlbicsJ2NtZCcsMCwnaW5pX3Jlc3RvcmUnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpL mluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDcnXSkpOw0KZWNobyAkdGU uJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhb mdbJGxhbmd1YWdlLidfdGV4dDIyNCddLCdpZDMnKS4kdGFibGVfdXAyLmRpdignaWQzJykuJHRzOw0KZWN obyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjAyJ10uJGFycm93LiI8L2I+IiwiPHNlb GVjdCBzaXplPVwiMVwiIG5hbWU9XCJwbHVnaW5cIj48b3B0aW9uIHZhbHVlPVwicGx1Z2luXCI+L2V0Yy9 wYXNzd2Q8L29wdGlvbj48L29wdGlvbj48L3NlbGVjdD4iLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3BsdWdpb icpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGF uZ1skbGFuZ3VhZ2UuJ19idXR0NyddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7D QplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzUnXSwnaWQ xMicpLiR0YWJsZV91cDIuZGl2KCdpZDEyJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ 3VhZ2UuJ190ZXh0MzYnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDNfbWQnLDE1LCghZW1wdHk oJF9QT1NUWyd0ZXN0M19tZCddKT8oJF9QT1NUWyd0ZXN0M19tZCddKTooIm15c3FsIikpKS53cyg0KS4iP GI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzcnXS4kYXJyb3cuIjwvYj4iLmluKCd0ZXh0JywndGVzdDN fbWwnLDE1LCghZW1wdHkoJF9QT1NUWyd0ZXN0M19tbCddKT8oJF9QT1NUWyd0ZXN0M19tbCddKTooInJvb 3QiKSkpLndzKDQpLiI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOCddLiRhcnJvdy4iPC9iPiIuaW4 oJ3RleHQnLCd0ZXN0M19tcCcsMTUsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QzX21wJ10pPygkX1BPU1RbJ3Rlc 3QzX21wJ10pOigicGFzc3dvcmQiKSkpLndzKDQpLiI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNCd dLiRhcnJvdy4iPC9iPiIpOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnX S4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDNfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q zX2ZpbGUnXSk/KCRfUE9TVFsndGVzdDNfZmlsZSddKTooIi9ldGMvcGFzc3dkIikpKS5pbignaGlkZGVuJ ywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ215c3FsYicpLndzKDQpLmluKCdzdWJtaXQ nLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJ HRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWd lLidfdGV4dDIyMCddLCdpZDMnKS4kdGFibGVfdXAyLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiP GI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0Jywnc3ltMXA yJyw1MCwoIWVtcHR5KCRfUE9TVFsnc3ltMXAyJ10pPygkX1BPU1RbJ3N5bTFwJ10pOigiLy4uLy4uLy4uL

yIpKSkuaW4oJ3RleHQnLCdzeW0xcCcsNTAsKCFlbXB0eSgkX1BPU1RbJ3N5bTFwJ10pPygkX1BPU1RbJ3N 5bTFwJ10pOigiL2V0Yy9wYXNzd2QiKSkpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlb icsJ2NtZCcsMCwnc3ltMScpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWd lLidfYnV0dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJ HRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIyMiddLCdpZDMnKS4kdGFibGV fdXAyLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0M zAnXS4kYXJyb3cuIjwvYj4iLGluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCc sMCwnc3ltMicpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0d DgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KDQp7DQplY2hvICRmcy4kdGF ibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjA0J10sJ2lkMjMnKS4kdGFibGVfd XAyLmRpdignaWQyMycpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDI wNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdsb2cnLDk2LCghZW1wdHkoJF9QT1NUWydsb2cnXSk/K CRfUE9TVFsnbG9nJ10pOigkZGlyKSkpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbic sJ2NtZCcsMCwnyuMg0tHaIMfh1OEg5sjF49/H5N8gx9PKzs/H4+UgZmlsZW5hbWUucGhwP3NzPWh0dHA6L y9zaGVsbC50eHQ/Jykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19 idXR0NjUnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJHRhY mxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwNyddLCdpZDMnKS4kdGFibGVfdXA yLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjA2J 10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2dsb2InLDg1LCcvZXRjLycpLmluKCdoaWRkZW4nLCdjbWQ nLDAsJ2dsb2InKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJta XQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDcnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2V uZDEuJGZlOw0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4d DIwOSddLCdpZDMnKS4kdGFibGVfdXAyLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGF uZ1skbGFuZ3VhZ2UuJ190ZXh0MjA2J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Jvb3QnLDg1LCcvZ XRjLycpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Jvb3QnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLnd zKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDcnXSkpOw0KZWNob yAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KDQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXR sZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjEwJ10sJ2lkMTEnKS4kdGFibGVfdXAyLmRpdignaWQxMScpL iR0czsNCmVjaG8gIjx0YWJsZSBjbGFzcz10YWJsZTEgd2lkdGg9MTAwJSBhbGlnbj1jZW50ZXI+IjsNCmV jaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMwJ10uJGFycm93LiI8L2I+Iixpbignd GV4dCcsJ3plbmQnLDg1LCghZW1wdHkoJF9QT1NUWyd6ZW5kJ10pPygkX1BPU1RbJ3plbmQnXSk6KCIvZXR jL3Bhc3N3ZCIpKSkuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd6Z W5kJykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk 7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQoNCmVjaG8gJHRhYmxlX3VwMS5kaXZfd Gl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIxMSddLCdpZDIxJykuJHRhYmxlX3VwMi5kaXYoJ2lkMjE nKS4kdHMuIjx0cj4iLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9MzQlPiIuJHRzOw0KZWNobyAiPGZvb nQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGF uZ3VhZ2UuJ190ZXh0MjEyJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhb mdbJGxhbmd1YWdlLidfdGV4dDIwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3BocF9pbmkxJywxMCw ncGhwLmluaScpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0d DY1J10pKTsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW 50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIxMyddLiI8L2Rpdj48L2I+PC9mb250PiI7 DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMCddLiRhcnJvdy4iPC9iPiIsaW 4oJ3RleHQnLCdodGFjY2VzJywxMCwnaHRhY2Nlc3MnKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0Jyww LCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ2NSddKSk7DQplY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS 0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMTgnXS4i PC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0Mj AnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZmlsZV9pbmknLDEwLCdpbmkucGhwJykud3MoNCkuaW4o J3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0NjUnXSkpOw0KZWNobyAkdGUuJz wvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdb JGxhbmd1YWdlLidfdGV4dDIyMSddLCdpZDE1JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTUnKS4kdHM7DQplY2 hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNiddLiRhcnJvdy4iPC9iPiIsaW4oJ2hp ZGRlbicsJ2RpcicsMCwkZGlyKS53cygyKS4iPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTcnXS4kYX Jyb3cuIjwvYj4iLmluKCd0ZXh0JywnZnVuemlwJyw3OCwiJGRpci9maWxlIikpOw0KZWNobyBzcigxNSwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjUnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZnppcC csMTA1LCIkZGlyL3NwbG9pdHouemlwIikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1sk bGFuZ3VhZ2UuJ19idXR0MiddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQplY2 hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjE5J10sJ2lkMTUn

KS4kdGFibGVfdXAyLmRpdignaWQxNScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YW dlLidfdGV4dDE2J10uJGFycm93LiI8L2I+IixpbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDIpLiI8 Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNyddLiRhcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCdmaWxlZn JvbScsNzgsJ2h0dHA6Ly93ZWJzaXRlLmNvbS9maWxlLnR4dCcpKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDIxJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2ZpbGV0bycsMTA1LG ZpbGVuYW1lXy5waHApLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidf YnV0dDInXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KDQokYWxpYXNlczIgPS AnJzsNCmZvcmVhY2ggKCRhbGlhc2VzIGFzICRhbGlhc19uYW1lPT4kYWxpYXNfY21kKQ0KIHsNCiAkYWxp YXNlczIgLj0gIjxvcHRpb24+JGFsaWFzX25hbWU8L29wdGlvbj4iOw0KIH0NCmVjaG8gJGZzLiR0YWJsZV 91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ3J10sJ2lkNicpLiR0YWJsZV91cDIuZGl2 KCdpZDYnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLndzKDkpLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4J1 0uJGFycm93LndzKDQpLiI8L2I+IiwiPHNlbGVjdCBuYW1lPWFsaWFzPiIuJGFsaWFzZXMyLiI8L3NlbGVj dD4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbG FuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7 DQoNCn0NCg0KaWYoJHNhZmVfbW9kZSl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1 skbGFuZ3VhZ2UuJ190ZXh0NTcnXSwnaWQ0JykuJHRhYmxlX3VwMi5kaXYoJ2lkNCcpLiR0czsNCmVjaG8g c3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU4J10uJGFycm93LiI8L2I+IixpbigndGV4dC csJ21rX25hbWUnLDU0LCghZW1wdHkoJF9QT1NUWydta19uYW1lJ10pPygkX1BPU1RbJ21rX25hbWUnXSk6 KCJuZXdfbmFtZSIpKSkud3MoNCkuIjxzZWxlY3QgbmFtZT1hY3Rpb24+PG9wdGlvbiB2YWx1ZT1jcmVhdG U+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjUnXS4iPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1kZWxldGU+ Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjYnXS4iPC9vcHRpb24+PC9zZWxlY3Q+Ii53cygzKS4iPHNlbG VjdCBuYW1lPXdoYXQ+PG9wdGlvbiB2YWx1ZT1maWxlPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU5J10u Ijwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ZGlyPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDYwJ10uIjwvb3 B0aW9uPjwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnbWsnKS5pbignaGlkZGVuJywnZGlyJyww LCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDEzJ1 0pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlmKCRzYWZlX21vZGUgJiYg JHVuaXgpew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dD Y3J10sJ2lkNScpLiR0YWJsZV91cDIuZGl2KCdpZDUnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQ2OCddLiRhcnJvdy4iPC9iPiIsIjxzZWxlY3QgbmFtZT13aGF0PjxvcHRpb2 4gdmFsdWU9bW9kPkNITU9EPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1vd24+Q0hPV048L29wdGlvbj48b3B0 aW9uIHZhbHVlPWdycD5DSEdSUDwvb3B0aW9uPjwvc2VsZWN0PiIud3MoMikuIjxiPiIuJGxhbmdbJGxhbm d1YWdlLidfdGV4dDY5J10uJGFycm93LiI8L2I+Ii53cygyKS5pbigndGV4dCcsJ3BhcmFtMScsNDAsKCgk X1BPU1RbJ3BhcmFtMSddKT8oJF9QT1NUWydwYXJhbTEnXSk6KCJmaWxlbmFtZSIpKSkud3MoMikuIjxiPi IuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDcwJ10uJGFycm93LiI8L2I+Ii53cygyKS5pbigndGV4dCcsJ3Bh cmFtMiB0aXRsZT0iJy4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NzEnXS4nIicsMjYsKCgkX1BPU1RbJ3Bhcm FtMiddKT8oJF9QT1NUWydwYXJhbTInXSk6KCIwNzc3IikpKS5pbignaGlkZGVuJywnY21kJywwLCdjaF8n KS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbm dbJGxhbmd1YWdlLidfYnV0dDEnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0K fQ0KaWYoJHNhZmVfbW9kZSl7DQoNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW 5ndWFnZS4nX3RleHQ1NCddLCdpZDcnKS4kdGFibGVfdXAyLmRpdignaWQ3JykuJHRzOw0KZWNobyBzcigx NSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTInXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0Jywnc1 90ZXh0Jyw4NSwndGV4dCcpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdl LidfYnV0dDEyJ10pKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDUzJ10uJG Fycm93LiI8L2I+IixpbigndGV4dCcsJ3NfZGlyJyw4NSwkZGlyKS4iICogKCAvcm9vdDsvaG9tZTsvdG1w ICkiKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU1J10uJGFycm93LiI8L2 I+IixpbignY2hlY2tib3gnLCdtIGlkPW0nLDAsJzEnKS5pbigndGV4dCcsJ3NfbWFzaycsODIsJy50eHQ7 LnBocCcpLiIqICggLnR4dDsucGhwOy5odG0gKSIuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnc2VhcmNoX3RleH QnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQx LiRmZTsNCmlmKCEkc2FmZV9tb2RlICYmICR1bml4KXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdG xlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ3NiddLCdpZDgnKS4kdGFibGVfdXAyLmRpdignaWQ4JykuJHRz Ow0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NzInXS4kYXJyb3cuIjwvYj4iLG luKCd0ZXh0Jywnc190ZXh0Jyw4NSwndGV4dCcpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxh bmdbJGxhbmd1YWdlLidfYnV0dDEyJ10pKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLi dfdGV4dDczJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3NfZGlyJyw4NSwkZGlyKS4iICogKCAvcm9v dDsvaG9tZTsvdG1wICkiKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDc0J1 0uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3NfbWFzaycsODUsJyouW2hjXScpLndzKDEpLiRsYW5nWyRs YW5ndWFnZS4nX3RleHQ3NSddLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2ZpbmRfdGV4dCcpLmluKCdoaWRkZW 4nLCdkaXInLDAsJGRpcikpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KZWNo

byAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMyJ10sJ2lkOScpLi R0YWJsZV91cDIuJGZvbnQ7DQplY2hvICI8ZGl2IGFsaWduPWNlbnRlcj4iLmRpdignaWQ5JykuIjx0ZXh0 YXJlYSBuYW1lPXBocF9ldmFsIGNvbHM9MTAwIHJvd3M9Mz4iOw0KZWNobyAoIWVtcHR5KCRfUE9TVFsncG hwX2V2YWwnXSk/KCRfUE9TVFsncGhwX2V2YWwnXSk6KCIvKiBkZWxldGUgc2NyaXB0ICovXHJcbi8vdW5s aW5rKFwic25pcGVyX3NhLnBocFwiKTtcclxuLy9yZWFkZmlsZShcIi9ldGMvcGFzc3dkXCIpOyIpKTsNCm VjaG8gIjwvdGV4dGFyZWE+IjsNCmVjaG8gaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVu JywnY21kJywwLCdwaHBfZXZhbCcpOw0KZWNobyAiPGJyPiIud3MoMSkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdC csMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKTsNCmVjaG8gIjwvZGl2PjwvZGl2PjwvZm9udD4iOw0K ZWNobyAkdGFibGVfZW5kMS4kZmU7DQppZigkc2FmZV9tb2RlJiYkY3VybF9vbikNCnsNCmVjaG8gJGZzLi R0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQzMyddLCdpZDEwJykuJHRhYmxl X3VwMi5kaXYoJ2lkMTAnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleH QzMCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0MV9maWxlJyw4NSwoIWVtcHR5KCRfUE9TVFsn dGVzdDFfZmlsZSddKT8oJF9QT1NUWyd0ZXN0MV9maWxlJ10pOigiL2V0Yy9wYXNzd2QiKSkpLmluKCdoaW RkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDEnKS53cyg0KS5pbignc3Vi bWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj 4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCn0NCmlmKCRzYWZlX21vZGUpDQp7DQplY2hvICRmcy4kdGFibGVf dXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzQnXSwnaWQxMScpLiR0YWJsZV91cDIuZG l2KCdpZDExJykuJHRzOw0KZWNobyAiPHRhYmxlIGNsYXNzPXRhYmxlMSB3aWR0aD0xMDAlIGFsaWduPWNl bnRlcj4iOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnXS4kYXJyb3cuIj wvYj4iLGluKCd0ZXh0JywndGVzdDJfZmlsZScsODUsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QyX2ZpbGUnXSk/ KCRfUE9TVFsndGVzdDJfZmlsZSddKTooIi9ldGMvcGFzc3dkIikpKS5pbignaGlkZGVuJywnZGlyJywwLC RkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3QyJykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcs MCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS 4kZmU7DQp9DQoNCg0KaWYoJHNhZmVfbW9kZSYmJG1zc3FsX29uKQ0Kew0KZWNobyAkZnMuJHRhYmxlX3Vw MS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg1J10sJ2lkMTMnKS4kdGFibGVfdXAyLmRpdi gnaWQxMycpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM2J10uJGFy cm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Q0X21kJywxNSwoIWVtcHR5KCRfUE9TVFsndGVzdDRfbWQnXS k/KCRfUE9TVFsndGVzdDRfbWQnXSk6KCJtYXN0ZXIiKSkpLndzKDQpLiI8Yj4iLiRsYW5nWyRsYW5ndWFn ZS4nX3RleHQzNyddLiRhcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCd0ZXN0NF9tbCcsMTUsKCFlbXB0eSgkX1 BPU1RbJ3Rlc3Q0X21sJ10pPygkX1BPU1RbJ3Rlc3Q0X21sJ10pOigic2EiKSkpLndzKDQpLiI8Yj4iLiRs YW5nWyRsYW5ndWFnZS4nX3RleHQzOCddLiRhcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCd0ZXN0NF9tcCcsMT UsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q0X21wJ10pPygkX1BPU1RbJ3Rlc3Q0X21wJ10pOigicGFzc3dvcmQi KSkpLndzKDQpLiI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNCddLiRhcnJvdy4iPC9iPiIuaW4oJ3 RleHQnLCd0ZXN0NF9wb3J0JywxNSwoIWVtcHR5KCRfUE9TVFsndGVzdDRfcG9ydCddKT8oJF9QT1NUWyd0 ZXN0NF9wb3J0J10pOigiMTQzMyIpKSkpOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ1 90ZXh0MyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0NF9maWxlJyw5NiwoIWVtcHR5KCRfUE9T VFsndGVzdDRfZmlsZSddKT8oJF9QT1NUWyd0ZXN0NF9maWxlJ10pOigiZGlyIikpKS5pbignaGlkZGVuJy wnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q0Jykud3MoNCkuaW4oJ3N1Ym1pdCcs J3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdG FibGVfZW5kMS4kZmU7DQp9DQppZigkc2FmZV9tb2RlJiYkdW5peCYmZnVuY3Rpb25fZXhpc3RzKCdtYl9z ZW5kX21haWwnKSl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ1 90ZXh0MTEyJ10sJ2lkMjInKS4kdGFibGVfdXAyLmRpdignaWQyMicpLiR0czsNCmVjaG8gc3IoMTUsIjxi PiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Q1X2 ZpbGUnLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0NV9maWxlJ10pPygkX1BPU1RbJ3Rlc3Q1X2ZpbGUnXSk6 KCIvZXRjL3Bhc3N3ZCIpKSkuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJy wwLCd0ZXN0NScpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0 dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KaWYoJHNhZmVfb W9kZSYmZnVuY3Rpb25fZXhpc3RzKCdpbWFwX2xpc3QnKSl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl9 0aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTEzJ10sJ2lkMjMnKS4kdGFibGVfdXAyLmRpdignaWQyM ycpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQnXS4kYXJyb3cuIjw vYj4iLGluKCd0ZXh0JywndGVzdDZfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q2X2ZpbGUnXSk/K CRfUE9TVFsndGVzdDZfZmlsZSddKTooJGRpcikpKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCd oaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q2Jykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skb GFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQp pZigkc2FmZV9tb2RlJiZmdW5jdGlvbl9leGlzdHMoJ2ltYXBfYm9keScpKXsNCmVjaG8gJGZzLiR0YWJsZ V91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTQnXSwnaWQyNCcpLiR0YWJsZV91cDI uZGl2KCdpZDI0JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnX S4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDdfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q

3X2ZpbGUnXSk/KCRfUE9TVFsndGVzdDdfZmlsZSddKTooIi9ldGMvcGFzc3dkIikpKS5pbignaGlkZGVuJ ywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q3Jykud3MoNCkuaW4oJ3N1Ym1pdCc sJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kd GFibGVfZW5kMS4kZmU7DQp9DQppZigkc2FmZV9tb2RlKQ0Kew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZ fdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExNSddLCdpZDI1JykuJHRhYmxlX3VwMi5kaXYoJ2lkM jUnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTYnXS4kYXJyb3c uIjwvYj4iLGluKCd0ZXh0JywndGVzdDhfZmlsZTEnLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0OF9maWxlM SddKT8oJF9QT1NUWyd0ZXN0OF9maWxlMSddKTooIi9ldGMvcGFzc3dkIikpKS5pbignaGlkZGVuJywnZGl yJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q4JykpOw0KZWNobyBzcigxNSwiPGI+Ii4kb GFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTE3J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Q4X2ZpbGU yJyw5NiwoIWVtcHR5KCRfUE9TVFsndGVzdDhfZmlsZTInXSk/KCRfUE9TVFsndGVzdDhfZmlsZTInXSk6K CRkaXIpKSkud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCd dKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZihAaW5pX2dldCgnZmlsZ V91cGxvYWRzJykpew0KZWNobyAiPGZvcm0gbmFtZT11cGxvYWQgbWV0aG9kPVBPU1QgRU5DVFlQRT1tdWx 0aXBhcnQvZm9ybS1kYXRhPiI7DQplY2hvICR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZ S4nX3RleHQ1J10sJ2lkMTQnKS4kdGFibGVfdXAyLmRpdignaWQxNCcpLiR0czsNCmVjaG8gc3IoMTUsIjx iPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDYnXS4kYXJyb3cuIjwvYj4iLGluKCdmaWxlJywndXNlcmZpb GUnLDg1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMSddLiRhcnJ vdy4iPC9iPiIsaW4oJ2NoZWNrYm94JywnbmYxIGlkPW5mMScsMCwnMScpLmluKCd0ZXh0JywnbmV3X25hb WUnLDgyLCcnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQ nLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDInXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZ DEuJGZlOw0KfQ0KaWYoISRzYWZlX21vZGUmJiR1bml4KXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3R pdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNSddLCdpZDE1JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTUnK S4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNiddLiRhcnJvdy4iPC9 iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwid2l0aFwiPjxvcHRpb24gdmFsdWU9XCJ3Z2V0XCI+d 2dldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJmZXRjaFwiPmZldGNoPC9vcHRpb24+PG9wdGlvbiB2YWx 1ZT1cImx5bnhcIj5seW54PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cImxpbmtzXCI+bGlua3M8L29wdGlvb j48b3B0aW9uIHZhbHVlPVwiY3VybFwiPmN1cmw8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiR0VUXCI+R0V UPC9vcHRpb24+PC9zZWxlY3Q+Ii5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDIpLiI8Yj4iLiRsY W5nWyRsYW5ndWFnZS4nX3RleHQxNyddLiRhcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCdyZW1fZmlsZScsNzg sJ2h0dHA6Ly8nKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxOCddLiRhc nJvdy4iPC9iPiIsaW4oJ3RleHQnLCdsb2NfZmlsZScsMTA1LCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCd zdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDInXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhY mxlX2VuZDEuJGZlOw0KfQ0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWd lLidfdGV4dDg2J10sJ2lkMTYnKS4kdGFibGVfdXAyLmRpdignaWQxNicpLiR0czsNCmVjaG8gc3IoMTUsI jxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RfbmF tZScsODUsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG93bmxvYWRfZmlsZScpLmluKCdoaWRkZW4nL CdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19 idXR0MTQnXSkpOw0KJGFyaCA9ICRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5MiddOw0KaWYoQGZ1bmN0aW9uX 2V4aXN0cygnZ3pjb21wcmVzcycpKSB7ICRhcmggLj0gaW4oJ3JhZGlvJywnY29tcHJlc3MnLDAsJ3ppcCc pLicgemlwJzsgICB9DQppZihAZnVuY3Rpb25fZXhpc3RzKCdnemVuY29kZScpKSAgIHsgJGFyaCAuPSBpb igncmFkaW8nLCdjb21wcmVzcycsMCwnZ3ppcCcpLicgZ3ppcCc7IH0NCmlmKEBmdW5jdGlvbl9leGlzdHM oJ2J6Y29tcHJlc3MnKSkgeyAkYXJoIC49IGluKCdyYWRpbycsJ2NvbXByZXNzJywwLCdiemlwJykuJyBie mlwJzsgfQ0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTEnXS4kYXJyb3cuIjw vYj4iLGluKCdyYWRpbycsJ2NvbXByZXNzJywwLCdub25lJywxKS4nICcuJGFyaCk7DQplY2hvICR0ZS4nP C9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQppZihAZnVuY3Rpb25fZXhpc3RzKCJmdHBfY29ubmVjdCIpKXs NCmVjaG8gJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDkzJ10sJ2lkMTcnK S4kdGFibGVfdXAyLmRpdignaWQxNycpLiR0cy4iPHRyPiIuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0 1MCU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2Vud GVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4NyddLiI8L2Rpdj48L2I+PC9mb250PiI7DQp lY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4OCddLiRhcnJvdy4iPC9iPiIsaW4oJ 3RleHQnLCdmdHBfc2VydmVyX3BvcnQnLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk /KCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOigiMTI3LjAuMC4xOjIxIikpKSk7DQplY2hvIHNyKDI1L CI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHB fbG9naW4nLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfbG9naW4nXSk/KCRfUE9TVFsnZnRwX2xvZ2luJ10pO igiYW5vbnltb3VzIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOCd dLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHBfcGFzc3dvcmQnLDQ1LCghZW1wdHkoJF9QT1NUWydmd HBfcGFzc3dvcmQnXSk/KCRfUE9TVFsnZnRwX3Bhc3N3b3JkJ10pOigiYmlsbHlAbWljcm9zb2Z0LmNvbSI

pKSkpOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODknXS4kYXJyb3cuIjwvY j4iLGluKCd0ZXh0JywnZnRwX2ZpbGUnLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfZmlsZSddKT8oJF9QT1N UWydmdHBfZmlsZSddKTooIi9mdHAtZGlyL2ZpbGUiKSkpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2Z0cF9ma WxlX2Rvd24nKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxOCddLiRhcnJ vdy4iPC9iPiIsaW4oJ3RleHQnLCdsb2NfZmlsZScsNDUsJGRpcikpOw0KZWNobyBzcigyNSwiPGI+Ii4kb GFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTAnXS4kYXJyb3cuIjwvYj4iLCI8c2VsZWN0IG5hbWU9ZnRwX21vZGU +PG9wdGlvbj5GVFBfQklOQVJZPC9vcHRpb24+PG9wdGlvbj5GVFBfQVNDSUk8L29wdGlvbj48L3NlbGVjd D4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikpOw0KZWNobyBzcigyNSwiIixpbignc3VibWl0Jywnc3V ibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxNCddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4kZ nMuIjx0ZCB2YWxpZ249dG9wIHdpZHRoPTUwJT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHN pemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwM CddLiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3R leHQ4OCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHBfc2VydmVyX3BvcnQnLDQ1LCghZW1wdHkoJ F9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk/KCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOigiMTI3LjA uMC4xOjIxIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNyddLiRhc nJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHBfbG9naW4nLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfbG9naW4 nXSk/KCRfUE9TVFsnZnRwX2xvZ2luJ10pOigiYW5vbnltb3VzIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iL iRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHBfcGFzc3d vcmQnLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfcGFzc3dvcmQnXSk/KCRfUE9TVFsnZnRwX3Bhc3N3b3JkJ 10pOigiYmlsbHlAbWljcm9zb2Z0LmNvbSIpKSkpOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3V hZ2UuJ190ZXh0MTgnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnbG9jX2ZpbGUnLDQ1LCRkaXIpKTsNC mVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg5J10uJGFycm93LiI8L2I+Iixpbig ndGV4dCcsJ2Z0cF9maWxlJyw0NSwoIWVtcHR5KCRfUE9TVFsnZnRwX2ZpbGUnXSk/KCRfUE9TVFsnZnRwX 2ZpbGUnXSk6KCIvZnRwLWRpci9maWxlIikpKS5pbignaGlkZGVuJywnY21kJywwLCdmdHBfZmlsZV91cCc pKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDkwJ10uJGFycm93LiI8L2I+I iwiPHNlbGVjdCBuYW1lPWZ0cF9tb2RlPjxvcHRpb24+RlRQX0JJTkFSWTwvb3B0aW9uPjxvcHRpb24+RlR QX0FTQ0lJPC9vcHRpb24+PC9zZWxlY3Q+Ii5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc 3IoMjUsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MiddKSk7DQp lY2hvICR0ZS4iPC90ZD4iLiRmZS4iPC90cj48L2Rpdj48L3RhYmxlPiI7DQp9DQppZigkdW5peCAmJiBAZ nVuY3Rpb25fZXhpc3RzKCJmdHBfY29ubmVjdCIpKXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGx lKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5NCddLCdpZDE4JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTgnKS4kd HM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4OCddLiRhcnJvdy4iPC9iPiI saW4oJ3RleHQnLCdmdHBfc2VydmVyX3BvcnQnLDg1LCghZW1wdHkoJF9QT1NUWydmdHBfc2VydmVyX3Bvc nQnXSk/KCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOigiMTI3LjAuMC4xOjIxIikpKS5pbignaGlkZGV uJywnY21kJywwLCdmdHBfYnJ1dGUnKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsY W5ndWFnZS4nX2J1dHQxJ10pKTsNCmVjaG8gc3IoMTUsIiIsIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI +Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTknXS4iICggPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMR iddLiI/dXNlcnM+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTUnXS4iPC9hPiApPC9mb250PiIpOw0KZWN obyBzcigxNSwiIixpbignY2hlY2tib3gnLCdyZXZlcnNlIGlkPXJldmVyc2UnLDAsJzEnKS4kbGFuZ1skb GFuZ3VhZ2UuJ190ZXh0MTAxJ10pOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0 KaWYoQGZ1bmN0aW9uX2V4aXN0cygibWFpbCIpKXsNCmVjaG8gJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhb mdbJGxhbmd1YWdlLidfdGV4dDEwMiddLCdpZDE5JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTknKS4kdHMuIjx 0cj4iLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9NTAlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT10Y WhvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ19 0ZXh0MTAzJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1Y WdlLidfdGV4dDEwNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0bycsNDUsKCFlbXB0eSgkX1BPU1R bJ3RvJ10pPygkX1BPU1RbJ3RvJ10pOigiaGFja2VyQG1haWwuY29tIikpKS5pbignaGlkZGVuJywnY21kJ ywwLCdtYWlsJykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5 nWyRsYW5ndWFnZS4nX3RleHQxMDYnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZnJvbScsNDUsKCFlb XB0eSgkX1BPU1RbJ2Zyb20nXSk/KCRfUE9TVFsnZnJvbSddKTooImJpbGx5QG1pY3Jvc29mdC5jb20iKSk pKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwNyddLiRhcnJvdy4iPC9iP iIsaW4oJ3RleHQnLCdzdWJqJyw0NSwoIWVtcHR5KCRfUE9TVFsnc3ViaiddKT8oJF9QT1NUWydzdWJqJ10 pOigiaGVsbG8gYmlsbHkiKSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDEwOCddLiRhcnJvdy4iPC9iPiIsJzx0ZXh0YXJlYSBuYW1lPXRleHQgY29scz0zMyByb3dzPTI+Jy 4oIWVtcHR5KCRfUE9TVFsndGV4dCddKT8oJF9QT1NUWyd0ZXh0J10pOigibWFpbCB0ZXh0IGhlcmUiKSku JzwvdGV4dGFyZWE+Jyk7DQplY2hvIHNyKDI1LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJG xhbmd1YWdlLidfYnV0dDE1J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4iPHRkIHZhbGlnbj10 b3Agd2lkdGg9NTAlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2IG

FsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTA0J10uIjwvZGl2PjwvYj48 L2ZvbnQ+IjsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwNSddLiRhcnJvdy 4iPC9iPiIsaW4oJ3RleHQnLCd0bycsNDUsKCFlbXB0eSgkX1BPU1RbJ3RvJ10pPygkX1BPU1RbJ3RvJ10p OigiaGFja2VyQG1haWwuY29tIikpKS5pbignaGlkZGVuJywnY21kJywwLCdtYWlsX2ZpbGUnKS5pbignaG lkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4 dDEwNiddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmcm9tJyw0NSwoIWVtcHR5KCRfUE9TVFsnZnJvbS ddKT8oJF9QT1NUWydmcm9tJ10pOigiYmlsbHlAbWljcm9zb2Z0LmNvbSIpKSkpOw0KZWNobyBzcigyNSwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTA3J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3N1Ym onLDQ1LCghZW1wdHkoJF9QT1NUWydzdWJqJ10pPygkX1BPU1RbJ3N1YmonXSk6KCJmaWxlIGZyb20gc25p cGVyX3NhIHNoZWxsIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxOC ddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdsb2NfZmlsZScsNDUsJGRpcikpOw0KZWNobyBzcigyNSwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTEnXS4kYXJyb3cuIjwvYj4iLGluKCdyYWRpbycsJ2NvbX ByZXNzJywwLCdub25lJywxKS4nICcuJGFyaCk7DQplY2hvIHNyKDI1LCIiLGluKCdzdWJtaXQnLCdzdWJt aXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDE1J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiI8L3 RyPjwvZGl2PjwvdGFibGU+IjsNCn0NCmlmKCRteXNxbF9vbnx8JG1zc3FsX29ufHwkcGdfb258fCRvcmFf b24pDQp7DQokc2VsZWN0ID0gJzxzZWxlY3QgbmFtZT1kYj4nOw0KaWYoJG15c3FsX29uKSAkc2VsZWN0IC 49ICc8b3B0aW9uPk15U1FMPC9vcHRpb24+JzsNCmlmKCRtc3NxbF9vbikgJHNlbGVjdCAuPSAnPG9wdGlv bj5NU1NRTDwvb3B0aW9uPic7DQppZigkcGdfb24pICAgICRzZWxlY3QgLj0gJzxvcHRpb24+UG9zdGdyZV NRTDwvb3B0aW9uPic7DQppZigkb3JhX29uKSAgICRzZWxlY3QgLj0gJzxvcHRpb24+T3JhY2xlPC9vcHRp b24+JzsNCiRzZWxlY3QgLj0gJzwvc2VsZWN0Pic7DQplY2hvICR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW 5nWyRsYW5ndWFnZS4nX3RleHQ4MiddLCdpZDIwJykuJHRhYmxlX3VwMi5kaXYoJ2lkMjAnKS4kdHMuIjx0 cj4iLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9NTAlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT10YW hvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0NDAnXS4iPC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcigzNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2 UuJ190ZXh0ODAnXS4kYXJyb3cuIjwvYj4iLCRzZWxlY3QpOw0KZWNobyBzcigzNSwiPGI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0MTExJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RiX3NlcnZlcicsMTUsKC FlbXB0eSgkX1BPU1RbJ2RiX3NlcnZlciddKT8oJF9QT1NUWydkYl9zZXJ2ZXInXSk6KCJsb2NhbGhvc3Qi KSkpLicgPGI+OjwvYj4gJy5pbigndGV4dCcsJ2RiX3BvcnQnLDE1LCghZW1wdHkoJF9QT1NUWydkYl9wb3 J0J10pPygkX1BPU1RbJ2RiX3BvcnQnXSk6KCIzMzA2IikpKSk7DQplY2hvIHNyKDM1LCI8Yj4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQzNyddLicgOiAnLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOCddLiRhcnJvdy 4iPC9iPiIsaW4oJ3RleHQnLCdteXNxbF9sJywxNSwoIWVtcHR5KCRfUE9TVFsnbXlzcWxfbCddKT8oJF9Q T1NUWydteXNxbF9sJ10pOigicm9vdCIpKSkuJyA8Yj46PC9iPiAnLmluKCd0ZXh0JywnbXlzcWxfcCcsMT UsKCFlbXB0eSgkX1BPU1RbJ215c3FsX3AnXSk/KCRfUE9TVFsnbXlzcWxfcCddKTooInBhc3N3b3JkIikp KSk7DQplY2hvIHNyKDM1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNiddLiRhcnJvdy4iPC9iPi IsaW4oJ3RleHQnLCdteXNxbF9kYicsMTUsKCFlbXB0eSgkX1BPU1RbJ215c3FsX2RiJ10pPygkX1BPU1Rb J215c3FsX2RiJ10pOigibXlzcWwiKSkpLicgPGI+LjwvYj4gJy5pbigndGV4dCcsJ215c3FsX3RibCcsMT UsKCFlbXB0eSgkX1BPU1RbJ215c3FsX3RibCddKT8oJF9QT1NUWydteXNxbF90YmwnXSk6KCJ1c2VyIikp KSk7DQplY2hvIHNyKDM1LGluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMC wnbXlzcWxfZHVtcCcpLiI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0MSddLiRhcnJvdy4iPC9iPiIs aW4oJ2NoZWNrYm94JywnZGlmIGlkPWRpZicsMCwnMScpLmluKCd0ZXh0JywnZGlmX25hbWUnLDMxLCghZW 1wdHkoJF9QT1NUWydkaWZfbmFtZSddKT8oJF9QT1NUWydkaWZfbmFtZSddKTooImR1bXAuc3FsIikpKSk7 DQplY2hvIHNyKDM1LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dD knXSkpOw0KZWNobyAkdGUuIjwvdGQ+Ii4kZmUuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD01MCU+Ii4k dHM7DQplY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPS duJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4MyddLiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNy KDM1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4MCddLiRhcnJvdy4iPC9iPiIsJHNlbGVjdCk7DQ plY2hvIHNyKDM1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTEnXS4kYXJyb3cuIjwvYj4iLGlu KCd0ZXh0JywnZGJfc2VydmVyJywxNSwoIWVtcHR5KCRfUE9TVFsnZGJfc2VydmVyJ10pPygkX1BPU1RbJ2 RiX3NlcnZlciddKTooImxvY2FsaG9zdCIpKSkuJyA8Yj46PC9iPiAnLmluKCd0ZXh0JywnZGJfcG9ydCcs MTUsKCFlbXB0eSgkX1BPU1RbJ2RiX3BvcnQnXSk/KCRfUE9TVFsnZGJfcG9ydCddKTooIjMzMDYiKSkpKT sNCmVjaG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJyA6ICcuJGxhbmdbJGxh bmd1YWdlLidfdGV4dDM4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ215c3FsX2wnLDE1LCghZW1wdH koJF9QT1NUWydteXNxbF9sJ10pPygkX1BPU1RbJ215c3FsX2wnXSk6KCJyb290IikpKS4nIDxiPjo8L2I+ ICcuaW4oJ3RleHQnLCdteXNxbF9wJywxNSwoIWVtcHR5KCRfUE9TVFsnbXlzcWxfcCddKT8oJF9QT1NUWy dteXNxbF9wJ10pOigicGFzc3dvcmQiKSkpKTsNCmVjaG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxhbmd1YWdl LidfdGV4dDM5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ215c3FsX2RiJywxNSwoIWVtcHR5KCRfUE 9TVFsnbXlzcWxfZGInXSk/KCRfUE9TVFsnbXlzcWxfZGInXSk6KCJteXNxbCIpKSkpOw0KZWNobyBzcigz NSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODQnXS4kYXJyb3cuIjwvYj4iLmluKCdoaWRkZW4nLC

dkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZGJfcXVlcnknKSwiIik7DQplY2hvICR0ZS4i PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPjx0ZXh0YXJlYSBjb2xzPTU1IHJvd3M9MSBuYW1lPWRiX3F1ZX J5PiIuKCFlbXB0eSgkX1BPU1RbJ2RiX3F1ZXJ5J10pPygkX1BPU1RbJ2RiX3F1ZXJ5J10pOigiU0hPVyBE QVRBQkFTRVM7IFNFTEVDVCAqIEZST00gdXNlcjsgU0VMRUNUIHZlcnNpb24oKTsgc2VsZWN0IHVzZXIoKT siKSkuIjwvdGV4dGFyZWE+PGJyPiIuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2Uu J19idXR0MSddKS4iPC9kaXY+PC90ZD4iLiRmZS4iPC90cj48L2Rpdj48L3RhYmxlPiI7DQp9DQppZighJH NhZmVfbW9kZSYmJHVuaXgpew0KZWNobyAkdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2Uu J190ZXh0ODEnXSwnaWQyMScpLiR0YWJsZV91cDIuZGl2KCdpZDIxJykuJHRzLiI8dHI+Ii4kZnMuIjx0ZC B2YWxpZ249dG9wIHdpZHRoPTM0JT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+ PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDknXS4iPC9kaX Y+PC9iPjwvZm9udD4iOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTAnXS4k YXJyb3cuIjwvYj4iLGluKCd0ZXh0JywncG9ydCcsMTUsJzk5OTknKSk7DQplY2hvIHNyKDQwLCI8Yj4iLi RsYW5nWyRsYW5ndWFnZS4nX3RleHQxMSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdiaW5kX3Bhc3Mn LDE1LCdTbklwRXInKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMCddLi RhcnJvdy4iPC9iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwidXNlXCI+PG9wdGlvbiB2YWx1ZT1c IlBlcmxcIj5QZXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIkNcIj5DPC9vcHRpb24+PC9zZWxlY3Q+Ii 5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoNDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1p dCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MyddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4kZnMuIj x0ZCB2YWxpZ249dG9wIHdpZHRoPTMzJT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9 LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEyJ10uIj wvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEz J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2lwJywxNSwoKGdldGVudignUkVNT1RFX0FERFInKSkgPy AoZ2V0ZW52KCdSRU1PVEVfQUREUicpKSA6ICgiMTI3LjAuMC4xIikpKSk7DQplY2hvIHNyKDQwLCI8Yj4i LiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdwb3J0JywxNS wnODAnKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMCddLiRhcnJvdy4i PC9iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwidXNlXCI+PG9wdGlvbiB2YWx1ZT1cIlBlcmxcIj 5QZXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIkNcIj5DPC9vcHRpb24+PC9zZWxlY3Q+Ii5pbignaGlk ZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoNDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbG FuZ1skbGFuZ3VhZ2UuJ19idXR0NCddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4kZnMuIjx0ZCB2YWxp Z249dG9wIHdpZHRoPTMzJT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+PGI+PG RpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIyJ10uIjwvZGl2Pjwv Yj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIzJ10uJGFycm 93LiI8L2I+IixpbigndGV4dCcsJ2xvY2FsX3BvcnQnLDE1LCc4MCcpKTsNCmVjaG8gc3IoNDAsIjxiPiIu JGxhbmdbJGxhbmd1YWdlLidfdGV4dDI0J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3JlbW90ZV9ob3 N0JywxNSwnaXJjLmRhbG5ldC5ydScpKTsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDI1J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3JlbW90ZV9wb3J0JywxNSwnNjY2NycpKTsNCm VjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDI2J10uJGFycm93LiI8L2I+IiwiPHNl bGVjdCBzaXplPVwiMVwiIG5hbWU9XCJ1c2VcIj48b3B0aW9uIHZhbHVlPVwiUGVybFwiPmRhdGFwaXBlLn BsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIkNcIj5kYXRhcGlwZS5jPC9vcHRpb24+PC9zZWxlY3Q+Ii5p bignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoNDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdC csMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0NSddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4iPC90cj48 L2Rpdj48L3RhYmxlPiI7DQp9DQoNCmlmKCR1bml4KXsNCmVjaG8gJHRhYmxlX3VwMS5kaXZfdGl0bGUoJG xhbmdbJGxhbmd1YWdlLidfdGV4dDgxJ10sJ2lkMjEnKS4kdGFibGVfdXAyLmRpdignaWQyMScpLiR0cy4i PHRyPiIuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0zNCU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPX RhaG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4n X3RleHQ5J10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YW dlLidfdGV4dDEwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3BvcnQxJywzNSwnOTk5OScpLndzKDQp LmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDMnXSkpOw0KZWNobyAkdG UuIjwvdGQ+Ii4kZmUuIjwvdHI+PC9kaXY+PC90YWJsZT4iOw0KZWNobyAkdGFibGVfdXAxLmRpdl90aXRs ZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODEnXSwnaWQyMScpLiR0YWJsZV91cDIuZGl2KCdpZDIxJykuJH RzLiI8dHI+Ii4kZnMuIjx0ZCB2YWxpZ249dG9wIHdpZHRoPTM0JT4iLiR0czsNCmVjaG8gIjxmb250IGZh Y2U9dGFob21hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YW dlLidfdGV4dDEyJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxh bmd1YWdlLidfdGV4dDIxNCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdpcmNhZG1pbicsMTUsJ2lyY2 FkbWluJykpOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjE1J10uJGFycm93 LiI8L2I+IixpbigndGV4dCcsJ2lyY3NlcnZlcicsMTUsJ2lyY3NlcnZlcicpKTsNCmVjaG8gc3IoNDAsIj xiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIxNiddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdpcmNj aGFuYWwnLDE1LCdpcmNjaGFubCcpKTsNCmVjaG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdG

V4dDIxNyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdpcmNuYW1lJywxNSwnaXJjbmFtZScpKTs NCmVjaG8gc3IoNDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0N CddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4kZnMuIjx0ZCB2YWxpZ249dG9wIHdpZHRoPTMzJT4iLiR 0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J 24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEyJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3I oNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEzJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ 2lwcycsMTUsKChnZXRlbnYoJ1JFTU9URV9BRERSJykpID8gKGdldGVudignUkVNT1RFX0FERFInKSkgOiA oIjEyNy4wLjAuMSIpKSkpOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTQnX S4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywncG9ydHMnLDE1LCc4MCcpKTsNCmVjaG8gc3IoNDAsIjxiPiI uJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwJ10uJGFycm93LiI8L2I+IiwiPHNlbGVjdCBzaXplPVwiMVwiI G5hbWU9XCJ1c2VcIj48b3B0aW9uIHZhbHVlPVwiUGVybFwiPlBlcmw8L29wdGlvbj48L3NlbGVjdD4iLml uKCdoaWRkZW4nLCdkaXInLDAsJGRpcikpOw0KZWNobyBzcig0MCwiIixpbignc3VibWl0Jywnc3VibWl0J ywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ0J10pKTsNCg0KZWNobyAkdGUuIjwvdGQ+Ii4kZmUuIjwvdHI +PC9kaXY+PC90YWJsZT4iOw0KfQ0KZWNobyAnPC90YWJsZT4nLiR0YWJsZV91cDMuIjwvZGl2PjwvZGl2P jxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz48Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPm8tLS1bIFN uSXBFcl9TQSBTaGVsbCAgfCA8YSBocmVmPWh0dHA6Ly9zbmlwZXItc2EuY29tPmh0dHA6Ly9zbmlwZXItc 2EuY29tPC9hPiB8IDxhIFNuSXBFci5TQUBob3RtYWlsLmNvbT5zbmlwZXIuc2FAaG90bWFpbC5jb208L2E +IHwgytrR7cgg5srY5u3RIF0tLS1vPC9iPjwvZm9udD48L2Rpdj48L3RkPjwvdHI+PC90YWJsZT4iLiRmO w0KDQppZihlbXB0eSgkX1BPU1RbJ2xvZyddKSl7DQp9IGVsc2Ugew0KJGxvZz0kX1BPU1RbJ2xvZyddOw0 KZWNobyAgZXJyb3JfbG9nKCI8PyBwcmludCBpbmNsdWRlKFwkX0dFVFtzc10pID8+IiwgMywkbG9nKTsNC mVjaG8gIjwvdGV4dGFyZWE+PC9DRU5URVI+IjsNCn0=')); ?>