PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPjExLqBTR0NoZWNrOiBhbiBleHBlcmltZW50YWwgc3RhY2sgYW5kIGdsb2JhbCBhcnJheSBvdmVycnVuIGRldGVjdG9yPC90aXRsZT4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OS4xIj4KPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+CjxsaW5rIHJlbD0idXAiIGhyZWY9Im1hbnVhbC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVXNlciBNYW51YWwiPgo8bGluayByZWw9InByZXYiIGhyZWY9ImRoLW1hbnVhbC5odG1sIiB0aXRsZT0iMTAuoERIQVQ6IGEgZHluYW1pYyBoZWFwIGFuYWx5c2lzIHRvb2wiPgo8bGluayByZWw9Im5leHQiIGhyZWY9ImJidi1tYW51YWwuaHRtbCIgdGl0bGU9IjEyLqBCQlY6IGFuIGV4cGVyaW1lbnRhbCBiYXNpYyBibG9jayB2ZWN0b3IgZ2VuZXJhdGlvbiB0b29sIj4KPC9oZWFkPgo8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CjxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaC1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cjx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cjx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgo8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIFVzZXIgTWFudWFsPC90aD4KPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJiYnYtbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvbmV4dC5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiPjwvYT48L3RkPgo8L3RyPjwvdGFibGU+PC9kaXY+CjxkaXYgY2xhc3M9ImNoYXB0ZXIiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDEgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0ic2ctbWFudWFsIj48L2E+MTEuoFNHQ2hlY2s6IGFuIGV4cGVyaW1lbnRhbCBzdGFjayBhbmQgZ2xvYmFsIGFycmF5IG92ZXJydW4gZGV0ZWN0b3I8L2gxPjwvZGl2PjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b2MiPgo8cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+CjxkbCBjbGFzcz0idG9jIj4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ic2ctbWFudWFsLmh0bWwjc2ctbWFudWFsLm92ZXJ2aWV3Ij4xMS4xLiBPdmVydmlldzwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ic2ctbWFudWFsLmh0bWwjc2ctbWFudWFsLm9wdGlvbnMiPjExLjIuIFNHQ2hlY2sgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5ob3ctd29ya3Muc2ctY2hlY2tzIj4xMS4zLiBIb3cgU0dDaGVjayBXb3JrczwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ic2ctbWFudWFsLmh0bWwjc2ctbWFudWFsLmNtcC13LW1lbWNoZWNrIj4xMS40LiBDb21wYXJpc29uIHdpdGggTWVtY2hlY2s8L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5saW1pdGF0aW9ucyI+MTEuNS4gTGltaXRhdGlvbnM8L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC50b2RvLXVzZXItdmlzaWJsZSI+MTEuNi4gU3RpbGwgVG8gRG86IFVzZXItdmlzaWJsZSBGdW5jdGlvbmFsaXR5PC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJzZy1tYW51YWwuaHRtbCNzZy1tYW51YWwudG9kby1pbXBsZW1lbnRhdGlvbiI+MTEuNy4gU3RpbGwgVG8gRG86IEltcGxlbWVudGF0aW9uIFRpZHlpbmc8L2E+PC9zcGFuPjwvZHQ+CjwvZGw+CjwvZGl2Pgo8cD5UbyB1c2UgdGhpcyB0b29sLCB5b3UgbXVzdCBzcGVjaWZ5Cjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbD1leHAtc2djaGVjazwvY29kZT4gb24gdGhlIFZhbGdyaW5kCmNvbW1hbmQgbGluZS48L3A+CjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0ic2ctbWFudWFsLm92ZXJ2aWV3Ij48L2E+MTEuMS6gT3ZlcnZpZXc8L2gyPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5TR0NoZWNrIGlzIGEgdG9vbCBmb3IgZmluZGluZyBvdmVycnVucyBvZiBzdGFjayBhbmQgZ2xvYmFsCmFycmF5cy4gIEl0IHdvcmtzIGJ5IHVzaW5nIGEgaGV1cmlzdGljIGFwcHJvYWNoIGRlcml2ZWQgZnJvbSBhbgpvYnNlcnZhdGlvbiBhYm91dCB0aGUgbGlrZWx5IGZvcm1zIG9mIHN0YWNrIGFuZCBnbG9iYWwgYXJyYXkgYWNjZXNzZXMuCjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0ic2ctbWFudWFsLm9wdGlvbnMiPjwvYT4xMS4yLqBTR0NoZWNrIENvbW1hbmQtbGluZSBPcHRpb25zPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+PGEgbmFtZT0ic2cub3B0cy5saXN0Ij48L2E+VGhlcmUgYXJlIG5vIFNHQ2hlY2stc3BlY2lmaWMgY29tbWFuZC1saW5lIG9wdGlvbnMgYXQgcHJlc2VudC48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MSI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+CjxhIG5hbWU9InNnLW1hbnVhbC5ob3ctd29ya3Muc2ctY2hlY2tzIj48L2E+MTEuMy6gSG93IFNHQ2hlY2sgV29ya3M8L2gyPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5XaGVuIGEgc291cmNlIGZpbGUgaXMgY29tcGlsZWQKd2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZzwvY29kZT4sIHRoZSBjb21waWxlciBhdHRhY2hlcyBEV0FSRjMKZGVidWdnaW5nIGluZm9ybWF0aW9uIHdoaWNoIGRlc2NyaWJlcyB0aGUgbG9jYXRpb24gb2YgYWxsIHN0YWNrIGFuZApnbG9iYWwgYXJyYXlzIGluIHRoZSBmaWxlLjwvcD4KPHA+Q2hlY2tpbmcgb2YgYWNjZXNzZXMgdG8gc3VjaCBhcnJheXMgd291bGQgdGhlbiBiZSByZWxhdGl2ZWx5CnNpbXBsZSwgaWYgdGhlIGNvbXBpbGVyIGNvdWxkIGFsc28gdGVsbCB1cyB3aGljaCBhcnJheSAoaWYgYW55KSBlYWNoCm1lbW9yeSByZWZlcmVuY2luZyBpbnN0cnVjdGlvbiB3YXMgc3VwcG9zZWQgdG8gYWNjZXNzLiAgVW5mb3J0dW5hdGVseQp0aGUgRFdBUkYzIGRlYnVnZ2luZyBmb3JtYXQgZG9lcyBub3QgcHJvdmlkZSBhIHdheSB0byByZXByZXNlbnQgc3VjaAppbmZvcm1hdGlvbiwgc28gd2UgaGF2ZSB0byByZXNvcnQgdG8gYSBoZXVyaXN0aWMgdGVjaG5pcXVlIHRvCmFwcHJveGltYXRlIGl0LiAgVGhlIGtleSBvYnNlcnZhdGlvbiBpcyB0aGF0CiAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPgogICBpZiBhIG1lbW9yeSByZWZlcmVuY2luZyBpbnN0cnVjdGlvbiBhY2Nlc3NlcyBpbnNpZGUgYSBzdGFjayBvcgogICBnbG9iYWwgYXJyYXkgb25jZSwgdGhlbiBpdCBpcyBoaWdobHkgbGlrZWx5IHRvIGFsd2F5cyBhY2Nlc3MgdGhhdAogICBzYW1lIGFycmF5PC9lbT48L3NwYW4+LjwvcD4KPHA+VG8gc2VlIGhvdyB0aGlzIG1pZ2h0IGJlIHVzZWZ1bCwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBidWdneQpmcmFnbWVudDo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KICAgeyBpbnQgaSwgYVsxMF07ICAvLyBib3RoIGFyZSBhdXRvIHZhcnMKICAgICBmb3IgKGkgPSAwOyBpICZsdDs9IDEwOyBpKyspCiAgICAgICAgYVtpXSA9IDQyOwogICB9CjwvcHJlPgo8cD5BdCBydW4gdGltZSB3ZSB3aWxsIGtub3cgdGhlIHByZWNpc2UgYWRkcmVzcwpvZiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmFbXTwvY29kZT4gb24gdGhlIHN0YWNrLCBhbmQgc28gd2UgY2FuCm9ic2VydmUgdGhhdCB0aGUgZmlyc3Qgc3RvcmUgcmVzdWx0aW5nIGZyb20gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5hW2ldID0KNDI8L2NvZGU+IHdyaXRlcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmFbXTwvY29kZT4sIGFuZAp3ZSB3aWxsIChjb3JyZWN0bHkpIGFzc3VtZSB0aGF0IHRoYXQgaW5zdHJ1Y3Rpb24gaXMgaW50ZW5kZWQgYWx3YXlzIHRvCmFjY2VzcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmFbXTwvY29kZT4uICBUaGVuLCBvbiB0aGUgMTF0aAppdGVyYXRpb24sIGl0IGFjY2Vzc2VzIHNvbWV3aGVyZSBlbHNlLCBwb3NzaWJseSBhIGRpZmZlcmVudCBsb2NhbCwKcG9zc2libHkgYW4gdW4tYWNjb3VudGVkIGZvciBhcmVhIG9mIHRoZSBzdGFjayAoZWcsIHNwaWxsIHNsb3QpLCBzbwpTR0NoZWNrIHJlcG9ydHMgYW4gZXJyb3IuPC9wPgo8cD5UaGVyZSBpcyBhbiBpbXBvcnRhbnQgY2F2ZWF0LjwvcD4KPHA+SW1hZ2luZSBhIGZ1bmN0aW9uIHN1Y2ggYXMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tZW1jcHk8L2NvZGU+LCB3aGljaCBpcyB1c2VkCnRvIHJlYWQgYW5kIHdyaXRlIG1hbnkgZGlmZmVyZW50IGFyZWFzIG9mIG1lbW9yeSBvdmVyIHRoZSBsaWZldGltZSBvZiB0aGUKcHJvZ3JhbS4gIElmIHdlIGluc2lzdCB0aGF0IHRoZSByZWFkIGFuZCB3cml0ZSBpbnN0cnVjdGlvbnMgaW4gaXRzIG1lbW9yeQpjb3B5aW5nIGxvb3Agb25seSBldmVyIGFjY2VzcyBvbmUgcGFydGljdWxhciBzdGFjayBvciBnbG9iYWwgdmFyaWFibGUsIHdlCndpbGwgYmUgZmxvb2RlZCB3aXRoIGVycm9ycyByZXN1bHRpbmcgZnJvbSBjYWxscyB0bwo8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbWNweTwvY29kZT4uPC9wPgo8cD5UbyBhdm9pZCB0aGlzIHByb2JsZW0sIFNHQ2hlY2sgaW5zdGFudGlhdGVzIGZyZXNoIGxpa2VseS10YXJnZXQKcmVjb3JkcyBmb3IgZWFjaCBlbnRyeSB0byBhIGZ1bmN0aW9uLCBhbmQgZGlzY2FyZHMgdGhlbSBvbiBleGl0LiAgVGhpcwphbGxvd3MgZGV0ZWN0aW9uIG9mIGNhc2VzIHdoZXJlIChlLmcuKSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbWNweTwvY29kZT4Kb3ZlcmZsb3dzIGl0cyBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYnVmZmVycyBmb3IgYW55IHNwZWNpZmljIGNhbGwsIGJ1dApkb2VzIG5vdCBjYXJyeSBhbnkgcmVzdHJpY3Rpb24gZnJvbSBvbmUgY2FsbCB0byB0aGUgbmV4dC4gIEluZGVlZCwKbXVsdGlwbGUgdGhyZWFkcyBtYXkgbWFrZSBtdWx0aXBsZSBzaW11bHRhbmVvdXMgY2FsbHMgdG8KKGUuZy4pIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWVtY3B5PC9jb2RlPiB3aXRob3V0IG11dHVhbCBpbnRlcmZlcmVuY2UuPC9wPgo8cD5JdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoZSBhc3NvY2lhdGlvbiBpcyBkb25lIGJldHdlZW4KICBhIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmJpbmFyeSBpbnN0cnVjdGlvbjwvZW0+PC9zcGFuPiBhbmQgYW4gYXJyYXksIHRoZQogIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmZpcnN0IHRpbWU8L2VtPjwvc3Bhbj4gdGhpcyBiaW5hcnkgaW5zdHJ1Y3Rpb24gYWNjZXNzZXMgYW4KICBhcnJheSBkdXJpbmcgYSBmdW5jdGlvbiBjYWxsLiAgV2hlbiB0aGUgc2FtZSBpbnN0cnVjdGlvbiBpcyBleGVjdXRlZAogIGFnYWluIGR1cmluZyB0aGUgc2FtZSBmdW5jdGlvbiBjYWxsLCB0aGVuIFNHQ2hlY2sgbWlnaHQgcmVwb3J0IGEKICBwcm9ibGVtLCBpZiB0aGVzZSBmdXJ0aGVyIGV4ZWN1dGlvbnMgYXJlIG5vdCBhY2Nlc3NpbmcgdGhlIHNhbWUKICBhcnJheS4gVGhpcyB0ZWNobmlxdWUgY2F1c2VzIHNldmVyYWwgbGltaXRhdGlvbnMgaW4gU0dDaGVjaywgc2VlCiAgPGEgY2xhc3M9InhyZWYiIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5saW1pdGF0aW9ucyIgdGl0bGU9IjExLjUuoExpbWl0YXRpb25zIj5MaW1pdGF0aW9uczwvYT4uCjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0ic2ctbWFudWFsLmNtcC13LW1lbWNoZWNrIj48L2E+MTEuNC6gQ29tcGFyaXNvbiB3aXRoIE1lbWNoZWNrPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+U0dDaGVjayBhbmQgTWVtY2hlY2sgYXJlIGNvbXBsZW1lbnRhcnk6IHRoZWlyIGNhcGFiaWxpdGllcyBkbwpub3Qgb3ZlcmxhcC4gIE1lbWNoZWNrIHBlcmZvcm1zIGJvdW5kcyBjaGVja3MgYW5kIHVzZS1hZnRlci1mcmVlCmNoZWNrcyBmb3IgaGVhcCBhcnJheXMuICBJdCBhbHNvIGZpbmRzIHVzZXMgb2YgdW5pbml0aWFsaXNlZCB2YWx1ZXMKY3JlYXRlZCBieSBoZWFwIG9yIHN0YWNrIGFsbG9jYXRpb25zLiAgQnV0IGl0IGRvZXMgbm90IHBlcmZvcm0gYm91bmRzCmNoZWNraW5nIGZvciBzdGFjayBvciBnbG9iYWwgYXJyYXlzLjwvcD4KPHA+U0dDaGVjaywgb24gdGhlIG90aGVyIGhhbmQsIGRvZXMgZG8gYm91bmRzIGNoZWNraW5nIGZvciBzdGFjayBvcgpnbG9iYWwgYXJyYXlzLCBidXQgaXQgZG9lc24ndCBkbyBhbnl0aGluZyBlbHNlLjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0ic2ctbWFudWFsLmxpbWl0YXRpb25zIj48L2E+MTEuNS6gTGltaXRhdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5UaGlzIGlzIGFuIGV4cGVyaW1lbnRhbCB0b29sLCB3aGljaCByZWxpZXMgcmF0aGVyIHRvbyBoZWF2aWx5IG9uIHNvbWUKbm90LWFzLXJvYnVzdC1hcy1JLXdvdWxkLWxpa2UgYXNzdW1wdGlvbnMgb24gdGhlIGJlaGF2aW91ciBvZiBjb3JyZWN0CnByb2dyYW1zLiAgVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGxpbWl0YXRpb25zIHdoaWNoIHlvdSBzaG91bGQgYmUgYXdhcmUKb2YuPC9wPgo8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+RmFsc2UgbmVnYXRpdmVzIChtaXNzZWQgZXJyb3JzKTogaXQgZm9sbG93cyBmcm9tIHRoZQogICBkZXNjcmlwdGlvbiBhYm92ZSAoPGEgY2xhc3M9InhyZWYiIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5ob3ctd29ya3Muc2ctY2hlY2tzIiB0aXRsZT0iMTEuMy6gSG93IFNHQ2hlY2sgV29ya3MiPkhvdyBTR0NoZWNrIFdvcmtzPC9hPikKICAgdGhhdCB0aGUgZmlyc3QgYWNjZXNzIGJ5IGEgbWVtb3J5IHJlZmVyZW5jaW5nIGluc3RydWN0aW9uIHRvIGEKICAgc3RhY2sgb3IgZ2xvYmFsIGFycmF5IGNyZWF0ZXMgYW4gYXNzb2NpYXRpb24gYmV0d2VlbiB0aGF0CiAgIGluc3RydWN0aW9uIGFuZCB0aGUgYXJyYXksIHdoaWNoIGlzIGNoZWNrZWQgb24gc3Vic2VxdWVudCBhY2Nlc3NlcwogICBieSB0aGF0IGluc3RydWN0aW9uLCB1bnRpbCB0aGUgY29udGFpbmluZyBmdW5jdGlvbiBleGl0cy4gIEhlbmNlLAogICB0aGUgZmlyc3QgYWNjZXNzIGJ5IGFuIGluc3RydWN0aW9uIHRvIGFuIGFycmF5IChpbiBhbnkgZ2l2ZW4KICAgZnVuY3Rpb24gaW5zdGFudGlhdGlvbikgaXMgbm90IGNoZWNrZWQgZm9yIG92ZXJydW4sIHNpbmNlIFNHQ2hlY2sKICAgdXNlcyB0aGF0IGFzIHRoZSAiZXhhbXBsZSIgb2YgaG93IHN1YnNlcXVlbnQgYWNjZXNzZXMgc2hvdWxkCiAgIGJlaGF2ZS48L3A+CjxwPkl0IGFsc28gbWVhbnMgdGhhdCBlcnJvcnMgd2lsbCBub3QgYmUgZm91bmQgaW4gYW4gaW5zdHJ1Y3Rpb24KICAgICBleGVjdXRlZCBvbmx5IG9uY2UgKGUuZy4gYmVjYXVzZSB0aGlzIGluc3RydWN0aW9uIGlzIG5vdCBpbiBhIGxvb3AsCiAgICAgb3IgdGhlIGxvb3AgaXMgZXhlY3V0ZWQgb25seSBvbmNlKS48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD5GYWxzZSBwb3NpdGl2ZXMgKGZhbHNlIGVycm9ycyk6IHNpbWlsYXJseSwgYW5kIG1vcmUgc2VyaW91cywKICAgaXQgaXMgY2xlYXJseSBwb3NzaWJsZSB0byB3cml0ZSBsZWdpdGltYXRlIHBpZWNlcyBvZiBjb2RlIHdoaWNoCiAgIGJyZWFrIHRoZSBiYXNpYyBhc3N1bXB0aW9uIHVwb24gd2hpY2ggdGhlIGNoZWNraW5nIGFsZ29yaXRobQogICBkZXBlbmRzLiAgRm9yIGV4YW1wbGU6PC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CiAgeyBpbnQgYVsxMF0sIGJbMTBdLCAqcCwgaTsKICAgIGZvciAoaSA9IDA7IGkgJmx0OyAxMDsgaSsrKSB7CiAgICAgICBwID0gLyogYXJiaXRyYXJ5IGNvbmRpdGlvbiAqLyAgPyAmYW1wO2FbaV0gIDogJmFtcDtiW2ldOwogICAgICAgKnAgPSA0MjsKICAgIH0KICB9CjwvcHJlPgo8cD5JbiB0aGlzIGNhc2UgdGhlIHN0b3JlIHNvbWV0aW1lcwogICBhY2Nlc3NlcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmFbXTwvY29kZT4gYW5kCiAgIHNvbWV0aW1lcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmJbXTwvY29kZT4sIGJ1dCBpbiBubyBjYXNlcyBpcwogICB0aGUgYWRkcmVzc2VkIGFycmF5IG92ZXJydW4uICBOZXZlcnRoZWxlc3MgdGhlIGNoYW5nZSBpbiB0YXJnZXQKICAgd2lsbCBjYXVzZSBhbiBlcnJvciB0byBiZSByZXBvcnRlZC48L3A+CjxwPkl0IGlzIGhhcmQgdG8gc2VlIGhvdyB0byBnZXQgYXJvdW5kIHRoaXMgcHJvYmxlbS4gIFRoZSBvbmx5CiAgIG1pdGlnYXRpbmcgZmFjdG9yIGlzIHRoYXQgc3VjaCBjb25zdHJ1Y3Rpb25zIGFwcGVhciB2ZXJ5IHJhcmUsIGF0CiAgIGxlYXN0IGp1ZGdpbmcgZnJvbSB0aGUgcmVzdWx0cyB1c2luZyB0aGUgdG9vbCBzbyBmYXIuICBTdWNoIGEKICAgY29uc3RydWN0aW9uIGFwcGVhcnMgb25seSBvbmNlIGluIHRoZSBWYWxncmluZCBzb3VyY2VzIChydW5uaW5nCiAgIFZhbGdyaW5kIG9uIFZhbGdyaW5kKSBhbmQgcGVyaGFwcyB0d28gb3IgdGhyZWUgdGltZXMgZm9yIGEgc3RhcnQKICAgYW5kIGV4aXQgb2YgRmlyZWZveC4gIFRoZSBiZXN0IHRoYXQgY2FuIGJlIGRvbmUgaXMgdG8gc3VwcHJlc3MgdGhlCiAgIGVycm9ycy48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlBlcmZvcm1hbmNlOiBTR0NoZWNrIGhhcyB0byByZWFkIGFsbCBvZgogICB0aGUgRFdBUkYzIHR5cGUgYW5kIHZhcmlhYmxlIGluZm9ybWF0aW9uIG9uIHRoZSBleGVjdXRhYmxlIGFuZCBpdHMKICAgc2hhcmVkIG9iamVjdHMuICBUaGlzIGlzIGNvbXB1dGF0aW9uYWxseSBleHBlbnNpdmUgYW5kIG1ha2VzCiAgIHN0YXJ0dXAgcXVpdGUgc2xvdy4gIFlvdSBjYW4gZXhwZWN0IGRlYnVnaW5mbyByZWFkaW5nIHRpbWUgdG8gYmUgaW4KICAgdGhlIHJlZ2lvbiBvZiBhIG1pbnV0ZSBmb3IgYW4gT3Blbk9mZmljZSBzaXplZCBhcHBsaWNhdGlvbiwgb24gYQogICAyLjQgR0h6IENvcmUgMiBtYWNoaW5lLiAgUmVhZGluZyB0aGlzIGluZm9ybWF0aW9uIGFsc28gcmVxdWlyZXMgYQogICBsb3Qgb2YgbWVtb3J5LiAgVG8gbWFrZSBpdCB2aWFibGUsIFNHQ2hlY2sgZ29lcyB0byBjb25zaWRlcmFibGUKICAgdHJvdWJsZSB0byBjb21wcmVzcyB0aGUgaW4tbWVtb3J5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBEV0FSRjMKICAgZGF0YSwgd2hpY2ggaXMgd2h5IHRoZSBwcm9jZXNzIG9mIHJlYWRpbmcgaXQgYXBwZWFycyBzbG93LjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5QZXJmb3JtYW5jZTogU0dDaGVjayBydW5zIHNsb3dlciB0aGFuIE1lbWNoZWNrLiAgVGhpcyBpcwogICBwYXJ0bHkgZHVlIHRvIGEgbGFjayBvZiB0dW5pbmcsIGJ1dCBwYXJ0bHkgZHVlIHRvIGFsZ29yaXRobWljCiAgIGRpZmZpY3VsdGllcy4gIFRoZQogICBzdGFjayBhbmQgZ2xvYmFsIGNoZWNrcyBjYW4gc29tZXRpbWVzIHJlcXVpcmUgYSBudW1iZXIgb2YgcmFuZ2UKICAgY2hlY2tzIHBlciBtZW1vcnkgYWNjZXNzLCBhbmQgdGhlc2UgYXJlIGRpZmZpY3VsdCB0byBzaG9ydC1jaXJjdWl0LAogICBkZXNwaXRlIGNvbnNpZGVyYWJsZSBlZmZvcnRzIGhhdmluZyBiZWVuIG1hZGUuICBBCiAgIHJlZGVzaWduIGFuZCByZWltcGxlbWVudGF0aW9uIGNvdWxkIHBvdGVudGlhbGx5IG1ha2UgaXQgbXVjaCBmYXN0ZXIuCiAgIDwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+Q292ZXJhZ2U6IFN0YWNrIGFuZCBnbG9iYWwgY2hlY2tpbmcgaXMgZnJhZ2lsZS4gIElmIGEgc2hhcmVkCiAgIG9iamVjdCBkb2VzIG5vdCBoYXZlIGRlYnVnIGluZm9ybWF0aW9uIGF0dGFjaGVkLCB0aGVuIFNHQ2hlY2sgd2lsbAogICBub3QgYmUgYWJsZSB0byBkZXRlcm1pbmUgdGhlIGJvdW5kcyBvZiBhbnkgc3RhY2sgb3IgZ2xvYmFsIGFycmF5cwogICBkZWZpbmVkIHdpdGhpbiB0aGF0IHNoYXJlZCBvYmplY3QsIGFuZCBzbyB3aWxsIG5vdCBiZSBhYmxlIHRvIGNoZWNrCiAgIGFjY2Vzc2VzIHRvIHRoZW0uICBUaGlzIGlzIHRydWUgZXZlbiB3aGVuIHRob3NlIGFycmF5cyBhcmUgYWNjZXNzZWQKICAgZnJvbSBzb21lIG90aGVyIHNoYXJlZCBvYmplY3Qgd2hpY2ggd2FzIGNvbXBpbGVkIHdpdGggZGVidWcKICAgaW5mby48L3A+CjxwPkF0IHRoZSBtb21lbnQgU0dDaGVjayBhY2NlcHRzIG9iamVjdHMgbGFja2luZyBkZWJ1Z2luZm8KICAgd2l0aG91dCBjb21tZW50LiAgVGhpcyBpcyBkYW5nZXJvdXMgYXMgaXQgY2F1c2VzIFNHQ2hlY2sgdG8KICAgc2lsZW50bHkgc2tpcCBzdGFjayBhbmQgZ2xvYmFsIGNoZWNraW5nIGZvciBzdWNoIG9iamVjdHMuICBJdCB3b3VsZAogICBiZSBiZXR0ZXIgdG8gcHJpbnQgYSB3YXJuaW5nIGluIHN1Y2ggY2lyY3Vtc3RhbmNlcy48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkNvdmVyYWdlOiBTR0NoZWNrIGRvZXMgbm90IGNoZWNrIHdoZXRoZXIgdGhlIGFyZWFzIHJlYWQKICAgb3Igd3JpdHRlbiBieSBzeXN0ZW0gY2FsbHMgZG8gb3ZlcnJ1biBzdGFjayBvciBnbG9iYWwgYXJyYXlzLiAgVGhpcwogICB3b3VsZCBiZSBlYXN5IHRvIGFkZC48L3A+PC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+UGxhdGZvcm1zOiB0aGUgc3RhY2svZ2xvYmFsIGNoZWNrcyB3b24ndCB3b3JrIHByb3Blcmx5IG9uCiAgIFBvd2VyUEMsIEFSTSBvciBTMzkwWCBwbGF0Zm9ybXMsIG9ubHkgb24gWDg2IGFuZCBBTUQ2NCB0YXJnZXRzLgogICBUaGF0J3MgYmVjYXVzZSB0aGUgc3RhY2sgYW5kIGdsb2JhbCBjaGVja2luZyByZXF1aXJlcyB0cmFja2luZwogICBmdW5jdGlvbiBjYWxscyBhbmQgZXhpdHMgcmVsaWFibHksIGFuZCB0aGVyZSdzIG5vIG9idmlvdXMgd2F5IHRvIGRvCiAgIGl0IG9uIEFCSXMgdGhhdCB1c2UgYSBsaW5rIHJlZ2lzdGVyIGZvciBmdW5jdGlvbiByZXR1cm5zLgogICA8L3A+PC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Um9idXN0bmVzczogcmVsYXRlZCB0byB0aGUgcHJldmlvdXMgcG9pbnQuICBGdW5jdGlvbgogICBjYWxsL2V4aXQgdHJhY2tpbmcgZm9yIFg4NiBhbmQgQU1ENjQgaXMgYmVsaWV2ZWQgdG8gd29yayBwcm9wZXJseQogICBldmVuIGluIHRoZSBwcmVzZW5jZSBvZiBsb25nam1wcyB3aXRoaW4gdGhlIHNhbWUgc3RhY2sgKGFsdGhvdWdoCiAgIHRoaXMgaGFzIG5vdCBiZWVuIHRlc3RlZCkuICBIb3dldmVyLCBjb2RlIHdoaWNoIHN3aXRjaGVzIHN0YWNrcyBpcwogICBsaWtlbHkgdG8gY2F1c2UgYnJlYWthZ2UvY2hhb3MuPC9wPjwvbGk+CjwvdWw+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MSI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+CjxhIG5hbWU9InNnLW1hbnVhbC50b2RvLXVzZXItdmlzaWJsZSI+PC9hPjExLjYuoFN0aWxsIFRvIERvOiBVc2VyLXZpc2libGUgRnVuY3Rpb25hbGl0eTwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkV4dGVuZCBzeXN0ZW0gY2FsbCBjaGVja2luZyB0byB3b3JrIG9uIHN0YWNrIGFuZCBnbG9iYWwgYXJyYXlzLjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5QcmludCBhIHdhcm5pbmcgaWYgYSBzaGFyZWQgb2JqZWN0IGRvZXMgbm90IGhhdmUgZGVidWcgaW5mbwogICBhdHRhY2hlZCwgb3IgaWYsIGZvciB3aGF0ZXZlciByZWFzb24sIGRlYnVnIGluZm8gY291bGQgbm90IGJlCiAgIGZvdW5kLCBvciByZWFkLjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5BZGQgc29tZSBoZXVyaXN0aWMgZmlsdGVyaW5nIHRoYXQgcmVtb3ZlcyBvYnZpb3VzIGZhbHNlCiAgICAgcG9zaXRpdmVzLiAgVGhpcyB3b3VsZCBiZSBlYXN5IHRvIGRvLiAgRm9yIGV4YW1wbGUsIGFuIGFjY2VzcwogICAgIHRyYW5zaXRpb24gZnJvbSBhIGhlYXAgdG8gYSBzdGFjayBvYmplY3QgYWxtb3N0IGNlcnRhaW5seSBpc24ndCBhCiAgICAgYnVnIGFuZCBzbyBzaG91bGQgbm90IGJlIHJlcG9ydGVkIHRvIHRoZSB1c2VyLjwvcD48L2xpPgo8L3VsPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDEiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgo8YSBuYW1lPSJzZy1tYW51YWwudG9kby1pbXBsZW1lbnRhdGlvbiI+PC9hPjExLjcuoFN0aWxsIFRvIERvOiBJbXBsZW1lbnRhdGlvbiBUaWR5aW5nPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+SXRlbXMgbWFya2VkIENSSVRJQ0FMIGFyZSBjb25zaWRlcmVkIGltcG9ydGFudCBmb3IgY29ycmVjdG5lc3M6Cm5vbi1maXhhZ2Ugb2YgdGhlbSBpcyBsaWFibGUgdG8gbGVhZCB0byBjcmFzaGVzIG9yIGFzc2VydGlvbiBmYWlsdXJlcwppbiByZWFsIHVzZS48L3A+CjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPiBzZ19tYWluLmM6IFJlZGVzaWduIGFuZCByZWltcGxlbWVudCB0aGUgYmFzaWMgY2hlY2tpbmcKICAgYWxnb3JpdGhtLiAgSXQgY291bGQgYmUgZG9uZSBtdWNoIGZhc3RlciB0aGFuIGl0IGlzIC0tIHRoZSBjdXJyZW50CiAgIGltcGxlbWVudGF0aW9uIGlzbid0IHZlcnkgZ29vZC4KICAgPC9wPjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPiBzZ19tYWluLmM6IEltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBzdGFjayAvIGdsb2JhbAogICBjaGVja3MgYnkgZG9pbmcgc29tZSB1cC1mcm9udCBmaWx0ZXJpbmcgdG8gaWdub3JlIHJlZmVyZW5jZXMgaW4KICAgYXJlYXMgd2hpY2ggIm9idmlvdXNseSIgY2FuJ3QgYmUgc3RhY2sgb3IgZ2xvYmFscy4gIFRoaXMgd2lsbAogICByZXF1aXJlIHVzaW5nIGluZm9ybWF0aW9uIHRoYXQgbV9hc3BhY2VtZ3Iga25vd3MgYWJvdXQgdGhlIGFkZHJlc3MKICAgc3BhY2UgbGF5b3V0LjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5zZ19tYWluLmM6IGZpeCBjb21wdXRlX0lJX2hhc2ggdG8gbWFrZSBpdCBhIGJpdCBtb3JlIHNlbnNpYmxlCiAgIGZvciBwcGMzMi82NCB0YXJnZXRzIChleGNlcHQgdGhhdCBzZ18gZG9lc24ndCB3b3JrIG9uIHBwYzMyLzY0CiAgIHRhcmdldHMsIHNvIHRoaXMgaXMgYSBiaXQgYWNhZGVtaWMgYXQgdGhlIG1vbWVudCkuPC9wPjwvbGk+CjwvdWw+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdj4KPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KPHRyPgo8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgo8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRoLW1hbnVhbC5odG1sIj4mbHQ7Jmx0O6AxMC6gREhBVDogYSBkeW5hbWljIGhlYXAgYW5hbHlzaXMgdG9vbDwvYT6gPC90ZD4KPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPlVwPC9hPjwvdGQ+Cjx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImJidi1tYW51YWwuaHRtbCI+MTIuoEJCVjogYW4gZXhwZXJpbWVudGFsIGJhc2ljIGJsb2NrIHZlY3RvciBnZW5lcmF0aW9uIHRvb2ygJmd0OyZndDs8L2E+CjwvdGQ+CjwvdHI+Cjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KPC90YWJsZT4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=