PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KPGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KPHRpdGxlPkVjbGlwc2UgZXZlbnRzIGFyY2hpdmU8L3RpdGxlPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2RlZmF1bHRfc3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CjwvaGVhZD4KPGJvZHkgdGV4dD0iIzAwMDAwMCIgYmdjb2xvcj0iI2ZmZmZmZiIgbGluaz0iIzAwMDBlZSIgdmxpbms9IiM1NTFhOGIiIGFsaW5rPSIjZmYwMDAwIj4KJm5ic3A7IAo8dGFibGUgQk9SREVSPTAgQ0VMTFNQQUNJTkc9NSBDRUxMUEFERElORz0yIFdJRFRIPSIxMDAlIiA+CiAgPHRyPiAKICAgIDx0ZCBBTElHTj1MRUZUIHdpZHRoPSI2MiUiPjxmb250IGNsYXNzPWluZGV4dG9wPmVjbGlwc2UgZXZlbnRzIGFyY2hpdmU8L2ZvbnQ+PGJyPgogICAgICA8Zm9udCBjbGFzcz1pbmRleHN1Yj4uLi48L2ZvbnQ+PC90ZD4KICAgIDx0ZCBXSURUSD0iMzglIj48aW1nIFNSQz0iLi4vaW1hZ2VzL0lkZWEuanBnIiBIU1BBQ0U9NTAgaGVpZ2h0PTg2IHdpZHRoPTEyMCBhbGlnbj1DRU5URVI+PC90ZD4KICA8L3RyPgo8L3RhYmxlPgo8YnI+Cjx0YWJsZSBCT1JERVI9MCBDRUxMU1BBQ0lORz01IENFTExQQURESU5HPTIgV0lEVEg9IjEwMCUiID4KICA8dHI+IAogICAgPHRkIEFMSUdOPUxFRlQgVkFMSUdOPVRPUCBDT0xTUEFOPSIyIiBCR0NPTE9SPSIjMDA4MEMwIj48Yj48Zm9udCBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiIGNvbG9yPSIjRkZGRkZGIj4gCiAgICAgIEV2ZW50cyAyMDA1PC9mb250PjwvYj48L3RkPgogIDwvdHI+CjwvdGFibGU+Cjx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz01IGNlbGxwYWRkaW5nPTIgd2lkdGg9IjEwMCUiID4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+RGVjZW1iZXIgMjAwNTwvYj4gLSBSQ1AgVHJhaW5pbmcgQWxsaWFuY2UsIFN0dXR0Z2FydCwgCiAgICAgIEdlcm1hbnk8YnI+CiAgICAgIDxicj4KICAgICAgRGVjZW1iZXIgMTItMTUgLSA8YSBocmVmPSJodHRwOi8vd3d3LnJjcC10cmFpbmluZy5jb20vaW5kZXhfZW4ucGhwP3BhZ2U9c2NodWx1bmdlbi5waHAmYW1wO3N1Yj1iYXNpY3MucGhwJmFtcDttb2Q9cmNwIiB0YXJnZXQ9Il9ibGFuayI+UHJvZmVzc2lvbmFsIAogICAgICBDbGllbnQgRGV2ZWxvcG1lbnQgd2l0aCBSQ1A8L2E+IDxicj4KICAgICAgRGVjZW1iZXIgMTktMjAgLSA8YSBocmVmPSJodHRwOi8vd3d3LnJjcC10cmFpbmluZy5jb20vaW5kZXhfZW4ucGhwP3BhZ2U9c2NodWx1bmdlbi5waHAmYW1wO3N1Yj1yY3Bub3Rlcy5waHAiIHRhcmdldD0iX2JsYW5rIj5FbnRlcnByaXNlIAogICAgICBBcHBsaWNhdGlvbnMgd2l0aCBSQ1AtRnJvbnRlbmQgYW5kIEoyRUUtQmFja2VuZDwvYT4gPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5EZWNlbWJlciAxMi0xNjwvYj4sIDxhIGhyZWY9Imh0dHA6Ly93d3cuamF2YXBvbGlzLmNvbS9jb25mbHVlbmNlL2Rpc3BsYXkvSlAwNS9Ib21lIiB0YXJnZXQ9Il9ibGFuayI+SmF2YVBvbGlzIAogICAgICAyMDA1PC9hPiwgQW50d2VycCwgQmVsZ2l1bTxicj4KICAgICAgPGJyPgogICAgICA8Yj5FY2xpcHNlIFJDUCBCb0YgLSBNb25kYXksIERlY2VtYmVyIDEydGgsIDIxOjMwIC0gMjI6MzAgPC9iPjxicj4KICAgICAgSWYgeW91J3JlIGJ1aWxkaW5nIEVjbGlwc2UgUkNQIEFwcGxpY2F0aW9ucyBvciBhcmUgaW50ZXJlc3RlZCBpbiBidWlsZGluZyAKICAgICAgdGhlbSwgYmUgc3VyZSB0byBhdHRlbmQgdGhpcyBCb0Ygb24gTW9uZGF5IGV2ZW5pbmcuIFRoZSBzZXNzaW9uIHdpbGwgc3RhcnQgCiAgICAgIHdpdGggYSBzaG9ydCBpbnRyb2R1Y3Rpb24gYnkgV2F5bmUgQmVhdG9uIGRlc2NyaWJpbmcgRWNsaXBzZSBSQ1AgYW5kIHRoZW4gCiAgICAgIHRoZSBmbG9vciB3aWxsIGJlIG9wZW4gZm9yIGRpc2N1c3NpbmcgaXNzdWVzLCBpZGVhcyBhbmQgc29sdXRpb25zIHJlbGF0ZWQgCiAgICAgIHRvIHJpY2ggY2xpZW50IGRldmVsb3BtZW50IHVzaW5nIEVjbGlwc2UuIDxicj4KICAgICAgPHA+PGI+PGEgaHJlZj0iaHR0cDovL3dpa2kuamF2YXBvbGlzLmNvbS9jb25mbHVlbmNlL2Rpc3BsYXkvSlAwNS9FY2xpcHNlJTJCaW4lMkJBY3Rpb24iIHRhcmdldD0iX2JsYW5rIj5FY2xpcHNlIAogICAgICAgIGluIEFjdGlvbiA8L2E+PC9iPiAtIFR1ZXNkYXksIERlY2VtYmVyIDEzdGgsIDk6MzAgLSAxNzowMCA8YnI+CiAgICAgIDwvcD4KICAgICAgPHA+Sm9pbiB1cyBmb3IgYSBkYXkgb2YgaW5mb3JtYXRpb24gcGFja2VkIHNlc3Npb25zIG9uIEVjbGlwc2UhIDwvcD4KICAgICAgPHA+RGlyayBCYWV1bWVyIC0gPGk+VGhlIEphdmEgRGV2ZWxvcG1lbnQgVG9vbHMgKEpEVCk8L2k+PGJyPgogICAgICAgIE5pa2xhcyBMaW5kbWFuIC0gPGk+RXhwbG9yaW5nIHRoZSBFY2xpcHNlIHByb2plY3RzIGF0IEVTT0M8L2k+PGJyPgogICAgICAgIE51bm8gU2ViYXN0aWFvIC0gPGk+VXNlIG9mIEVjbGlwc2UgaW4gU3BhY2VjcmFmdCBTaW11bGF0aW9uPC9pPjxicj4KICAgICAgICBTaGF1biBTbWl0aCAtIDxpPkhlbGxvIERhbGkhIEVudGVycHJpc2UgSmF2YUJlYW5zIChFSkIpIDMuMCBPYmplY3QgUmVsYXRpb25zaGlwIAogICAgICAgIE1hcHBpbmcgdG9vbHM8L2k+PGJyPgogICAgICAgIEphc29uIFdlYXRoZXJzYnkgLSA8aT5MZXZlcmFnaW5nIGFuZCBFeHRlbmRpbmcgQklSVCBmb3IgUmVwb3J0aW5nIGluIEphdmEgCiAgICAgICAgQXBwbGljYXRpb25zPC9pPjxicj4KICAgICAgICBKb2NoZW4gS3JhdXNlIC0gPGk+V2hhdCdzIG5ldyBpbiBXZWJUb29scyAxLjA/PC9pPjxicj4KICAgICAgICBGcmFuayBHZXJoYXJkdCAtIDxpPkVjbGlwc2UgTW9kZWxpbmcgRnJhbWV3b3JrIChFTUYpIGluIEFjdGlvbjwvaT48YnI+CiAgICAgICAgV2F5bmUgQmVhdG9uIC0gPGk+QnVpbGRpbmcgUmljaCBDbGllbnRzIHdpdGggRWNsaXBzZSBSQ1A8L2k+PGJyPgogICAgICAgIDxicj4KICAgICAgICA8Yj5Cb29rcyBhdCBFY2xpcHNlIGluIEFjdGlvbiA8L2I+PGJyPgogICAgICAgIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaGFzIGdlbmVyb3VzbHkgZG9uYXRlZCBjb3BpZXMgb2YgdGhlIE1jQWZmZXIvTGVtaWV1eCwgCiAgICAgICAgIkVjbGlwc2UgUmljaCBDbGllbnQgUGxhdGZvcm0iIGJvb2sgd2hpY2ggd2lsbCBiZSBkaXN0cmlidXRlZCBhdCB0aGUgRWNsaXBzZSAKICAgICAgICBSQ1Agc2Vzc2lvbiBhdCBFY2xpcHNlIEluIEFjdGlvbiEgPC9wPgogICAgICA8cD48Yj5TcGVjaWFsIGludml0YXRpb24gdG8gRWNsaXBzZSBQbHVnLUluIERldmVsb3BlcnMhPGJyPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmphdmFwb2xpcy5jb20vY29uZmx1ZW5jZS9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTE1MDM2IiB0YXJnZXQ9Il9ibGFuayI+UGx1Zy1pbiAKICAgICAgICBCYXphYXI8L2E+PC9iPiAtIE1vbmRheSwgRGVjZW1iZXIgMTJ0aCwgMTQ6MDAgLSAxOTowMDwvcD4KICAgICAgPHA+VGhlIFBsdWctSW4gQmF6YWFyIGlzIG9wZW4gdG8gZXZlcnlvbmUgYXR0ZW5kaW5nIEphdmFQb2xpcywgYnV0IHdlJ2QgCiAgICAgICAgbGlrZSB0byBleHRlbmQgYSBzcGVjaWFsIGludml0YXRpb24gdG8gRWNsaXBzZSBQbHVnLWluIERldmVsb3BlcnMuIEVjbGlwc2UgCiAgICAgICAgaGFzIGRldmVsb3BlZCBhIHJpY2ggZWNvc3lzdGVtIGluIEV1cm9wZSBhbmQgd2UnZCBsaWtlIHRvIGdpdmUgeW91IHRoZSAKICAgICAgICBvcHBvcnR1bml0eSB0byBtZWV0IG9uZSBhbm90aGVyLCBBUEkgdG8gQVBJLiBZb3UnbGwgaGF2ZSBhIGNoYW5jZSB0byBleHBlcmllbmNlIAogICAgICAgIGRlbW9zIG9mIGVhY2ggb3RoZXIncyBFY2xpcHNlIGJhc2VkIHBsdWctaW5zIGFuZCBwcm9qZWN0cywgdG8gZGlzY3VzcyAKICAgICAgICBpc3N1ZXMgYW5kIHNvbHV0aW9ucyBhbmQgZnV0dXJlIGRpcmVjdGlvbnMuIDwvcD4KICAgICAgPHA+QWxsIHlvdSdsbCBuZWVkIHRvIGJyaW5nIGlzIHlvdXIgbGFwdG9wLCBsb2FkZWQgd2l0aCB5b3VyIHBsdWctaW4gYW5kIAogICAgICAgIGEgc2hvcnQgZGVtby4gV2UnbGwgcHJvdmlkZSBhIHBsYWNlIHRvIHBsdWctaW4gc28geW91IGNhbiBkZW1vIGluIHNtYWxsIAogICAgICAgIGdyb3Vwcy4gV2UnbGwgaGF2ZSBzcGFjZSBmb3IgeW91IHRvIGhhbmcgYSBwb3N0ZXIsIGEgZ3JlYXQgd2F5IHRvIGludHJvZHVjZSAKICAgICAgICB5b3Vyc2VsZiB0byB5b3VyIGZlbGxvdyBkZXZlbG9wZXJzIGFuZCBnZXQgdGhlIGNvbnZlcnNhdGlvbnMgc3RhcnRlZC4gCiAgICAgICAgSWYgeW91IHdvdWxkIGxpa2UgdXMgdG8gcmVzZXJ2ZSBhIHNwYWNlIGZvciB5b3UgYW5kIHlvdXIgbGFwdG9wLCAoYW5kIAogICAgICAgIGEgcG9zdGVyKSBhbGwgeW91IG5lZWQgdG8gZG8gaXMgc2lnbiB1cCBvbiB0aGUgSmF2YVBvbGlzIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmphdmFwb2xpcy5jb20vY29uZmx1ZW5jZS9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTE1MDM2IiB0YXJnZXQ9Il9ibGFuayI+UGx1Z2luIAogICAgICAgIEJhemFhciBXaWtpPC9hPi4gPC9wPgogICAgICA8cD48Yj5Bbm5vdWNpbmcgQm9vayBEcmF3cyBhdCB0aGUgUGx1Zy1pbiBCYXphYXIhIDwvYj4tIE1vbmRheSBEZWNlbWJlciAKICAgICAgICAxMnRoLCAxNDowMCAtIDE5OjAwIDxicj4KICAgICAgICBUaGFua3MgdG8gZ2VuZXJvdXMgZG9uYXRpb25zIGJ5IEFkZGlzb24tV2VzbGV5LCBkUHVua3QgVmVybGFnIGFuZCBPJ1JlaWxseSAKICAgICAgICBCb29rcywgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB3aWxsIGJlIHJhZmZsaW5nIG9mZiB0aGVzZSB0aXRsZXMgYXQgdGhlIAogICAgICAgIFBsdWctSW4gQmF6YWFyOiA8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+RWNsaXBzZSBJREUgUG9ja2V0IEd1aWRlLCBieSBFZCBCdXJuZXR0ZSA8L2xpPgogICAgICAgIDxsaT5KYXZhLUVudHdpY2tsdW5nIG1pdCBFY2xpcHNlIDMuMSwgYnkgQmVydGhvbGQgRGF1bTwvbGk+CiAgICAgICAgPGxpPlJpY2gtQ2xpZW50LUVudHdpY2tsdW5nIG1pdCBFY2xpcHNlIDMuMSwgYnkgQmVydGhvbGQgRGF1bSA8L2xpPgogICAgICAgIDxsaT5UaGUgQWRkaXNvbi1XZXNsZXkgRWNsaXBzZSBTZXJpZXMgPC9saT4KICAgICAgPC91bD4KICAgICAgPHA+PGk+TW9yZSBhYm91dCB0aGUgQmF6YWFyPC9pPjxicj4KICAgICAgICBUaGUgQmF6YWFyIGlzIG1lYW50IHRvIGJlIGp1c3QgdGhhdCAtIGEgY2hhbmNlIHRvIHdhbmRlciBhbW9uZ3N0IG1hbnkgCiAgICAgICAgZGlmZmVyZW50IEVjbGlwc2UgYmFzZWQgcGx1Zy1pbnMsIHByb2R1Y3RzIGFuZCBwcm9qZWN0cy4gV2Ugd2lsbCBoYXZlIAogICAgICAgIGEgaGFuZGZ1bCBvZiBtb3JlIHRyYWRpdGlvbmFsLWxvb2tpbmcgZGVtbyBzbG90cyBvZiAyMCBtaW51dGVzLCB3aXRoIGEgCiAgICAgICAgcHJvamVjdG9yIGFuZCBzY3JlZW4uIEJ1dCwgd2UnZCBsaWtlIHlvdSwgdGhlIHBhcnRpY3BhbnRzIHRvIHRlbGwgdXMgd2hpY2ggCiAgICAgICAgZGVtb3MgYXJlIHRoZSAnbXVzdC1zZWUncyBmb3IgZXZlcnlvbmUgYXQgdGhlIGJhemFhci4gVm90aW5nIHRha2VzIHBsYWNlIAogICAgICAgIGxpdmUsIG9uIHNpdGUgLSBzbyBkb24ndCBmb3JnZXQgdG8gY29tZSBhbmQgc3VwcG9ydCB5b3VyIGZhdm91cml0ZSBwbHVnLWluITwvcD4KICAgICAgPHA+U2VlIHlvdSB0aGVyZSE8L3A+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkRlY2VtYmVyIDEwLTE0PC9iPiwgPGEgaHJlZj0iaHR0cDovL2FwYWNoZWNvbi5jb20vMjAwNS9VUy9pbmRleC5odG1sL2U9TWpBd05TOVZVdyIgdGFyZ2V0PSJfYmxhbmsiPkFwYWNoZUNvbiAKICAgICAgVVMgMjAwNTwvYT4sIFNhbiBEaWVnbywgVVNBIDxicj4KICAgICAgPGJyPgogICAgICBTYXR1cmRheSwgRGVjZW1iZXIgMTB0aCAtIEplYW4gQW5kZXJzb24gLSA8aT5BcGFjaGUgRGVyYnk6IEhhbmRzIE9uIFR1dG9yaWFsIAogICAgICA8L2k+PGJyPgogICAgICBXZWRuZXNkYXksIERlY2VtYmVyIDE0dGggLSBKZWZmIE1jQWZmZXIgLSA8aT5UaGUgRnV0dXJlIG9mIE9wZW4tU291cmNlIE9TR2kgCiAgICAgIDwvaT48YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkRlY2VtYmVyIDgtMTA8L2I+LCA8YSBocmVmPSJodHRwOi8vd3d3Lmp1Z3MuZGUvYWp3Yy9pbmRleC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+SmF2YSAKICAgICAgVXNlciBHcm91cCBTdHV0dGdhcnQgLSBBc3BlY3RKIFdpbnRlciBDYW1wPC9hPiA8YnI+CiAgICAgIERpZSBKYXZhIFVzZXIgR3JvdXAgU3R1dHRnYXJ0IGzkZHQgZWluLCBuZXVlIFdlZ2UgaW4gZGVyIFByb2dyYW1taWVydW5nIAogICAgICB6dSBnZWhlbiB1bmQgbWl0IEFzcGVjdEogaW4gZGllIFdlbHQgZGVyIEFzcGVrdG9yaWVudGllcnRlbiBQcm9ncmFtbWllcnVuZyAKICAgICAgKEFPUCkgdm9yenVkcmluZ2VuLiBad2VpIFRhZ2UgbGFuZyB3ZXJkZW4gU2llIGRpZSBHZWxlZ2VuaGVpdCBoYWJlbiwgZGllIAogICAgICBTcHJhY2hlIEFzcGVjdEoga2Vubnp1bGVybmVuIHVuZCBhdXN6dXByb2JpZXJlbi4gU2llIHdlcmRlbiBlaWdlbmUgQXNwZWt0ZSAKICAgICAgZW50d2lja2VsbiwgdW0gZGllIFNwcmFjaGUgYmVzc2VyIHp1IHZlcnN0ZWhlbiB1bmQgU2llIHdlcmRlbiBm/HIgbWFuY2hlIAogICAgICBQcm9ibGVtZSBlaW5lIGFuZGVyZSBTaWNodHdlaXNlIGVpbm5laG1lbi4gQWxsIGRpZWplbmlnZW4sIGRlbmVuIHp3ZWkgVGFnZSAKICAgICAgenUgd2VuaWcgc2luZCwgaGFiZW4gZGFubiBhbSBkcml0dGVuIFRhZyBkaWUgR2VsZWdlbmhlaXQsIHNpY2ggenUgZWluZW0gCiAgICAgIFRlYW0genVzYW1tZW56dXNjaGxpZd9lbiB1bmQgaW0gV2V0dHN0cmVpdCBtaXQgYW5kZXJlbiBUZWFtcyBpaHJlIGZyaXNjaCAKICAgICAgZXJ3b3JiZW5lbiBLZW5udG5pc3NlIHVtenVzZXR6ZW4uIE5lYmVuIGRlbSBTaWVnZXItVGl0ZWwgYWxzIGJlc3RlcyBBc3BlY3RKLUNvZGluZy1UZWFtIAogICAgICB3aW5rZW4gamVkZSBNZW5nZSBTcGHfIHVuZCBuZXVlIEVyZmFocnVuZ2VuLjxicj4KICAgICAgPGJyPgogICAgICBUaGUgSmF2YSBVc2VyIEdyb3VwIFN0dXR0Z2FydCBpbnZpdGVzIHlvdSB0byBleHBhbmQgaW50byBuZXcgdGVycml0b3J5IGluIAogICAgICBwcm9ncmFtbWluZywgYW5kIHdpdGggQXBlY3RKLCB0byBleHBsb3JlIHRoZSB3b3JsZCBvZiBBc3BlY3QgT3JpZW50ZWQgUHJvZ3JhbW1pbmcgCiAgICAgIChBT1ApLiBPdmVyIHRoZSB0d28gZGF5IHByb2dyYW0sIHlvdSdsbCBoYXZlIHRoZSBvcHBvcnR1bml0eSB0byBnZXQgdG8ga25vdyAKICAgICAgYW5kIHRlc3QgcnVuIEFzcGVjdEouIFlvdSdsbCBkZXZlbG9wIHlvdXIgb3duIEFzcGVjdHMgd2hpY2ggd2lsbCBlbmFibGUgCiAgICAgIHlvdSB0byB1bmRlcnN0YW5kIHRoZSBsYW5ndWFnZSBiZXR0ZXIgYW5kIHRvIGFkb3B0IGEgbmV3IHBlcnNwZWN0aXZlIGZvciAKICAgICAgbWFueSBwcm9ibGVtcy4gT24gdGhlIHRoaXJkIGRheSwgeW91J2xsIGhhdmUgdGhlIGNoYW5jZSB0byBnZXQgdG9nZXRoZXIgCiAgICAgIHdpdGggYSB0ZWFtIHRvIHRlc3QgeW91ciBuZXcga25vd2xlZGdlIGluIGFuIEFzcGVjdEotVGVhbS1Db2RpbmcgY29udGVzdC4gCiAgICAgIFRoZSBjb250ZXN0IHByb21pc2VzIHRvIGJlIGEgZ3JlYXQgZXhwZXJpZW5jZSBhbmQgbG90cyBvZiBmdW4hIDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+RGVjZW1iZXIgODwvYj4gliA8YSBocmVmPSJodHRwOi8vd3d3Lm1jYjMuY29tL2NsaWNrLmFzcD94PTFBRTMyLjQxQkIuNjI0MjExMiIgdGFyZ2V0PSJfYmxhbmsiPlNvZnR3YXJlIAogICAgICBEZXZlbG9wbWVudCBFZGl0b3JpYWwgUGVyc3BlY3RpdmVzIE5ldFNlbWluYXI8L2E+IDxicj4KICAgICAgMTE6MDAgYW0gUGFjaWZpYyAvIDI6MDAgcG0gRWFzdGVybiwgRHVyYXRpb246IDYwLW1pbnV0ZXM8YnI+CiAgICAgIDxicj4KICAgICAgSm9uYXRoYW4gRXJpY2tzb24sIEVkaXRvcmlhbCBEaXJlY3RvciBvZiBDTVAgTWVkaWEncyBTb2Z0d2FyZSBEZXZlbG9wbWVudCAKICAgICAgR3JvdXAgLSA8Yj5BIENvbnZlcnNhdGlvbiB3aXRoIEVyaWNoIEdhbW1hPC9iPjxicj4KICAgICAgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5EZWNlbWJlciAxPC9iPiCWIDxhIGhyZWY9Imh0dHA6Ly9iem1lZGlhLmNvbS93ZWJzZW1pbmFyL3NlbWluYXIyMjE1Lmh0bSIgdGFyZ2V0PSJfYmxhbmsiPlNEIAogICAgICBUaW1lcyBhbmQgQlogTWVkaWEgV2ViIFNlbWluYXI8L2E+IDxicj4KICAgICAgICAxMDowMCBhbSBQYWNpZmljIC8gMTowMCBwbSBFYXN0ZXJuLCBEdXJhdGlvbjogYXBwcm94aW1hdGVseSBvbmUgaG91cjxicj4KICAgICAgPGJyPlNwZWFrZXJzOiBKZWZmIE1jQWZmZXIgYW5kIFdheW5lIEJlYXRvbiAtIDxiPkJ1aWxkaW5nIFJpY2ggQ2xpZW50IEFwcGxpY2F0aW9ucyAKICAgICAgICB3aXRoIHRoZSBFY2xpcHNlIFJpY2ggQ2xpZW50IFBsYXRmb3JtIChSQ1ApPGJyPjxicj4KICAgICAgICA8L2I+CiAgICA8L3RkPgogIDwvdHI+CiAgCiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkRlY2VtYmVyIDE8L2I+IJYgPGEgaHJlZj0iaHR0cDovL3d3dy5qdWdzLmRlL3NpZy1lY2xpcHNlLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5FY2xpcHNlIAogICAgICBTSUcsIEphdmEgVXNlciBHcm91cCBTdHV0dGdhcnQgKEpVR1MpPC9hPiwgU3R1dHRnYXJ0LCBHZXJtYW55IDxicj4KICAgICAgMTg6MzBoIGluIGRlbiBS5HVtZW4gZGVyIFdpcnRzY2hhZnRzZiZvdW1sO3JkZXJ1bmcgUmVnaW9uIFN0dXR0Z2FydCAoV1JTKTxicj4KICAgICAgMS4gRG9taW5payBTY2hhZG93OiBEYXMgWE1MLVNlY3VyaXR5IFBsdWctSW48YnI+CiAgICAgIDIuIE1hcmNvIHZhbiBNZWVnZW46IFNsaW1lIFVNTCB1bmQgVmVsb2NpdHlCdWlsZGVyPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5Ob3ZlbWJlciAxNC0xNzwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LnctamF4LmRlLyIgdGFyZ2V0PSJfYmxhbmsiPlctSkFYIAogICAgICAyMDA1PC9hPiwgTXVuaWNoLCBHZXJtYW55IDxicj4KICAgICAgPGJyPgogICAgICBDaGVjayAKICAgICAgb3V0IHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnctamF4LmRlL2tvbmZlcmVuemVuL3BzZWNvbSxpZCwzMjEsbm9kZWlkLC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSBUcmFjayBhdCBXLUpheDwvYT4hIEVjbGlwc2Ugc2Vzc2lvbnMgaW5jbHVkZTo8YnI+CiAgICAgIDxicj4KICAgICAgQWRyaWFuIENvbHllciAtIDxpPkRlcGVuZGVuY3kgSW5qZWN0aW9uLCBBbm5vdGF0aW9ucywgYW5kIEFzcGVjdHM8L2k+PGJyPgogICAgICBEYW5pZWwgSGlyc2NoZXIgLSA8aT5UaXBwcyAmYW1wOyBUcmlja3MgZiZ1dW1sO3IgZGllIEVudHdpY2tsdW5nIHZvbiBFY2xpcHNlLVBsdWctaW5zPC9pPjxicj4KICAgICAgQmVybmQgS29sYiBhbmQgTWFydGluIExpcHBlcnQgLSA8aT5EaWUgRWNsaXBzZSBSaWNoIENsaWVudCBQbGF0Zm9ybSBpbSBFaW5zYXR6PC9pPjxicj4KICAgICAgRGFuaWVsIE1lZ2VydCAtIDxpPlRleHRlZGl0b3JlbiBpbiBFY2xpcHNlIGVyd2VpdGVybiB1bmQgc2VsYnN0IHNjaHJlaWJlbjwvaT48YnI+CiAgICAgIFRvYmlhcyBXaWRtZXIgLSA8aT5KRFQgdW5kIFJlZmFjdG9yaW5nOiBCZWNvbWUgYSBKYXZhIFRvb2wgU21pdGg8L2k+PGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5Ob3ZlbWJlciAxLTM8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5zdHBjb24uY29tLyIgdGFyZ2V0PSJfYmxhbmsiPjIwMDUgCiAgICAgIFNvZnR3YXJlIFRlc3QgJiBQZXJmb3JtYW5jZSBDb25mZXJlbmNlPC9hPiwgTmV3IFlvcmssIFVTQTxicj4KICAgICAgPGJyPgogICAgICAgIFRodXJzZGF5LCBOb3ZlbWJlciAzcmQgPGJyPgogICAgICAgIEpvZSBUb29tZXkgLSA8aT5UZXN0aW5nIFRvb2xzIEluc2lkZSBFY2xpcHNlPC9pPiA8YnI+CiAgICAgIFZpbmNlIEFkYW0gLSA8aT5Qcm9maWxpbmcgYSBKMkVFIEFwcGxpY2F0aW9uIFVzaW5nIHRoZSBFY2xpcHNlIFRlc3QgYW5kIAogICAgICBQZXJmb3JtYW5jZSBUb29scyBQbGF0Zm9ybTwvaT4gPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDMxIC0gTm92ZW1iZXIgNDwvYj4gLSBBdmFudFNvZnQsIEluYyAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXZhbnRzb2Z0LmNvbS9wdWJsaWN0cmFpbmluZy5hc3B4IiB0YXJnZXQ9Il9ibGFuayI+UHVibGljIAogICAgICBDb3Vyc2U6IERldmVsb3BpbmcgRWNsaXBzZSAzLjAgUGx1Z2lucyA8L2E+IDxicj4KICAgICAgVGhpcyBjb3Vyc2UgY292ZXJzOiA8YnI+CiAgICAgIEVjbGlwc2UgUGx1Zy1pbiBhcmNoaXRlY3R1cmUsIFBsdWctaW4gRGV2ZWxvcG1lbnQgRW52aXJvbm1lbnQgKFBERSksIFRoZSAKICAgICAgU3RhbmRhcmQgV2lkZ2V0IFRvb2xraXQgKFNXVCksIERpYWxvZ3MgYW5kIFdpemFyZHMsIFZpZXdzLCBFZGl0b3JzLCBXb3Jrc3BhY2UgCiAgICAgIFJlc291cmNlIFByb2dyYW1taW5nLCBQcm9jZXNzaW5nIFdvcmtzcGFjZSBDaGFuZ2UgRXZlbnRzLCBNYW5hZ2luZyBSZXNvdXJjZXMgCiAgICAgIHdpdGggTmF0dXJlcyBhbmQgQnVpbGRlcnMsIFJpY2ggQ2xpZW50IFBsYXRmb3JtIChSQ1ApLiBTcGVjaWFsIFRvcGljOiBFbmhhbmNpbmcgCiAgICAgIFZpZXdzLSBEYXRhIFRyYW5zZmVyIHVzaW5nIERyYWcgYW5kIERyb3AgYW5kIENsaXBib2FyZCA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk9jdG9iZXIgMTctMjAgPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly9jb25mZXJlbmNlcy5vcmVpbGx5bmV0LmNvbS9ldXJvb3Njb24vIiB0YXJnZXQ9Il9ibGFuayI+MjAwNSAKICAgICAgTydSZWlsbHkgRXVyb3BlYW4gT3BlbiBTb3VyY2UgQ29udmVudGlvbjwvYT4gQW1zdGVyZGFtLCBUaGUgTmV0aGVybGFuZHMgCiAgICAgIDxicj4KICAgICAgPGJyPgogICAgICBEaXJrIEJhZXVtZXIgLSA8aT5JbnNpZGUgRWNsaXBzZSA8L2k+PGJyPgogICAgICA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk9jdG9iZXIgMTctMjA8L2I+IC0gPGEgaHJlZj0iaHR0cHM6Ly93d3ctOTI3LmlibS5jb20vaWJtL2Nhcy9jYXNjb24vaW5kZXguc2h0bWwiIHRhcmdldD0iX2JsYW5rIj5DQVNDT04gCiAgICAgIDIwMDU8L2E+LCBSaWNobW9uZCBIaWxsL1Rvcm9udG8sIENhbmFkYSA8YnI+CiAgICAgIDxicj4KICAgICAgPGI+V29ya3Nob3BzPC9iPjogPGJyPgogICAgICBNb25kYXkgT2N0b2JlciAxN3RoIDxicj4KICAgICAgSmVmZnJleSBMaXUgYW5kIEVsbGEgQmVsaXNhcmlvIC0gPGk+SGFuZHMtb246IERpdmUgaW50byBFY2xpcHNlIGFuZCB0aGUgCiAgICAgIFdlYiBUb29scyBQbGF0Zm9ybSBQcm9qZWN0PC9pPiA8YnI+CiAgICAgIFBldGVyIE1vb2drLCBSdXBhbSBLdWVobmVyIGFuZCBTZW5nIFBodW5nLUx1IC0gPGk+SGFuZHMtb246IFVzaW5nIFdlYiBTZXJ2aWNlcyAKICAgICAgaW4gdGhlIFdlYiBUb29scyBQbGF0Zm9ybSAoV1RQKTwvaT4gPGJyPgogICAgICBKdWxpZSBXYXRlcmhvdXNlIGFuZCBNaWsgS2Vyc3RlbiAtIDxpPkhhbmRzLW9uOiBBc3BlY3QtT3JpZW50ZWQgUHJvZ3JhbW1pbmcgCiAgICAgIHdpdGggQXNwZWN0SjwvaT4gPGJyPgogICAgICA8YnI+CiAgICAgIFR1ZXNkYXkgT2N0b2JlciAxOHRoIDxicj4KICAgICAgTmljayBCb2xkdCAtIDxpPkhhbmRzLW9uOiBUaGUgRWNsaXBzZSBNb2RlbGluZyBGcmFtZXdvcms6IEVNRiBDb21wb25lbnRzPC9pPjxicj4KICAgICAgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDE3IDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmJzaWFnLmNvbS9pbmRleC5waHA/b3B0aW9uPWNvbV9jb250ZW50JnRhc2s9dmlldyZpZD0xMjAmSXRlbWlkPTE0NyZsYW5nPWVuIiB0YXJnZXQ9Il9ibGFuayI+V29ya3Nob3AgCiAgICAgIEVjbGlwc2UgUkNQPC9hPiwgc3BvbnNvcmVkIGJ5IEJTSSBBRyBhbmQgUG9zdEZpbmFuY2UsIFVuaXZlcnNpdHkgb2YgQmVybiwgCiAgICAgIFN3aXR6ZXJsYW5kIDxicj4KICAgICAgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDE2LTIwPC9iPiwgPGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnLzIwMDUvU2hvd1BhZ2UuZG8/aWQ9SG9tZSIgdGFyZ2V0PSJfYmxhbmsiPk9PUFNMQSAKICAgICAgMjAwNTwvYT4sIFNhbiBEaWVnbywgQ2FsaWZvcm5pYSA8YnI+CiAgICAgIDxicj4KICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnLzIwMDUvU2hvd0V2ZW50LmRvP2lkPTgxMSIgdGFyZ2V0PSJfYmxhbmsiPlR1dG9yaWFsczwvYT4gCiAgICAgIDxicj4KICAgICAgTWFydGluIExpcHBlcnQgLSCgPGk+TWVyY2lsZXNzIFJlZmFjdG9yaW5nIHdpdGggRWNsaXBzZTwvaT4gPGJyPgogICAgICBWZXJvbmlrYSBJcnZpbmUsIFN0ZXZlIE5vcnRob3ZlciAtIKA8aT5FeHRlbmRpbmcgdGhlIFN0YW5kYXJkIFdpZGdldCBUb29sa2l0IAogICAgICAtIGhvdyB0byBjcmVhdGUgeW91ciBvd24gd2lkZ2V0czwvaT4gPGJyPgogICAgICBNYXJjZWxvIFBhdGVybm9zdHJvIC0goDxpPldoYXQgdGhlIEVjbGlwc2UgTW9kZWxpbmcgRnJhbWV3b3JrIChFTUYpIGlzIGFuZCAKICAgICAgaG93IHlvdSBjYW4gdXNlIGl0IGluIHlvdXIgYXBwbGljYXRpb25zPC9pPi4gPGJyPgogICAgICBCam9ybiBGcmVlbWFuLUJlbnNvbiwgRGFyaW4gV3JpZ2h0IC0goDxpPlRoZSBFY2xpcHNlIERlYnVnIEZyYW1ld29yazwvaT4gCiAgICAgIDxicj4KICAgICAgUm9uYWxkIEJvZGtpbiAtIKA8aT5FbnRlcnByaXNlIEFzcGVjdC1PcmllbnRlZCBQcm9ncmFtbWluZyB3aXRoIEFzcGVjdEogCiAgICAgIDwvaT48YnI+CiAgICAgIDxicj4KICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnLzIwMDUvU2hvd0V2ZW50LmRvP2lkPTgxMyIgdGFyZ2V0PSJfYmxhbmsiPldvcmtzaG9wczwvYT4gCiAgICAgIDxicj4KICAgICAgTWFyZ2FyZXQtQW5uZSBTdG9yZXksIE1pY2hhZWwgQnVya2UsIExpLVRlIENoZW5nLCBBbmRyZSB2YW4gZGVyIEhvZWsgPGJyPgogICAgICBFY2xpcHNlIFRlY2hub2xvZ3kgZVhjaGFuZ2UgKEVUWCkgMjAwNSA8YnI+CiAgICAgIDxicj4KICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnLzIwMDUvU2hvd0V2ZW50LmRvP2lkPTgxNSIgdGFyZ2V0PSJfYmxhbmsiPkRlbW9zPC9hPiAKICAgICAgPGJyPgogICAgICBDaHJpc3RpYW4gU2Nod2FyeiwgU3RlaW4gS2FyZSBTa3l0dGVyZW4sIFRyb25kIE1hcml1cyAmT3NsYXNoO3ZzdGV0dW4gLSAKICAgICAgoDxpPkF1dEFUIC0tIEFuIEVjbGlwc2UgUGx1Z2luIGZvciBBdXRvbWF0aWMgQWNjZXB0YW5jZSBUZXN0aW5nIG9mIFdlYiBBcHBsaWNhdGlvbnM8L2k+IAogICAgICA8YnI+CiAgICAgIEFuZHJlYXMgWmVsbGVyIC0goDxpPkF1dG9tYXRlZCBEZWJ1Z2dpbmcgaW4gRWNsaXBzZTwvaT4gPGJyPgogICAgICBMYXdyZW5jZSBNYW5kZWwgLSCgPGk+RWNsaXBzZSBXZWIgYW5kIEoyRUUgRGV2ZWxvcG1lbnQgPC9pPjxicj4KICAgICAgVGhvbWFzIFppbW1lcm1hbm4gLSCgPGk+ZVJPU0U6IEd1aWRpbmcgcHJvZ3JhbW1lcnMgaW4gRWNsaXBzZTwvaT4gPGJyPgogICAgICBLcnp5c3p0b2YgQ3phcm5lY2tpLCBNaWNoYWwgQW50a2lld2ljeiAtIKA8aT5mbXAgYW5kIGZtcDJyc206IEVjbGlwc2UgUGx1Z2lucyAKICAgICAgZm9yIE1vZGVsaW5nIEZlYXR1cmVzIFVzaW5nIE1vZGVsIFRlbXBsYXRlcyA8L2k+PGJyPgogICAgICBIdWkgV3UsIEplZmYgR3JheSAtIKA8aT5UZXN0aW5nIERvbWFpbi1TcGVjaWZpYyBMYW5ndWFnZXMgaW4gRWNsaXBzZSA8L2k+PGJyPgogICAgICBBZGFtIEtpZXp1biwgUm9iZXJ0IEZ1aHJlciwgRnJhbmsgVGlwLCBNYXJrdXMgS2VsbGVyIC0goDxpPkdlbmVyaWNzLVJlbGF0ZWQgCiAgICAgIFJlZmFjdG9yaW5ncyBmb3IgSmF2YSBpbiBFY2xpcHNlPC9pPiA8YnI+CiAgICAgIENhcmwgQWxwaG9uY2UsIEJsYWtlIE1hcnRpbiAtIDxpPkdyZWVuOiBBIGN1c3RvbWl6YWJsZSBVTUwgY2xhc3MgZGlhZ3JhbSAKICAgICAgcGx1Zy1pbiBmb3IgRWNsaXBzZTwvaT4gPGJyPgogICAgICA8YnI+CiAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cub29wc2xhLm9yZy8yMDA1L1Nob3dFdmVudC5kbz9pZD04MDciIHRhcmdldD0iX2JsYW5rIj5Qb3N0ZXJzPC9hPiAKICAgICAgPGJyPgogICAgICBDYXJsIEFscGhvbmNlLCBCbGFrZSBNYXJ0aW4gLSA8aT5HcmVlbjogQSBjdXN0b21pemFibGUgVU1MIGNsYXNzIGRpYWdyYW0gCiAgICAgIHBsdWctaW4gZm9yIEVjbGlwc2U8L2k+IDxicj4KICAgICAgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+T2N0b2JlciAxMS0xNCA8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5vc2dpY29uZ3Jlc3MuY29tL2luZGV4LmFzcCIgdGFyZ2V0PSJfYmxhbmsiPk9TR2kgCiAgICAgICAgQWxsaWFuY2UgMjAwNSBEZXZlbG9wZXIgRm9ydW0gJiBXb3JsZCBDb25ncmVzczwvYT4sIFBhcmlzLCBGcmFuY2UgPGJyPgogICAgICAgIDxicj4KICAgICAgICBLZXlub3RlOiBNaWtlIE1pbGlua292aWNoIC0gPGk+QWNjZWxlcmF0aW5nIE9TR2kgQWRvcHRpb248L2k+PGJyPgogICAgICAgIDxicj4KICAgICAgICBUdWVzZGF5IE9jdG9iZXIgMTF0aDxicj4KICAgICAgICBKZWZmIE1jQWZmZXIgLSA8aT5EZXBsb3lpbmcgT1NHaSBUZWNobm9sb2d5IG9uIGFuIEVjbGlwc2UgUGxhdGZvcm0gRWNsaXBzZSAKICAgICAgICBhcyBhIFJpY2ggQ2xpZW50IFBsYXRmb3JtPC9pPjxicj4KICAgICAgICBNaWth62wgRGVzZXJ0b3QgLSA8aT5BbiBPcGVuIFNvdXJjZSBPU0dpIFBsdWctSW4gZm9yIEVjbGlwc2U8L2k+PGJyPgogICAgICAgIDxicj4KICAgICAgICBXZWRuZXNkYXkgT2N0b2JlciAxMnRoPGJyPgogICAgICAgIEplZmYgTWNBZmZlciAtIDxpPlByb2dyYW1taW5nIGFuIE9TR2kgQXBwbGljYXRpb24gd2l0aCBFY2xpcHNlPC9pPjxicj4KICAgICAgICAoVHJhY2s6IE1heGltaXppbmcgT1NHaSBTZXJ2aWNlIEZyYW1ld29yayBQcm9ncmFtbWluZyApPGJyPgogICAgICAgIFRlZCBIYWJlY2sgYW5kIE1hcmNvIFBpc3RvaWEgLSA8aT5FbmFibGluZyBKYXZhIDIgUnVudGltZSBTZWN1cml0eSB3aXRoIAogICAgICAgIEVjbGlwc2UgUGx1Zy1pbnM8L2k+PGJyPgogICAgICAgIChUcmFjazogU2VjdXJpdHkgJiBDb25maWd1cmFiaWxpdHkgaW4gT1NHaSBEZXBsb3ltZW50cyk8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDEwLTE0IDwvYj4gLSA8YSBocmVmPSJodHRwOi8vaWNhbGVwY3MyMDA1LndlYi5jZXJuLmNoL0ljYWxlcGNzMjAwNS8iIHRhcmdldD0iX2JsYW5rIj5JQ0FMRVBDUyAKICAgICAgMjAwNTwvYT4sIEdlbmV2YSwgU3dpdHplcmxhbmQgPGJyPgogICAgICBUb255IExhbSAtIDxpPkxldmVyYWdpbmcgdGhlIEVjbGlwc2UgRWNvc3lzdGVtIGZvciB0aGUgU2NpZW50aWZpYyBDb21tdW5pdHk8L2k+PGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDEwLTEyPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuamJvc3MuY29tL2V2ZW50cy9qYm9zc3dvcmxkIiB0YXJnZXQ9Il9ibGFuayI+SkJvc3MgCiAgICAgIFdvcmxkPC9hPiwgQmFyY2Vsb25hLCBTcGFpbiA8YnI+CiAgICAgIDxicj4KICAgICAgTW9uZGF5LCBPY3RvYmVyIDEwdGg8YnI+CiAgICAgIE1pY2hhZWwgV2VuaWcgLSA8aT5NaWdyYXRpbmcgTGVnYWN5IFdlYiBBcHBsaWNhdGlvbnMgdG8gYSBtb2Rlcm4gU09BIEFyY2hpdGVjdHVyZSAKICAgICAgYmFzZWQgb24gT3BlbiBTb3VyY2UgTWlkZGxld2FyZTwvaT4gPGJyPgogICAgICA8YnI+CiAgICAgIFR1ZXNkYXksIE9jdG9iZXIgMTF0aDxicj4KICAgICAgTWF4IEFuZGVyc2VuLCBNYXJzaGFsbCBDdWxwZXBwZXIgLSA8aT5KQm9zcyBFY2xpcHNlIElERSA8L2k+PGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDY8L2I+IJYgPGEgaHJlZj0iaHR0cDovL3d3dy5jb21wdXdhcmVPSlguY29tIiB0YXJnZXQ9Il9ibGFuayI+Q29tcHV3YXJlIAogICAgICBPSi5YPC9hPiwgRGV0cm9pdCwgTUksIFVTQTxicj4KICAgICAgPGJyPgogICAgICBLZXlub3RlOiBNaWtlIE1pbGlua292aWNoIC0gPGk+RWNsaXBzZTogV2h5IGl0knMgc28gUG9wdWxhciwgV2hhdJJzIHRvIENvbWU8L2k+PGJyPgogICAgICBIZWFyIE1pa2UgTWlsaW5rb3ZpY2gga2V5bm90ZSB0aGlzIHByZW1pZXIgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgZXZlbnQuIAogICAgICBUb3BpY3MgaW5jbHVkZSBNaWtlknMgdmlld3Mgb24gd2h5IEVjbGlwc2UgaGFzIGJlY29tZSBzbyBwb3B1bGFyLCB0aGUgaW1wYWN0IAogICAgICBvZiB0aGUgRWNsaXBzZSBvcGVuIHNvdXJjZSBwcm9qZWN0cywgd2hhdCBkZXZlbG9wbWVudCBvcmdhbml6YXRpb25zIHNob3VsZCAKICAgICAgbGV2ZXJhZ2UgdG9kYXksIGFuZCB3aGF0IHlvdSBjYW4gZXhwZWN0IHRvIHNlZSBpbiB0aGUgZnV0dXJlLiA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk9jdG9iZXIgNjwvYj4gliA8YSBocmVmPSJodHRwOi8vd3d3Lmp1Z3MuZGUvc2lnLWVjbGlwc2UuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkVjbGlwc2UgCiAgICAgIFNJRywgSmF2YSBVc2VyIEdyb3VwIFN0dXR0Z2FydCAoSlVHUyk8L2E+LCBTdHV0dGdhcnQsIEdlcm1hbnkgPGJyPgogICAgICAxODozMGggaW4gZGVuIFLkdW1lbiBkZXIgaU1FRElDIEdtYkggaW4gRXNzbGluZ2VuIDxicj4KICAgICAgPGJyPgogICAgICAxLiBEaWUgRWNsaXBzZS1EaXN0cmlidXRpb24gWW94b3MsIExlaWYgRnJlbnplbCAoSW5ub29wcmFjdCkgPGJyPgogICAgICAyLiBBc3Bla3RlIGJlaSBSZWFsaXNpZXJ1bmcgdW5kIFJvbGxvdXQgZWluZXIgSjJFRSBBbndlbmR1bmcgbWl0IFJDUC1DbGllbnQgCiAgICAgIHVuZCBKQm9zcy1CYWNrZW5kLCBJbHlhIFNoaW5rYXJlbmtvIChpTUVESUMpIDxicj4KICAgICAgMy4gQ29kZUNhbXA6IEVudHdpY2tsdW5nIGVpbmVyIEoyRUUgQW53ZW5kdW5nIG1pdCBSQ1AtQ2xpZW50IHVuZCBKQm9zcy1CYWNrZW5kIAogICAgICA8YnI+CiAgICAgIDxicj4KICAgICAgV2VubiBTaWUgdGVpbG5laG1lbiBtJm91bWw7Y2h0ZW4sIG1lbGRlbiBTaWUgc2ljaCBiaXR0ZSBiZWkgRHIuIEZyYW5rIEdlcmhhcmR0IAogICAgICBhbiAoZmcgYXQgZnJhbmtnZXJoYXJkdC5jb20pIDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+U2VwdGVtYmVyIDI1LTMwIDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3Lmphb28uZGsvaW5kZXgyLmpzcCIgdGFyZ2V0PSJfYmxhbmsiPkpBT08gCiAgICAgIDIwMDU8L2E+LCBBYXJodXMsIERlbm1hcmsgPGJyPgogICAgICA8YnI+CiAgICAgIFdlZG5lc2RheSBTZXB0ZW1iZXIgMjd0aCA8YnI+CiAgICAgIE5pY2sgRWRnYXIgLSA8aT5BbGwgdGhpcyBhbmQgYnJhaW5zIHRvbzogc21hcnQgY2xpZW50IGRldmVsb3BtZW50IHdpdGggdGhlIAogICAgICBFY2xpcHNlIFJpY2ggQ2xpZW50IFBsYXRmb3JtPC9pPiA8YnI+CiAgICAgIEZyaWRheSBTZXB0ZW1iZXIgMzB0aCA8YnI+CiAgICAgIFBhc2NhbCBSYXBpY2F1bHQsIE5pY2sgRWRnYXIgYW5kIENsYXVzIE55aHVzIENocmlzdGVuc2VuIC0gPGk+VHV0b3JpYWw6IAogICAgICBFY2xpcHNlIFJDUDwvaT48YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPlNlcHRlbWJlciAxNC0xNTwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmphdmF6b25lLm5vL3dlYi9zaG93LmRvP3BhZ2U9MTA3JmFydGljbGVpZD0yOTAwIiB0YXJnZXQ9Il9ibGFuayI+SmF2YVpvbmUgCiAgICAgIDIwMDU8L2E+LCBPc2xvLCBOb3J3YXkgPGJyPgogICAgICA8YnI+CiAgICAgIE1hcmt1cyBIZWJhY2ggLSA8aT5FbnRlcnByaXNlIEphdmEgZGV2ZWxvcG1lbnQgd2l0aCBFY2xpcHNlPC9pPjxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+U2VwdGVtYmVyIDEzLTE1IDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmNoLW9wZW4uY2gvd3N0YWdlLzA1LyIgdGFyZ2V0PSJfYmxhbmsiPkNIL09wZW4sIAogICAgICBXb3Jrc2hvcCBUYWdlPC9hPiwgRVRILCBadXJpY2gsIFN3aXR6ZXJsYW5kIDxicj4KICAgICAgPGJyPgogICAgICBXZWRuZXNkYXksIFNlcHRlbWJlciAxNHRoIDxicj4KICAgICAgRnJhbmsgR2VyaGFyZHQgLSA8aT48YSBocmVmPSJodHRwOi8vd3d3LmNoLW9wZW4uY2gvd3N0YWdlLzA1L3dzNy5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RW50d2lja2x1bmcgCiAgICAgIHZvbiBBbndlbmR1bmdlbiBhdWYgZGVyIEVjbGlwc2UgUmljaCBDbGllbnQgUGxhdGZvcm08L2E+PC9pPiA8YnI+CiAgICAgIDxicj4KICAgICAgPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jaC1vcGVuLmNoL3dzdGFnZS8wNS93czguaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkVjbGlwc2UgCiAgICAgIFBsdWctaW4gQ2xpbmljPC9hPjwvaT4gLSBUaGUgRWNsaXBzZSBQbHVnLWluIGNsaW5pYyBpcyBiYWNrIGF0IHRoZSAvY2gvb3BlbiAKICAgICAgV29ya3Nob3AgRGF5cyEgV2UnbGwgaGF2ZSBhbiBhZnRlcm5vb24gdG8gd29yayB0b2dldGhlciB3aXRoIG1lbWJlcnMgb2YgCiAgICAgIHRoZSBlY2xpcHNlIGNvbW11bml0eSBhbmQgdGhlIGVjbGlwc2UgSkRUIHRlYW0sIHRoYXQgd2lsbCBpbmNsdWRlIGEgZmV3IAogICAgICBzaG9ydCBwcmVzZW50YXRpb25zIGRlc2NyaWJpbmcgc29tZSBvZiB0aGUga2V5IGZlYXR1cmVzIGluIEVjbGlwc2UgMy4xIGFuZCAKICAgICAgdGhlIDMuMiBzdHJlYW0uPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+QXVndXN0IDI5LTMxPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZXdvcmxkLm5ldCIgdGFyZ2V0PSJfYmxhbmsiPkVjbGlwc2UgCiAgICAgICAgV29ybGQgMjAwNTwvYT4sIE5ldyBZb3JrLCBVU0E8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxpPjxiPkNoZWNrIG91dCB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5iem1lZGlhLmNvbS9lY2xpcHNld29ybGQvcHJvZ3JhbS5odG0iIHRhcmdldD0iX2JsYW5rIj5jb25mZXJlbmNlIAogICAgICAgIHByb2dyYW08L2E+ISA8YnI+CiAgICAgICAgPC9iPjwvaT48L3A+CiAgICAgIFRoZSBwcm9ncmFtIGluY2x1ZGVzIGtleSBFY2xpcHNlIHRvcGljcyBmcm9tIGRlYnVnZ2luZyB1c2luZyB0aGUgRWNsaXBzZSAKICAgICAgdG9vbCBzZXQgdG8gbWFzdGVyaW5nIEFzcGVjdC1PcmllbnRlZCBQcm9ncmFtbWluZywgZnJvbSB1c2luZyBKYXZhIGFubm90YXRpb25zIAogICAgICB0byBwZXJmb3JtaW5nIFhNTCBlZGl0aW5nLiBTcGVha2VycyBpbmNsdWRlOiBLb2VuIEFlcnMsIEJhcnJ5IEJ1cmQsIEVyaWMgCiAgICAgIENsYXliZXJnLCBCam9ybiBGcmVlbWFuLUJlbnNvbiwgRWxsaW90dGUgUnVzdHkgSGFyb2xkLCBDaHJpcyBMYWZmcmEsIEFydGh1ciAKICAgICAgUnltYW4sIGFuZCBUaW0gV2FnbmVyLiA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD4gPGI+SnVuZSAyNy0gQXVnIDE1PC9iPiAtIDxhIGhyZWY9Imh0dHBzOi8vY29kaW5nLWNvbnRlc3QucHJvamVjdHMuZGV2MmRldi5iZWEuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPkJFQSdzIAogICAgICAgIEVjbGlwc2UgUGx1Zy1pbiBDb2RpbmcgQ29udGVzdDwvYT4gPGJyPgogICAgICAgIDxicj4KICAgICAgICBUYWtlIHBhcnQgaW4gVGFrZSBwYXJ0IGluIEJFQSdzIEVjbGlwc2UgUGx1Zy1pbiBDb2RpbmcgQ29udGVzdCBhbmQgZGVtb25zdHJhdGUgCiAgICAgICAgeW91ciBjcmVhdGl2aXR5IGFuZCBkZXZlbG9wbWVudCBza2lsbHMgYnkgZXhwb3NpbmcgYW5kIHV0aWxpemluZyBmZWF0dXJlcyAKICAgICAgICBvZiB0aGUgQXF1YUxvZ2ljIGFuZCBXZWJMb2dpYyBQbGF0Zm9ybXMgdGhyb3VnaCBFY2xpcHNlIHBsdWctaW5zLiBGb3IgCiAgICAgICAgZXhhbXBsZSwgcGVyaGFwcyB5b3Ugd2FudCB0byBjb250cm9sIHNvbWUgYXNwZWN0IG9mIERpYWJsbyB1c2luZyB0aGUgSk1YIAogICAgICAgIEFQSXMsIG9yIGNyZWF0ZSBhIHRvb2wgdG8gaW50ZXJhY3Qgd2l0aCBkaXNwYXJhdGUgZGF0YSBzZXJ2aWNlcyBpbiB0aGUgCiAgICAgICAgQXF1YUxvZ2ljIERhdGEgU2VydmljZXMgUGxhdGZvcm0uIFlvdSBoYXZlIHRoZSBjaGFuY2UgdG8gd2luIGEgcHJpemUgdG9vISAKICAgICAgICBQcml6ZXMgZm9yIHRoZSB0b3AgdGhyZWUgd2lubmVycyBhcmU6IDwvcD4KICAgICAgPHVsPgogICAgICAgIDxsaT5GaXJzdCBwcml6ZTogRnJlZSB0cmlwIHRvIEJFQVdvcmxkIChVUykgLSBBcHByb3hpbWF0ZSBSZXRhaWwgVmFsdWUgCiAgICAgICAgICAkNSwwMDAgPC9saT4KICAgICAgICA8bGk+U2Vjb25kIHByaXplOiBTb255IFBTUCB3aXRoIHR3byBnYW1lcyAtIEFwcHJveGltYXRlIFJldGFpbCBWYWx1ZSAkMzgwIAogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPlRoaXJkIHByaXplOiBpUG9kIFNodWZmbGUoNTEyIE1iKSAtIEFwcHJveGltYXRlIFJldGFpbCBWYWx1ZSAkOTkgPC9saT4KICAgICAgPC91bD4KICAgICAgPHA+VXBvbiBjb21wbGV0aW9uIG9mIHRoZSBjb250ZXN0LCBkZXZlbG9wZXJzIGNhbiBhbHNvIGluY3ViYXRlIHRoZWlyIGVudHJpZXMgCiAgICAgICAgaW4gZGV2MmRldiA8YSBocmVmPSJodHRwczovL3d3dy5wcm9qZWN0cy5kZXYyZGV2LmJlYS5jb20vIiB0YXJnZXQ9Il9ibGFuayI+Q29kZVNoYXJlPC9hPiAKICAgICAgICBhbmQgY29sbGFib3JhdGUgd2l0aCBvdGhlciA8YSBocmVmPSJodHRwczovL2VjbGlwc2UucHJvamVjdHMuZGV2MmRldi5iZWEuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPkVjbGlwc2UgCiAgICAgICAgcGx1Zy1pbiBwcm9qZWN0czwvYT4gdG8gZnVydGhlciBlbmhhbmNlIGFuZCBiZW5lZml0IHRoZSBjb21tdW5pdHkuIDxicj4KICAgICAgPC9wPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+SnVseSA4IC0gPC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXhwZXJ0ZW4tZm9ydW0tc3R1dHRnYXJ0LmRlLyIgdGFyZ2V0PSJfYmxhbmsiPjIuIAogICAgICAgIEV4cGVydGVuIEZvcnVtIFN0dXR0Z2FydDwvYT4sIEdlcm1hbnk8YnI+CiAgICAgICAgPGk+RWNsaXBzZS1UZWNobm9sb2dpZW4gVGVjaG5vbG9naWVuIGFscyBCYXNpcyBmJnV1bWw7ciBEZXNrdG9wLUFud2VuZHVuZ2VuPC9pPiAKICAgICAgICAtIEZyYW5rIEdlcmhhcmR0LCBNLiBMaXBwZXJ0PGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPkp1bHkgNy0gPC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuamF2YS1mb3J1bS1zdHV0dGdhcnQuZGUvaW5kZXguaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkphdmEgCiAgICAgICAgRm9ydW0gU3R1dHRnYXJ0PC9hPiwgU3R1dHRnYXJ0LCBHZXJtYW55PC9wPgogICAgICA8cD48aT5EaWUgRWNsaXBzZSBSaWNoIENsaWVudCBQbGF0Zm9ybTwvaT4gLSBNYXJ0aW4gTGlwcGVydCB1bmQgRnJhbmsgR2VyaGFyZHQgCiAgICAgICAgPGJyPgogICAgICAgIDxpPlJlcXVpcmVtZW50cyBNYW5hZ2VtZW50IG1pdCBFY2xpcHNlIDMueCB1bmQgZGVyIE1LUyBJbnRlZ3JpdHkgU3VpdGUgCiAgICAgICAgMjAwNSA8L2k+LSBPbGl2ZXIgQm9laG0gPGJyPgogICAgICAgIDxpPkphdmEgYWxzIE1ha3JvLVNwcmFjaGUgZnVlciBPcGVuT2ZmaWNlIG1pdCBFY2xpcHNlPC9pPiAtIE1hdGhpYXMgU3VwcCAKICAgICAgICA8YnI+CiAgICAgICAgPGk+SmF2YSBTV1QgdW5kIEpGYWNlIGluIGRlciBQcmF4aXM8L2k+IC0gSGFydG11dCBLb2NoZXIgPGJyPgogICAgICAgIDxpPkJlc3NlcmUgQ29kZS1RdWFsaXRhZXQgbWl0IHp1c2FldHpsaWNoZW4gVG9vbHMvRWNsaXBzZS1QbHVnaW5zPC9pPiAKICAgICAgICAtIEhlaWtvIFcuIFJ1cHAgPGJyPgogICAgICAgIDxpPkRlcGVuZGVuY3kgSW5qZWN0aW9uIGluIGRlciBQcmF4aXM6IFNwcmluZywgUGljb0NvbnRhaW5lciB1bmQgRWNsaXBzZSAKICAgICAgICBpbSBWZXJnbGVpY2g8L2k+IC0gTWFydGluIExpcHBlcnQgdW5kIFN0ZWZhbiBSb29jayA8YnI+CiAgICAgICAgPGk+dmlzdWFsIHJ1bGVzIC0gZWZmaXppZW50ZSwgbW9kZWxsZ2V0cmllYmVuZSBFbnR3aWNrbHVuZyB2b24gR2VzY2hhZWZ0c2xvZ2lrIAogICAgICAgIHVuZCBDb2RlZ2VuZXJpZXJ1bmcgZnVlciBKYXZhLSB1bmQgTGVnYWN5LVN5c3RlbWUgYXVzIEVjbGlwc2UgaGVyYXVzPC9pPiAKICAgICAgICAtIFJvbGFuZCBTdHJhdWI8aT48YnI+CiAgICAgICAgRGllIFBlcnNpc3RlbnpzY2hpY2h0IGVpbmVyIEphdmEtQW53ZW5kdW5nIGF1cyBkZW0gVU1MLU1vZGVsbCBpbiBvYmplY3RpRiAKICAgICAgICBtaXQgZGVtIE9wZW4gU291cmNlIEZyYW1ld29yayBIaWJlcm5hdGUgZW50d2lja2VsbjwvaT4gLSBNYXR0aGlhcyBFaGxlcnQgCiAgICAgICAgPGJyPgogICAgICA8L3A+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5KdW5lIDI3LSAzMC0gPC9iPjxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vamF2YW9uZS9zZi9pbmRleC5qc3AiIHRhcmdldD0iX2JsYW5rIj4gCiAgICAgICAgMjAwNSBKYXZhT25lIENvbmZlcmVuY2U8L2E+LCBTYW4gRnJhbnNpc2NvLCBVU0E8L3A+CiAgICAgIDxwPjxiPjxpPlZpc2l0IHRoZSBFY2xpcHNlIGJvb3RoIGF0IEphdmFPbmUhPC9pPjwvYj4gRHJvcCBieSB0byBjaGVjayBvdXQgCiAgICAgICAgRWNsaXBzZSAzLjEgYW5kIHRoZSBuZXcgcmVsZWFzZXMgZnJvbSBXZWIgVG9vbHMsIEJJUlQgYW5kIEFzcGVjdEouPGJyPgogICAgICA8L3A+CiAgICAgIDxwPjxiPkVjbGlwc2UgYXQgSmF2YU9uZTwvYj48YnI+CiAgICAgICAgPGI+Qm9GcyA8L2I+PC9wPgogICAgICA8dWw+CiAgICAgICAgPGxpPlNtYXJ0ZXIgUmljaCBDbGllbnRzIFRocm91Z2ggTWlkZGxld2FyZSBTZXJ2aWNlcyAtIE1pY2hhZWwgWXVhbiwgSkJvc3MsIAogICAgICAgICAgQk9GLTkzNDYgPC9saT4KICAgICAgICA8bGk+QnVpbGRpbmcgWW91ciBPd24gRWNsaXBzZSBQbHVnLUlucyAtIFZpc2h5IEthc2FyLCBCb3JsYW5kIENvcnBvcmF0aW9uIAogICAgICAgICAgQk9GLTk4MzQ8YnI+CiAgICAgICAgPC9saT4KICAgICAgPC91bD4KICAgICAgPHA+PGI+VGVjaG5pY2FsIFNlc3Npb25zPC9iPjwvcD4KICAgICAgPHVsPgogICAgICAgIDxsaT5JbnRyb2R1Y3Rpb24gdG8gRWNsaXBzZSdzIFJpY2ggQ2xpZW50IFBsYXRmb3JtIC0gSmVmZiBHdW50aGVyLCBJbnRhbGdlbnQgCiAgICAgICAgICBUUy01OTc5IDwvbGk+CiAgICAgICAgPGxpPldyaXRlIE9uY2UsIFBsdWcgRXZlcnl3aGVyZTogRXh0ZW5kaW5nIHRoZSBNYWpvciBKYXZhIElERXMgLS0gTmV0QmVhbnMsIAogICAgICAgICAgRWNsaXBzZSwgYW5kIEpCdWlsZGVyIC0gTWFyayBIb3dlIGFuZCBCb2IgRXZhbnMsIEJvcmxhbmQgU29mdHdhcmUgQ29ycG9yYXRpb24gCiAgICAgICAgICBUUy02MTE2IDwvbGk+CiAgICAgICAgPGxpPldoYXQncyBOZXcgaW4gRWNsaXBzZT8gQSBKYXZhIFRlY2hub2xvZ3kgSURFIGFuZCBhIFdob2xlIExvdCBNb3JlIAogICAgICAgICAgLSBNaWtlIE1pbGlua292aWNoIGFuZCBCam9ybiBGcmVlbWFuLUJlbnNvbiwgRWNsaXBzZSBGb3VuZGF0aW9uIFRTLTc2NTQgCiAgICAgICAgPC9saT4KICAgICAgICA8bGk+UnVudGltZSBBc3BlY3RzIFdpdGggSlZNIFN1cHBvcnQgLSBKb2FraW0gRGFobHN0ZWR0IGFuZCBKb25hcyBCb25lciwgCiAgICAgICAgICBCRUEgU3lzdGVtcywgSW5jLiBUUy03NjU5PC9saT4KICAgICAgICA8bGk+SW50cm9kdWN0aW9uIHRvIHRoZSBXZWIgVG9vbHMgUGxhdGZvcm0gUHJvamVjdCAtIFRpbSBXYWduZXIsIEJFQSBTeXN0ZW1zLCAKICAgICAgICAgIEluYy4gVFMtNzkwOTwvbGk+CiAgICAgIDwvdWw+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5KdW5lIDEzLTE1IDwvYj4tIDxhIGhyZWY9Imh0dHA6Ly93d3cuaXgta29uZmVyZW56LmRlLyIgdGFyZ2V0PSJfYmxhbmsiPmlYIAogICAgICAgIEVjbGlwc2UgQ29uZmVyZW5jZSAyMDA1PC9hPiwgSGVpZGVsYmVyZywgR2VybWFueSA8L3A+CiAgICAgIFRoZSBpWCBFY2xpcHNlIENvbmZlcmVuY2UgcmV0dXJucyBmb3IgYSBzZWNvbmQgeWVhciEgRXhwYW5kZWQgdG8gdGhyZWUgZGF5cywgCiAgICAgIHRoaXMgeWVhcidzIGNvbmZlcmVuY2UgZmVhdHVyZXMgYSBmdWxsIGRheSBvZiB0dXRvcmlhbHMsIGZvbGxvd2VkIGJ5IHR3byAKICAgICAgZGF5cyBwYWNrZWQgd2l0aCBwcmVzZW50YXRpb25zIGJ5IGV4cGVydHMgZnJvbSBhcm91bmQgdGhlIGVjbGlwc2UgY29tbXVuaXR5LiAKICAgICAgVGhlIHRlY2huaWNhbCBwcm9ncmFtIGlzIGRlc2lnbmVkIHRvIG1lZXQgeW91ciB0ZWNobm9sb2d5IGludGVyZXN0cyAtIHdoZXRoZXIgCiAgICAgIHlvdSdyZSBhIHNlYXNvbmVkIGVjbGlwc2UgZGV2ZWxvcGVyIG9yIGp1c3QgZ2V0dGluZyBzdGFydGVkLiAKICAgICAgPHA+PHN0cm9uZz5LZXlub3Rlczwvc3Ryb25nPjo8YnI+CiAgICAgICAgTWlrZSBNaWxpbmtvdmljaCAtIDxpPkVjbGlwc2UgVG9kYXkgYW5kIFRvbW9ycm93PC9pPjxicj4KICAgICAgICBFcmljaCBHYW1tYSAtIDxpPk5ldWlna2VpdGVuIGluIEVjbGlwc2UgMy4xPC9pPiA8L3A+CgogICAgICA8cD48c3Ryb25nPiBNb25kYXksIEp1bmUgMTN0aDwvc3Ryb25nPiAtIDxiPlR1dG9yaWFsczwvYj48YnI+CiAgICAgICAgPGJyPgogICAgICAgIEJlcnRob2xkIERhdW0gLSBKYXZhLUVudHdpY2tsdW5nIG1pdCBFY2xpcHNlPGJyPgogICAgICAgIEZyYW5rIEdlcmhhcmR0IC0gQW53ZW5kdW5nc2VudHdpY2tsdW5nIG1pdCBkZXIgRWNsaXBzZSBSaWNoIENsaWVudCBQbGF0Zm9ybTxicj4KICAgICAgICBLYWktVXdlIE1hZXR6ZWwgLSBQbHVnLWluLUVudHdpY2tsdW5nIG1pdCBFY2xpcHNlPGJyPgogICAgICAgIERpcmsgSHVmbmFnZWwvVGltb3RoeSBTdHJvZWJlbGUgLSBNb2RlbGxpZXJ1bmcgbWl0IEVNRjxicj4KICAgICAgICBKb2NoZW4gS3JhdXNlIC0gV2ViZW50d2lja2x1bmcgbWl0IFdlYiBUb29sczxicj4KICAgICAgICBEci4gQm9yaXMgQm9rb3dza2kgLSBFaW5mdWVocnVuZyBpbiBkYXMgR3JhcGhpY2FsIEVkaXRpbmcgRnJhbWV3b3JrPGJyPgogICAgICA8L3A+CiAgICAgIDxwPjxzdHJvbmc+MjA6MDAgPC9zdHJvbmc+PGI+UGx1Z2luIENsaW5pYyA8L2I+IC0gQmVydGhvbGQgRGF1bSwgTGVpZiBGcmVuemVsIAogICAgICAgIGFuZCBtYW55IG1vcmUgcGFydGljaXBhbnRzL2NvYWNoZXMgZnJvbSBhcm91bmQgdGhlIGNvbW11bml0eTxicj4KICAgICAgPC9wPgoKICAgICAgPHA+PHN0cm9uZz5UdWVzZGF5LCBKdW5lIDE0IGFuZCBXZWRuZXNkYXksIEp1bmUgMTU8L3N0cm9uZz48YnI+CiAgICAgICAgVGhlIGlYIHByb2dyYW0gZmVhdHVyZXMga2V5IEVjbGlwc2UgdG9waWNzIGFuZCBzcGVha2Vycy4gSGVyZSBpcyBhIHByZXZpZXcgCiAgICAgICAgb2YgdGhlIHByb2dyYW06IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgTWFydGluIEFlc2NobGltYW5uIC0gRWNsaXBzZSAzLjEgdW5kIEphdmEgMS41PGJyPgogICAgICAgIEhvbGdlciBLb3NjaGVrLyBSb21hbiBTY2hsJm91bWw7bW1lciAtIEVjbGlwc2UgYmVpIEFpcmJ1czxicj4KICAgICAgICBCam9ybiBTdGFjaG1hbm4gLSBFY2xpcHNlLVBsdWdpbi1FbnR3aWNrbHVuZyBtaXQgTWF2ZW48YnI+CiAgICAgICAgRnJhbmsgR2VyaGFyZHQgLSBSQ1AgLSBkaWUgUmljaCBDbGllbnQgUGxhdGZvcm0gdm9uIEVjbGlwc2U8YnI+CiAgICAgICAgSm9jaGVuIEtyYXVzZSAtIERhcyBFY2xpcHNlIFdlYiBUb29scyBQcm9qZWN0PGJyPgogICAgICAgIE1hcnRpbiBSYWVwcGxlIC0gRW50d2lja2x1bmcgdm9uIFdlYiBTZXJ2aWNlcyBtaXQgRWNsaXBzZSAzIDxicj4KICAgICAgICBNYXJjbyBLdXpuaWsvIFJhbW9uIFdhcnRhbGEgLSBFY2xpcHNlIGJlaSBBT0wgRGV1dHNjaGxhbmQ8YnI+CiAgICAgICAgTWF0aGlhcyBTdXBwIC0gT3Blbk9mZmljZSBoZWlyYXRldCBFY2xpcHNlPGJyPgogICAgICAgIDxicj4KICAgICAgICBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5peC1rb25mZXJlbnouZGUvIiB0YXJnZXQ9Il9ibGFuayI+aVggRWNsaXBzZSAKICAgICAgICBDb25mZXJlbmNlIDwvYT4gd2Vic2l0ZSBmb3IgbW9yZSBwcm9ncmFtIGFuZCByZWdpc3RyYXRpb24gZGV0YWlscyEgPGJyPgogICAgICAgIDxicj4KICAgICAgPC9wPgoKICAgICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+SnVuZSAxMC0xMjwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmJpbHRlazIwMDUub3JnLnRyL2JpbHRlazIwMDUub3JnLnRyX25vbl9zc2wvZW5nLyIgdGFyZ2V0PSJfYmxhbmsiPkJpTFRFSyAKICAgICAgICAyMDA1PC9hPiwgRXNraXNlaGlyLCBUdXJrZXkgPGJyPgogICAgICAgIDxicj4KICAgICAgICA8Yj5LZXlub3RlPC9iPjogSm9lIFdpbmNoZXN0ZXIgLSA8aT48YSBocmVmPSJodHRwOi8vd3d3LmJpbHRlazIwMDUub3JnLnRyL2VuZy9wcm9ncmFtLmFzcCIgdGFyZ2V0PSJfYmxhbmsiPkVjbGlwc2UsIAogICAgICAgIEVjbGlwc2UgcGx1Z2luIGRldmVsb3BlbWVudCBhbmQgRWNsaXBzZSBmb3VuZGF0aW9uPC9hPjwvaT4gPGJyPgogICAgICAgIDxicj4KICAgICAgPC9wPgoJICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5KdW5lIDYtMTAgLSA8L2I+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vY2xpY2svd3dkY19zdy5odG1sIiB0YXJnZXQ9Il9ibGFuayI+V1dEQyAKICAgICAgICAyMDA1PC9hPiwgU2FuIEZyYW5jaXNjbywgVVNBIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgSm9pbiBmZWxsb3cgRWNsaXBzZSBkZXZlbG9wZXJzIGZyb20gYXJvdW5kIHRoZSB3b3JsZCBhdCBXb3JsZHdpZGUgRGV2ZWxvcGVycyAKICAgICAgICBDb25mZXJlbmNlIDIwMDUsIEp1bmUgNi0xMCBpbiBTYW4gRnJhbmNpc2NvLiBGZWF0dXJpbmcgaGFuZHMtb24gc2Vzc2lvbnMgCiAgICAgICAgYW5kIG9uZS1vbi1vbmUgY29uc3VsdGluZyBsYWJzLCBXV0RDIDIwMDUgd2lsbCBkZWxpdmVyIHRoZSBpbi1kZXB0aCBpbmZvcm1hdGlvbiAKICAgICAgICB5b3UgbmVlZCBxdWlja2x5IGRldmVsb3AgYW5kIGRlcGxveSB5b3VyIGFwcGxpY2F0aW9uIG9uIE1hYyBPUyBYIHVzaW5nIAogICAgICAgIEVjbGlwc2UuIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgRnJpZGF5IEp1bmUgMTB0aCwgNTowMC02OjMwIC0gVGhlIE5leHQgUGhhc2Ugb2YgRWNsaXBzZSdzIERldmVsb3BtZW50LiAKICAgICAgICA8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+TWF5IDMwLTMxPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuaG9sbGFuZG9wZW4ubmwvaW5kZXguanNwP25yPTg0IiB0YXJnZXQ9Il9ibGFuayI+SG9sbGFuZCAKICAgICAgICBPcGVuIFNvZnR3YXJlIENvbmZlcmVuY2U8L2E+LCBBbXN0ZXJkYW0sIE5MIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGk+T2JqZWN0V2ViPC9pPiAtIEZyYW5jb2lzIExldGVsaWVyIDxicj4KICAgICAgICA8aT5FY2xpcHNlIGFuZCBXZWJ0b29scyBwbGF0Zm9ybTwvaT4gLSBOYWNpIERhaTxicj4KICAgICAgPC9wPgogICAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5NYXkgMjUtMjYgLSA8L2I+PGEgaHJlZj0iaHR0cDovL3d3dy5wYWxtc291cmNlLmNvbS9ldmVudHMvZGV2Y29uMjAwNS9pbmRleC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+UGFsbVNvdXJjZSAKICAgICAgICBNb2JpbGUgU3VtbWl0ICZhbXA7IERldkNvbiAyMDA1PC9hPiwgU2FuIEpvc2UsIENBLCBVU0E8YnI+CiAgICAgICAgPGk+UGFsbSBPUyBEZXZlbG9wZXIgU3VpdGUgaW4gUHJhY3RpY2U8L2k+IC0gUm9iZXJ0IFJob2RlLCBQYWxtU291cmNlLCAKICAgICAgICBJbmMuPGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPk1heSAyNTwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LnNhcC5jb20vYmVsdXgvY29tcGFueS9ldmVudHMvc2RuL2luZGV4LmFzcHgiIHRhcmdldD0iX2JsYW5rIj5Fdm9sdXRpb24gCiAgICAgICAgMjAxMCBUZWNobm9sb2d5IERheTwvYT4sIHByZXNlbnRlZCBieSBTQVAsIEJydXNzZWxzLCBCZWxnaXVtIDxicj4KICAgICAgICBHZXQgdGhlIGxhdGVzdCBuZXdzIG9uIFNBUCBOZXRXZWF2ZXIgZGV2ZWxvcG1lbnQuIEF0dGVuZCBhZHZhbmNlZCAKICAgICAgICBzZXNzaW9ucyBvbiB0b3BpY3MgbGlrZSBOZXRXZWF2ZXIgRGV2ZWxvcGVyIFN0dWRpbywgVmlzdWFsIENvbXBvc2VyLCBDb21wb3NpdGUgCiAgICAgICAgQXBwbGljYXRpb24gRnJhbWV3b3JrIGFuZCBtb3JlIC0gYWxsIGxlZCBieSBleHBlcnRzLiA8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+TWF5IDIyLTI2IC0gPC9iPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNvbmZlcm9ucmVnLmNvbS9SYXRpb25hbFNwZWFrZXIyMDA1L0FnZW5kYS9hZ2VuZGFfbWFpbl9wYWdlLmNmbSIgdGFyZ2V0PSJfYmxhbmsiPlJhdGlvbmFsIAogICAgICAgIFNvZnR3YXJlIERldmVsb3BtZW50IENvbmZlcmVuY2UgMjAwNTwvYT4sIExhcyBWZWdhcywgTlYsIFVTQSA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxpPklCTSBSYXRpb25hbCBQZXJmb3JtYW5jZSBUZXN0ZXIgNi4xIFRpcHMsIFRlY2huaXF1ZXMsIGFuZCBBcmNoaXRlY3R1cmUgCiAgICAgICAgLSA8L2k+IEtlbnQgU2llZmtlcywgRGF2aWQgSG9kZ2VzPGJyPgogICAgICAgIDxpPlRlYW0gRGV2ZWxvcG1lbnQgd2l0aCB0aGUgSUJNIFJhdGlvbmFsIFNvZnR3YXJlIERldmVsb3BtZW50IFBsYXRmb3JtIAogICAgICAgIDwvaT4tIFN0ZWZhbiBTY2h1cm1hbjxicj4KICAgICAgICA8aT5JbnRyb2R1Y3Rpb24gdG8gSUJNIFJhdGlvbmFsIFNvZnR3YXJlIEFyY2hpdGVjdCBDKysgLSA8L2k+S2V2aW4gTXVycGhleTxicj4KICAgICAgICA8aT48YnI+CiAgICAgICAgVW5pZmllZCBDaGFuZ2UgTWFuYWdlbWVudCBhbmQgdGhlIElCTSBSYXRpb25hbCBDbGVhckNhc2UgUmVtb3RlIENsaWVudCAKICAgICAgICA8L2k+LSBIYW5kcy1vbiB3b3Jrc2hvcDxicj4KICAgICAgICA8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+TWF5IDIyLTI1IC0gPC9iPiA8YSBocmVmPSJodHRwOi8vd3d3LndpbmRyaXZlcmV2ZW50cy5jb20vdXNlcmNvbmZlcmVuY2UwNS9pbmRleC5jZm0/YWN0aW9uPXdlbGNvbWUiIHRhcmdldD0iX2JsYW5rIj5UaGUgCiAgICAgICAgV2luZCBSaXZlciAyMDA1IFdvcmxkd2lkZSBVc2VyIENvbmZlcmVuY2U8L2E+LCBPcmxhbmRvLCBGTEEsIFVTQSA8YnI+CiAgICAgICAgPGk+PGEgaHJlZj0iaHR0cDovL3d3dy53aW5kcml2ZXJldmVudHMuY29tL3VzZXJjb25mZXJlbmNlMDUvL2Rpc3BsYXkvdHJhY2tfcG9wdXAuY2ZtP3RyYWNrPXRyYWNrNV9lY2xpcHNlIiB0YXJnZXQ9Il9ibGFuayI+VGhlIAogICAgICAgIEVjbGlwc2UgTW92ZW1lbnQ6IFllc3RlcmRheSwgVG9kYXkgYW5kIFRvbW9ycm93PC9hPjwvaT4gLSBNaWtlIE1pbGlua292aWNoIAogICAgICAgIDxicj4KICAgICAgICA8aT48YSBocmVmPSJodHRwOi8vd3d3LndpbmRyaXZlcmV2ZW50cy5jb20vdXNlcmNvbmZlcmVuY2UwNS8vZGlzcGxheS90cmFja19wb3B1cC5jZm0/dHJhY2s9dHJhY2szX2V4dGVuZGluZ0VjbGlwc2UiIHRhcmdldD0iX2JsYW5rIj5FeHRlbmRpbmcgCiAgICAgICAgRWNsaXBzZSBmb3IgRGV2aWNlIFNvZnR3YXJlIERldmVsb3BtZW50PC9hPjwvaT4gLSBQcmVzZW50ZWQgYnkgV2luZCBSaXZlciAKICAgICAgICA8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+TWF5IDE1LTIxIC0gPC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3Mud3VzdGwuZWR1L2ljc2UwNS9Ib21lL2luZGV4LnNodG1sIiB0YXJnZXQ9Il9ibGFuayI+SUNTRSAKICAgICAgICAyMDA1PC9hPiwgU3QuIExvdWlzLCBNSSwgVVNBPGJyPgogICAgICAgIDxicj4KICAgICAgICBGcmlkYXkgTWF5IDIwdGggPGJyPgogICAgICAgIDxiPktleW5vdGU8L2I+OiBFcmljaCBHYW1tYSAtIDxpPkFnaWxlLCBPcGVuIFNvdXJjZSwgRGlzdHJpYnV0ZWQsIGFuZCAKICAgICAgICBPbi1UaW1lIC0gSW5zaWRlIHRoZSBFY2xpcHNlIERldmVsb3BtZW50IFByb2Nlc3M8L2k+IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGI+RGVtb3M8L2I+OiA8YnI+CiAgICAgICAgPGk+VGhlIENvbmNlcm4gTWFuaXB1bGF0aW9uIEVudmlyb25tZW50PC9pPiAtIE1hdHRoZXcgQ2hhcG1hbiwgV2lsbGlhbSAKICAgICAgICBDaHVuZywgQW5kcmV3IENsZW1lbnQsIFdpbGxpYW0gSGFycmlzb24sIEhlbGVuIEhhd2tpbnMsIGFuZCBTaWFuIEphbnVhcnkgCiAgICAgICAgPGJyPgogICAgICAgIDxpPkNvbnRpbnVvdXMgdGVzdGluZyBpbiBFY2xpcHNlPC9pPiAtIERhdmlkIFNhZmYgYW5kIE1pY2hhZWwgRXJuc3QgPGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPiBNYXkgMTIgPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuY2x1Yi1qYXZhLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5MYSAKICAgICAgICBmb25kYXRpb24gRWNsaXBzZTwvYT4gcHJlc2VudGVkIGJ5IENsdWIgZGVzIHV0aWxpc2F0ZXVycyBkZSBKYXZhLCBQYXJpcywgCiAgICAgICAgRnJhbmNlIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgQXUgY291cnMgZGUgY2Ugc+ltaW5haXJlLCB2b3VzIGTpY291dnJpcmV6IGxlIGZvbmN0aW9ubmVtZW50IGRlIGxhIGZvbmRhdGlvbiAKICAgICAgICBFY2xpcHNlLiBMZXMgb3JhdGV1cnMsIG1lbWJyZXMgZGUgbGEgZm9uZGF0aW9uLCBJQk0sIEJFQSwgT21vbmRvLCBJbG9nIAogICAgICAgIGV0IEF3b21hIHBy6XNlbnRlcm9udCBsZXMgcmFpc29ucyBkZSBsZXVyIGVuZ2FnZW1lbnQgZXQgbGV1ciBjb250cmlidXRpb24uIAogICAgICAgIDxicj4KICAgICAgPC9wPgogICAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5NYXkgMTAtMTE8L2I+LCA8YSBocmVmPSJodHRwOi8vd3d3LnNpZ3MtZGF0YWNvbS5kZS9zZC9rb25ncmVzc2Uvc2V0XzIwMDUvaW5kZXguaHRtIiB0YXJnZXQ9Il9ibGFuayI+U0VUIAogICAgICAgIDIwMDU8L2E+LCBadXJpY2gsIFN3aXR6ZXJsYW5kIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgVHVlc2RheSwgTWF5IDEwdGggPGJyPgogICAgICAgIDxpPkluc2lkZSBFY2xpcHNlIC0gRWluYmxpY2tlIGluIGVpbiBlcmZvbGdyZWljaGVzIE9wZW4tU291cmNlLVByb2pla3Q8L2k+IAogICAgICAgIC0gQW5kciZlYWN1dGU7IFdlaW5hbmQgPGJyPgogICAgICAgIFdlZG5lc2RheSwgTWF5IDExdGg8YnI+CiAgICAgICAgPGk+TW9kZWwtRHJpdmVuIERldmVsb3BtZW50IG1pdCBFY2xpcHNlPC9pPiAtIExvdGhhciBXaWVza2UgPGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPk1heSA5LTEyIC0gPC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuamF4LmRlLyIgdGFyZ2V0PSJfYmxhbmsiPkpBWCAyMDA1PC9hPiwgCiAgICAgICAgRnJhbmtmdXJ0LCBHZXJtYW55PGJyPgogICAgICAgIDxicj4KICAgICAgICBNb25kYXkgTWF5IDl0aCA8YnI+CiAgICAgICAgRWNsaXBzZSBDb2RlIENhbXAgLSBFcmljaCBHYW1tYSwgRGlyayBCYWV1bWVyLCBDaHJpc3RvZiBNYXJ0aSwgVG9iaWFzIAogICAgICAgIFdpZG1lciA8YnI+CiAgICAgICAgV29ya3Nob3A6IERpZSBFY2xpcHNlIFJpY2ggQ2xpZW50IFBsYXRmb3JtIC0gQmVybmQgS29sYiBhbmQgTWFydGluIExpcHBlcnQ8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFR1ZXNkYXkgTWF5IDEwdGggPGJyPgogICAgICAgIEVjbGlwc2U6IFdoYXQncyBuZXcgaW4gMy4xIC0gRXJpY2ggR2FtbWEsIEpvY2hlbiBLcmF1c2UgPGJyPgogICAgICAgIEVjbGlwc2UgbWVldHMgdGhlIFRpZ2VyIC0gRGlyayBCYWV1bWVyIDxicj4KICAgICAgICBEeW5hbWlzY2hlIFBsdWctaW5zIGluIEVjbGlwc2UgMy4wIC0gVGFtbW8gRnJlZXNlIDxicj4KICAgICAgICBLZXlub3RlOiBBIFZpc2lvbiBvZiBFY2xpcHNlIC0gTWlrZSBNaWxpbmtvdmljaCA8YnI+CiAgICAgICAgRWNsaXBzZTogQnVpbHQgdG8gTGFzdCAtIEVyaWNoIEdhbW1hLCBNaWtlIE1pbGlua292aWNoPGJyPgogICAgICAgIDxicj4KICAgICAgICBXZWRuZXNkYXkgTWF5IDExdGggPGJyPgogICAgICAgIERpZSBFY2xpcHNlIFJpY2ggQ2xpZW50IFBsYXRmb3JtIChSQ1ApIC0gRnJhbmsgR2VyaGFyZHQsIEJvcmlzIEJva293c2tpIAogICAgICAgIDxicj4KICAgICAgICBHZW5lcmllcnVuZyBncmFmaXNjaGVyIEVjbGlwc2UtRWRpdG9yZW4gbWl0IEdFRiAtIEJlcm5kIEtvbGIsIE1hcmt1cyBW9mx0ZXIgCiAgICAgICAgPGJyPgogICAgICAgIERhcyBFY2xpcHNlIE1vZGVsaW5nIEZyYW1ld29yayAoRU1GKSAtIEJvcmlzIEJva293c2tpLCBGcmFuayBHZXJoYXJkdCwgCiAgICAgICAgRGlldGVyIE1vcm9mZiA8YnI+CiAgICAgICAgQWxsZXMgbmV1IG1pdCBTV1Q/ICYjMTUwOyBNYXJ0aW4gTGlwcGVydCwgQmVybmQgS29sYjxicj4KICAgICAgICA8YnI+CiAgICAgICAgVGh1cnNkYXkgTWF5IDEydGggPGJyPgogICAgICAgIChKKU1ldGVyd2Vpc2UgaW50ZWdyaWVyZW46IEludGVncmF0aW9uc3Rlc3RzIG1pdCBKTWV0ZXIgdW5kIEVjbGlwc2UgLSAKICAgICAgICBNYXJ0aW4gSGVpZGVyIDxicj4KICAgICAgICBVTUwgaW4gRWNsaXBzZSAtIE1hcmtvIEJvZ2VyIDxicj4KICAgICAgICBFY2xpcHNlIExhbmd1YWdlIFRvb2xraXQgLSBMZWlmIEZyZW56ZWw8YnI+CiAgICAgICAgSHlhZGVzIHVuZCBXZWIgc2VydmljZXMgTW9uaXRvcmluZy9Qcm9maWxpbmcvVHJhY2luZyAmIzE1MDsgTG90aGFyIFdpZXNrZTxicj4KICAgICAgICBFcnN0ZWxsdW5nIGVpZ2VuZXIgWE1MLUVkaXRvcmVuIG1pdCBFY2xpcHNlIFdlYiBUb29scyAmIzE1MDsgSmVucyBMdWtvd3NraSAKICAgICAgICA8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogICAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5BcHJpbCAyNi0yNyAtPC9iPiA8YSBocmVmPSJodHRwOi8vd3d3Lm90aWoub3JnL2V2ZW50L3VtbGZvcnVtLzIwMDUvb3ZlcnZpZXdfZW5nLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5VTUwgCiAgICAgICAgRm9ydW0vVG9reW8gMjAwNTwvYT4sIFRva3lvLCBKYXBhbjxicj4KICAgICAgICBUdWVzZGF5LCBBcHJpbCAyNnRoIDxicj4KICAgICAgICA8aT5UaGUgRWNsaXBzZSBWaXNpb248L2k+IC0gTWlrZSBNaWxpbmtvdmljaDxicj4KICAgICAgPC9wPgogICAgICA8L3RkPgogIDwvdHI+CiAgICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPkFwcmlsIDI1IC08L2I+IDxhIGhyZWY9Imh0dHA6Ly93d3cuYy1zcS5jb20vZGF0YS9zZW1pbmFyLzIwMDUwNDI1Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj4xc3QgCiAgICAgICAgU2VtaW5hciBvZiB0aGUgRWNsaXBzZSBKYXBhbiBXb3JraW5nIEdyb3VwPC9hPiwgTWFrdWhhcmksIEphcGFuIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgTWFuYWdlbWVudCBTZXNzaW9uczxicj4KICAgICAgICAxMDozMCBFY2xpcHNlIEphcGFuIE1lbWJlcnNoaXAgTWVldGluZyAtIE9yaWVudGF0aW9uIC0gU2hpbmljaGkgRG95YW1hLAogICAgICAgIE5UVCBDb213YXJlLCBNaWtlIE1pbGlua292aWNoLCBFY2xpcHNlIEZvdW5kYXRpb248YnI+CiAgICAgICAgMTM6MDAgRWNsaXBzZSBKYXBhbiBXb3JraW5nIEdyb3VwIFNlbWluYXIgPGJyPgogICAgICAgIDxicj4KICAgICAgICBUZWNobmljYWwgU2Vzc3Npb25zPGJyPgogICAgICAgIDExOjMwIEVjbGlwc2UgSkRUIFR1dG9yaWFsIGZvciBiZWdpbm5lcnMgLSBLYXp1aGlybyBLb3lhbWEsIE5UVCBDb213YXJlIAogICAgICAgIDxicj4KICAgICAgICAxNDozMCBFY2xpcHNlIFJDUCBUdXRvcmlhbCBmb3IgYmVnaW5uZXJzIC0gVG9ydSBLYXdhc2hpbWEsIE5UVCBDb213YXJlPGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+QXByaWwgMjAwNSAtIDwvYj4gPGEgaHJlZj0iaHR0cDovL3d3dy5ub2ZsdWZmanVzdHN0dWZmLmNvbS9pbmRleC5qc3AiIHRhcmdldD0iX2JsYW5rIj5ORkpTIAogICAgICAgIDIwMDUgU3ltcG9zaXVtczwvYT4sIDxicj4KICAgICAgICBIb3VzdG9uOiBBcHJpbCAyMi0yNCwgTWlubmVhcG9saXM6IEFwcmlsIDI5LU1heSAxIAogICAgICAgIC4gU2VlIHRoZSB3ZWJzaXRlIGZvciBtb3JlIGV2ZW50cyEgPGJyPgogICAgICAgIDxpPlNXVCBGdW5kYW1lbnRhbHM8L2k+IC0gQmVuIEdhbGJyYWl0aCA8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogICAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5BcHJpbCAxOC0yMSAtPC9iPiA8YSBocmVmPSJodHRwOi8vbXlzcWx1Yy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+TXlTUUwgCiAgICAgICAgVXNlcnMgQ29uZmVyZW5jZTwvYT4sIFNhbnRhIENsYXJhLCBDQSxVU0EgPGJyPgogICAgICAgIFdlZG5lc2RheSwgQXByaWwgMjB0aDxicj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vbXlzcWx1Yy5jb20vY3MvbXlzcWx1YzIwMDUvdmlldy9lX3Nlc3MvNjI4NiIgdGFyZ2V0PSJfYmxhbmsiPjxpPlRoZSAKICAgICAgICBFY2xpcHNlIEJJUlQgUHJvamVjdDwvaT48L2E+PGk+IC0gQW4gT3BlbiBTb3VyY2UgUmVwb3J0aW5nIEFsdGVybmF0aXZlPC9pPiAKICAgICAgICAtIFBhdWygQ2xlbmFoYW4gPGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPk1hcmNoIDIyIC0gPC9iPiA8YSBocmVmPSJodHRwOi8vd3d3LmJlanVnLm9yZy9jb25mbHVlbmNlQmVKVUcvZGlzcGxheS9CZUpVRy9SaWNoJTJCVXNlciUyQkludGVyZmFjZSUyQlNlbWluYXIiIHRhcmdldD0iX2JsYW5rIj5SaWNoIAogICAgICAgIFVzZXIgSW50ZXJmYWNlIFNlbWluYXI8L2E+LCBwcmVzZW50ZWQgYnkgQmVKVUcsIEJydXNzZWxzLCBCZWxnaXVtPGJyPgogICAgICAgIDxicj4KICAgICAgICA8aT5FY2xpcHNlIFJDUDwvaT4gLSBEaXJrIEJhZXVtZXI8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+TWFyY2ggMTQtMTggLSA8L2I+PGEgaHJlZj0iaHR0cDovL3d3dy5zZGV4cG8uY29tLzIwMDUvd2VzdC9jb25mZXJlbmNlLmh0bSIgdGFyZ2V0PSJfYmxhbmsiPlNEV2VzdCAKICAgICAgICAyMDA1PC9hPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFRodXJzZGF5LCBNYXJjaCAxNyAtIDE6NDUgLSAzOjE1IHBtPGJyPgogICAgICAgIFNwZWFrZXI6IERhcmluIFN3YW5zb24gLSA8YSBocmVmPSJodHRwOi8vd3d3LmNtcGV2ZW50cy5jb20vU0R3NS9hLmFzcD9vcHRpb249QyZhbXA7Vj0xMSZhbXA7U2Vzc0lEPTQyNDciIHRhcmdldD0iX2JsYW5rIj48aT5HZXR0aW5nIAogICAgICAgIHRoZSBNb3N0IGZyb20gRWNsaXBzZTwvaT48L2E+PGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPk1hcmNoIDE3IC0gPC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuZW1uLmZyL3gtZGkvZWNsaXBzZS1kYXkvIiB0YXJnZXQ9Il9ibGFuayI+RUNMSVBTRSAKICAgICAgICBEQVk8L2E+LCBOYW50ZXMsIEZyYW5jZSA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIEEgc3BlY2lhbCBvbmUtZGF5IGV2ZW50LCBFY2xpcHNlIERheSBmZWF0dXJlcyBwcmVzZW50YXRpb25zIGFuZCBkaXNjdXNzaW9ucyAKICAgICAgICBsZWQgYnkgZXhwZXJ0cyBmcm9tIGFyb3VuZCB0aGUgZWNsaXBzZSBjb21tdW5pdHkgc3VjaCBhcyBFcmljaCBHYW1tYSwgCiAgICAgICAgS3J6eXN6dG9mIEN6YXJuZWNraSwgSmVhbiBC6XppdmluLCBQaGlsaXBwZSBNdWxldCBhbmQgbW9yZS4gU2VlIHRoZSBwcm9ncmFtIAogICAgICAgIGZvciBtb3JlIGRldGFpbHMhIDxicj4KICAgICAgPC9wPgogICAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5NYXJjaCAxNC0xOCAtPC9iPiA8YSBocmVmPSJodHRwOi8vYW9zZC5uZXQvMjAwNS9pbmRleC5waHAiIHRhcmdldD0iX2JsYW5rIj5BT1NEIAogICAgICAgIDA1PC9hPiwgQ2hpY2FnbywgVVNBIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGI+RGVtb3M8L2I+IDxicj4KICAgICAgICBNaWNoYWVsIEVpY2hiZXJnLCBUZWNobmlzY2hlIFVuaXZlcnNpdGFldCBEYXJtc3RhZHQgVGhvcnN0ZW4gU2NoYWVmZXIsIAogICAgICAgIFRlY2huaXNjaGUgVW5pdmVyc2l0YWV0IERhcm1zdGFkdDxpPiA8YnI+CiAgICAgICAgLSBNYWdlbGxhbjogUHJvZ3JhbSBDb21wcmVoZW5zaW9uIGFuZCBBbmFseXNpcyBpbiBFY2xpcHNlVE08L2k+IDxicj4KICAgICAgICBTdGVwaGFuIEhlcnJtYW5ubiwgVGVjaG5pc2NoZSBVbml2ZXJzaXRhZXQgQmVybGluIENhcnN0ZW4gUGZlaWZmZXIsIEZyYXVuaG9mZXIgCiAgICAgICAgRklSU1QsIEphbiBXbG9rYSwgRnJhdW5ob2ZlciBGSVJTVDxicj4KICAgICAgICAtIDxpPkFzcGVjdCBjb21wb3NpdGlvbiB3aXRoIE9iamVjdFRlYW1zL0phdmEgaW4gRWNsaXBzZTwvaT4gPGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPk1hcmNoIDEwIC0gPC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuanVncy5kZS9zaWctZWNsaXBzZS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSAKICAgICAgICBTSUcsIEphdmEgVXNlciBHcm91cCBTdHV0dGdhcnQgKEpVR1MpPC9hPiwgU3R1dHRnYXJ0LCBHZXJtYW55IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgMS4gSlVHUyBTSUcgRWNsaXBzZSBUcmVmZmVuIC0gMTAuIE0mYXVtbDtyeiAyMDA1LCAxOC4zMCBVaHIgPGJyPgogICAgICAgIFJlZmVyZW50OiBEci4gQm9yaXMgQm9rb3dza2kgLSA8aT48YSBocmVmPSJodHRwOi8vd3d3Lmp1Z3MuZGUvdmVyYW5zdGFsdHVuZy0xMC0wMy0wNS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+TWHfZ2VzY2huZWlkZXJ0ZSAKICAgICAgICBncmFmaXNjaGUgRWRpdG9yZW4gbWl0IGRlbSBFY2xpcHNlIEdyYXBoaWNhbCBFZGl0aW5nIEZyYW1ld29yayAoR0VGKTwvYT48L2k+IAogICAgICAgIDxicj4KICAgICAgPC9wPgogICAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5NYXJjaCA2LTEwIC0gPC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuZXNjb25saW5lLmNvbS9zZiIgdGFyZ2V0PSJfYmxhbmsiPlNhbiAKICAgICAgICBGcmFuY2lzY28gRW1iZWRkZWQgU3lzdGVtcyBDb25mZXJlbmNlPC9hPiwgU2FuIEZyYW5jaXNjbywgQ0EgPGJyPgogICAgICAgIDxicj4KICAgICAgICBXZWRuZXNkYXksIE1hcmNoIDl0aCAtIDg6MzAgLSAxMDowMGFtPGJyPgogICAgICAgIEphc29uIFdpbHNvbiBhbmQgU3RldmVuIEdyZWZmZW5pdXMgLSA8aT48YSBocmVmPSJodHRwOi8vd3d3LmNtcGV2ZW50cy5jb20vRVNDdzA1L2EuYXNwP29wdGlvbj1DJlY9MTEmU2Vzc0lEPTM2ODciIHRhcmdldD0iX2JsYW5rIj5Ib3cgCiAgICAgICAgdG8gU3RyZWFtbGluZSBFbWJlZGRlZCBTeXN0ZW1zIERldmVsb3BtZW50IHdpdGggRWNsaXBzZTwvYT48L2k+IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgVmlzaXQgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBib290aCAoIzkzNykgYXQgRVNDISA8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+RmVicnVhcnkgMjggLSBNYXJjaCAzIC0gPC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZWNvbi5vcmciIHRhcmdldD0iX2JsYW5rIj5FY2xpcHNlQ29uIAogICAgICAgIDIwMDU8L2E+LCBCdXJsaW5nYW1lLCBDQTxiPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZWNvbi5vcmcvIiB0YXJnZXQ9Il9ibGFuayI+IDwvYT48L2k+PC9iPkVjbGlwc2VDb24gCiAgICAgICAgMjAwNSBpcyB0aGUgZXZlbnQgZm9yIGFuZCBieSB0aGUgZWNsaXBzZSBjb21tdW5pdHkhIFZpc2l0IHRoZSB3ZWJzaXRlIAogICAgICAgIG9mdGVuIGZvciB1cGRhdGVzIG9uIHRoZSBsYXRlc3QgcHJvZ3JhbSBkZXZlbG9wbWVudHMhPGJyPgogICAgICAgIDxicj4KICAgICAgPC9wPgogICAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj4gRmVicnVhcnkgMTUtMTc8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5zeXMtY29uLmNvbS9lZGdlMjAwNWVhc3QvaW5kZXguY2ZtIiB0YXJnZXQ9Il9ibGFuayI+V2ViIAogICAgICAgIFNlcnZpY2UgRWRnZSAyMDA1IEVhc3Q8L2E+LCBCb3N0b24sIE1BIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgVGh1cnNkYXksIEZlYnJ1YXJ5IDE3LCAxMTowMCBhbTxicj4KICAgICAgICBLZXlub3RlOiBNaWtlIE1pbGlua292aWNoIC0gPGEgaHJlZj0iaHR0cDovL3d3dy5zeXMtY29uLmNvbS9zdG9yeS8/c3RvcnlpZD00NzQ1MiIgdGFyZ2V0PSJfYmxhbmsiPjxpPkFuIAogICAgICAgIE9wZW4gRGV2ZWxvcG1lbnQgUGxhdGZvcm0gZm9yIFdlYiBTZXJ2aWNlczwvaT48L2E+IDxicj4KICAgICAgICBXZWRuZXNkYXksIEZlYnJ1YXJ5IDE2LCAyMDA1IDEwOjAwIGFtPGJyPgogICAgICAgIE1pY2hhZWwgVmFuTWVla2VyZW46PGk+IDxhIGhyZWY9Imh0dHA6Ly93d3cubGludXh3b3JsZC5jb20vc3RvcnkvNDc0NTkuaHRtIiB0YXJnZXQ9Il9ibGFuayI+SjJNRSAKICAgICAgICBhbmQgRWNsaXBzZSBFY2xpcHNlIFBsdWctSW4gU3VwcG9ydCBGb3IgVmFyaW91cyBQbGF0Zm9ybXMsIFN1Y2ggQXMgSjJNRS9NSURQLCAKICAgICAgICBQb2NrZXRQQywgQW5kIFBhbG1PUzwvYT48L2k+IKA8YnI+CiAgICAgICAgVGh1cnNkYXksIEZlYnJ1YXJ5IDE3LCAxMDowMCBhbTxicj4KICAgICAgICBBcnRodXIgUnltYW4sIElCTSAtIENhc2UgU3R1ZHk6IDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3lzLWNvbi5jb20vc3RvcnkvP3N0b3J5aWQ9NDc1MjciIHRhcmdldD0iX2JsYW5rIj5EZXZlbG9waW5nIAogICAgICAgIFdlYiBTZXJ2aWNlcyB3aXRoIEVjbGlwc2U8L2E+PC9pPiA8YnI+CiAgICAgICAgPGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPkphbnVhcnkgMzEgLSBGZWJydWFyeSAyPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cub3NkbGxpbnV4c3VtbWl0Lm9yZy8iIHRhcmdldD0iX2JsYW5rIj5PU0RMIAogICAgICAgIEVudGVycHJpc2UgTGludXggU3VtbWl0PC9hPiwgQnVybGluZ2FtZSwgQ0EgPGJyPgogICAgICAgIDxicj4KICAgICAgICBNb25kYXksIEphbnVhcnkgMzEgLSBhZnRlcm5vb24gVHV0dXJpYWwgPGJyPgogICAgICAgIER3aWdodCBEZXVnbyAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cub3NkbGxpbnV4c3VtbWl0Lm9yZy9wcm9ncmFtLWQuaHRtI1R1dG9yaWFsXzYiIHRhcmdldD0iX2JsYW5rIj5EZXZlbG9waW5nIAogICAgICAgIExpbnV4IEFwcGxpY2F0aW9ucyB1c2luZyBFY2xpcHNlPC9hPjwvaT4gPGJyPgogICAgICAgIFR1ZXNkYXksIEZlYnJ1YXJ5IDEgLSAwOTowMCAtIDEwOjMwIDxicj4KICAgICAgICBCam9ybiBGcmVlbWFuLUJlbnNvbiAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cub3NkbGxpbnV4c3VtbWl0Lm9yZy9wcm9ncmFtLWQuaHRtI1Nlc3Npb25fMyIgdGFyZ2V0PSJfYmxhbmsiPk1hcnJ5aW5nIAogICAgICAgIExpbnV4IGFuZCBKYXZhIC0gQmVzdCBQcmFjdGljZXM8L2E+PC9pPiA8YnI+CiAgICAgICAgPGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+SmFudWFyeSAyNC0yOCwgMjAwNTwvYj4sIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2lncy1kYXRhY29tLmRlL3NkL2tvbmdyZXNzZS9vb3BfMjAwNS9pbmRleC5odG0iIHRhcmdldD0iX2JsYW5rIj5PT1AgCiAgICAgICAgMjAwNTwvYT4sIE11bmljaCwgR2VybWFueSA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFdlZG5lc2RheSBKYW51YXJ5IDI2dGg8YnI+CiAgICAgICAgRXJpY2ggR2FtbWEgLSBLZXlub3RlOiA8YSBocmVmPSJodHRwOi8vd3d3LnNpZ3MtZGF0YWNvbS5kZS9zZC9rb25ncmVzc2Uvb29wXzIwMDUvcHJvZ3JhbS9rZXlub3Rlcy5odG0ja2V5X21pMTExNSIgdGFyZ2V0PSJfYmxhbmsiPkVjbGlwc2UgCiAgICAgICAgLSBCdWlsdCB0byBMYXN0PC9hPiA8YnI+CiAgICAgICAgS2FpLVV3ZSBNYWV0emVsIC0gPGEgaHJlZj0iaHR0cDovL3d3dy5zaWdzLWRhdGFjb20uZGUvc2Qva29uZ3Jlc3NlL29vcF8yMDA1L3Byb2dyYW0vcHJvZ3JhbV9taS5odG0jTWk2IiB0YXJnZXQ9Il9ibGFuayI+VGhlIAogICAgICAgIEVjbGlwc2UgRGV2ZWxvcG1lbnQgUHJvY2VzczwvYT4gliBJbnNpZGUgYSBsYXJnZSBzY2FsZSwgZGlzdHJpYnV0ZWQgT3BlbiAKICAgICAgICBTb3VyY2UgcHJvamVjdCA8YnI+CiAgICAgICAgQWRyaWFuIENvbHllciAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2lncy1kYXRhY29tLmRlL3NkL2tvbmdyZXNzZS9vb3BfMjAwNS9wcm9ncmFtL3Byb2dyYW1fbWkuaHRtI01pMiIgdGFyZ2V0PSJfYmxhbmsiPkFzcGVjdC1PcmllbnRlZCAKICAgICAgICBQcm9ncmFtbWluZyB3aXRoIEFzcGVjdEo8L2E+IDxicj4KICAgICAgICBMb3RoYXIgV2llc2tlIC0gPGEgaHJlZj0iaHR0cDovL3d3dy5zaWdzLWRhdGFjb20uZGUvc2Qva29uZ3Jlc3NlL29vcF8yMDA1L3Byb2dyYW0vcHJvZ3JhbV9taS5odG0jQ1NtaTYiIHRhcmdldD0iX2JsYW5rIj5CZXN0IAogICAgICAgIFByYWN0aWNlcyBm/HIgZGllIE9yZ2FuaXNhdGlvbiBlaW5lciBFY2xpcHNlIFJDUCAvRU1GL0dFRiBFbnR3aWNrbHVuZzxicj4KICAgICAgICA8L2E+VGltb3RoeSBTdHL2YmVsZSBFY2xpcHNlVU1MIJYgPGEgaHJlZj0iaHR0cDovL3d3dy5zaWdzLWRhdGFjb20uZGUvc2Qva29uZ3Jlc3NlL29vcF8yMDA1L3Byb2dyYW0vcHJvZ3JhbV9taS5odG0jTWkxNCIgdGFyZ2V0PSJfYmxhbmsiPlVNTCAKICAgICAgICB1bmQgRWNsaXBzZTwvYT4gPGJyPgogICAgICAgIEp1dHRhIEVja3N0ZWluLCBOaWNvbGFpIEpvc3V0dGlzLCBGcmFuayBHZXJoYXJkdCwgQ2hyaXN0aWFuIFdlZ2UgLSA8YSBocmVmPSJodHRwOi8vd3d3LnNpZ3MtZGF0YWNvbS5kZS9zZC9rb25ncmVzc2Uvb29wXzIwMDUvcHJvZ3JhbS9wcm9ncmFtX21pLmh0bSNNaTIxIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSAKICAgICAgICBhbHMgUmljaC1DbGllbnQtIFBsYXR0Zm9ybTwvYT4gPGJyPgogICAgICAgIDxicj4KICAgICAgICBUaHVyc2RheSwgSmFudWFyeSAyN3RoPGJyPgogICAgICAgIE1hcnRpbiBMYW5nIGFuZCBIYXJ0bXV0IEtvY2hlciAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2lncy1kYXRhY29tLmRlL3NkL2tvbmdyZXNzZS9vb3BfMjAwNS9wcm9ncmFtL3Byb2dyYW1fZG8uaHRtI0RvMiIgdGFyZ2V0PSJfYmxhbmsiPkphdmEgCiAgICAgICAgU1dUIHVuZCBKRmFjZSBpbiBkZXIgUHJheGlzPC9hPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIEZyaWRheSBKYW51YXJ5IDI4dGg8YnI+CiAgICAgICAgRnJhbmsgR2VyaGFyZHQgYW5kIENocmlzdGlhbiBXZWdlIC0gVHV0b3JpYWw6IDxhIGhyZWY9Imh0dHA6Ly93d3cuc2lncy1kYXRhY29tLmRlL3NkL2tvbmdyZXNzZS9vb3BfMjAwNS9wcm9ncmFtL3Byb2dyYW1fZnIuaHRtI0ZyMyIgdGFyZ2V0PSJfYmxhbmsiPkRlc2t0b3AtQW53ZW5kdW5nZW4gCiAgICAgICAgZW50d2lja2VsbiBhdWYgQmFzaXMgZGVyIEVjbGlwc2UgUmljaCBDbGllbnQgUGxhdGZvcm0gKFJDUDwvYT4pIDxicj4KICAgICAgICA8YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5KYW51YXJ5IDIwLTIyLCAyMDA1PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3V0Yy5jYSIgdGFyZ2V0PSJfYmxhbmsiPkNhbmFkaWFuIAogICAgICAgIFVuZGVyZ3JhZHVhdGUgVGVjaG5vbG9neSBDb25mZXJlbmNlPC9hPiAoQ1VUQyksIFRvcm9udG8sIENhbmFkYSA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIEplZmZyZXkgTGl1LCBMYXdyZW5jZSBNYW5kZWwsIElCTSA8YnI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5jdXRjLmNhLzIwMDUvZXZlbnRzL3RlY2hzaG9wcy5zaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlRlY2hTaG9wPC9hPjogCiAgICAgICAgPGk+RGl2ZSBpbnRvIEVjbGlwc2UgYW5kIHRoZSBXZWIgVG9vbHMgUGxhdGZvcm0gUHJvamVjdDwvaT4gPGJyPgogICAgICA8L3A+CjwvdGQ+CiAgPC90cj4KIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+SmFudWFyeSAxNy0xOSwgMjAwNTwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3Lm9iamVjdHdlYi5vcmcvT2JqZWN0V2ViQ29uMDUiIHRhcmdldD0iX2JsYW5rIj5PYmplY3RXZWJDb24wNTwvYT4sIAogICAgICAgIEx5b24sIEZyYW5jZSA8YnI+CiAgICAgICAgPGk+PGI+T2JqZWN0V2ViQ29uICcwNSBhbm5vdW5jZXMgQmVzdCBVc2UgQ2FzZXMgQ29udGVzdCE8L2I+PC9pPiA8YSBocmVmPSJodHRwOi8vd3d3Lm9iamVjdHdlYi5vcmcvT1dDT04wNUNvbnRlc3QucGhwIiB0YXJnZXQ9Il9ibGFuayI+U3VibWlzc2lvbnMgCiAgICAgICAgZHVlIGJ5IERlY2VtYmVyIDMxLCAyMDA0PC9hPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxiPktleW5vdGU8L2I+OiA8YnI+CiAgICAgICAgTWlrZSBNaWxpbmtvdmljaCAtIDxpPkVuYWJsaW5nIEVudGVycHJpc2UgT3BlbiBTb3VyY2UgTWlkZGxld2FyZSB3aXRoIAogICAgICAgIEVjbGlwc2U8L2k+IC0gV2VkbmVzZGF5LCBKYW51YXJ5IDE5dGg8YnI+CiAgICAgICAgPGI+U2Vzc2lvbnM8L2I+Ojxicj4KICAgICAgICBQaWVycmUtWXZlcyBHaWJlbGxvLCBFeHBlckxvZyAtIDxpPkoyRUUgcGF0dGVybnMsIHBlcnNpc3RlbmNlIGlzc3VlcywgCiAgICAgICAgaW1wbGVtZW50YXRpb24gaW4gSk9uQVMgRWNsaXBzZSBQbHVnaW4gKEpPUEUpIDwvaT4gTmFjaSBEYWksIEV0ZXJhdGlvbiAKICAgICAgICAtIDxpPkVjbGlwc2UgV2ViIFRvb2xzIFBsYXRmb3JtIFByb2plY3QgT3ZlcnZpZXc8L2k+IDxicj4KICAgICAgICBKb2NoZW4gS3JhdXNlLCBJbm5vb3ByYWN0IEluZm9ybWF0aW9ucyBzeXN0ZW1lIEdtYkggLSA8aT5FY2xpcHNlIFdlYiBUb29scyAKICAgICAgICAtIEV4dGVuZGluZyB0aGUgU3RydWN0dXJlZCBTb3VyY2UgRWRpdG9yIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgPC9pPjwvcD4KICAgIDwvdGQ+CiAgPC90cj4KIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+SmFudWFyeSAxMC0xMywgMjAwNTwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LnJ0Y3RlY2huaWNhbHRyYWluaW5nLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5SVEMgCiAgICAgICAgVGVjaG5pY2FsIFRyYWluaW5nPC9hPiwgU2FudGEgQ2xhcmEsIENBPGk+IDxicj4KICAgICAgICA8L2k+PC9wPgogICAgICBJbnN0cnVjdG9yOiA8Yj5Ed2lnaHQgRGV1Z288L2I+PGJyPgogICAgICBKYW51YXJ5IDEwJiMxNTA7MTEsIDIwMDUsIDg6MDAgQU0mIzE1MDs1OjAwIFBNIChSVFRDLTIpIC0gPGEgaHJlZj0iaHR0cDovL3d3dy5ydGN0ZWNobmljYWx0cmFpbmluZy5jb20vY291cnNlX3J0dGMyLnBocCIgdGFyZ2V0PSJfYmxhbmsiPjxpPkludHJvZHVjdGlvbiAKICAgICAgdG8gUHJvZ3JhbW1pbmcgd2l0aCBKYXZhIHVzaW5nIEVjbGlwc2U8L2k+PC9hPjxicj4KICAgICAgSmFudWFyeSAxMiYjMTUwOzEzLCAyMDA1LCA4OjAwIEFNJiMxNTA7NTowMCBQTSAoUlRUQy0zKSAtIDxhIGhyZWY9Imh0dHA6Ly93d3cucnRjdGVjaG5pY2FsdHJhaW5pbmcuY29tL2NvdXJzZV9ydHRjMy5waHAiIHRhcmdldD0iX2JsYW5rIj48aT5EZXZlbG9waW5nIAogICAgICBQbHVnLWlucyBmb3IgRWNsaXBzZTwvaT48L2E+PGJyPgogICAgICA8YnI+CiAgICAgIAogICAgICA8L3RkPgogIDwvdHI+CiA8L3RhYmxlPgo8dGFibGUgQk9SREVSPTAgQ0VMTFNQQUNJTkc9NSBDRUxMUEFERElORz0yIFdJRFRIPSIxMDAlIiA+CiAgPHRyPiAKICAgIDx0ZCBBTElHTj1MRUZUIFZBTElHTj1UT1AgQ09MU1BBTj0iMiIgQkdDT0xPUj0iIzAwODBDMCI+PGI+PGZvbnQgZmFjZT0iQXJpYWwsSGVsdmV0aWNhIiBjb2xvcj0iI0ZGRkZGRiI+IAogICAgICBFdmVudHMgMjAwNDwvZm9udD48L2I+PC90ZD4KICA8L3RyPgo8L3RhYmxlPgo8dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9NSBjZWxscGFkZGluZz0yIHdpZHRoPSIxMDAlIiA+CgogPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkRlY2VtYmVyIDEzLTE3PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuamF2YXBvbGlzLmNvbS9jb25mbHVlbmNlL2Rpc3BsYXkvSlAwNC9Ib21lIiB0YXJnZXQ9Il9ibGFuayI+SmF2YVBvbGlzPC9hPiwgCiAgICAgIEFudHdlcnAsIEJlbGdpdW08YnI+CiAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuamF2YXBvbGlzLmNvbS9jb25mbHVlbmNlL2Rpc3BsYXkvSlAwNC9KYXZhUG9saXMlMkJVbml2ZXJzaXR5IiB0YXJnZXQ9Il9ibGFuayI+SmF2b3BvbGlzIAogICAgICBVbml2ZXJzaXR5PC9hPiA8YnI+CiAgICAgIEFkcmlhbiBDb2x5ZXIgLSA8aT5Bc3BlY3RKIGluIEFjdGlvbjwvaT4gLSBNb25kYXksIERlY2VtYmVyIDEzIC0gMDk6MDAtMTI6MDA8YnI+CiAgICAgIEVyaWNoIEdhbW1hIC0gPGk+RWNsaXBzZSBpbiBBY3Rpb248L2k+IC0gVHVlc2RheSwgRGVjZW1iZXIgMTQgLSAwOTowMC0xMjowMDxicj4KICAgICAgPGJyPgogICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmphdmFwb2xpcy5jb20vY29uZmx1ZW5jZS9kaXNwbGF5L0pQMDQvSmF2YVBvbGlzJTJCQ29uZmVyZW5jZSIgdGFyZ2V0PSJfYmxhbmsiPkphdmFQb2xpcyAKICAgICAgQ29uZmVyZW5jZTwvYT48YnI+CiAgICAgIE1pY2hlbCBMYXJhIC0gPGk+RGlzY292ZXIgRWNsaXBzZTwvaT4gJm5ic3A7LSBUaHVyc2RheSwgMTYgRGVjZW1iZXIgMjAwNCAKICAgICAgMTY6NDAgLSAxNzo0MCA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+Tm92ZW1iZXIgMTggLSA8L2I+Sm91cm7pZSBPUEVOIFNPVVJDRSwgTmFudGVzLCBGcmFuY2UgCiAgICAgIDxicj4KICAgICAgMTE6MDAgLSAxMTozMCBQaGlsaXBwZSBNdWxldCAtIDxpPlByb2pldCBFY2xpcHNlOiBIb21vZyZlYWN1dGU7biZlYWN1dGU7aXNhdGlvbiAKICAgICAgZGVzIGQmZWFjdXRlO3ZlbG9wcGVtZW50cyBPcGVuIFNvdXJjZSA8YnI+CiAgICAgIDwvaT48L3RkPgogIDwvdHI+CiA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+Tm92ZW1iZXIgMTUtMTggLSA8L2I+PGEgaHJlZj0iaHR0cDovL3d3dy53LWpheC5kZSIgdGFyZ2V0PSJfYmxhbmsiPlctSkFYIAogICAgICAyMDA0PC9hPiwgTXVuaWNoLCBHZXJtYW55IDxicj4KICAgICAgPGJyPgogICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnctamF4LmRlL2tvbmZlcmVuemVuL3BzZWNvbSxpZCwyMzAsbm9kZWlkLC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSAKICAgICAgU2Vzc2lvbnMgU3VtbWFyeTwvYT4gPGJyPgogICAgICBUdWVzZGF5LCBOb3ZlbWJlciAxNnRoIDxicj4KICAgICAgMTY6MzAgLSAxNzo0NSBNYXJrdXMgVvZsdGVyICh2b2VsdGVyIC0gaW5nZW5pZXVyYvxybyBm/HIgc29mdHdhcmV0ZWNobm9sb2dpZSksIAogICAgICBNYXJ0aW4gTGlwcGVydCAoQ29uc3VsdGFudCB1bmQgQ29hY2gpLCBCZXJuZCBLb2xiIChrb2xid2FyZSkgLSA8aT5FbnR3aWNrbHVuZyAKICAgICAgdm9uIFJpY2ggQ2xpZW50cyBtaXQgRWNsaXBzZSAzLjAgPC9pPjxicj4KICAgICAgMTg6MTUgLSAxOTozMCBNYXJ0aW4gTGlwcGVydCAtIDxpPkxpdmUtU2Vzc2lvbjogRWNsaXBzZSBQbHVnLWlucyBlbnR3aWNrZWxuIAogICAgICBEaWUgRWNsaXBzZSBSaWNoIENsaWVudCBQbGF0Zm9ybTwvaT4gPGJyPgogICAgICBXZWRuZXNkYXksIE5vdmVtYmVyIDE3dGggMTU6MTUgLTE2OjMwIDxicj4KICAgICAgQW5kcmUgV2VpbmFuZCAtIDxpPkVjbGlwc2UgU1dUIG9yOiBIb3cgSSBMZWFybmVkIHRvIFN0b3AgV29ycnlpbmcgYW5kIExvdmUgCiAgICAgIHRoZSBCb21iPC9pPiA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk5vdmVtYmVyIDktMTI8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5lc2NvbmxpbmUuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPkVtYmVkZGVkIAogICAgICBTeXN0ZW1zIENvbmZlcmVuY2U8L2E+LCBNdW5pY2gsIEdlcm1hbnkgPGJyPgogICAgICBXZWRuZXNkYXksIE5vdmVtYmVyIDEwIC0gMTY6MDCWIDE3OjAwIDxicj4KICAgICAgU2ViYXN0aWVuIE1hcmluZWF1IC0gPGk+VXNpbmcgRWNsaXBzZSBDRFQgZm9yIEMvQysrIERldmVsb3BtZW50PC9pPjxicj4KICAgICAgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5Ob3ZlbWJlciA2LTEwIC0gPC9iPiA8YSBocmVmPSJodHRwOi8vd3d3LmFjbS5vcmcvY3NjdzIwMDQvIiB0YXJnZXQ9Il9ibGFuayI+Q1NDVyAKICAgICAgMjAwNDwvYT4sIENoaWNhZ28sIElMIDxicj4KICAgICAgPGJyPgogICAgICBXb3Jrc2hvcCA6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYWNtLm9yZy9jc2N3MjAwNC9wcm9nX3dvcmtzaG9wcy5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSAKICAgICAgYXMgYSBWZWhpY2xlIGZvciBDU0NXIFJlc2VhcmNoPC9hPiA8YnI+CiAgICAgIExpLVRlIENoZW5nLCBJQk0gUmVzZWFyY2gsIE1hcmdhcmV0LUFubmUgU3RvcmV5LCBVbml2ZXJzaXR5IG9mIFZpY3RvcmlhLCAKICAgICAgQW5kcmUgdmFuIGRlciBIb2VrLCBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIElydmluZSA8YnI+CiAgICAgIDxicj4KICAgICAgVmlkZW86IEphenogLSA8YSBocmVmPSJodHRwOi8vd3d3LmFjbS5vcmcvY3NjdzIwMDQvcHJvZ192aWRlb3MuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkEgCiAgICAgIENvbGxhYm9yYXRpdmUgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgRW52aXJvbm1lbnQ8L2E+IDxicj4KICAgICAgTGktVGUgQ2hlbmcsIFN1c2FubmUgSHVwZmVyLCBKb2huIFBhdHRlcnNvbiwgRGFuIFJvc2VuLCBTdGV2ZW4gUm9zcyAoSUJNIAogICAgICBSZXNlYXJjaCkgPGJyPgogICAgICA8YnI+CiAgICAgIFBhcGVyIFNlc3Npb246IDxhIGhyZWY9Imh0dHA6Ly93d3cuYWNtLm9yZy9jc2N3MjAwNC9wcm9nX3RlY2huaWNhbC5odG1sI0R5bmFtaWNBcmNoaXRlY3R1cmVzIiB0YXJnZXQ9Il9ibGFuayI+RHluYW1pYyAKICAgICAgQXJjaGl0ZWN0dXJlczwvYT4gPGJyPgogICAgICA8aT5JbnRyb2R1Y2luZyBDb2xsYWJvcmF0aW9uIGludG8gYW4gQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgRW52aXJvbm1lbnQgCiAgICAgIDwvaT4tIFN1c2FubmUgSHVwZmVyLCBMaS1UZSBDaGVuZywgU3RldmVuIFJvc3MsIEpvaG4gUGF0dGVyc29uIChJQk0gUmVzZWFyY2gpIAogICAgICA8aT5SZXRyb2ZpdHRpbmcgQ29sbGFib3JhdGlvbiBpbnRvIFVJcyB3aXRoIEFzcGVjdHM8L2k+IC0gTGktVGUgQ2hlbmcsIFN0ZXZlbiAKICAgICAgUm9oYWxsLCBKb2huIFBhdHRlcnNvbiwgU3RldmVuIFJvc3MsIFN1c2FubmUgSHVwZmVyIChJQk0gUmVzZWFyY2gpIDxicj4KICAgICAgPGJyPgogICAgICBQYXBlciBzZXNzaW9uOiA8YSBocmVmPSJodHRwOi8vd3d3LmFjbS5vcmcvY3NjdzIwMDQvcHJvZ190ZWNobmljYWwuaHRtbCNLbm93bGVkZ2VTaGFyaW5naW5Tb2Z0d2FyZUVuZ2luZWVyaW5nIiB0YXJnZXQ9Il9ibGFuayI+S25vd2xlZGdlIAogICAgICBTaGFyaW5nIGluIFNvZnR3YXJlIEVuZ2luZWVyaW5nPC9hPiA8YnI+CiAgICAgIDxpPkxlYXJuaW5nIGZyb20gUHJvamVjdCBIaXN0b3J5OiBBIENhc2UgU3R1ZHkgZm9yIFNvZnR3YXJlIERldmVsb3BtZW50PC9pPqAgCiAgICAgIC0gRGF2b3IgQ3VicmFuaWMsIFVuaXZlcnNpdHkgb2YgQnJpdGlzaCBDb2x1bWJpYSwgR2FpbCBNdXJwaHksIFVuaXZlcnNpdHkgCiAgICAgIG9mIEJyaXRpc2ggQ29sdW1iaWEsIEphbmljZSBTaW5nZXIsIEluc3RpdHV0ZSBmb3IgSW5mb3JtYXRpb24gVGVjaG5vbG9neSwgCiAgICAgIE5hdGlvbmFsIFJlc2VhcmNoIENlbnRyZSBDYW5hZGEsIGFuZCBLZWxsb2dnIEJvb3RoLCBVbml2ZXJzaXR5IG9mIEJyaXRpc2ggCiAgICAgIENvbHVtYmlhIDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+T2N0b2JlciAyNi0yODwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmxpbnV4d29ybGRleHBvLmRlL2xpbnV4X21lc3NlLnBocD9JRD0xIiB0YXJnZXQ9Il9ibGFuayI+TGludXhXb3JsZCAKICAgICAgQ29uZmVyZW5jZSBhbmQgRXhwbzwvYT4sIEZyYW5rZnVydCwgR2VybWFueTxicj4KICAgICAgV2VkbmVzZGF5LCBPY3RvYmVyIDI3IC0gMTY6MDAgLSAxNjo0NSA8YnI+CiAgICAgIERpcmsgQmFldW1lciAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubGludXh3b3JsZGV4cG8uZGUvMDRfMDNfMDEucGhwP1Rlcm1pbl9JRD0xMDAmSUQ9MTQiIHRhcmdldD0iX2JsYW5rIj5BbndlbmR1bmdzZW50d2lja2x1bmcgCiAgICAgIGF1ZiBCYXNpcyBkZXIgRWNsaXBzZSBSaWNoIENsaWVudCBQbGF0Zm9ybTwvYT48L2k+PGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+T2N0b2JlciAyNC0yOSAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuc29mdHdhcmVzdW1taXQuY29tL2luZGV4Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5Db2xvcmFkbyAKICAgICAgICBTb2Z0d2FyZSBTdW1taXQ8L2E+LCA8L2I+S2V5c3RvbmUgUmVzb3J0LCBDb2xvcmFkbywgVVNBPGJyPgogICAgICAgIDxicj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnNvZnR3YXJlc3VtbWl0LmNvbS8yMDA0L3NwZWFrZXJzL2xhZmZyYS5odG0iIHRhcmdldD0iX2JsYW5rIj5DaHJpcyAKICAgICAgICBMYWZmcmEsIElCTSBPdHRhd2EgTGFiczwvYT4gLSA8aT48YnI+CiAgICAgICAgVGhlIEVjbGlwc2UgUmljaCBDbGllbnQgUGxhdGZvcm0gKFJDUCk6IFVzaW5nIEVjbGlwc2UgZm9yIERldmVsb3BpbmcgU3RhbmQtYWxvbmUgCiAgICAgICAgQXBwbGljYXRpb25zPC9pPiA8YnI+CiAgICAgICAgPGk+VmlzdWFsaXphdGlvbiBhbmQgUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBvZiBFY2xpcHNlPC9pPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuc29mdHdhcmVzdW1taXQuY29tLzIwMDQvc3BlYWtlcnMvYXNobGV5Lmh0bSIgdGFyZ2V0PSJfYmxhbmsiPkdhcnkgCiAgICAgICAgQXNobGV5IEpyLiwgM3JkIE1pbGxlbm5pdW0gVmlzaW9ucywgSW5jPC9hPi4gLSA8aT48YnI+CiAgICAgICAgQnVpbGRpbmcgWW91ciBPd24gT3BlbiBTb3VyY2UgRGV2ZWxvcG1lbnQgRW52aXJvbm1lbnQ8L2k+IDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+T2N0b2JlciAyNCAtIDI4IDwvYj4tIDxhIGhyZWY9Imh0dHA6Ly93d3cub29wc2xhLm9yZy8yMDA0L1Nob3dQYWdlLmRvP2lkPUhvbWUiIHRhcmdldD0iX2JsYW5rIj5PT1BTTEEgCiAgICAgIDIwMDQ8L2E+LCBWYW5jb3V2ZXIsIEJyaXRpc2ggQ29sdW1iaWEsIENhbmFkYSA8YnI+CiAgICAgIDxicj4KICAgICAgVHV0b3JpYWwgVHJhY2s6IDxhIGhyZWY9Imh0dHA6Ly93d3cub29wc2xhLm9yZy8yMDA0L1Nob3dFdmVudC5kbz9pZD10dXRvcmlhbHNfY2F0ZWdvcnlfOSIgdGFyZ2V0PSJfYmxhbmsiPkVjbGlwc2U8L2E+IAogICAgICA8YnI+CiAgICAgIE1vbmRheSwgT2N0b2JlciAyNXRoIDxicj4KICAgICAgRXJpY2ggR2FtbWEsIEthaS1Vd2UgTWFldHplbCAtIDxpPkV4dGVuZCwgUHVibGlzaCwgRW5hYmxlOiBVbmRlcnN0YW5kaW5nIAogICAgICBhbmQgV3JpdGluZyBFY2xpcHNlIFBsdWctaW5zPC9pPjxicj4KICAgICAgQ2Fyb2x5biBNYWNMZW9kLCBHcmFudCBHYXllZCAtIDxpPlNXVDogVGhlIEVjbGlwc2UgU3RhbmRhcmQgV2lkZ2V0IFRvb2xraXQ8L2k+IAogICAgICCgPGJyPgogICAgICBFZCBNZXJrcywgRnJhbmsgQnVkaW5za3kgLSA8aT5Gcm9tIE1vZGVscyB0byBDb2RlIHdpdGggdGhlIEVjbGlwc2UgTW9kZWxpbmcgCiAgICAgIEZyYW1ld29yazwvaT4gPGJyPgogICAgICA8YnI+CiAgICAgIFR1dG9yaWFsIFRyYWNrOiA8YSBocmVmPSJodHRwOi8vd3d3Lm9vcHNsYS5vcmcvMjAwNC9TaG93RXZlbnQuZG8/aWQ9dHV0b3JpYWxzX2NhdGVnb3J5XzciIHRhcmdldD0iX2JsYW5rIj5Bc3BlY3QtT3JpZW50ZWQgCiAgICAgIFByb2dyYW1taW5nPC9hPiA8YnI+CiAgICAgIFN1bmRheSwgT2N0b2JlciAyNHRoPGJyPgogICAgICBSb24gQm9ka2luLCBOaWNob2xhcyBMZXNpZWNraSAtIDxpPkVudGVycHJpc2UgQXNwZWN0LU9yaWVudGVkIFByb2dyYW1taW5nIAogICAgICB3aXRoIEFzcGVjdEo8L2k+PGJyPgogICAgICBNb25kYXksIE9jdG9iZXIgMjV0aCA8YnI+CiAgICAgIEVyaWsgSGlsc2RhbGUsIE1payBLZXJzdGVuIC0gPGk+QXNwZWN0LU9yaWVudGVkIFByb2dyYW1taW5nIHdpdGggQXNwZWN0SjwvaT48YnI+CiAgICAgIEVyaWsgSGlsc2RhbGUgLSA8aT5IYW5kcy1vbiBQcm9ncmFtbWluZyB3aXRoIEFzcGVjdEo8L2k+PGJyPgogICAgICA8YnI+CiAgICAgIFdvcmtzaG9wOiA8YSBocmVmPSJodHRwOi8vd3d3Lm9vcHNsYS5vcmcvMjAwNC9TaG93RXZlbnQuZG8/aWQ9MjA3IiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSAKICAgICAgVGVjaG5vbG9neSBlWGNoYW5nZSAoRVRYKTwvYT4gUGFwZXIgc3VibWlzc2lvbnMgZHVlIEF1Z3VzdCAyN3RoITxicj4KICAgICAgU2VlIHRoZSBjYWxsIGZvciBwYXBlcnMhIDxicj4KICAgICAgU3VuZGF5LCBPY3RvYmVyIDI0dGggLSBNaWNoYWVsIEJ1cmtlLCBCam9ybiBGcmVlbWFuLUJlbnNvbiwgTWFyZ2FyZXQgU3RvcmV5IAogICAgICA8YnI+CiAgICAgIDxicj4KICAgICAgPHA+PGI+PGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnLzIwMDQvU2hvd0V2ZW50LmRvP2lkPTU1MSIgdGFyZ2V0PSJfYmxhbmsiPmVjbGlwc2UgCiAgICAgICAgVGVjaG5vbG9neSBlWGNoYW5nZTwvYT4gKGVUWCkgUG9zdGVyIFNlc3Npb24gYW5kIFJlY2VwdGlvbjwvYj4gPGJyPgogICAgICAgIFN1bmRheSBPY3RvYmVyIDI0dGgsIDE3OjMwIHBtLCBWYW5jb3V2ZXIgQ29udmVudGlvbiBDZW50ZXIgPGJyPgogICAgICAgIDxicj4KICAgICAgICA8aT48Yj5DYWxsIEZvciBQb3N0ZXJzISA8YnI+CiAgICAgICAgPC9iPjwvaT5Zb3UgYXJlIGludml0ZWQgdG8gcHJlc2VudCBhIHBvc3RlciBhdCB0aGUgbmV4dCBlY2xpcHNlVGVjaG5vbG9neSAKICAgICAgICBlWGNoYW5nZSBwb3N0ZXIgcmVjZXB0aW9uISBTcG9uc29yZWQgYnkgSUJNLCB0aGUgZVRYIHJlY2VwdGlvbiB3aWxsIGZlYXR1cmUgCiAgICAgICAgZGVtb3MgYW5kIHBvc3RlcnMgb2YgRWNsaXBzZSBwcm9qZWN0cyBhbmQgcmVsYXRlZCB0ZWNobm9sb2d5IGFuZCB3aWxsIAogICAgICAgIGJlIG9wZW4gdG8gYWxsIE9PUFNMQSBhdHRlbmRlZXMuIE1hcmsgeW91ciBjYWxlbmRhcnMgZm9yIGEgZ3JlYXQgZXZlbnQhIAogICAgICAgIElmIHlvdSdkIGxpa2UgdG8gaG9zdCBhIHBvc3RlciBwbGVhc2UgZW1haWwgPGEgaHJlZj0ibWFpbHRvOmNhc2luZm9AY2EuaWJtLmNvbSI+Y2FzaW5mb0BjYS5pYm0uY29tPC9hPi4gCiAgICAgIDwvcD4KICAgICAgPHA+PGI+RWNsaXBzZSBCb0Y6IFBsYXRmb3JtLCBQbHVnLWlucyBhbmQgTW9yZSE8L2I+IDxicj4KICAgICAgICA8Yj5Nb25kYXk8L2I+LCBPY3RvYmVyIDI1dGgsIDc6MzAgLSA5OjMwIHBtLCBNZWV0aW5nIFJtIDExLzEyLCBWYW5jb3V2ZXIgCiAgICAgICAgQ29udmVudGlvbiBDZW50ZXI8L3A+CiAgICAgIDx1bD4KICAgICAgICA8bGk+V2hhdCdzIG5ldyBpbiBlY2xpcHNlPyAtIEVyaWNoIEdhbW1hIC8gSm9obiBXaWVnYW5kPC9saT4KICAgICAgICA8bGk+RWNsaXBzZSBhdCBJQk06IFJlZmluaW5nIHRoZSB0b29scyAtIFBhdWwgRWxkZXIgLyBKZWZmIEZpc2NoZXIgLyBTcmlkaGFyIAogICAgICAgICAgSXllbmdhcjwvbGk+CiAgICAgICAgPGxpPkxvdHVzIFdvcmtwbGFjZTogTWFraW5nIGVjbGlwc2UgcmVhZHkgZm9yIGJ1c2luZXNzIC0gTGktVGUgQ2hlbmc8L2xpPgogICAgICAgIDxsaT5RJmFtcDtBIHdpdGggdGhlIGVjbGlwc2UgdGVhbSAtIG1vZGVyYXRlZCBieSBFcmljaCBHYW1tYSAvIEpvaG4gV2llZ2FuZDwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDxwPlJlZnJlc2htZW50cyB3aWxsIGJlIHNlcnZlZCE8L3A+CiAgICAgIDxwPjxicj4KICAgICAgPC9wPgogICAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk9jdG9iZXIgMTktMjEgPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXJtLmNvbS9kZXZlbG9wZXJzY29uZmVyZW5jZS8iIHRhcmdldD0iX2JsYW5rIj5BUk0gCiAgICAgIERldmVsb3BlciBDb25mZXJlbmNlPC9hPiwgU2FudGEgQ2xhcmEsIENBIDxicj4KICAgICAgPGk+PGJyPgogICAgICA8L2k+IDxhIGhyZWY9Imh0dHA6Ly93d3cucnRjZ3JvdXAuY29tL2FybS9jb25mZXJlbmNlc2Vzc2lvbnMucGhwP2Q9MiIgdGFyZ2V0PSJfYmxhbmsiPldlZG5lc2RheSwgCiAgICAgIE9jdG9iZXIgMjB0aDwvYT4gPGJyPgogICAgICAxMTo0MCBhbSAtIDEyOjAwIHBtIDxicj4KICAgICAgSmFjb2IgTGVocmJhdW0sIE1vbnRhVmlzdGEgU29mdHdhcmUgLSA8aT5CdWlsZGluZyBhbiBFY2xpcHNlLUJhc2VkIERldmVsb3BtZW50IAogICAgICBFbnZpcm9ubWVudCBmb3IgRW1iZWRkZWQgTGludXg8L2k+PGJyPgogICAgICAxOjUwIHBtIC0gMjoxNSBwbTxicj4KICAgICAgQ2hyaXMgTWNLaWxsb3AsIFFOWCBTb2Z0d2FyZSBTeXN0ZW1zIC0gPGk+VXNpbmcgRWNsaXBzZSBGb3IgRW1iZWRkZWQgRGV2ZWxvcG1lbnQ8L2k+PGJyPgo8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk9jdG9iZXIgMTgtMjAgPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly9sbnMwMC5wc2kuY2gvbm9idWdzMjAwNC8iIHRhcmdldD0iX2JsYW5rIj5Ob0J1Z3MgCiAgICAgIDIwMDQgQ29uZmVyZW5jZTwvYT4sIFZpbGxpZ2VuIFBTSSwgU3dpdHplcmxhbmQ8YnI+CiAgICAgIFR1ZXNkYXkgT2N0b2JlciAxOXRoLCAxNTowMC0xNTozMDxicj4KICAgICAgVC4gTGFtLCBBLiBH9nR6LCBGLiBGcmFuY2VzY2hpbmksIE4uIEhhdXNlciAtIDxpPjxhIGhyZWY9Imh0dHA6Ly9sbnMwMC5wc2kuY2gvY2dpLWJpbi9ub2J1Z3MyMDA0L3Byb2dyYW0ud3MzP1hEY3RZeTBXYVJMSHdqTFlta1l1d1k3TDkxcXRtSFF2T0JCVE9VdWZpSjZEc050aTVOZ1hZS0xDbHhhQSIgdGFyZ2V0PSJfYmxhbmsiPkd1bVRyZWUgCiAgICAgIC0gQSBKYXZhIEJhc2VkIEdVSSBGcmFtZXdvcmsgZm9yIEJlYW1saW5lIEV4cGVyaW1lbnRzPC9hPjwvaT48YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk9jdG9iZXIgMTctMTk8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5mdHBvbmxpbmUuY29tL2NvbmZlcmVuY2VzL2phdmFwcm9saXZlLyIgdGFyZ2V0PSJfYmxhbmsiPkphdmFQcm8gCiAgICAgIExpdmUgMjAwNDwvYT4sIEJvc3RvbiwgTUEgPGJyPgogICAgICBNb25kYXksIE9jdG9iZXIgMTh0aCwgMTIgbm9vbiA8YnI+CiAgICAgIE1pa2UgTWlsaW5rb3ZpY2gsIEV4ZWN1dGl2ZSBEaXJlY3RvciwgRWNsaXBzZSBGb3VuZGF0aW9uIC0gPGEgaHJlZj0iaHR0cDovL3d3dy5mdHBvbmxpbmUuY29tL2NvbmZlcmVuY2VzL2phdmFwcm9saXZlL2tleW5vdGVzLmFzcHgjbWlsaW5rb3ZpY2giIHRhcmdldD0iX2JsYW5rIj5LZXlub3RlOiAKICAgICAgT3BlbiBTb3VyY2UgaW4gdGhlIEVudGVycHJpc2U8L2E+PGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDEyLTE1IDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmlibS5jb20vc2VydmljZXMvbGVhcm5pbmcvY29uZi9ldXJvcGUvc29mdGRldiIgdGFyZ2V0PSJfYmxhbmsiPklCTSAKICAgICAgU29mdHdhcmUgRGV2ZWxvcG1lbnQgVGVjaG5pY2FsIENvbmZlcmVuY2U8L2E+LCBTdHJhc2JvdXJnLCBGcmFuY2UgPGJyPgogICAgICBUaHVyc2RheSwgT2N0b2JlciAxNCwgMTc6MTUgLSAxODozMCA8YnI+CiAgICAgIEVyaWNoIEdhbW1hIC0gPGk+SW50cm9kdWN0aW9uIHRvIEVjbGlwc2UgPGJyPgogICAgICA8L2k+PC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDEyPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuanVncy5jaC9odG1sL2V2ZW50cy8yMDA0L2VjbGlwc2UuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkphdmEgCiAgICAgIFVzZXIgR3JvdXAgU3dpdHplcmxhbmQ8L2E+IChKVUdTKSwgWnVyaWNoLCAxNzowMCAtIDE4OjE1IDxicj4KICAgICAgRGlyayBCYWV1bWVyIC0gPGk+RGllIEVjbGlwc2UgUmljaCBDbGllbnQgUGxhdGZvcm08L2k+IDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+T2N0b2JlciAxMS0xNSA8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5vc2dpd29ybGRjb25ncmVzcy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+T1NHaSAKICAgICAgQWxsaWFuY2UgMjAwNCBXb3JsZCBDb25ncmVzczwvYT4gLSBCYXJjZWxvbmEsIFNwYWluIDxicj4KICAgICAgVHVlc2RheSwgT2N0b2JlciAxMnRoPGJyPgogICAgICBKZWZmIE1jQWZmZXIsIEVjbGlwc2UgRXF1aW5veCBQcm9qZWN0IExlYWQsIEVjbGlwc2Uub3JnIC0gT1NHaSBUZWNobm9sb2d5LCAKICAgICAgRWNsaXBzZSBhbmQgQ29udmVyZ2VuY2UgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDUtNyA8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5jaC1vcGVuLmNoL3dzdGFnZS9pbmRleC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+Q0gvT3BlbiAKICAgICAgV29ya3Nob3AgVGFnZTwvYT4sIFJhcHBlcnN3aWwsIFN3aXR6ZXJsYW5kIDxicj4KICAgICAgPGJyPgogICAgICBUdWVzZGF5IE9jdG9iZXIgNXRoLCA8aT48YSBocmVmPSJodHRwOi8vd3d3LmNoLW9wZW4uY2gvd3N0YWdlLzA0L3dzMS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSAKICAgICAgUGx1Zy1JbiBDbGluaWM8L2E+PC9pPiA8YnI+CiAgICAgIEJyaW5nIHlvdXIgbGFwdG9wcyBsb2FkZWQgd2l0aCB5b3VyIHBsdWdpbnMgYW5kIHByb2plY3RzLCBhbmQgam9pbiB1cyBmb3IgCiAgICAgIHRoZSBzZWNvbmQgRWNsaXBzZSBQbHVnLWluIENsaW5pYyBhdCB0aGUgL2NoL29wZW4gV29ya3Nob3AgRGF5cyEgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDQtNjwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmZyZWVzY2FsZS5jb20vd2ViYXBwL3Nwcy9zaXRlL2hvbWVwYWdlLmpzcD9ub2RlSWQ9MDUyNTc3MTcxMCIgdGFyZ2V0PSJfYmxhbmsiPkZyZWVzY2FsZSAKICAgICAgRW1iZWRkZWQgQ29ubmVjdGl2aXR5IFN1bW1pdDwvYT4sIEF1c3RpbiwgVFggPGJyPgogICAgICBTZWJhc3RpZW4gTWFyaW5lYXUtTWVzIC0gPGk+VXNpbmcgRWNsaXBzZSBDRFQgZm9yIEMvQysrIERldmVsb3BtZW50PC9pPjxicj4KICAgICAgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDQtODwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmF2YW50c29mdC5jb20iIHRhcmdldD0iX2JsYW5rIj5BdmFudFNvZnQsIAogICAgICBJbmM8L2E+LiAtIENvdXJzZTogIjxpPkRldmVsb3BpbmcgRWNsaXBzZSAzLjAgUGx1Zy1pbnM8L2k+IiAtIFNhbiBKb3NlLCAKICAgICAgQ0EgPGJyPgogICAgICBDaGVjayBvdXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXZhbnRzb2Z0LmNvbS9jb3Vyc2VzLmFzcHg/SUQ9MjAxJmNpZD1PUy1FY2xpcHNlcGx1Z2luIiB0YXJnZXQ9Il9ibGFuayI+ZGVzY3JpcHRpb248L2E+IAogICAgICBhbmQgPGEgaHJlZj0iaHR0cDovL3d3dy5hdmFudHNvZnQuY29tL3B1YmxpY3RyYWluaW5nLmFzcHg/aWQ9NTAwIiB0YXJnZXQ9Il9ibGFuayI+c2NoZWR1bGU8L2E+IAogICAgICBmb3IgbW9yZSBpbmZvcm1hdGlvbiE8YnI+CiAgICAgIDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+U2VwdGVtYmVyIDI4LTI5PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cucGFsbXNvdXJjZS5jb20vZXVyb2RldmNvbiIgdGFyZ2V0PSJfYmxhbmsiPlBhbG1Tb3VyY2UgCiAgICAgIEV1cm8gRGV2Q29uIDIwMDQ8L2E+LCBNdW5pY2gsIEdlcm1hbnkgPGJyPgogICAgICA8YnI+CiAgICAgIFBoaWwgU2hvZW1ha2VyLCBEaXJlY3RvciBEZXZlbG9wZXIgVG9vbHMsIFBhbG1Tb3VyY2UsIEluYyAtIDxpPkludHJvZHVjdGlvbiAKICAgICAgdG8gUGFsbSBPUyBEZXZlbG9wZXIgU3VpdGUgPC9pPjxicj4KICAgICAgPGJyPgogICAgICA8aT4gQWJzdHJhY3Q8L2k+OiBUaGUgbmV3IFBhbG0gT1MgRGV2ZWxvcG1lbnQgU3VpdGUgdG9vbCBjaGFpbiBpcyBkZXNpZ25lZCAKICAgICAgdG8gcHJvdmlkZSBzb2Z0d2FyZSBkZXZlbG9wZXJzIHdpdGggYW4gZWFzaWVyIGFuZCBmYXN0ZXIgcGF0aCB0b3dhcmQgY3JlYXRpbmcgCiAgICAgIFBhbG0gT1MgYXBwbGljYXRpb25zIGZvciBhbGwgY3VycmVudCByZWxlYXNlcyBvZiBQYWxtIE9TIGFuZCBQYWxtIE9TIENvYmFsdC4gCiAgICAgIFRoZSBuZXcgUGFsbSBPUyBEZXZlbG9wZXIgU3VpdGUgaXMgYmFzZWQgb24gRWNsaXBzZSwgYSBjb21tZXJjaWFsLXF1YWxpdHksIAogICAgICBiZXN0LWluLWNsYXNzIElERSB3aXRoIHNldmVyYWwgaHVuZHJlZCBwbHVnLWluIHRvb2xzIHRoYXQgc3VwcG9ydCBtYW55IG1ham9yIAogICAgICBzb2Z0d2FyZSBkZXZlbG9wbWVudCBsYW5ndWFnZXMgaW5jbHVkaW5nIEMsIEMrKywgSmF2YSwgYW5kIENPQk9MLiBUaGUgUGFsbSAKICAgICAgT1MgRGV2ZWxvcGVyIFN1aXRlIGlzIGNyaXRpY2FsIHRvIGRldmVsb3BlcnMgdGFyZ2V0aW5nIHN1cHBvcnQgZm9yIGJvdGggCiAgICAgIDY4SyBhbmQgQVJNLW5hdGl2ZSBQYWxtIE9TIGFwcGxpY2F0aW9ucy4gPGJyPgo8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPlNlcHRlbWJlciAxOCAtIDwvYj5Ib25nIEtvbmcgSmF2YSBVc2VyIEdyb3VwIGV2ZW50LCBDaXR5IAogICAgICBVbml2ZXJzaXR5IG9mIEhvbmcgS29uZyA8YnI+CiAgICAgIFN1bm55IENoYW4sIElCTSBIdXJzbGV5IC0gPGk+PGEgaHJlZj0iaHR0cHM6Ly9oa2p1Zy5kZXYuamF2YS5uZXQvc2VydmxldHMvTmV3c0l0ZW1WaWV3P25ld3NJdGVtSUQ9MTIwNiIgdGFyZ2V0PSJfYmxhbmsiPkV2ZXJ5dGhpbmcgCiAgICAgIEVjbGlwc2U8L2E+PC9pPjxicj4KICAgICAgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5BdWd1c3QgMTctMTk8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5iem1lZGlhLmNvbS9lc2RjLyIgdGFyZ2V0PSJfYmxhbmsiPkVtYmVkZGVkIAogICAgICBTb2Z0d2FyZSBEZXZlbG9wbWVudCBDb25mZXJlbmNlPC9hPiwgU2FuIEpvc2UsIENBIDxicj4KICAgICAgPGJyPgogICAgICBUaHVyc2RheSwgQXVndXN0IDE5LCA4OjMwYW0gdG8gMTA6MDBhbTxicj4KICAgICAgU2ViYXN0aWVuIE1hcmluZWF1LU1lcywgUU5YIC0gPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5iem1lZGlhLmNvbS9lc2RjL3RodXJzZGF5Lmh0bSIgdGFyZ2V0PSJfYmxhbmsiPlVzaW5nIAogICAgICBFY2xpcHNlIENEVCBmb3IgQy9DKysgRGV2ZWxvcG1lbnQ8L2E+PC9pPjxicj4KICAgICAgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPgogICAgICAgIDxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj4KICAgIDwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5KdWx5IDE4IC0gSnVseSAyMiAtIDwvYj4gPGEgaHJlZj0iaHR0cDovL3d3dy0zMDYuaWJtLmNvbS9zb2Z0d2FyZS9yYXRpb25hbC9ldmVudHNfMS5odG1sIyIgdGFyZ2V0PSJfYmxhbmsiPlJhdGlvbmFsIAogICAgICAgIFNvZnR3YXJlIERldmVsb3BtZW50IFVzZXIgQ29uZmVyZW5jZSAyMDA0PC9hPiwgR3JhcGV2aW5lLCBUZXhhcyA8YnI+CiAgICAgIDwvcD4KICAgICAgPHA+IE1vbmRheSwgSnVseSAxOSwgMTozMCBwbSAtIDI6MzAgcG0gLSBEQ1dFMDM8YnI+CiAgICAgICAgSmltIERhbmpvdSwgSUJNIC0gPGk+SW50cm9kdWN0aW9uIHRvIHRoZSBFY2xpcHNlIE1vZGVsaW5nIEZyYW1ld29yazwvaT4gCiAgICAgICAgPGJyPgogICAgICAgIFR1ZXNkYXksIEp1bHkgMjAsIDk6NDUgYW0gLSAxMDo0NSBhbSAtIFNRMjI8YnI+CiAgICAgICAgVGFudWogVm9ocmEsIElCTSBSYXRpb25hbCBzb2Z0d2FyZSAtIDxpPkFkdmFuY2VkIFJ1bi10aW1lIEFuYWx5c2lzIGZvciAKICAgICAgICBKYXZhIGluIEVjbGlwc2UgYW5kIElCTSBXZWJzcGhlcmUgU3R1ZGlvPC9pPiA8YnI+CiAgICAgICAgV2VkbmVzZGF5LCBKdWx5IDIxLCAyOjQ1IHBtIC0gMzo0NSBwbSAtIFNDTTI5PGJyPgogICAgICAgIFN0ZXZlIFNwZWljaGVyLCBJQk0gLSA8aT5UaGUgSUJNIFJhdGlvbmFsIENsZWFyUXVlc3QgYW5kIEVjbGlwc2UgSW50ZWdyYXRpb248L2k+IAogICAgICAgIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgVHJhY2s6IERlc2lnbiBhbmQgQ29uc3RydWN0aW9uIHVzaW5nIFdlYlNwaGVyZSBTdHVkaW8gYW5kIEVjbGlwc2UgPGJyPgogICAgICA8L3A+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkp1bmUgMjgtSnVseSAyPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3d3ZGMvIiB0YXJnZXQ9Il9ibGFuayI+QXBwbGUgCiAgICAgIFdXREMgMjAwNDwvYT4sIFNhbiBGcmFuY2lzY28gPGJyPgogICAgICAgIDxicj5UdWVzZGF5LCBKdW5lIDI5dGg8Yj4gPC9iPiAtIDI6MDAgLSAzOjMwIHBtPGJyPgogICAgICAgIDxicj4KICAgICAgICA8Yj5FcmljaCBHYW1tYSBhbmQgSm9obiBXaWVnYW5kIC08aT4gPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vd3dkYy9kZXNjcmlwdGlvbnMvaW5kZXguaHRtbCM2MjgiIHRhcmdldD0iX2JsYW5rIj5JbnRyb2R1Y3Rpb24gCiAgICAgICAgdG8gRWNsaXBzZTwvYT4gPC9pPjwvYj48aT48YnI+CiAgICAgIEFic3RyYWN0OiA8L2k+RWNsaXBzZSBpcyBhIHJhcGlkbHkgZXZvbHZpbmcgb3BlbiBzb3VyY2UgcHJvamVjdCB0aGF0IGluY2x1ZGVzIAogICAgICBhIGZlYXR1cmUgcmljaCBJREUgZm9yIEphdmEgZGV2ZWxvcG1lbnQuIEF0dGVuZCB0aGlzIHNlc3Npb24gdG8gbGVhcm4gYWJvdXQgCiAgICAgIHRoZSBFY2xpcHNlIHBsYXRmb3JtLCB0aGUgbmV3IGZlYXR1cmVzIGFuZCBjYXBhYmlsaXRpZXMgaW4gRWNsaXBzZSAzLjAsIAogICAgICBhbmQgaG93IHlvdSBtaWdodCB1c2UgRWNsaXBzZSBmb3IgeW91ciBuZXh0IEphdmEgcHJvamVjdCBvbiBNYWMgT1MgWC4gPGk+PGJyPgogICAgICA8L2k+IDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+SnVuZSAyOCAtIEp1bHkgMSA8L2I+LSA8YSBocmVmPSJodHRwOi8vc2VydmxldC5qYXZhLnN1bi5jb20vamF2YW9uZS8iIHRhcmdldD0iX2JsYW5rIj5KYXZhT25lPC9hPiwgCiAgICAgIFNhbiBGcmFuY2lzY28gPGJyPgogICAgICA8Yj48aT48YnI+CiAgICAgIDxhIGhyZWY9Ii4uL2V2ZW50cy9qYXZhb25lMjAwNC9qYXZhb25lLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5DaGVjayBvdXQgdGhlIAogICAgICBlY2xpcHNlIGV2ZW50cyBhdCBKYXZhT25lITwvYT4gPC9pPjwvYj4gPGJyPgogICAgICA8YnI+CiAgICAgIEpvaG4gV2llZ2FuZCBhbmQgRXJpY2ggR2FtbWEgLSA8aT48Yj5KYXZhIFRlY2hub2xvZ3kgVG9vbCBTbWl0aGluZzogRXh0ZW5kaW5nIAogICAgICB0aGUgRWNsaXBzZSBKYXZhIERldmVsb3BtZW50IFRvb2xzIDwvYj48L2k+KFRTLTE2NjIpPGJyPgogICAgICBKb2huIFdpZWdhbmQgYW5kIEVyaWNoIEdhbW1hIC0gPGk+PGI+V2hhdCdzIE5ldyB3aXRoIEVjbGlwc2U/PC9iPjwvaT4gKFRTLTMyMTApPGJyPgogICAgICBSb2JlcnSgQnVmZm9uZSBhbmQgTmV4YXdlYiBUZWNobm9sb2dpZXMgSW5jLiAtIDxpPjxiPkRldmVsb3BpbmcgU29mdHdhcmUgCiAgICAgIFRvb2xzIFRoYXQgV29yayB3aXRoIEJvdGggRWNsaXBzZSBhbmQgTmV0QmVhbnMgU29mdHdhcmU8L2I+PC9pPiAoVFMtMTg3Nik8YnI+CiAgICAgIEVkIE1lcmtzLCBJQk0gLSA8aT48Yj5UaGUgRWNsaXBzZSBNb2RlbGluZyBGcmFtZXdvcms6IEludHJvZHVjaW5nIE1vZGVsaW5nIAogICAgICB0byB0aGUgSmF2YVRNIFRlY2hub2xvZ3kgTWFpbnN0cmVhbTwvYj48L2k+IChUUy0xMzk2KTxicj4KICAgICAgU3RldmUgTm9ydGhvdmVyLCBJQk0gLTxpPjxiPiBJbnNpZGUgU1dUPC9iPjwvaT4gKFRTLTM4MTUpPGJyPgogICAgICA8YnI+CiAgICAgIFBhbmVsIC0gPGk+PGI+VGhlIEphdmFUTSBGb3VuZGF0aW9uIENsYXNzZXMgKCJKLkYuQy4vU3dpbmciKSBBUEkgYW5kIFNXVCAKICAgICAgKFRoZSBFY2xpcHNlIFN0YW5kYXJkIFdpZGdldCBUb29sa2l0KTwvYj48L2k+IDxicj4KICAgICAgUGFuZWxpc3RzIC0gU3RldmWgV2lsc29uLCBTaW1vbqBQaGlwcHMsIEhhbnOgTXVsbGVyLCBTdW4gTWljcm9zeXN0ZW1zIEVyaWNooEdhbW1hLCAKICAgICAgU3RldmWgTm9ydGhvdmVyIChCVVMtMzgxNykgPGI+PGJyPgogICAgICA8YnI+CiAgICAgIDxpPkVjbGlwc2UgQm9GPC9pPjwvYj4gLSBKb2huIFdpZWdhbmQgYW5kIEVyaWNoIEdhbW1hIChCT0YtMTcwMSk8YnI+Cjxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPkp1bHkgMSA8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5qZnMyMDA0LmRlIiB0YXJnZXQ9Il9ibGFuayI+SmF2YSAKICAgICAgICBGb3J1bSBTdHV0dGdhcnQ8L2E+LCBTdHV0dGdhcnQsIEdlcm1hbnkgPGJyPgogICAgICAgIDxicj4KICAgICAgICBBeGVsIFN0b2xsZnVzcywgc3luZ2VuaW8gQUcgLSA4OjQ1IC0gOTozMCA8YnI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5qZnMyMDA0LmRlL2Fic3RyYWN0cy5odG1sI0QxIiB0YXJnZXQ9Il9ibGFuayI+PGk+SHlhZGVzIAogICAgICAgIC0gRWNsaXBzZSBGcmFtZXdvcmsgZvxyIFRlc3RlbiwgTW9uaXRvcmluZyB1bmQgUHJvZmlsaW5nIHZvbiBKYXZhIEFud2VuZHVuZ2VuPC9pPjwvYT48YnI+CiAgICAgICAgPGJyPgogICAgICAgIERyLiBBbmRyJmVhY3V0ZTsgV2VpbmFuZCwgSUJNIE9USSBMYWJzIFp1cmljaCAtIDk6NDUgLSAxMDozMDxicj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmpmczIwMDQuZGUvYWJzdHJhY3RzLmh0bWwjRDIiIHRhcmdldD0iX2JsYW5rIj48aT5FY2xpcHNlIAogICAgICAgIFNXVCBvcjogSG93IEkgTGVhcm5lZCB0byBTdG9wIFdvcnJ5aW5nIGFuZCBMb3ZlIHRoZSBCb21iPC9pPjwvYT4gPGJyPgogICAgICAgIDxicj4KICAgICAgICBEci4gSnVlcmdlbiBMaW5kLCBpdGVyYXRlYyBHbWJIIC0gMTE6MTUgLSAxMjowMDxicj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmpmczIwMDQuZGUvYWJzdHJhY3RzLmh0bWwjRDMiIHRhcmdldD0iX2JsYW5rIj48aT5HcmFwaGlzY2hlIAogICAgICAgIERpYWxvZ21vZGVsbGllcnVuZyBpbiBFY2xpcHNlIG1pdCBIaWxmZSBkZXMgR3JhcGhpY2FsIEVkaXRpb3IgRnJhbWV3b3JrIAogICAgICAgIChHRUYpPC9pPjwvYT4gPGJyPgogICAgICAgIDxicj4KICAgICAgICBUb20gS3JhdXNzLCBHRUJJVCBTb2x1dGlvbnMgR21iSCAtIDExOjE1IC0gMTI6MDA8YnI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5qZnMyMDA0LmRlL2Fic3RyYWN0cy5odG1sI0MzIiB0YXJnZXQ9Il9ibGFuayI+PGk+Vm9uIAogICAgICAgIGRlbiBBbmZvcmRlcnVuZ2VuIGJpcyB6dXIgZmVydGlnZW4gV2ViLSB1bmQgUmljaC1DbGllbnQtQW53ZW5kdW5nOiBzY2huZWxsZXIgCiAgICAgICAgdW5kIGVpbmZhY2hlciB6dW0gWmllbCBtaXQgRWNsaXBzZSwgVU1MIHVuZCBUUkVORDwvaT48L2E+IDxicj4KICAgICAgICA8YnI+CiAgICAgIAogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5KdWx5IDI8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5zb2Z0d2FyZWV4cGVydHMuZGUvZWZzL1NlbnMvRUZTMjAwNC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RXhwZXJ0ZW4gCiAgICAgIEZvcnVtIFN0dXR0Z2FydCAoRUZTKTwvYT4gPGJyPgogICAgICA8YnI+CiAgICAgIEZyYW5rIEdlcmhhcmR0IC0gMDk6MDAgLSAxMjozMDxicj4KICAgICAgPGk+RGVza3RvcC1BbndlbmR1bmdlbiBtaXQgZGVyIEVjbGlwc2UgUmljaCBDbGllbnQgUGxhdGZvcm08L2k+IDxicj4KICAgICAgICA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cCBhbGlnbj0ibGVmdCI+PGI+SnVuZSAxNC0xOCAtIDwvYj48YSBocmVmPSJodHRwOi8vd3d3LmlmaS51aW8ubm8vZWNvb3AyMDA0LyIgdGFyZ2V0PSJfYmxhbmsiPkVDT09QIAogICAgICAgIDIwMDQ8L2E+LCBPc2xvLCBOb3J3YXkgPGJyPgogICAgICAgIDxicj4KICAgICAgICBUdWVzZGF5LCBKdW5lIDE1dGggPGJyPgogICAgICAgIEthaS1Vd2UgTWFldHplbCAtIDxiPlR1dG9yaWFsPC9iPiAoVEUxIGFuZCBURTIpOjxpPiA8YSBocmVmPSJodHRwOi8vd3d3LmlmaS51aW8ubm8vZWNvb3AyMDA0L3R1dG9yaWFscy5odG1sIiB0YXJnZXQ9Il9ibGFuayI+Q29udHJpYnV0aW5nIAogICAgICAgIHRvIEVjbGlwc2U6IHBsdWctaW5zIGFuZCBob3cgdG8gd3JpdGUgeW91ciBvd248L2E+PC9pPjxicj4KICAgICAgICA8YnI+CiAgICAgICAgVHVlc2RheSwgSnVuZSAxNXRoIDxicj4KICAgICAgICA8Yj48YSBocmVmPSJodHRwOi8vd3d3LmlmaS51aW8ubm8vZWNvb3AyMDA0L2NmcF9lY2xpcHNlLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5lY2xpcHNlIAogICAgICAgIFRlY2hub2xvZ3kgZVhjaGFuZ2UgLSA8aT5JbnZpdGF0aW9uIGFuZCBDYWxsIEZvciBQb3N0ZXJzITwvaT48L2E+PC9iPiAKICAgICAgICA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFlvdSBhcmUgaW52aXRlZCB0byB0aGUgZWNsaXBzZSBUZWNobm9sb2d5IGVYY2hhbmdlIChlVHgpIGF0IEVDT09QIG9uIEp1bmUgCiAgICAgICAgMTV0aCEgV2UnbGwgaGF2ZSBhIGJyaWVmIG92ZXJ2aWV3IG9mIHRoZSBlY2xpcHNlIHJlc2VhcmNoIGFuZCBhY2FkZW1pYyAKICAgICAgICBjb21tdW5pdHkuIFdlJ2xsIHRoZW4gZ2l2ZSB0aGUgZmxvb3IgdG8gdGhlIHBvc3RlciBob3N0cyBhbmQgdG8geW91LCB0aGUgCiAgICAgICAgYXR0ZW5kZWVzIGZvciBhbiBvcHBvcnR1bml0eSB0byBtaW5nbGUsIGV4Y2hhbmdlIGlkZWFzIGFuZCBsZWFybiB3aGF0J3MgCiAgICAgICAgaGFwcGVuaW5nIGFyb3VuZCB0aGUgZWNsaXBzZSBwcm9qZWN0IGFuZCBjb21tdW5pdHkuIFRoZSBlY2xpcHNlIFRlY2hub2xvZ3kgCiAgICAgICAgZVhjaGFuZ2UsIHNwb25zb3JlZCBieSBJQk0sIGlzIGNvLWhvc3RlZCBieSBGcmFuayBUaXAsIElCTSBUSiBXYXRzb24gbGFiIAogICAgICAgIGFuZCBNaWNoYWVsIEVybnN0LCBNSVQsIGFuZCBpcyBvcGVuIHRvIGFsbCBFQ09PUCBhdHRlbmRlZXMuIEhlcmUncyBhIHByZXZpZXcgCiAgICAgICAgb2YgdGhlIHByb2dyYW0gLSA8YnI+CiAgICAgIDwvcD4KICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgPHA+ZVRYIFBvc3RlciBSZWNlcHRpb24gLSAxODowMCAtIDIxOjAwPGJyPgogICAgICAgICAgLSBBIGJyaWVmIHRvdXIgb2YgdGhlIGVjbGlwc2UgcmVzZWFyY2ggYW5kIGFjYWRlbWljIGNvbW11bml0eSAtIEZyYW5rIAogICAgICAgICAgVGlwIGFuZCBNaWNoYWVsIEVybnN0IDxicj4KICAgICAgICAgIC0gUG9zdGVyIFJlY2VwdGlvbjwvcD4KICAgICAgPC9ibG9ja3F1b3RlPgogICAgICA8aT48Yj5DYWxsIEZvciBQb3N0ZXJzITwvYj48L2k+IDxicj4KICAgICAgV2UnZCBsaWtlIHRvIGV4dGVuZCBhIHNwZWNpYWwgaW52aXRhdGlvbiB0byBob3N0IGEgcG9zdGVyIGF0IHRoZSBldmVudCEgCiAgICAgIFdlJ2QgbGlrZSB0byBnaXZlIG1lbWJlcnMgb2YgdGhlIGVjbGlwc2UgY29tbXVuaXR5IHRoZSBvcHBvcnR1bml0eSB0byBzaG93Y2FzZSAKICAgICAgdGhlaXIgcHJvamVjdHMgYW5kIHdvcmtzLWluLXByb2dyZXNzICwgYW5kIHRvIHBlcmhhcHMgb3BlbiBzb21lIGRvb3JzIHRvIAogICAgICBuZXcgaW5wdXQgYW5kIGNvbGxhYm9yYXRpb24uIElmIHlvdSdkIGxpa2UgdG8gaG9zdCBhIHBvc3RlciwgcGxlYXNlIGVtYWlsIAogICAgICAoY2FzaW5mbyBhdCBjYS5pYm0uY29tKS4gTG9va2luZyBmb3J3YXJkIHRvIGhlYXJpbmcgZnJvbSB5b3UhIDxicj4KICAgICAgPGJyPgogICAgPC90ZD4gCiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+SnVuZSAxNC0xNSA8L2I+LSA8YSBocmVmPSJodHRwOi8vd3d3Lml4LWtvbmZlcmVuei5kZS8iIHRhcmdldD0iX2JsYW5rIj5FY2xpcHNlIAogICAgICAzLjAgLSBHZXQgUGx1Z2dlZCBJbjwvYT4sIGlYIENvbmZlcmVjZSAyMDA0LCBIZWlkZWxiZXJnLCBHZXJtYW55IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGI+VGhlIGZpcnN0IGVjbGlwc2UgY29uZmVyZW5jZSBpbiBFdXJvcGUhPC9iPjxicj4KICAgICAgVGhpcyBzcGVjaWFsIHR3by1kYXkgY29uZmVyZW5jZSBmZWF0dXJlcyBhIGZ1bGwgZGF5IG9mIHR1dG9yaWFscyBwcmVzZW50ZWQgCiAgICAgIGJ5IGV4cGVydHMgZnJvbSBhcm91bmQgdGhlIGVjbGlwc2UgY29tbXVuaXR5LiBPbiB0aGUgc2Vjb25kIGRheSwgaVggd2lsbCAKICAgICAgZmVhdHVyZSBhIHRlY2huaWNhbCBwcm9ncmFtIGRlc2lnbmVkIHRvIG1lZXQgeW91ciB0ZWNobm9sb2d5IGludGVyZXN0cyAtIAogICAgICB3aGV0aGVyIHlvdSdyZSBhIHNlYXNvbmVkIGVjbGlwc2UgZGV2ZWxvcGVyIG9yIGp1c3QgZ2V0dGluZyBzdGFydGVkLiBIZXJlIAogICAgICBpcyBhIHByZXZpZXcgb2YgdGhlIHByb2dyYW06PGJyPgogICAgICAgIDxicj4KICAgICAgPGI+S2V5bm90ZTogPC9iPkVyaWNoIEdhbW1hIC0gMDk6MDAgLSAwOTo0MCAtIDxpPkVjbGlwc2UgMy4wPC9pPjxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGI+RXhwZXJ0ZW4tVHJhY2s8L2I+PGJyPgogICAgICAgIDA5OjQ1IC0gMTA6MzUgRHIuIEFuZHImZWFjdXRlOyBXZWluYW5kLCBJQk0gUmVzZWFyY2ggT1RJIExhYnMgLSA8aT5QbHVnLWlucyAKICAgICAgICAtIHdhcyBFY2xpcHNlIGltIElubmVyc3RlbiB6dXNhbW1lbmhhZWx0PC9pPiA8YnI+CiAgICAgICAgMTA6NDUgLSAxMToxMCBUaG9tYXMgQmF1c3RlcnQsIFJlc2NvIEdtYkggLSA8aT5Bc3Bla3RvcmllbnRpZXJ0ZSBQcm9ncmFtbWllcnVuZyAKICAgICAgICBtaXQgZGVtIEFKRFQtUGx1Zy1pbiA8L2k+PGJyPgogICAgICAgIDExOjQ1IC0gMTI6MzUgUHJvZi4gTWFyaW8gSmVja2xlLCBGSCBGdXJ0d2FuZ2VuIC0gPGk+VU1MIHVuZCBFY2xpcHNlIC0gCiAgICAgICAgd2llIGdlaHQgZGFzIHp1c2FtbWVuPzwvaT48YnI+CiAgICAgIDxiPlBsdXMgITwvYj4gLSBEci4gPGk+RnJhbmsgR2VyaGFyZHQ8L2k+LCBTb2Z0d2FyZSBFeHBlcnRzIE5ldHdvcmsgU3R1dHRnYXJ0IAogICAgICAvIDxpPkNocmlzIFdlZ2U8L2k+LCBEYWltbGVyQ2hyeXNsZXIgQUcsIDxicj4KICAgICAgICA8aT5HZXJoYXJkIFdhZ25lcjwvaT4sIGl0ZXJudW0gR21iSCwgPGk+Sm9jaGVuIEtyYXVzZTwvaT4sIElubm9vcHJhY3QgCiAgICAgICAgSW5mb3JtYXRpb25zc3lzdGVtZSBHbWJIIGFuZCA8aT5NYXJjbyBLdWt1bGllczwvaT4sIFBJRVJJUyBQcm90ZW9sYWIgQUcuPGJyPgogICAgICAgIDxicj4KICAgICAgICA8Yj5VbXN0ZWlnZXItVHJhY2s8L2I+PGJyPgogICAgICAgIDA5OjQ1IC0gMTA6MzUgQmVybmhhcmQgU3RlcHBhbiwgVGhvbWFzIENvb2sgQUcgLSA8aT5FY2xpcHNlLUdydW5kbGFnZW4gCiAgICAgICAgLSBBYmdyZW56dW5nIHp1IGFuZGVyZW4gSURFcyA8L2k+PGJyPgogICAgICAgIDEwOjQ1IC0gMTE6MTAgUHJvZi4gRHIuIEtsYXVzLUdlb3JnIERlY2ssIEJlcnVmc2FrYWRlbWllIE1vc2JhY2ggLSA8aT5FY2xpcHNlIAogICAgICAgIGFscyBJREUgZiZ1dW1sO3IgUHJvZ3JhbW1pZXJhbmZhZW5nZXI8L2k+IDxicj4KICAgICAgICAxMTo0NSAtIDEyOjM1IFJhbW9uIFdhcnRhbGEsIEFPTCBEZXV0c2NobGFuZCAtIDxpPk1pdCBFY2xpcHNlIEphdmEtQXBwbGlrYXRpb25lbiAKICAgICAgICBlbnR3aWNrZWxuPC9pPiA8YnI+CiAgICAgIDxiPlBsdXMgITwvYj4gLSA8aT5LYXJsIEtlc3NsZXI8L2k+LCBTQVAsIERyLi1JbmcuIDxpPkpvZXJnIFN0b2x6ZW5iZXJnPC9pPiwgCiAgICAgIEZpbGVOZXQgR21iSCwgPGk+QXJuZCBCb2VrZW48L2k+LCBLYW56bGVpIENhc2ltaXIsIFZvZ3QgJmFtcDsgV2VpbnJlaWNoLCAKICAgICAgYW5kIDxpPk1hcmt1cyBWb2VsdGVyPC9pPiwgSW5nZW5pZXVyYnVlcm8gVm9lbHRlci4gPGJyPgogICAgICAgIDxicj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3Lml4LWtvbmZlcmVuei5kZS9wcm9ncmFtbS5waHA/a29uZmVyZW56aWQ9MiZzdD1Qcm9ncmFtbSIgdGFyZ2V0PSJfYmxhbmsiPlNlZSAKICAgICAgICB0aGUgZmluYWwgcHJvZ3JhbSBmb3IgZGV0YWlscyE8L2E+IDxicj4KICAgICAgICA8YnI+CiAgICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+SnVuZSA2LTEwIDwvYj4tIDxhIGhyZWY9Imh0dHA6Ly93d3cueHAyMDA0Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPlhQIAogICAgICAyMDA0PC9hPiwgSnVuZSA2LTcgMjAwNCwgR2FybWlzY2gtUGFydGVua2lyY2hlbiwgR2VybWFueSA8YnI+CiAgICAgIDxicj4KICAgICAgTW9uZGF5IEp1bmUgNywgMjAwNCwgOTowMC0xNzozMCAtIHR1dG9yaWFsPGJyPgogICAgICBLYWktVXdlIE1hZXR6ZWwgLSA8YSBocmVmPSJodHRwOi8vd3d3LnhwMjAwNC5kZS94cDIwMDQvdHV0b3JpYWxzLmh0bSN0MDciIHRhcmdldD0iX2JsYW5rIj48aT5Db250cmlidXRpbmcgCiAgICAgIHRvIEVjbGlwc2U6IHVuZGVyc3RhbmRpbmcgYW5kIHdyaXRpbmcgcGx1Zy1pbnM8L2k+PC9hPiA8YnI+CiAgICAgIDxicj4KICAgICAgVHVlc2RheSBKdW5lIDgsIDExOjAwIC0gMTU6MzAgLSBwbHVnLWluIGNsaW5pYzxicj4KICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy54cDIwMDQuZGUveHAyMDA0L3Byb2dyYW0uaHRtIiB0YXJnZXQ9Il9ibGFuayI+PGk+RXh0cmVtZSAKICAgICAgUGx1Zy1pbiBDbGluaWM8L2k+PC9hPiAtIEJyaW5nIHlvdXIgbGFwdG9wIGFuZCBwbHVnLWlucyBhbmQgaW50ZXJhY3Qgd2l0aCAKICAgICAgbWVtYmVycyBvZiB0aGUgWFAgYW5kIGVjbGlwc2UgY29tbXVuaXRpZXMhPGJyPgogICAgICA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj4gQW5ub3VuY2VtZW50ISA8YnI+CiAgICAgICAgTm93IHRocm91Z2ggSnVuZSAxMXRoPC9iPiAtIEpvaW4gYSBVbml2ZXJzaXR5IGNsYXNzcm9vbSBkaXNjdXNzaW9uIGFib3V0IAogICAgICAgIGVjbGlwc2UhIFlvdSBhcmUgd2VsY29tZSB0byBwYXJ0aWNpcGF0ZSB3aXRoIFVuaXZlcnNpdHkgb2YgTmV3IFNvdXRoIFdhbGUgCiAgICAgICAgc29mdHdhcmUgZW5naW5lZXJpbmcgc3R1ZGVudHMgaW4gcmVndWxhciBCQlMgZGlzY3Vzc2lvbiBmb3IgdGhlIGNvdXJzZSAKICAgICAgICA8aT5Tb2Z0d2FyZSBTeXN0ZW0gRGVzaWduIGFuZCBJbXBsZW1lbnRhdGlvbjwvaT4gKENPTVAgMzE0MSkgLiBWaWV3IHRoZSAKICAgICAgICA8YSBocmVmPSJodHRwOi8vY2dpLmNzZS51bnN3LmVkdS5hdS8lN0VjczMxNDEvaW5kZXgucGhwP21vZHVsZT1hcnRpY2xlcyZmdW5jPWRpc3BsYXkmcHRpZD0xJmFpZD0xIiB0YXJnZXQ9Il9ibGFuayI+Y291cnNlIAogICAgICAgIG9iamVjdGl2ZXM8L2E+Ljxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPk1heSAyMy0yOCAtIDwvYj48YSBocmVmPSJodHRwOi8vd3d3Lmljc2UtY29uZmVyZW5jZXMub3JnLzIwMDQvaW5kZXguaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPklDU0UgCiAgICAgICAgLSBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb24gU29mdHdhcmUgRW5naW5lZXJpbmc8L2E+LCBFZGluYnVyZ2gsIFNjb3RsYW5kIAogICAgICAgIDxicj4KICAgICAgPC9wPgoJICBUdWVzZGF5LCBNYXkgMjV0aDxicj4KICAgICAgV29ya3Nob3Agb24gRGlyZWN0aW9ucyBpbiBTb2Z0d2FyZSBFbmdpbmVlcmluZyBFbnZpcm9ubWVudHMgLSBDaGVjayBvdXQgCiAgICAgIHRoZSBwcm9ncmFtIGFuZCBwYXBlcnMgZm9yIHNvbWUgb2YgdGhlIGV4Y2l0aW5nIHJlc2VhcmNoIGRpcmVjdGlvbnMgdGhhdCAKICAgICAgdGhlIGVjbGlwc2UgcGxhdGZvcm0gc3VwcG9ydHMhIAogICAgICA8cD5UaHVyc2RheSwgTWF5IDI3dGgsIDE3OjMwIC0gMTk6MzA8Yj48YnI+CiAgICAgICAgZXRYIFBvc3RlciBSZWNlcHRpb24gPC9iPihMb21vbmQgU3VpdGUsIEVkaW5idXJnaCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2UgCiAgICAgICAgQ2VudHJlKTxicj4KICAgICAgICA8YnI+CiAgICAgICAgWW91IGFyZSBpbnZpdGVkIHRvIHRoZSBlY2xpcHNlIFRlY2hub2xvZ3kgZVhjaGFuZ2UgKGVUWCkgcmVjZXB0aW9uIGF0IAogICAgICAgIElDU0UhIFRoaXMgZWFybHkgZXZlbmluZyBldmVudCB3aWxsIGJlIGNoYWlyZWQgYnkgQW5kcmVhcyBaZWxsZXIsIFVuaXZlcnNpdHkgCiAgICAgICAgb2YgU2FhcmxhbmQsIGFuZCBob3N0ZWQgYnkgSUJNLiBUaGUgcmVjZXB0aW9uIGlzIG9wZW4gdG8gYWxsIElDU0UgMjAwNCAKICAgICAgICBhdHRlbmRlZXMsIHNvIHlvdSdsbCBoYXZlIGEgY2hhbmNlIHRvIHNob3djYXNlIHlvdXIgcG9zdGVyIGFuZCBpbnRlcmFjdCAKICAgICAgICB3aXRoIHRoZSBjb21tdW5pdHkgYXQgSUNTRS4gVG8gZXhoaWJpdCBhIHBvc3RlciBhdCB0aGUgZXZlbnQsIHBsZWFzZSBlbWFpbCAKICAgICAgICB5b3VyIHBvc3RlciB0aXRsZSwgdGhlIG5hbWUocykgb2YgdGhlIHByZXNlbnRlcnMgYW5kIGEgYnJpZWYgYWJzdHJhY3QgCiAgICAgICAgdG8gIChjYXNpbmZvIGF0IGNhLmlibS5jb20pIGJ5IE1heSAxNC4gCiAgICAgICAgU2VlIHlvdSB0aGVyZSE8YnI+CiAgICAgIDwvcD4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPk1heSAxNy0xOTwvYj4tIFRhZ3VuZyBkZXIgV0cgTGludXggKExpbnV4IFdvcmtpbmcgR3JvdXAgTWVldGluZyksIAogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ3NlbmV0LmRlLyIgdGFyZ2V0PSJfYmxhbmsiPkdTRTwvYT4gSmFocmVzdGFndW5nLCAKICAgICAgICBIYW5ub3ZlciwgR2VybWFueSA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIE1vbmRheSBNYXkgMTd0aCAtIDE1OjMwIC0gMTY6MTU8YnI+CiAgICAgICAgRGlyayBCYWV1bWVyIC0gPGk+RWNsaXBzZSBhbHMgQmFzaXMgdm9uIHp1a3VlbmZ0aWdlbiBEZXNrdG9wIHVuZCBCdXNpbmVzcyAKICAgICAgICBBbndlbmR1bmdlbjwvaT4gPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+TWF5IDEwLTE0PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuamF4LmRlLyIgdGFyZ2V0PSJfYmxhbmsiPkpBWCAyMDA0PC9hPiwgCiAgICAgICAgRnJhbmtmdXJ0IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgVHVlc2RheSBNYXkgMTF0aCAtIDE5OjQ1IDxicj4KICAgICAgICBFcmljaCBHYW1tYSAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuamF4LmRlL2tvbmZlcmVuemVuL3BzZWNvbSxpZCwxODQsbm9kZWlkLC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+QWdpbCAKICAgICAgICB1bmQgT3BlbiBTb3VyY2U6IEVjbGlwc2UgdW5kIHNlaW5lIEtvcm9uYSA8L2E+PC9pPjxicj4KICAgICAgICA8YnI+CiAgICAgICAgV2VkbmVzZGF5IE1heSAxMnRoIC0gMTA6MTUgLSAxMTozMCA8YnI+CiAgICAgICAgVGhvbWFzIEZlbnNrZSAtIFBhcnRuZXItU2Vzc2lvbiAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuamF4LmRlL2tvbmZlcmVuemVuL3BzZWNvbSxpZCwxNDgsbm9kZWlkLC5odG1sI01HOSIgdGFyZ2V0PSJfYmxhbmsiPiAKICAgICAgICBNREEgcHJheGlzb3JpZW50aWVydDogTW9kZWxsZ2V0cmllYmVuZSBFbnR3aWNrbHVuZyBtaXQgb2JqZWN0aUYgdW5kIEVjbGlwc2U8L2E+PC9pPiAKICAgICAgICA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFdlZG5lc2RheSBNYXkgMTIsIDE1OjMwIC0gMTY6NDUgPGJyPgogICAgICAgIERpcmsgQmFldW1lciAtIDxpPjxhIGhyZWY9Imh0dHA6Ly9qYXguZGUva29uZmVyZW56ZW4vcHNlY29tLGlkLDE1MCxub2RlaWQsLmh0bWwjRDUiIHRhcmdldD0iX2JsYW5rIj5EaWUgCiAgICAgICAgRWNsaXBzZSBSaWNoIENsaWVudCBQbGF0Zm9ybTwvYT48L2k+IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5qYXguZGUva29uZmVyZW56ZW4vZGl2ZXJzL3BzZWNvbSxpZCwxNDQsbm9kZWlkLDEzMy5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZS1OaWdodCAKICAgICAgICBhdCBKQVg8L2E+ISA8YnI+CiAgICAgICAgQnJpbmcgeW91ciBpZGVhcywgcXVlc3Rpb25zIGFuZCB5b3VyIGxhcHRvcCBsb2FkZWQgd2l0aCB5b3VyIHBsdWctaW5zIAogICAgICAgIHRvIEVjbGlwc2UtTmlnaHQgYXQgSkFYLiBUaGUgZXZlbmluZyBvcGVucyB3aXRoIEVyaWNoIEdhbW1hIG9uIFdoYXQncyAKICAgICAgICBOZXcgaW4gRWNsaXBzZSAzLjAgYW5kIG1vdmVzIG9uIHRvIGEgc3RydWN0dXJlZCBRJkEgd2l0aCBtZW1iZXJzIG9mIHRoZSAKICAgICAgICBlY2xpcHNlIGRldmVsb3BtZW50IHRlYW0gYW5kIGNvbW11bml0eS4gQWZ0ZXIgdGhlIFEmQSB3ZSdsbCBzd2l0Y2ggdG8gCiAgICAgICAgcGx1Zy1pbiBjbGluaWMgbW9kZSAtIGZvciBhbiBldmVuaW5nIG9mIGNvZGluZyBhbmQgc2hhcmluZyBleHBlcmllbmNlcywgCiAgICAgICAgb3B0aW1pemF0aW9ucyBhbmQgc29sdXRpb25zISA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5NYXkgNi04PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cudGhlc2VydmVyc2lkZS5jb20vc3ltcG9zaXVtLyIgdGFyZ2V0PSJfYmxhbmsiPlRoZVNlcnZlclNpZGUgCiAgICAgICAgSmF2YSBTeW1wb3NpdW08L2E+LCBMYXMgVmVnYXMsIFVTQSA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFRodXJzZGF5LCBNYXkgNnRoIDxicj4KICAgICAgICAxMDowMGFtIC0gMTE6MTVhbSAtIERpb24gQWxtYWVyIGFuZCBSb24gQm9ka2luIC0gPGEgaHJlZj0iaHR0cDovL3d3dy50aGVzZXJ2ZXJzaWRlLmNvbS9zeW1wb3NpdW0vc2Vzc2lvbkFic3RyYWN0cy5odG1sI2Fic3RyYWN0c0FsbWFlckJvZGtpbjEiIHRhcmdldD0iX2JsYW5rIj48aT5FbnRlcnByaXNlIAogICAgICAgIEFPUDwvaT48L2E+IDxicj4KICAgICAgICAyOjAwcG0gLSAzOjE1cG0gLSBEaW9uIEFsbWFlciBhbmQgUm9uIEJvZGtpbiAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudGhlc2VydmVyc2lkZS5jb20vc3ltcG9zaXVtL3Nlc3Npb25BYnN0cmFjdHMuaHRtbCNhYnN0cmFjdHNBbG1hZXJCb2RraW4yIiB0YXJnZXQ9Il9ibGFuayI+RW50ZXJwcmlzZSAKICAgICAgICBBT1AgRGVzaWduIFBhdHRlcm5zOiBhIGNhc2Ugc3R1ZHkgb2YgYVRyYWNrPC9hPjwvaT4gPGJyPgogICAgICAgIDU6MDBwbSAtIDY6MzBwbSAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudGhlc2VydmVyc2lkZS5jb20vc3ltcG9zaXVtL3NjaGVkdWxlLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5BT1AgCiAgICAgICAgS2V5bm90ZSBwYW5lbDwvYT48L2k+IDxicj4KICAgICAgICBHcmVnb3IgS2ljemFsZXMsIFJvZCBKb2huc29uLCBBZHJpYW4gQ295bGVyLCBSb24gQm9ka2luLCBDZWRyaWMgQmV1c3QsIAogICAgICAgIEJvYiBMZWUsIE1hcmMgRmxldXJ5LCBtb2RlcmF0ZWQgYnkgRGlvbiBBbG1hZXI8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFNhdHVyZGF5LCBNYXkgOHRoPGJyPgogICAgICAgIDI6MDAgLSAzOjE1IHBtIC0gSm9obiBXaWVnYW5kIC0gPGk+PGEgaHJlZj0iaHR0cDovL3d3dy50aGVzZXJ2ZXJzaWRlLmNvbS9zeW1wb3NpdW0vc2Vzc2lvbkFic3RyYWN0cy5odG1sI2Fic3RyYWN0c1dpZWdhbmQiIHRhcmdldD0iX2JsYW5rIj5FY2xpcHNlIAogICAgICAgIC0gR3Jvd2luZyBmcm9tIGEgVG9vbHMgUGxhdGZvcm0gdG8gYW4gQXBwbGljYXRpb24gUGxhdGZvcm08L2E+PC9pPiA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5NYXkgNC01PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2lncy1kYXRhY29tLmRlL3NkL2tvbmdyZXNzZS9zZXRfMjAwNC9pbmRleC5odG0iIHRhcmdldD0iX2JsYW5rIj5TRVQgCiAgICAgICAgMjAwNDwvYT4sIFp1cmljaCwgU3dpdHplcmxhbmQgPGJyPgogICAgICAgIFR1ZXNkYXkgTWF5IDR0aCwgMTQ6MzAgLSAxNToxNSA8YnI+CiAgICAgICAgQW5kciZlYWN1dGU7IFdlaW5hbmQgLSA8aT48YSBocmVmPSJodHRwOi8vd3d3LnNpZ3MtZGF0YWNvbS5kZS9zZC9rb25ncmVzc2Uvc2V0XzIwMDQvcHJvZ3JhbS9wcm9ncmFtX3R1Lmh0bSNUMTIiIHRhcmdldD0iX2JsYW5rIj5FY2xpcHNlIAogICAgICAgIGFscyB1bml2ZXJzZWxsZSBQbGF0Zm9ybSBmdWVyIERlc2t0b3AtQW53ZW5kdW5nZW48L2E+PC9pPjxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPk1hcmNoIDI5LUFwcmlsIDFzdDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmVzY29ubGluZS5jb20vIiB0YXJnZXQ9Il9ibGFuayI+RW1iZWRkZWQgCiAgICAgICAgU3lzdGVtcyBDb25mZXJlbmNlPC9hPiwgU2FuIEZyYW5jaXNjbywgQ0EsIFVTQSA8YnI+CiAgICAgICAgVGh1cnMgQXByaWwgMSwgODozMCBhbSAtIDEwOjAwIGFtIDxicj4KICAgICAgICBTZWJhc3RpZW4gTWFyaW5lYXUtTWVzIC0gPGk+VXNpbmcgRWNsaXBzZSBDRFQgZm9yIEMvQysrIERldmVsb3BtZW50PC9pPiAKICAgICAgICA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IAogICAgICA8cD48Yj5NYXJjaCAyNyAtIEFwcmlsIDQ8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5sc2kudXBjLmVzL2V0YXBzMDQvIiB0YXJnZXQ9Il9ibGFuayI+RVRBUFMgCiAgICAgICAgMjAwNDwvYT4sIEJhcmNlbG9uYSwgU3BhaW4gPGJyPgogICAgICAgIDxicj4KICAgICAgICA8YSBocmVmPSJodHRwOi8vd2ViLmNvbWxhYi5veC5hYy51ay9vdWNsL3dvcmsvb2VnZS5kZS5tb29yL2V0eHBhZ2UvZWNsaXBzZS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+Mm5kIAogICAgICAgIGVjbGlwc2UgVGVjaG5vbG9neSBFeGNoYW5nZSBXb3Jrc2hvcCAoZVR4KTwvYT4gLSBNYXJjaCAzMHRoIDxicj4KICAgICAgICBDby1jaGFpcnM6IEJyaWFuIEJhcnJ5LCBCZWRhcnJhIGFuZCBPZWdlIGRlIE1vb3IsIFVuaXZlcnNpdHkgb2YgT3hmb3JkIAogICAgICAgIDxicj4KICAgICAgICBJbnZpdGVkIFNwZWFrZXI6IEVyaWNoIEdhbW1hPGJyPgogICAgICAgIDxicj4KICAgICAgICBJbiBhZGRpdGlvbiB0byB0aGUgd29ya3Nob3AsIHRoZXJlIHdpbGwgYmUgYSBwb3N0ZXIgc2Vzc2lvbiBvZiBFY2xpcHNlIAogICAgICAgIHByb2plY3RzIGF0IGFuIGVjbGlwc2UgVGVjaG5vbG9neSBlWGNoYW5nZSAoZVRYKSByZWNlcHRpb24sIHNwb25zb3JlZCAKICAgICAgICBieSBJQk0sIG9uIDxiPkFwcmlsIDEsIDIwMDQ8L2I+LiBUaGUgZVRYIHJlY2VwdGlvbiB3aWxsIHRha2UgcGxhY2UgaW4gCiAgICAgICAgdGhlIGhpc3RvcmljIDxhIGhyZWY9Imh0dHA6Ly93d3cuZGliYS5lcy9tbWFyaXRpbS9lbmdsaXNoL2h0bS9kZXNjL2ZkZXNjLmh0bSIgdGFyZ2V0PSJfYmxhbmsiPk11c2V1IAogICAgICAgIE1hcml0aW08L2E+IGJlZ2lubmluZyBhdCA2OjAwIHAubS4gSWYgeW91J2QgbGlrZSB0byBwcmVzZW50IGEgcG9zdGVyLCAKICAgICAgICBwbGVhc2UgZW1haWwgY2FzaW5mbyBBVCBjYS5pYm0uY29tIC48YnI+CiAgICAgICAgPGJyPgogICAgICA8L3A+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk1hcmNoIDIyLTI2PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuYW9zZC5uZXQvY29uZmVyZW5jZS5waHAiIHRhcmdldD0iX2JsYW5rIj5BT1NEJzA0PC9hPiAKICAgICAgSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uIEFzcGVjdC1PcmllbnRlZCBTb2Z0d2FyZSBEZXZlbG9wbWVudCwgTGFuY2FzdGVyLCAKICAgICAgVUsgPGJyPgogICAgICA8YnI+CiAgICAgIDxiPlR1dG9yaWFsczwvYj48YnI+CiAgICAgIEVyaWsgSGlsc2RhbGUgYW5kIE1payBLZXJzdGVuIC0gPGk+PGEgaHJlZj0iaHR0cDovL2Fvc2QubmV0LzIwMDQvdHV0b3JpYWxzL2FzcGVjdGoucGhwIiB0YXJnZXQ9Il9ibGFuayI+QXNwZWN0LU9yaWVudGVkIAogICAgICBQcm9ncmFtbWluZyB3aXRoIEFzcGVjdEo8L2E+PC9pPiAtIE1vbmRheSwgTWFyY2ggMjI8YnI+CiAgICAgIEFkcmlhbiBDb2x5ZXIgYW5kIFdlcyBJc2JlcmcgLSA8aT48YSBocmVmPSJodHRwOi8vYW9zZC5uZXQvMjAwNC90dXRvcmlhbHMvZ29vZGFvcC5waHAiIHRhcmdldD0iX2JsYW5rIj5Hb29kIAogICAgICBBT1A6IElkaW9tcywgUnVsZXMsIGFuZCBQYXR0ZXJucyBpbiBBc3BlY3RKPC9hPjwvaT4gLSBUdWVzZGF5LCBNYXJjaCAyMzxicj4KICAgICAgUm9uIEJvZGtpbiBhbmQgQW5keSBDbGVtZW50IC0gPGk+PGEgaHJlZj0iaHR0cDovL2Fvc2QubmV0LzIwMDQvdHV0b3JpYWxzL2VudGFvcC5waHAiIHRhcmdldD0iX2JsYW5rIj5FbnRlcnByaXNlIAogICAgICBBc3BlY3QtT3JpZW50ZWQgUHJvZ3JhbW1pbmcgd2l0aCBBc3BlY3RKPC9hPjwvaT4gLSBUaHVyc2RheSwgTWFyY2ggMjU8YnI+CiAgICAgIDxicj4KICAgICAgPGI+RGVtb25zdHJhdGlvbnM8L2I+PGJyPgogICAgICBNaWsgS2Vyc3RlbiwgR2VvcmdlIEhhcmxleSBhbmQgQW5keSBDbGVtZW50IC0gPGk+PGEgaHJlZj0iaHR0cDovL2Fvc2QubmV0LzIwMDQvZGVtb3MvZDYucGhwIiB0YXJnZXQ9Il9ibGFuayI+QXNwZWN0SiAKICAgICAgVG9vbHMgLSBuZXcgYW5kIG5vdGV3b3J0aHk8YnI+CiAgICAgIDwvYT48L2k+IFJvbiBCb2RraW4sIERpb24gQWxtYWVyLCBhbmQgUmFtbml2YXMgTGFkZGFkIC0gPGk+PGEgaHJlZj0iaHR0cDovL2Fvc2QubmV0LzIwMDQvZGVtb3MvZDcucGhwIiB0YXJnZXQ9Il9ibGFuayI+YVRyYWNrOiAKICAgICAgYW4gZW50ZXJwcmlzZSBidWcgdHJhY2tpbmcgc3lzdGVtIHVzaW5nIEFPUDwvYT48L2k+IDxicj4KICAgICAgTWFydGluIExpcHBlcnQgLSA8YSBocmVmPSJodHRwOi8vd3d3LmFvc2QubmV0LzIwMDQvZGVtb3MvZDEucGhwIiB0YXJnZXQ9Il9ibGFuayI+PGk+RGVtbzogCiAgICAgIEFuIEFzcGVjdEotZW5hYmxlZCBFY2xpcHNlIFJ1bnRpbWUgRW5naW5lIDwvaT48L2E+IDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+TWFyY2ggMTgtMTkgPC9iPi08YSBocmVmPSJodHRwOi8vd3d3LmlmaS51bml6aC5jaC9zaS1zZS9zaXNlMjAwNC8iIHRhcmdldD0iX2JsYW5rIj5TSS1TRSAKICAgICAgMjAwNDwvYT4sIFp1cmljaCwgU3dpdHplcmxhbmQgPGJyPgogICAgICBGcmlkYXksIE1hcmNoIDE5LCAwODozMCAtIDA5OjQ1IDxicj4KICAgICAgRXJpY2ggR2FtbWEgLSA8YSBocmVmPSJodHRwOi8vd3d3LmlmaS51bml6aC5jaC9zaS1zZS9zaXNlMjAwNC9hYnN0cmFjdHMuaHRtbCNnYW1tYSIgdGFyZ2V0PSJfYmxhbmsiPkVjbGlwc2UgCiAgICAgIC0gRXZvbHZpbmcgdG93YXJkcyBhIGdlbmVyYWwgY29tcG9uZW50IHBsYXRmb3JtPC9hPjxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+TWFyY2ggMTMgLSA8L2I+PGEgaHJlZj0iaHR0cDovL3d3dy5nYmNhY20ub3JnL3dlYnNpdGUvIiB0YXJnZXQ9Il9ibGFuayI+R3JlYXRlciAKICAgICAgQm9zdG9uIENoYXB0ZXIgLyBBQ008L2E+LCBCb3N0b24sIE1BLCBVU0EgPGJyPgogICAgICBTYXR1cmRheSBTZW1pbmFyIDA5OjAwIC0gMTY6MzA8YnI+CiAgICAgIFNoZXJyeSBTaGF2b3IsIElCTSAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ2JjYWNtLm9yZy93ZWJzaXRlL3NlbUluZm8ucGhwP2lkPTEwNzQiIHRhcmdldD0iX2JsYW5rIj5Vc2luZywgCiAgICAgIEV4dGVuZGluZyBhbmQgVGVhY2hpbmcgRWNsaXBzZTwvYT48L2k+PGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5NYXJjaCA5IC0gPC9iPldlYmluYXI6IDxpPkRldmVsb3BpbmcgUmljaCBDbGllbnQgQXBwcyAKICAgICAgd2l0aCBTV1Q8L2k+IDxicj4KICAgICAgMTI6MDAtMTowMCBwbSBDZW50YWwgU3RhbmRhcmQgVGltZSAoR01UIC0wNjowMCwgQ2hpY2FnbykgPGJyPgogICAgICBTcGVha2VyOiBEYXZpZCBPcm1lLiBBU0MgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+RmVicnVhcnkgMiAtIDUsIDIwMDQgPC9iPi0gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlY29uLm9yZy8yMDA0L2luZGV4Lmh0bSIgdGFyZ2V0PSJfYmxhbmsiPjxiPkVjbGlwc2VDb24gCiAgICAgICAgMjAwNDwvYj48L2E+ICwgQW5haGVpbSwgQ0EsIDxiPlVTQTwvYj4gPGJyPgogICAgICAgIDxicj4KICAgICAgICA8Yj48aT48YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2V2ZW50cy9lY2xpcHNlY29uMjAwNC9saXZlLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5WaWV3IAogICAgICAgIHRoZSBsaXZlIGNvbmZlcmVuY2UgcGFnZTwvYT4hIDwvaT48L2I+PGJyPgogICAgICAgIDxicj4KICAgICAgICBFeHBlcmllbmNlIEVjbGlwc2VDb24gMjAwNCwgYSB0ZWNobmljYWwgY29uZmVyZW5jZSB0aGF0IGJyaW5ncyB0b2dldGhlciAKICAgICAgICB0aGUgRWNsaXBzZSBvcGVuIHNvdXJjZSBwcm9qZWN0LCBjb21tdW5pdHksIGFuZCBlY29zeXN0ZW0uIFRoZSBwcm9ncmFtIAogICAgICAgIGZlYXR1cmVzIGtleW5vdGVzLCB0dXRvcmlhbHMsIGRlbW9zLCBwb3N0ZXIgc2Vzc2lvbnMsIGV4aGliaXRzLCBhbmQgQmlyZHMtb2YtYS1GZWF0aGVyIAogICAgICAgIHNlc3Npb25zLiBMZWFybiBhbmQgam9pbiBpbiB3aXRoIHRoZSBjb21tdW5pdHkgYW5kIHRoZSBtZW1iZXJzIG9mIHRoZSAKICAgICAgICBvcGVuIHNvdXJjZSBwcm9qZWN0LiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFZpc2l0IHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Vjb24ub3JnLzIwMDQvaW5kZXguaHRtIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZUNvbiAKICAgICAgICBob21lIHBhZ2U8L2E+IGFuZCBjaGVjayBvdXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZWNvbi5vcmcvMjAwNC9wcm9ncmFtLmh0bSIgdGFyZ2V0PSJfYmxhbmsiPnVwZGF0ZWQgCiAgICAgICAgcHJvZ3JhbTwvYT4hIFdlJ3ZlIGFkZGVkIHRhbGtzIHNob3dpbmcgdGhlIGZ1bGwgc3BlY3RydW0gb2Ygd2F5cyB0aGF0IAogICAgICAgIHlvdSBhcyBhIHRlY2huaWNhbCBwcm9mZXNzaW9uYWwgY2FuIGxldmVyYWdlIHRoZSBFY2xpcHNlIGVjb3N5c3RlbSBvZiAKICAgICAgICBwcm9qZWN0cyBhbmQgcHJvZHVjdHMuPC9wPgogICAgICA8cD5IZXJlIGFyZSBzb21lIG9mIHRoZSBFY2xpcHNlIHRoZW1lcyBhZGRyZXNzZWQgaW4gdGhlIHRlY2huaWNhbCBwcm9ncmFtOiAKICAgICAgICBFeHRlbmRpbmcgRWNsaXBzZSwgd2hlcmUgYXR0ZW5kZWVzIHdpbGwgbGVhcm4gYSB2YXJpZXR5IG9mIGFkdmFuY2VkIHBsdWctaW4gCiAgICAgICAgZGV2ZWxvcG1lbnQgdGVjaG5pcXVlczsgVG9vbHMgYW5kIEZyYW1ld29ya3MsIGluY2x1ZGluZyB0aGUgRWNsaXBzZSBtb2RlbGluZyAKICAgICAgICBmcmFtZXdvcms7IExhbmd1YWdlIEltcGxlbWVudGF0aW9ucyBpbmNsdWRpbmcgdGhlIEMvQysrIHRvb2xzIHByb2plY3QgCiAgICAgICAgYW5kIGVjbGlwc2UgZm9yIFBIUCBkZXZlbG9wZXJzOyBhbmQgaG93IHRvIHVzZSBFY2xpcHNlIGFzIGEgUmljaCBDbGllbnQgCiAgICAgICAgUGxhdGZvcm0gd2hlcmUgeW91J2xsIGxlYXJuIGhvdyB0byBsZXZlcmFnZSBFY2xpcHNlIHRvIGJ1aWxkIHJpY2ggY2xpZW50IAogICAgICAgIGFwcGxpY2F0aW9ucy4gUGFydGljaXBhbnRzIHdpbGwgaGVhciBhYm91dCBTV1QgaW4gZGVwdGgsIEFnaWxlIERldmVsb3BtZW50IAogICAgICAgIGFuZCBFY2xpcHNlLCBhbmQgZGV2ZWxvcGluZyBXZWIgYXBwbGljYXRpb25zIHdpdGggRWNsaXBzZS4gWW91J2xsIGFsc28gCiAgICAgICAgZ2FpbiBpbnNpZ2h0cyBpbnRvIGEgbGFyZ2Ugc2NhbGUgT3BlbiBTb3VyY2UgcHJvamVjdCBhbmQgaXRzIGRldmVsb3BtZW50IAogICAgICAgIHByYWN0aWNlcy4gRmluYWxseSwgd2UnbGwgaGlnaGxpZ2h0IGEgYnJvYWQgcmFuZ2Ugb2YgZW50ZXJwcmlzZSBFY2xpcHNlIAogICAgICAgIHByb2R1Y3RzIGFuZCBwcm9qZWN0cyBmcm9tIGxlYWRpbmcgdGVjaG5vbG9neSBjb21wYW5pZXMuPGJyPgogICAgICAgIDxicj4KICAgICAgICBQcmVzZW50ZWQgYnk6IGVjbGlwc2Uub3JnIDxicj4KICAgICAgICBQcm9kdWNlZCBieTogdGhlIE9NRzwvcD4KICAgICAgPHAgYWxpZ249ImxlZnQiPjxpPjxiPlNlZSB5b3UgdGhlcmUhPC9iPjwvaT48YnI+CiAgICAgIDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5KYW51YXJ5IDE5LTIzLCAyMDA0PC9iPiAtPGEgaHJlZj0iaHR0cDovL3d3dy5zaWdzLWRhdGFjb20uZGUvc2Qva29uZ3Jlc3NlL29vcF8yMDA0LyIgdGFyZ2V0PSJfYmxhbmsiPk9PUCAKICAgICAgMjAwNDwvYT4sIE11bmljaCwgPGJyPgogICAgICBUdWVzZGF5IEphbnVhcnkgMjA8YnI+CiAgICAgIDA5OjAwIC0gMTA6MzAgLSBTcGVha2VyOiBNYXJrdXMgVvZsdGVyIC0gPGk+R1VJIEVudHdpY2tsdW5nIG1pdCBFY2xpcHNlPC9pPiAKICAgICAgPGJyPgogICAgICAxNjoxNSAtIDE3OjMwIC0gU3BlYWtlcnM6IEVyaWNoIEdhbW1hLCBLYWktVXdlIE1hZXR6ZWwgLSA8aT5UaGUgRWNsaXBzZSAKICAgICAgRWNvc3lzdGVtIDwvaT48YnI+CiAgICAgIDxicj4KCSAgVGh1cnNkYXkgSmFudWFyeSAyMiAxNjowMCAtIDE4OjAwIDxicj4KICAgICAgU3BlYWtlcnM6IE4uIEpvc3V0dGlzLCBKLiBFY2tzdGVpbiwgRi4gV2VzdHBoYWwgJiBNLiBW9mx0ZXIgLSA8aT5GaXQsIEFnaWwgCiAgICAgIHVuZCBFY2xpcHNlIJYgRWluIEVyZm9sZ3NiZXJpY2h0PGI+PGJyPgogICAgICA8YnI+CiAgICAgIDwvYj48L2k+PC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5KYW51YXJ5IDcsIDIwMDQ8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5hZmNldXJvcGUuY29tL2NsdWItamF2YS9hZ2VuZGEuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkNsdWIgCiAgICAgIEphdmEgU29waGlhLUFudGlwb2xpczwvYT4gPGJyPgogICAgICAxNzozMCAtIDE5OjAwIC0gJnF1b3Q7PGk+RWNsaXBzZSwgcGx1cyBxdSd1biBlbnZpcm9uZW1lbnQgSmF2YTwvaT4mcXVvdDsgCiAgICAgIFBhciBQYXNjYWwgUmFwaWNhdWx0IDxicj4KICAgICAgPC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKICA8dGFibGUgQk9SREVSPTAgQ0VMTFNQQUNJTkc9NSBDRUxMUEFERElORz0yIFdJRFRIPSIxMDAlIiA+CiAgPHRyPiAKICAgIDx0ZCBBTElHTj1MRUZUIFZBTElHTj1UT1AgQ09MU1BBTj0iMiIgQkdDT0xPUj0iIzAwODBDMCI+PGI+PGZvbnQgZmFjZT0iQXJpYWwsSGVsdmV0aWNhIiBjb2xvcj0iI0ZGRkZGRiI+IAogICAgICBFdmVudHMgMjAwMzwvZm9udD48L2I+PC90ZD4KICA8L3RyPgo8L3RhYmxlPgo8dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9NSBjZWxscGFkZGluZz0yIHdpZHRoPSIxMDAlIiA+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkRlY2VtYmVyIDh0aCA8L2I+IC0gPGI+PGEgaHJlZj0iaHR0cDovL3d3dy5zY3MuY2FybGV0b24uY2EvaWNlIiB0YXJnZXQ9Il9ibGFuayI+RW50cmllcyAKICAgICAgZHVlIGZvciB0aGUgSUNFIChJbnRlcm5hdGlvbmFsIENoYWxsZW5nZSBmb3IgRWNsaXBzZSkgcHJvZ3JhbW1pbmcgY29udGVzdCE8L2E+IAogICAgICA8aT4gIFJlZ2lzdGVyIHRvZGF5ISA8L2k+PC9iPjxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+Tm92ZW1iZXIgMjctMjg8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5peC1rb25mZXJlbnouZGUvZWluc3RpZWcucGhwIiB0YXJnZXQ9Il9ibGFuayI+aVggCiAgICAgIEtvbmZlcmVueiAyMDAzPC9hPiwgSGVpZGVsYmVyZywgPGI+R2VybWFueTwvYj48YnI+CiAgICAgIDxicj4KICAgICAgV2VkbmVzZGF5LCBOb3ZlbWJlciAyNnRoLCAxMTowMC0xNzowMCA8YnI+CiAgICAgIEJlcnRob2xkIERhdW0gPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5peC1rb25mZXJlbnouZGUvcHJvZ3JhbW0ucGhwP3ZvcnR5cD1HZXNhbXRwcm9ncmFtbSIgdGFyZ2V0PSJfYmxhbmsiPkphdmEtRW50d2lja2x1bmcgCiAgICAgIG1pdCBFY2xpcHNlPC9hPjwvaT4gLSBUdXRvcmlhbDxicj4KICAgICAgPGJyPgogICAgICBUaHVyc2RheSwgTm92ZW1iZXIgMjd0aCwgMDk6MDAgLSAwOTo0NSA8YnI+CiAgICAgIEVyaWNoIEdhbW1hIC0gPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5peC1rb25mZXJlbnouZGUvcHJvZ3JhbW0ucGhwIiB0YXJnZXQ9Il9ibGFuayI+T3BlbiAKICAgICAgU291cmNlIERldmVsb3BtZW50PC9hPjwvaT4gLSBLZXlub3RlPGJyPgogICAgICA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk5vdmVtYmVyIDEzLTE0PC9iPiAtIDxiPjxpPkVjbGlwc2U6IG1vcmUgdGhhbiBhbiBJREU8L2k+PC9iPiwgCiAgICAgIFBvcnRsYW5kIFN0YXRlIFVuaXZlcnNpdHksIFBvcnRsYW5kLCBPUiwgPGI+VVNBPC9iPiA8YnI+CiAgICAgIDxicj4KICAgICAgPGk+PGI+Sm9pbiB1cyBmb3IgdGhlIG5leHQgZWNsaXBzZSBwbHVnLWluIGNsaW5pYyBwcmVzZW50ZWQgaW4gY29uanVuY3Rpb24gCiAgICAgIHdpdGggdGhlIFNvZnR3YXJlIEFzc29jaWF0aW9uIG9mIE9yZWdvbiAoPGEgaHJlZj0iaHR0cDovL3d3dy5zYW8ub3JnLyIgdGFyZ2V0PSJfYmxhbmsiPlNBTzwvYT4pLCAKICAgICAgdGhlIFBvcnRsYW5kIEphdmEgVXNlciBHcm91cCAoPGEgaHJlZj0iaHR0cDovL3d3dy5wanVnLm9yZy8iIHRhcmdldD0iX2JsYW5rIj5QSlVHPC9hPiksIAogICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmNzLnBkeC5lZHUvIiB0YXJnZXQ9Il9ibGFuayI+dGhlIERlcGFydG1lbnQgb2YgQ29tcHV0ZXIgCiAgICAgIFNjaWVuY2UgYXQgUG9ydGxhbmQgU3RhdGUgVW5pdmVyc2l0eS48L2E+IFdlIHdvdWxkIGxpa2UgdG8gdGhhbmsgdGhlIHNwb25zb3JzIAogICAgICBvZiB0aGUgZmlyc3QgQ2FtcEVjbGlwc2UgaW4gTi4gQW1lcmljYSAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuaW5zdGFudGlhdGlvbnMuY29tIiB0YXJnZXQ9Il9ibGFuayI+SW5zdGFudGlhdGlvbnMsPC9hPiAKICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiB0YXJnZXQ9Il9ibGFuayI+SW50ZWw8L2E+IGFuZCBTY2h3YWJlICE8L2I+PC9pPjxicj4KICAgICAgPGJyPgogICAgICA8Yj5QcmVzZW50YXRpb25zIC0gRWNsaXBzZSBPdmVydmlldzwvYj48YnI+CiAgICAgIFBvcnRsYW5kIFN0YXRlIFVuaXZlcnNpdHksIFZhbnBvcnQgUm9vbSwgMzM4IFNtaXRoIFVuaW9uLCBUaHVyc2RheSBOb3ZlbWJlciAKICAgICAgMTN0aCwgMDg6MDAgLSAxMjowMCA8YnI+CiAgICAgIDxpPldoYXQncyBuZXcgaW4gMy4wPC9pPiAtIEpvaG4gV2llZ2FuZCA8YnI+CiAgICAgIDxpPkJhdHRsZWZpZWxkIEV4cGVyaWVuY2VzIHdpdGggRWNsaXBzZTogVGlwcyAmIFRyaWNrcyBmb3IgQ29tbWVyY2lhbCBQbHVnLWluIAogICAgICBEZXZlbG9wbWVudDwvaT4gLSBFcmljIENsYXliZXJnIDxicj4KICAgICAgPGk+SW5zaWRlIHRoZSBFY2xpcHNlIERldmVsb3BtZW50IFByb2Nlc3M8L2k+IC0gS2V2aW4gSGFhbGFuZCA8YnI+CiAgICAgIDxpPkxlYXJuaW5nIGFib3V0IEVjbGlwc2U8L2k+IC0gRHdpZ2h0IERldWdvIDxicj4KICAgICAgPGJyPgogICAgICA8Yj5UdXRvcmlhbCAtIFdyaXRpbmcgeW91ciBmaXJzdCBwbHVnLWluczwvYj48YnI+CiAgICAgIDE6MDAgcG0gLSA1OjAwIHBtIDxicj4KICAgICAgU3BlYWtlcjogRHdpZ2h0IERldWdvPGJyPgogICAgICBGb3IgZWNsaXBzZSB1c2VycyB3aG8gd291bGQgbGlrZSBhIGhlYWRzdGFydCBvbiBsZWFybmluZyB0byB3cml0ZSB0aGVpciAKICAgICAgb3duIHBsdWdpbnMsIER3aWdodCBEZXVnbyB3aWxsIHByZXNlbnQgYSBoYWxmIGRheSB0dXRvcmlhbCBvbiBlY2xpcHNlIHBsdWdpbnMuIAogICAgICBUaGUgdHV0b3JpYWwgd2lsbCBiZSBhIGJsZW5kIG9mIGxlY3R1cmUgYW5kIGhhbmRzLW9uIGV4ZXJjaXNlcywgc28gcGFydGljaXBhbnRzIAogICAgICB3aWxsIG5lZWQgdG8gYnJpbmcgdGhlaXIgbGFwdG9wcyB3aXRoIGVjbGlwc2UgaW5zdGFsbGVkLiBXZSdsbCBzZW5kIHlvdSAKICAgICAgYSBsaW5rIHdoZXJlIHlvdSdsbCBmaW5kIHRoZSBmaWxlcyB5b3UgbmVlZC4gQ2xhc3Mgc2l6ZSB3aWxsIGJlIGxpbWl0ZWQsIAogICAgICBzbyBwbGVhc2UgcmVnaXN0ZXIgaW4gYWR2YW5jZSBvbiB0aGUgU0FPIHdlYnNpdGUuIDxicj4KICAgICAgPGJyPgogICAgICA8Yj5QbHVnLUluIENvZGUgQ2xpbmljIDxicj4KICAgICAgPC9iPlBvcnRsYW5kIFN0YXRlIFVuaXZlcnNpdHksIDMyNyBTbWl0aCBVbmlvbiwgVGh1cnNkYXkgTm92ZW1iZXIgMTN0aCAtIAogICAgICAxOjAwIHBtIHRocm91Z2ggRnJpZGF5IE5vdmVtYmVyIDE0dGggLSA1OjAwIHBtPGJyPgogICAgICA8YnI+CiAgICAgIFRoZSBjb2RlIGNsaW5pYyBiZWdpbnMgaW4gcGFyYWxsZWwgYW5kIGNvbnRpbnVlcyB0aHJvdWdoIEZyaWRheSBOb3YuIDE0dGggCiAgICAgIFRoZSBQbHVnaW4gQ2xpbmljIHdpbGwgaW5jbHVkZSBzaG9ydCB0b3BpY2FsIHByZXNlbnRhdGlvbnMgdGhyb3VnaG91dCB0aGUgCiAgICAgIHR3byBkYXlzLCBidXQgdGhlIG1haW4gZm9jdXMgaXMgb24gZ2l2aW5nIHlvdSwgdGhlIGVjbGlwc2UgcGx1Zy1pbiBkZXZlbG9wZXJzIAogICAgICB0aGUgb3Bwb3J0dW5pdHkgdG8gY29kZSB0b2dldGhlciwgbmV0d29ya2luZyB3aXRoIG1lbWJlcnMgb2YgdGhlIGNvbW11bml0eSAKICAgICAgYW5kIHRoZSBlY2xpcHNlIGNvbW1pdHRlcnMuIFlvdSdsbCBuZWVkIHRvIGJyaW5nIHlvdXIgcGx1Zy1pbnMsIHBsdWctaW4gCiAgICAgIGlkZWFzLCBwcm9wb3NhbHMsIHByb2JsZW1zLCBzb2x1dGlvbnMgYW5kIHlvdXIgbGFwdG9wIGFuZCB3ZSdsbCBwcm92aWRlIAogICAgICB0aGUgZW52aXJvbm1lbnQgZm9yIGhpZ2ggYmFuZHdpZHRoIGludGVyYWN0aW9uLiBQYXJ0aWNpcGF0aW9uIHdpbGwgYmUgbGltaXRlZCAKICAgICAgc28gdGhhdCB3ZSBjYW4gd29yayBpbiBhbiBlbnZpcm9ubWVudCBvZiAnc3RydWN0dXJlZCBjaGFvcycgLSB3ZSdsbCBnZXQgCiAgICAgIHRvZ2V0aGVyIGFzIGEgZ3JvdXAgZm9yIFEmQXMsIGNoZWNrcG9pbnRzIGFuZCAnanVzdC1pbi10aW1lJyB0b3BpY2FsIHByZXNlbnRhdGlvbnMuIAogICAgICBQYXJ0aWNpcGF0aW9uIHdpbGwgYmUgbGltaXRlZCwgc28gcGxlYXNlIHJlZ2lzdGVyIGluIGFkdmFuY2Ugb24gdGhlIFNBTyAKICAgICAgd2Vic2l0ZS4gPGJyPgogICAgPC90ZD4KICA8L3RyPiAgIAogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDI2IC0gMzAgPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cub29wc2xhLm9yZy9vb3BzbGEyMDAzL2ZpbGVzL2luZGV4Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5PT1BTTEEgCiAgICAgIDIwMDM8L2E+LCBBbmFoZWltLCBDQSwgPGI+VVNBPC9iPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxiPktleW5vdGU6PC9iPiA8YnI+CiAgICAgICAgRXJpY2ggR2FtbWEgLSA8aT48YSBocmVmPSJodHRwOi8vd3d3Lm9vcHNsYS5vcmcvb29wc2xhMjAwMy9maWxlcy9rZXktNS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSAKICAgICAgICBhbmQgVGhlIERhcmsgU2lkZSBvZiB0aGUgTW9vbjwvYT48L2k+PGJyPgogICAgICAgIFRodXJzZGF5LCAzMCBPY3RvYmVyIJYgMTM6MzAtMTU6MDAgaHR0cDovL3d3dy5vb3BzbGEub3JnL29vcHNsYTIwMDMvZmlsZXMva2V5LTUuaHRtbCAKICAgICAgICA8YnI+CiAgICAgIDxwPjxiPlNwZWNpYWwgZXZlbnRzOjwvYj48YnI+CiAgICAgICAgPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnL29vcHNsYTIwMDMvZmlsZXMvc3BjLTEuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPklCTSAKICAgICAgICBlVFggUmVjZXB0aW9uIGFuZCBQb3N0ZXIgU2Vzc2lvbjwvYT48YnI+CiAgICAgICAgPC9pPlN1bmRheSwgMjYgT2N0b2JlciAtIDE3OjMwLTIwOjMwIGVjbGlwc2UgVGVjaG5vbG9neSBFeGNoYW5nZSAoZVRYKSwgCiAgICAgICAgaG9zdGVkIGJ5IElCTSA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cub29wc2xhLm9yZy9vb3BzbGEyMDAzL2ZpbGVzL3NwYy03Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5lY2xpcHNlIAogICAgICAgIFBsdWctaW4gUmVjZXB0aW9uPC9hPiA8YnI+CiAgICAgICAgVHVlc2RheSwgMjggT2N0b2JlciCWIDE5OjMwLTIyOjAwLCBob3N0ZWQgYnkgZWNsaXBzZSA8YnI+CiAgICAgICAgPGk+PGI+QnJpbmcgeW91ciBsYXB0b3AgYW5kIHZpc2l0IHVzIGF0IHRoZSBkcm9wLWluIHBsdWctaW4gY2xpbmljISA8L2I+PC9pPjxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGI+VHV0b3JpYWxzPC9iPjo8YnI+CiAgICAgICAgS2FpLVV3ZSBNYWV0emVsLCBJQk0gUmVzZWFyY2gsIE9USSBMYWJzIC0gVHV0b3JpYWwgNiA8YSBocmVmPSJodHRwOi8vd3d3Lm9vcHNsYS5vcmcvb29wc2xhMjAwMy9maWxlcy90dXQtNi5odG1sIiB0YXJnZXQ9Il9ibGFuayI+PGk+RWNsaXBzZSAKICAgICAgICBFeHRlbnNpb25zLS1NYWtpbmcgdGhlIENvbm5lY3Rpb25zPC9pPjwvYT4gPGJyPgogICAgICAgIFN1bmRheSwgMjYgT2N0b2JlciCWIDg6MzAtMTI6MDAgTW9ybmluZyA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIEVyaWsgSGlsc2RhbGUsIFBBUkMsIEppbSBIdWd1bmluLCBQQVJDIC0gVHV0b3JpYWwgMTAgPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnL29vcHNsYTIwMDMvZmlsZXMvdHV0LTEwLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5BZHZhbmNlZCAKICAgICAgICBBc3BlY3QtT3JpZW50ZWQgUHJvZ3JhbW1pbmcgd2l0aCBBc3BlY3RKPC9hPjwvaT4gPGJyPgogICAgICAgIFN1bmRheSwgMjYgT2N0b2JlciCWIDEzOjMwLTE3OjAwIEFmdGVybm9vbjxicj4KICAgICAgPC9wPgogICAgICA8cD5DaHJpcyBMYWZmcmEsIElCTSBDYW5hZGEsIE1pY2hhZWwgdmFuIE1lZWtlcmVuLCBJQk0gQ2FuYWRhIC0gVHV0b3JpYWwgCiAgICAgICAgMzQgPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnL29vcHNsYTIwMDMvZmlsZXMvdHV0LTM0Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5EZXZlbG9waW5nIAogICAgICAgIEphdmEgQXBwbGljYXRpb25zIGZvciBTbWFsbCBEZXZpY2VzIFVzaW5nIEVjbGlwc2U8L2E+PC9pPiA8YnI+CiAgICAgICAgTW9uZGF5LCAyNyBPY3RvYmVyIJYgODozMC0xNzowMCBGdWxsoGRheSA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxiPldvcmtzaG9wczo8L2I+PGJyPgogICAgICAgIDxicj4KICAgICAgICBXb3Jrc2hvcCAxOSA8aT48YSBocmVmPSJodHRwOi8vd3d3Lm9vcHNsYS5vcmcvb29wc2xhMjAwMy9maWxlcy93cy0xOS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSAKICAgICAgICBUZWNobm9sb2d5IGVYY2hhbmdlPC9hPjwvaT4gPGJyPgogICAgICAgIE1vbmRheSwgMjcgT2N0b2JlciCWIDg6MzAtMTc6MDAgRnVsbKBkYXkgPGJyPgogICAgICAgIDxicj4KICAgICAgICBNaWNoYWVsIEJ1cmtlLCBJQk0gVEogV2F0c29uIFJlc2VhcmNoIENlbnRlciwgRXJpY2ggR2FtbWEsIElCTSBSZXNlYXJjaCwgCiAgICAgICAgT1RJIExhYnMsIEdhYmJ5IFNpbGJlcm1hbiwgSUJNIENlbnRlciBmb3IgQWR2YW5jZWQgU3R1ZGllcywgTWFyeSBMb3UgU29mZmEsIAogICAgICAgIFBpdHRzYnVyZ2ggVW5pdmVyc2l0eTxicj4KICAgICAgPC9wPgogICAgICA8cD48Yj5UZWNobmljYWwgUGFwZXJzOjwvYj48YnI+CiAgICAgICAgPGJyPgogICAgICAgIFRlY2huaWNhbCBQYXBlcnM6IFJlZmFjdG9yaW5nIGFuZCBSZWZsZWN0aW9uIDxicj4KICAgICAgICBUdWVzZGF5LCAyOCBPY3RvYmVyIJYgMTA6MzAtMTI6MDAgPGJyPgogICAgICAgIDExOjAwIC0gMTE6MzAgLSA8aT48YSBocmVmPSJodHRwOi8vd3d3Lm9vcHNsYS5vcmcvb29wc2xhMjAwMy9maWxlcy9wYXAtc2Vzc2lvbi1yZWZhY3RvcmluZy1hbmQtcmVmbGVjdGlvbi5odG1sIiB0YXJnZXQ9Il9ibGFuayI+UmVmYWN0b3JpbmcgCiAgICAgICAgZm9yIEdlbmVyYWxpemF0aW9uIFVzaW5nIFR5cGUgQ29uc3RyYWludHM8L2E+PC9pPiA8YnI+CiAgICAgICAgRnJhbmsgVGlwLCBJQk0gVC5KLiBXYXRzb24gUmVzZWFyY2ggQ2VudGVyLCBBZGFtIEtpZXp1biwgSUJNIFJlc2VhcmNoIAogICAgICAgIE9USSBMYWJzLCBEaXJrIEJhZXVtZXIsIElCTSBSZXNlYXJjaCBPVEkgTGFicyA8L3A+CiAgICAgIDxwPjxiPkRlbW9zOjwvYj4gPGJyPgogICAgICAgIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cub29wc2xhLm9yZy9vb3BzbGEyMDAzL2ZpbGVzL2RlbS0xOC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+PGJyPgogICAgICAgIDIwIEpheno6IEEgQ29sbGFib3JhdGl2ZSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBFbnZpcm9ubWVudDwvYT48L2k+IC0gCiAgICAgICAgTGktVGUgQ2hlbmcsIFN1c2FubmUgSHVwZmVyLCBTdGV2ZW4gUm9zcywgSm9obiBQYXR0ZXJzb24gSUJNIFJlc2VhcmNoPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnL29vcHNsYTIwMDMvZmlsZXMvZGVtLTE4Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj48L2E+PC9pPiAKICAgICAgICA8YnI+CiAgICAgICAgPGk+PGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnL29vcHNsYTIwMDMvZmlsZXMvZGVtLTIxLmh0bWwiIHRhcmdldD0iX2JsYW5rIj4yMyAKICAgICAgICBBc3BlY3RKIERldmVsb3BtZW50IFRvb2xzPC9hPjwvaT4gLSBNaWsgS2Vyc3RlblVuaXZlcnNpdHkgb2YgQnJpdGlzaCBDb2x1bWJpYTxicj4KICAgICAgICA8aT48YSBocmVmPSJodHRwOi8vd3d3Lm9vcHNsYS5vcmcvb29wc2xhMjAwMy9maWxlcy9kZW0tMi5odG1sIiB0YXJnZXQ9Il9ibGFuayI+MyAKICAgICAgICBWaXN1YWxpemluZyBhbmQgQXNwZWN0Si1lbmFibGluZyBFY2xpcHNlIFBsdWdpbnMgdXNpbmcgQnl0ZWNvZGUgSW5zdHJ1bWVudGF0aW9uPC9hPjwvaT4gCiAgICAgICAgLSBDaHJpcyBMYWZmcmEsIElCTSBPdHRhd2EgTGFicywgTWFydGluIExpcHBlcnQsIFVuaXZlcnNpdHkgb2YgSGFtYnVyZyAKICAgICAgICAmIGl0LVdvcmtwbGFjZSBTb2x1dGlvbnMsIEx0ZC48YnI+CiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5vb3BzbGEub3JnL29vcHNsYTIwMDMvZmlsZXMvZGVtLTExLmh0bWwiIHRhcmdldD0iX2JsYW5rIj48aT4xMiAKICAgICAgICBHZW5lcmF0aXZlIE1vZGVsIFRyYW5zZm9ybWVyPC9pPjwvYT4gLSBHaGljYSB2YW4gRW1kZSBCb2FzLCBicm9uc3RlZS5jb20sIAogICAgICAgIEpvcm4gQmV0dGluLCBTb2Z0TWV0YVdhcmUgPGJyPgogICAgICA8L3A+ICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+T2N0b2JlciAyNHRoIDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd2ViZXZlbnRzLmJyb2FkY2FzdC5jb20vaWJtL2RldmVsb3Blci9vbl9kZW1hbmQuYXNwIiB0YXJnZXQ9Il9ibGFuayI+PGI+V2ViY2FzdDogCiAgICAgIEludGVybmF0aW9uYWwgQ2hhbGxlbmdlIGZvciBFY2xpcHNlOiBEZXZlbG9waW5nIFBsdWctaW5zIGZvciBFY2xpcHNlPC9iPjwvYT4gCiAgICAgIDxicj4KICAgICAgMTE6MDAgYS5tLiAtIDEyOjMwIHAubS4gRWFzdGVybiwgPGJyPgogICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnNjcy5jYXJsZXRvbi5jYS9pY2UiIHRhcmdldD0iX2JsYW5rIj5SZWdpc3RlciB0b2RheSAKICAgICAgZm9yIHRoZSBJbnRlcm5hdGlvbmFsIENoYWxsZW5nZSBmb3IgRWNsaXBzZSBwcm9ncmFtbWluZyBjb250ZXN0ITwvYT4gRW50cmllcyAKICAgICAgZHVlIERlY2VtYmVyIDh0aCE8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+T2N0b2JlciA3LTEwIDwvYj4gLSBTd2lzcyBPcGVuIFN5c3RlbXMgVXNlciBHcm91cCAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuY2gtb3Blbi5jaC93c3RhZ2UvMDMvIiB0YXJnZXQ9Il9ibGFuayI+V29ya3Nob3AgCiAgICAgIFRhZ2U8L2E+LCBadXJpY2gsIDxiPlN3aXR6ZXJsYW5kPC9iPiA8YnI+CiAgICAgIDxicj4KICAgICAgVGh1cnNkYXkgT2N0b2JlciA5dGggLSBXb3Jrc2hvcCAtIDA5OjEwIC0gMTI6MzA8YnI+CiAgICAgIFNwZWFrZXI6IEthaS1Vd2UgTWFldHplbCAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY2gtb3Blbi5jaC93c3RhZ2UvMDMvd3M5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5FeHRlbmRpbmcgCiAgICAgIEVjbGlwc2U6IGJ1aWxkaW5nIHlvdXIgZmlyc3QgcGx1Zy1pbjwvYT48L2k+IDxicj4KICAgICAgPGJyPgogICAgICBUaHVyc2RheS1GcmlkYXksIE9jdG9iZXIgOS0xMCA8YnI+CiAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuY2gtb3Blbi5jaC93c3RhZ2UvMDMvd3MxNC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+PGI+Q2FtcEVjbGlwc2UgCiAgICAgIFBsdWctaW4gQ2xpbmljPC9iPjwvYT4gPGJyPgogICAgICA8aT48Yj5Kb2luIHVzIGZvciB0aGUgbmV4dCBlY2xpcHNlIHBsdWctaW4gY2xpbmljIHByZXNlbnRlZCBpbiBjb25qdW5jdGlvbiAKICAgICAgd2l0aCB0aGUgV29ya3Nob3AgVGFnZSBhbmQgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuanVncy5jaC8iIHRhcmdldD0iX2JsYW5rIj5KYXZhIAogICAgICBVc2VyIEdyb3VwIFN3aXR6ZXJsYW5kPC9hPiEgV2F0Y2ggdGhpcyBzcGFjZSBhbmQgdGhlIFdvcmtzaG9wIFRhZ2Ugc2l0ZSAKICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2dyYW0gITwvYj48L2k+PGJyPgogICAgICAgPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5PY3RvYmVyIDYtOTwvYj4gLSA8YSBocmVmPSJodHRwczovL3d3dy05MjcuaWJtLmNvbS9pYm0vY2FzL2FyY2hpdmVzLzIwMDMvcGFwZXJzL2luZGV4LnNodG1sIiB0YXJnZXQ9Il9ibGFuayI+Q0FTQ09OPC9hPiwgCiAgICAgIFRvcm9udG8sIE9udGFyaW8sIENhbmFkYSA8YnI+CiAgICAgIDxicj4KICAgICAgVGVjaG5vbG9neSBTaG93Y2FzZTogPGk+Q29kZSBSYWxseTwvaT4gPGJyPgogICAgICA8YnI+CiAgICAgIFR1ZXNkYXksIE9jdG9iZXIgNywgMTowMHBtIC0gNDo0NXBtIC0gV29ya3Nob3A8YnI+CiAgICAgIENoYWlyczogRXJpYyBMYWJhZGllLCBSaWNoYXJkIER1Z2dhbiwgVmFsZW50aW5hIFBvcGVzY3UsIFByYWZ1bCBSYWphd2F0LCAKICAgICAgSHViZXJ0IExldW5nPGJyPgogICAgICA8aT5BdXRvbm9taWMgQ29tcHV0aW5nIERhdGEgQ29sbGVjdGlvbiBBcmNoaXRlY3R1cmUgYW5kIHRoZSBFY2xpcHNlIEh5YWRlcyAKICAgICAgRnJhbWV3b3JrPC9pPqCgPGJyPgogICAgICA8YnI+CiAgICAgIFdlZG5lc2RheSBPY3RvYmVyIDgsIDE6MDAgLSA0OjQ1cG0gLSBXb3Jrc2hvcDxicj4KICAgICAgQ2hhaXJzOiBNYXJjZWxsdXMgTWluZGVsLCBNYXJnYXJldC1Bbm5lIFN0b3JleSAgCiAgICAgIDxicj4KICAgICAgPGk+RWNsaXBzZSBhcyBhIFBsYXRmb3JtIGZvciBSZXNlYXJjaCBhbmQgVGVhY2hpbmc8L2k+oKA8YnI+CiAgICAgIDxicj4KICAgICAgVGh1cnNkYXksIE9jdG9iZXIgOSwgMTowMCAtIDQ6NDVwbSAtIFdvcmtzaG9wPGJyPgogICAgICBDaGFpcnM6IEppbSBEJ0Fuam91LCBFcmljIENoYWxhbmQgPGJyPgogICAgICA8aT5JbnRyb2R1Y3Rpb24gdG8gdGhlIEVjbGlwc2UgTW9kZWxpbmcgRnJhbWV3b3JrIChFTUYpPC9pPqCgoDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+T2N0b2JlciA3PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWJpenEubmV0L2V4cG9xL2V2ZW50cy8yODIzLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5XZWJpbmFyOiAKICAgICAgT3Blbi1Tb3VyY2UgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgYW5kIE9wdGltaXphdGlvbiB0aHJvdWdoIEVjbGlwc2U8L2E+IAogICAgICA8YnI+CiAgICAgIDEyOjAwIEVTVCAoMTY6MDAgR01UKTxicj4KICAgICAgUHJlc2VudGVyczogVGhvbWFzIE11cnBoeSwgTWV0YSBHcm91cCBhbmQgSm9obiBLbnV0c29uLCBDYW5kbGUgPGJyPgogICAgICBRJmFtcDtBOiBKb2huIFdpZWdhbmQ8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPlNlcHRlbWJlciAzMCAtIE9jdG9iZXIgMiA8L2I+IC0gV2ViIFNlcnZpY2VzIEVkZ2UgMjAwMyAKICAgICAgV2VzdCwgU2FudGEgQ2xhcmEsIENBIDxicj4KICAgICAgVHVlc2RheSwgU2VwdGVtYmVyIDMwLCA0OjAwIHAubS4gLSA0OjUwIHAubSA8YnI+CiAgICAgIDxicj4KICAgICAgU3BlYWtlcjogQ2hyaXN0b3BoZSBDb3JudSAtIDxpPkRldmVsb3BpbmcgQXBwbGljYXRpb25zIHdpdGggU1dUPC9pPiA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPlNlcHRlbWJlciAyMi0yNiAtIDwvYj4gPGEgaHJlZj0iaHR0cDovL3d3dy5qYW9vLmRrL2phb28yMDAzLyIgdGFyZ2V0PSJfYmxhbmsiPkpBT08gCiAgICAgIDIwMDMgQ29uZmVyZW5jZTwvYT4sIEFhcmh1cywgPGI+RGVubWFyazwvYj4gPGJyPgogICAgICA8YnI+CgkgIFR1ZXNkYXksIFNlcHQgMjMsIDA5OjMwIC0gMTA6MTU8YnI+CiAgICAgIEtleW5vdGU6IEVyaWNoIEdhbW1hIGFuZCBJdm8gVG90ZXYgLSA8aT5FY2xpcHNlIEAgU0FQPC9pPjxicj4KICAgICAgPGJyPgogICAgICBUdWVzZGF5LCBTZXB0IDIzLCAxNToxNSAtIDE2OjAwPGJyPgogICAgICBTcGVha2VyOiBFcmljaCBHYW1tYSAtIDxpPkVjbGlwc2UgYW5kIGl0cyBDb3JvbmE8L2k+PGJyPgoJIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+U2VwdGVtYmVyIDIyLTI1IDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3Lm9sZC5uZXRvYmplY3RkYXlzLm9yZy9ub2RlMDMvaW5kZXguaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPk5ldE9iamVjdCAKICAgICAgRGF5czwvYT4sIEVyZnVydCwgPGI+R2VybWFueTwvYj4gPGJyPgogICAgICBUdWVzZGF5LCBTZXB0ZW1iZXIgMjNyZCwgMTU6MzAgLSAxNzowMCA8YnI+CiAgICAgIDxicj4KICAgICAgU3BlYWtlcjogQW5kciZlYWN1dGU7IFdlaW5hbmQgLSA8aT5FeHRlbmRpbmcgZWNsaXBzZTogVG9vbHMgLSBhcyB5b3UgbGlrZSAKICAgICAgdGhlbTwvaT4gPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5BdWd1c3QgMjIgPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cudzR0b29sa2l0LmRlL2luZGV4LnBocD9ha3Q9Mzc3IiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSAKICAgICAgRXZhbHVhdGlvbiBXb3Jrc2hvcDwvYT4sIEthcmxzcnVoZSwgPGI+R2VybWFueTwvYj4gPGJyPgogICAgICAxIFRhZyBXb3Jrc2hvcCBm/HIgQW53ZW5kZXIgdm9uIGFuZGVyZW4gSURFcy4gPGJyPgogICAgICBQcmFlc2VudGllcnQgdm9uIEpvY2hlbiBLcmF1c2UsIDxhIGhyZWY9Imh0dHA6Ly93d3cudzR0b29sa2l0LmRlL2luZGV4LnBocCIgdGFyZ2V0PSJfYmxhbmsiPklubm9vcHJhY3Q8L2E+IAogICAgICAoRGllIFZvcnRyYWVnZSB3ZXJkZW4gaW4gRGV1dHNjaCBnZWhhbHRlbikgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5BdWd1c3QgMTgtMjEgPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cudzR0b29sa2l0LmRlL2luZGV4LnBocD9ha3Q9Mzg3IiB0YXJnZXQ9Il9ibGFuayI+IAogICAgICBFY2xpcHNlIFBsdWdpbiBFbnR3aWNrbHVuZzwvYT4sIEthcmxzcnVoZSwgPGI+R2VybWFueTwvYj4gPGJyPgogICAgICA0IFRhZ2UgV29ya3Nob3AgenVyIFBsdWdpbiBFbnR3aWNrbHVuZyBm/HIgZGllIEVjbGlwc2UgSURFIDxicj4KICAgICAgUHJhZXNlbnRpZXJ0IHZvbiBGcmFuayBBcHBlbCwgPGEgaHJlZj0iaHR0cDovL3d3dy53NHRvb2xraXQuZGUvaW5kZXgucGhwIiB0YXJnZXQ9Il9ibGFuayI+SW5ub29wcmFjdDwvYT4gCiAgICAgIChEaWUgVm9ydHJhZWdlIHdlcmRlbiBpbiBEZXV0c2NoIGdlaGFsdGVuKTwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+QXVndXN0IDEzLTE1IDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3Lnc0dG9vbGtpdC5kZS9pbmRleC5waHA/YWt0PTM3OCIgdGFyZ2V0PSJfYmxhbmsiPlZpc3VhbCAKICAgICAgQmFzaWMgVW1zdGVpZ2VyIEt1cnM8L2E+LCBLYXJsc3J1aGUsIDxiPkdlcm1hbnk8L2I+IDxicj4KICAgICAgMyBUYWdlIFdvcmtzaG9wLiBBbmxlaXR1bmcsIHVtIHZvbiBWQiBhdWYgSmF2YSAmIEVjbGlwc2UgdW16dXN0ZWlnZW4gPGJyPgogICAgICBQcmFlc2VudGllcnQgdm9uIExlaWYgRnJlbnplbCwgPGEgaHJlZj0iaHR0cDovL3d3dy53NHRvb2xraXQuZGUvaW5kZXgucGhwIiB0YXJnZXQ9Il9ibGFuayI+SW5ub29wcmFjdDwvYT4gCiAgICAgIChEaWUgVm9ydHJhZWdlIHdlcmRlbiBpbiBEZXV0c2NoIGdlaGFsdGVuKTwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+QXVndXN0IDU8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5zZGZvcnVtLm9yZy9wL2wxLmFzcD9TSUQ9NCZQSUQ9MjEwIiB0YXJnZXQ9Il9ibGFuayI+U0QgCiAgICAgIEZvcnVtIEphdmEgU0lHPC9hPiwgUGFsbyBBbHRvLCBDQSwgPGI+VVNBPC9iPiA8YnI+CiAgICAgIEN1YmJlcmxleSBDb21tdW5pdHkgQ2VudGVyLCA0MDAwIE1pZGRsZWZpZWxkIFJvYWQsIFJvb20gSC0xIFBhbG8gQWx0bywgQ0EgCiAgICAgIDk0MTA1IDxicj4KICAgICAgVHVlc2RheSwgQXVndXN0IDV0aCwgNjozMCBwbSAtIDk6MDAgcG06IDY6MzAgcmVnaXN0cmF0aW9uLCA3OjAwIHBtIHByZXNlbnRhdGlvbiAKICAgICAgNzo1MCBwbSBicmVhaywgODoxMCBwcmVzZW50YXRpb24gY29udGludWVzPGJyPgogICAgICA8YnI+CiAgICAgIFNwZWFrZXI6IDxiPkpvaG4gV2llZ2FuZDwvYj4gLSA8aT5lY2xpcHNlOiBtb3JlIHRoYW4ganVzdCBhbiBJREUhPC9pPiA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkp1bHkgMjI8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5zdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZTo4MDgwL2Vjb29wLyIgdGFyZ2V0PSJfYmxhbmsiPkVDT09QIAogICAgICAyMDAzPC9hPiwgRGFybXN0YWR0LCA8Yj5HZXJtYW55PC9iPiA8YnI+CiAgICAgIDxicj4KICAgICAgVHVlc2RheSwgSnVseSAyMiwgMTk6MDAgLSAyMTowMCA8YnI+CiAgICAgIEJvRjogUmVzZWFyY2ggYW5kIGVkdWNhdGlvbiB3aXRoIGVjbGlwc2UgLSBQcmVzZW50YXRpb25zIGFuZCBQb3N0ZXJzPGJyPgogICAgICBNb2RlcmF0ZWQgYnkgQW5kcmVhcyBaZWxsZXIsIFVuaXZlcnNpdHkgb2YgU2FhcmxhbmQgPGJyPgogICAgICA8YnI+CiAgICAgIDxiPlByZXNlbnRhdGlvbnM8L2I+OiA8YnI+CiAgICAgIDxicj4KICAgICAgQW5kciZlYWN1dGU7IFdlaW5hbmQsIEVjbGlwc2UgRGV2ZWxvcG1lbnQgVGVhbSAtIDxpPldoYXQncyBuZXcgaW4gRWNsaXBzZT8gCiAgICAgIC0gQSBUb3VyIG9uIHRoZSBNYWM8L2k+PGJyPgogICAgICBJbmEgU2NoaWVmZXJkZWNrZXIsIEZyYXVuaG9mZXIgRk9LVVMgLSA8aT5UaGUgVU1MIFRlc3RpbmcgUHJvZmlsZSBhbmQgSXRzIAogICAgICBSZWFsaXphdGlvbiBpbiBFY2xpcHNlIDwvaT48YnI+CiAgICAgIEFuZHJlYXMgWmVsbGVyLCBVbml2ZXJzaXQmYXVtbDt0IGRlcyBTYWFybGFuZGVzIC0gPGk+QXV0b21hdGVkIERlYnVnZ2luZyAKICAgICAgaW4gRWNsaXBzZTwvaT48YnI+CiAgICAgIDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+SnVseSAxNzwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmViaXpxLm5ldC9leHBvcS9ldmVudHMvZXZlbnQ1My5odG1sIiB0YXJnZXQ9Il9ibGFuayI+PGI+V2ViaW5hcjwvYj46IAogICAgICBJbmR1c3RyeSBTb2x1dGlvbnMgV2l0aCBFY2xpcHNlPC9hPiA8YnI+CiAgICAgIFRodXJzZGF5LCBKdWx5IDE3LCAxMjowMFBNIEVTVDxicj4KICAgICAgUHJlc2VudGVyOiBCZXRoIEdvbGQtQmVybnN0ZWluLCBWaWNlIFByZXNpZGVudCBvZiBTdHJhdGVnaWMgU2VydmljZXMsIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWJpenEubmV0LyIgdGFyZ2V0PSJfYmxhbmsiPmViaXpRPC9hPiAKICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPkp1bHkgNy0xMSA8L2I+IC0gPGEgaHJlZj0iaHR0cDovL2NvbmZlcmVuY2VzLm9yZWlsbHluZXQuY29tL29zMjAwMy8iIHRhcmdldD0iX2JsYW5rIj5PU0NPTiAKICAgICAgICAyMDAzPC9hPiBPJ1JlaWxseSBPcGVuIFNvdXJjZSBDb252ZW50aW9uLCBQb3J0bGFuZCwgT1IsIDxiPlVTQTwvYj4gPGJyPgogICAgICAgIDxicj4KICAgICAgICBXZWRuZXNkYXksIEp1bHkgOXRoIC0gOTozMGFtIC0gMTA6MTUgYW0gPGJyPgogICAgICAgIEtlbm90ZTogUGF1bCBCdWNrIC0gPGk+PGEgaHJlZj0iaHR0cDovL2NvbmZlcmVuY2VzLm9yZWlsbHluZXQuY29tL3B1Yi93LzIzL2tleW5vdGVzLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5BbiAKICAgICAgICBPcGVuIFNvdXJjZSBUb29sIEZyYW1ld29yayBmb3IgdGhlIEVudGVycHJpc2U8L2E+IDwvaT48YnI+CiAgICAgICAgPGJyPgogICAgICAgIFRodXJzZGF5IEp1bHkgMTB0aCAtIDEwOjQ1YW0gLSAxMjoxNXBtPGJyPgogICAgICAgIENocmlzdG9waGVyoEp1ZGQsIEp1ZGQgU29sdXRpb25zLCBMTEMgLSA8aT48YSBocmVmPSJodHRwOi8vY29uZmVyZW5jZXMub3JlaWxseW5ldC5jb20vY3Mvb3MyMDAzL3ZpZXcvZV9zZXNzLzM3NjEiIHRhcmdldD0iX2JsYW5rIj5FY2xpcHNlIAogICAgICAgIGZvciBQSFAgRGV2ZWxvcGVyczwvYT48L2k+IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgVGh1cnNkYXkgSnVseSAxMHRoIC0gNzowMCBwbSAtIDg6MzAgcG08YnI+CiAgICAgICAgPGI+Qm9GOiA8YSBocmVmPSJodHRwOi8vY29uZmVyZW5jZXMub3JlaWxseW5ldC5jb20vY3Mvb3MyMDAzL3ZpZXcvZV9zZXNzLzQ1NDciIHRhcmdldD0iX2JsYW5rIj4gCiAgICAgICAgSW5zaWRlIHRoZSBFY2xpcHNlIFBsYXRmb3JtIFByb2plY3Q8L2E+PC9iPiA8YnI+CiAgICAgICAgPGI+TW9kZXJhdGVkIGJ5IEpvaG4gV2llZ2FuZDwvYj4gPGJyPgogICAgICA8L3A+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkp1bHkgMzwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmpmczIwMDMuZGUvIiB0YXJnZXQ9Il9ibGFuayI+SmF2YSAKICAgICAgRm9ydW0gU3R1dHRnYXJ0PC9hPiAtIFN0dXR0Z2FydCwgPGI+R2VybWFueTwvYj4gPGJyPgogICAgICA8YnI+CiAgICAgIDExOjE1IC0gMTI6MDAgLSBKYW5vcyBLb3BwYW55LCBIb3JzdCBTcGF0emVuZWdnZXIsIEludGxhbmQgLSA8aT5Tb2Z0d2FyZSAKICAgICAgRW50d2lja2x1bmcgaW4gdmVydGVpbHRlbiBUZWFtcyA8YnI+CiAgICAgIC0gPGEgaHJlZj0iaHR0cDovL3d3dy5qZnMyMDAzLmRlL2Fic3RyYWN0cy5odG1sI0UzIiB0YXJnZXQ9Il9ibGFuayI+RWluc2F0eiAKICAgICAgZGVyIENvbGxhYm9yYXRpdmUgU29mdHdhcmUgRGV2ZWxvcG1lbnQgUGxhdGZvcm0gQ29kZUJlYW1lciBtaXQgRWNsaXBzZTwvYT48L2k+PGJyPgogICAgICA8YnI+CiAgICAgIDEyOjE1LTEzOjAwIC0gS2FpLVV3ZSBNYWV0emVsIC0gPGEgaHJlZj0iaHR0cDovL3d3dy5qZnMyMDAzLmRlL2Fic3RyYWN0cy5odG1sI0U0IiB0YXJnZXQ9Il9ibGFuayI+RGFzIAogICAgICBFcnN0ZWxsZW4gdm9uIEVjbGlwc2UgUGx1Zy1pbnM8L2E+IDxicj4KICAgICAgPGJyPgogICAgICAxNDo0NSAtIDE1OjMwIC0gUmFuZHkgRmF1c3QgLSA8YSBocmVmPSJodHRwOi8vd3d3LmpmczIwMDMuZGUvYWJzdHJhY3RzLmh0bWwjQzUiIHRhcmdldD0iX2JsYW5rIj5KMk1FOiAKICAgICAgRGVzaWduLCBQZXJmb3JtYW5jZSwgYW5kIEVmZmljaWVuY3kgd2l0aCBXU0REPC9hPiA8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkp1bmUgMTg8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5ubGp1Zy5vcmcvIiB0YXJnZXQ9Il9ibGFuayI+RHV0Y2ggCiAgICAgIEphdmEgVXNlcnMgR3JvdXAgTWVldGluZzwvYT4gLSBFZGUsIDxiPlRoZSBOZXRoZXJsYW5kczwvYj4gPGJyPgogICAgICBDaHJpcyBMYWZmcmEgLSA8aT5UaGUgRWNsaXBzZSBQbGF0Zm9ybTwvaT4gPGJyPgogICAgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5KdW5lIDExPC9iPiAtIE1hbmNoZXN0ZXIgSmF2YSBVc2VycycgR3JvdXAsIE1hbmNoZXN0ZXIsIAogICAgICBOSCwgPGI+VVNBPC9iPjxicj4KICAgICAgU3BlYWtlcjogQWR5bSBMaW5jb2xuLCA8aT48YSBocmVmPSJodHRwOi8vd3d3Lk1hbkpVRy5vcmcvRGVmYXVsdEp1bjAzLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5Vc2luZyAKICAgICAgRWNsaXBzZSB3aXRoIEphdmE8L2E+PC9pPiA8L3RkPgogIDwvdHI+CgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+SnVuZSAxMCAtIDEzIDwvYj4gLSA8YSBocmVmPSJodHRwOi8vc2VydmxldC5qYXZhLnN1bi5jb20vamF2YW9uZS8iIHRhcmdldD0iX2JsYW5rIj5KYXZhT25lPC9hPiwgCiAgICAgICAgU2FuIEZyYW5jaXNjbyxDQSwgPGI+VVNBPC9iPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxiPkVjbGlwc2UgZXZlbnQgYW5kIHBvc3RlciByZWNlcHRpb24gYXQgSmF2YU9uZTwvYj4gLSBKdW5lIDExdGgsIDE5OjAwLTIyOjAwLCAKICAgICAgICA8YnI+CiAgICAgICAgU2FuIEZyYW5jaXNjbyBNYXJyaW90dCwgR29sZGVuIEdhdGUgSGFsbCwgIkIyIjxicj4KICAgICAgICA8YnI+CiAgICAgICAgNzowMCBwbSAtIEVyaWNoIEdhbW1hIC8gSm9obiBXaWVnYW5kIC0gPGk+ZWNsaXBzZTogd2hhdCdzIG5ldzwvaT4gPGJyPgogICAgICAgIDc6MzAgcG0gLSBJdm8gVG90ZXYsIFNBUCBBRyAtIDxpPmV4cGVyaWVuY2UgcmVwb3J0PC9pPiA8YnI+CiAgICAgICAgODowMCBwbSAtIHBvc3RlciByZWNlcHRpb24gPGJyPgogICAgICAgIDk6MDAgcG0gLSBRJkEgd2l0aCBtZW1iZXJzIG9mIHRoZSBlY2xpcHNlIGRldmVsb3BtZW50IHRlYW08YnI+CiAgICAgIDwvcD4KICAgICAgPHA+RmluZCBvdXQgbW9yZSBhYm91dCB0aGUgcHJvZ3JhbSBvbiB0aGUgPGEgaHJlZj0iLi4vZXZlbnRzL2phdmFvbmUyMDAzL2phdmFvbmUuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPjxiPkNhbGwgCiAgICAgICAgZm9yIHBhcnRpY2lwYXRpb24hPC9iPjwvYT4gPGJyPgogICAgICA8L3A+CiAgICA8L3RkPgogIDwvdHI+CgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+TWF5IDIyLTIzIDwvYj4gLSBCZUpVRyAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuYmVqdWcub3JnIiB0YXJnZXQ9Il9ibGFuayI+PGk+RWNsaXBzZTogCiAgICAgICAgR2V0dGluZyBDb25uZWN0ZWQ8L2k+IDwvYT4sIEJydXNzZWxzLCA8Yj5CZWxnaXVtPC9iPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFlvdSdyZSBpbnZpdGVkIHRvIDxhIGhyZWY9Imh0dHA6Ly93d3cuYmVqdWcub3JnIiB0YXJnZXQ9Il9ibGFuayI+cmVnaXN0ZXIgCiAgICAgICAgb24gdGhlIEJlSlVHIHdlYnNpdGU8L2E+LCBzZW5kIHVzIHlvdXIgc3VnZ2VzdGlvbnMgZm9yIGV4cGVyaWVuY2UgcmVwb3J0cyAKICAgICAgICBhbmQgY2hlY2sgb3V0IHRoZSBjb2RlIGNhbXAgd2lraSBwYWdlISA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIDxiPlByZXNlbnRhdGlvbnM8L2I+OiAwOTozMCAtIDE3OjAwIFRodXJzZGF5IE1heSAyMm5kPGJyPgogICAgICAgIDxiPiBDb2RlIENhbXA8L2I+OiAxNjowMCBUaHVyc2RheSBNYXkgMjJuZCAtIDE3OjAwIEZyaWRheSBNYXkgMjNyZDxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGI+VGhlIFByb2dyYW08L2I+OiA8YnI+CiAgICAgICAgRXJpY2ggR2FtbWEgLSA8aT5JbnNpZGUgdGhlIGVjbGlwc2Ugb3BlbiBzb3VyY2UgcHJvamVjdDwvaT48YnI+CiAgICAgICAgRGlyayBCYWV1bWVyIGFuZCBNYXJ0aW4gQWVzY2hsaW1hbm4gLSA8aT5Db250cmlidXRpbmcgdG8gZWNsaXBzZTwvaT48YnI+CiAgICAgICAgPGJyPgogICAgICAgIEV4cGVyaWVuY2UgcmVwb3J0czo8YnI+CiAgICAgICAgWGF2aWVyIE1heXNvbm5hdmUgYW5kIENocmlzdGlhbiBSYXZlbCwgPGEgaHJlZj0iaHR0cDovL3d3dy5vbW9uZG8uY29tLyIgdGFyZ2V0PSJfYmxhbmsiPk9tb25kbzwvYT4gCiAgICAgICAgLSA8aT5PbW9uZG8gYW5kIGVjbGlwc2UgaW50ZXJuYWxzPC9pPiA8YnI+CiAgICAgICAgSnVycmllbiBTYWVsZW5zLCA8YSBocmVmPSJodHRwOi8vd3d3LnN5Z2VsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPlN5Z2VsPC9hPiAKICAgICAgICAtIDxpPkhvdyB0byBwbHVnIHRoZSBVTUwgY2FzZSB0b29sIEFyZ29VTUwgYW5kIHRoZSBhcHBsaWNhdGlvbiBnZW5lcmF0b3IgCiAgICAgICAgV01FRSBpbnRvIEVjbGlwc2U8L2k+IC0gd3d3LnN5Z2VsLmNvbTxicj4KICAgICAgICBIYW5zIERva3RvciwgamJvc3Mub3JnIC0gPGk+VGhlIEpCb3NzLUlERSBhbmQgRWNsaXBzZTwvaT4gLTxhIGhyZWY9Imh0dHA6Ly93d3cuamJvc3MuY29tL2RldmVsb3BlcnMvaW5kZXgiIHRhcmdldD0iX2JsYW5rIj4gCiAgICAgICAgamJvc3Mub3JnPC9hPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgICsgUSZBIHdpdGggbWVtYmVycyBvZiB0aGUgZWNsaXBzZSBkZXZlbG9wbWVudCB0ZWFtPGJyPgogICAgICAgIDxicj4KICAgICAgICBLcmlzIE1ldWtlbnMgYW5kIEJhcnQgTGVldGVuLCBFRFMgLSA8aT5HZXR0aW5nIHN0YXJ0ZWQgd2l0aCBlY2xpcHNlPC9pPjxicj4KICAgICAgICArIENvZGUgY2FtcCBiZWdpbnMgaW4gcGFyYWxsZWwgCiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk1heSAxMi0xNTwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmpheDIwMDMuZGUvIiB0YXJnZXQ9Il9ibGFuayI+SkFYPC9hPiAKICAgICAgLCBOSCBIb3RlbCBGcmFua2Z1cnQtTfZyZmVsZGVuLCA8Yj5HZXJtYW55PC9iPiA8YnI+CiAgICAgIFdlZG5lc2RheSAxNCBNYXkgMjAwMywgPGEgaHJlZj0iaHR0cDovL3d3dy5lbnR3aWNrbGVyLmNvbS9rb25mZXJlbnplbi9wc2Vjb20saWQsNTQsbm9kZWlkLDIsX2xhbmd1YWdlLGRlLmh0bWwlMjAiIHRhcmdldD0iX2JsYW5rIj5KYXZhIAogICAgICBFbnRlcnByaXNlIFNlc3Npb25zPC9hPjxicj4KICAgICAgPGJyPgogICAgICA4OjMwIC0gOTo0NSAtIDxiPkJydWNlIFNhbXM8L2I+IChtZWRpYXRlYW0pIDxpPkVjbGlwc2U6IEVudHdpY2tsdW5ncy1wbGF0dGZvcm0gCiAgICAgIGb8ciBKMkVFIERldmVsb3BtZW50PC9pPiBFIDQyLCBTIDE3IDxicj4KICAgICAgMTU6NDUgLSAxNzowMCAtIDxiPlN0ZWZhbiBNYXR0aGlhcyBBdXN0PC9iPiAoM3BsdXM0KSAtIDxpPlNXVCBhdXMgRWNsaXBzZSAKICAgICAgLSBuZXVlIENoYW5jZSBm/HIgSmF2YS1HVUlzPzwvaT4gRSA0NCwgUzE4IDxicj4KICAgICAgMTk6MzAtMjE6MzAgPGI+LSBEaXJrIEJhZXVtZXI8L2I+IC0gPGk+UGx1Zy1JbiBFbnR3aWNrbHVuZyBm/HIgZGllIEVjbGlwc2UtUGxhdGZvcm08L2k+IAogICAgICBFIDQzLCBTMTk8YnI+CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk1heSAxNDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmZvZWRlcmFsLm9yZy8wY2hyb25pay5odG0iIHRhcmdldD0iX2JsYW5rIj4yLiAKICAgICAgRm9lZGVyYWwtVGFnPC9hPiwgVkRNQSwgRnJhbmtmdXJ0LCA8Yj5HZXJtYW55PC9iPjxicj4KICAgICAgMTAuMDAgLSAxNi4wMCBVaHI8YnI+CiAgICAgIDxpPlNQUy1Tb2Z0d2FyZSB1bmQgU2NoYWx0cGzkbmUgYXVzIGRlbSBCYXVrYXN0ZW48L2k+PGJyPgogICAgPC90ZD4KICA8L3RyPgogPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk1heSAzLTEwPC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuaWNzZS1jb25mZXJlbmNlcy5vcmcvIiB0YXJnZXQ9Il9ibGFuayI+SUNTRSAKICAgICAgMjAwMzwvYT4sIFBvcnRsYW5kLCBPcmVnb24sIDxiPlVTQTwvYj4gPGJyPgogICAgICA8YnI+CgkgIFR1ZXNkYXksIE1heSA2LCAyMDAzIDEzOjMwIC0gMTU6MDAgLSBEZW1vIDxicj4KICAgICAgU3BlYWtlcnM6IE1hcnRpbiBSb2JpbGxhcmQgYW5kIEdhaWwgTXVycGh5IC0gPGk+RkVBVDogQSBUb29sIGZvciBMb2NhdGluZywgCiAgICAgIERlc2NyaWJpbmcsIGFuZCBBbmFseXppbmcgQ29uY2VybnMgaW4gU291cmNlIENvZGU8L2k+PGJyPgogICAgICA8YnI+CiAgICAgIFRodXJzZGF5LCBNYXkgOCwgMjAwMyAxMzozMCAtIDE1OjAwIC0gc2Vzc2lvbiAxMS4yVCBTb2Z0d2FyZSBVbmRlcnN0YW5kaW5nPGJyPgogICAgICBTcGVha2VyczogRGF2b3IgQ3VicmFuaWMgYW5kIEdhaWwgTXVycGh5IC0gPGk+SGlwaWthdDogUmVjb21tZW5kaW5nIFBlcnRpbmVudCAKICAgICAgU29mdHdhcmUgQXJ0aWZhY3RzPC9pPjxicj4KICAgICAgPGJyPgogICAgICBUaHVyc2RheSwgTWF5IDgsIDIwMDMgMTc6MzAgLSAyMDowMCAtIEVjbGlwc2UgVGVjaG5vbG9neSBlWGNoYW5nZSAoRVRYKSAKICAgICAgLCBIaWx0b24gUG9ydGxhbmQsIEdyYW5kIEJhbGxyb29tIDIgPGJyPgogICAgICAxNzo1MCAtIERyLiBQaGlsaXBwZSBLcnVjaHRlbiA8aT4gLSBVc2luZyBJQk0ncyBSYXRpb25hbCBVbmlmaWVkIFByb2Nlc3MgCiAgICAgIGZvciBZb3VyIEVjbGlwc2UgUHJvamVjdDwvaT48YnI+CiAgICAgIDE4OjIwIC0gU3JpZGhhciBJeWVuZ2FyIC0gPGk+IEVjbGlwc2UgTW9kZWxpbmcgRnJhbWV3b3JrIChFTUYpOiBJbnRlZ3JhdGluZyAKICAgICAgT01HIE1vZGVsIERyaXZlbiBBcmNoaXRlY3R1cmUgKE1EQSkgYW5kIEVjbGlwc2U8L2k+PGJyPgogICAgICAxOTowMCAtIDxpPlBvc3RlciBzZXNzaW9uPC9pPiAtIEVjbGlwc2UgSW5ub3ZhdGlvbiBHcmFudCBSZWNpcGllbnRzIDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICAgIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5NYXkgNi0gODwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LTMuaWJtLmNvbS9zZXJ2aWNlcy9sZWFybmluZy9NYWluU2VydmxldC53c3M/cGFnZVR5cGU9Y291cnNlX2Rlc2NyaXB0aW9uJmNvdXJzZUNvZGU9V1NXQjEmY291bnRyeT11cyZsYW5ndWFnZT1lbiZ3ZWJMYW5ndWFnZT1lbiIgdGFyZ2V0PSJfYmxhbmsiPlRoZSAKICAgICAgSmF2YSBEZXZlbG9wZXIncyBHdWlkZSB0byBFY2xpcHNlPC9hPiA8YnI+CiAgICAgIElCTSwgV2FsdGhhbSwgTUEsIDxiPlVTQTwvYj4gPGJyPgogICAgICBTcGVha2VyczogTWVtYmVycyBvZiBJQk0ncyBFY2xpcHNlIFBsYXRmb3JtIEVuYWJsZW1lbnQgdGVhbSA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkFwcmlsIDI3IC0gTWF5IDE8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5jdXR0ZXIuY29tL3N1bW1pdC8iIHRhcmdldD0iX2JsYW5rIj5DdXR0ZXIgCiAgICAgIENvbnNvcnRpdW0gU3VtbWl0IDIwMDM8L2E+IC0gQ2FtYnJpZGdlLCBNQSwgPGI+VVNBPC9iPiA8YnI+CiAgICAgIEFwcmlsIDI4LCAyMDAzIC0gMDg6MzAgPGJyPgogICAgICBLZXlub3RlOiBFcmljaCBHYW1tYSAtIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3V0dGVyLmNvbS9zdW1taXQvbWFuYWdpbmcuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkEgCiAgICAgIExhcmdlIFNjYWxlIE9wZW4gU291cmNlIERldmVsb3BtZW50IFByb2plY3Q8L2E+IC0tIFdoYXQgV2UgQ2FuIExlYXJuIEZyb20gCiAgICAgIE9wZW4gU291cmNlPC9pPiA8YnI+CiAgICAgIFBhbmVsOiBFcmljaCBHYW1tYSwgS2VudCBCZWNrLCBKb3NodWEgS2VyaWV2c2t5CiAgICA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkFwcmlsIDI0PC9iPiAtIDxiPkVjbGlwc2UgQ29tbXVuaXR5IEJvRiBhdCA8YSBocmVmPSJodHRwOi8vY21wLmljb252ZW50aW9uLmNvbS9zZi92MzMvaW5kZXguY3ZuP2lkPTEwMDA4JnN0YWI9MiIgdGFyZ2V0PSJfYmxhbmsiPkVTQyAKICAgICAgU2FuIEZyYW5jaXNjbzwvYT48L2I+IDxicj4KICAgICAgVGh1cnNkYXksIEFwcmlsIDI0LCAyMDAzIDExOjQ1IGEubS4tMjowMCBwbSA8YnI+CiAgICAgIFJvb20gMjM2IEVhc3QgTWV6emFuaW5lLCBNb3Njb25lIENlbnRlciA8YnI+CiAgICAgIDxicj4KICAgICAgU3BlYWtlcnM6PGJyPgogICAgICBDaHJpcyBMYWZmcmEsIElCTSBPdHRhd2EgTGFicyAtIDxpPkVjbGlwc2UgT3ZlcnZpZXc8L2k+IDxicj4KICAgICAgU2ViYXN0aWVuIE1hcmluZWF1LCBRTlggU29mdHdhcmUgU3lzdGVtcyBMdGQuIC0gPGk+Q0RUIE92ZXJ2aWV3IDwvaT48YnI+CiAgICAgIENvcnkgQmlhbG93YXMsIElCTSBSYXRpb25hbCAtIDxpPkNEVCBhbmQgSUJNIFJhdGlvbmFsIGFjdGl2aXRpZXM8L2k+IDxicj4KICAgICAgTWFuYXMgU2Frc2VuYSwgVGltZXN5cyAtIDxpPkVtYmVkZGVkIExpbnV4IElERSB1c2luZyBFY2xpcHNlIGFuZCBDRFQgPC9pPjxicj4KICAgICAgQ2hyaXMgU29uZ2VyLCBUZW5zaWxpY2EgLSA8aT5DRFQgQmFzZWQgUGVyZm9ybWFuY2UgVmlld2luZyBmb3IgWHRlbnNhIFByb2Nlc3NvcnMgCiAgICAgIDxicj4KICAgICAgPGJyPgogICAgICBTZWUgdGhlIHNsaWRlcyBvbiA8YSBocmVmPSJodHRwOi8vZGV2LmVjbGlwc2Uub3JnL3ZpZXdjdnMvaW5kZXguY2dpLyU3RWNoZWNrb3V0JTdFL2NkdC1ob21lL25ld3MvYm9mLWVzYzAzL2JvZi1lc2MtMjAwMy5odG1sP2N2c3Jvb3Q9VG9vbHNfUHJvamVjdCIgdGFyZ2V0PSJfYmxhbmsiPnRoZSAKICAgICAgQ0RUIG5ld3MgcGFnZTwvYT48L2k+IDxicj4KICAgIDwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+QXByaWwgMjM8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5xbnguY29tL25ld3MvaW5kZXguaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlRoZSAKICAgICAgcG93ZXIgb2YgRWNsaXBzZTogSW1wcm92aW5nIGRhaWx5IHByb2R1Y3Rpdml0eSB3aXRoIGEgZnVsbHkgaW50ZWdyYXRlZCBkZXZlbG9wbWVudCAKICAgICAgZW52aXJvbm1lbnQ8L2E+IDxicj4KICAgICAgVGh1cnNkYXkgQXByaWwgMjQsIDIwMDMgMDg6MDAgLSAwOTozMCwgTW9zY29uZSBDZW50ZXIsIFNhbiBGcmFuY2lzY28sIENBLCAKICAgICAgVVNBIDxicj4KCSAgU2ViYXN0aWVuIE1hcmluZWF1LCBRTlggLSA8aT5Qcm9qZWN0IFRvb2xzaGVkOiBGcm9tIEVjbGlwc2UgdG8gUU5YIE1vbWVudGljcyA8L2k+IDxicj4KCSAgQ29yeSBCaWFsb3dhcywgSUJNIFJhdGlvbmFsIC0gPGk+RWNsaXBzZSBhcyBhbiBFbnRlcnByaXNlIERldmVsb3BtZW50IEVudmlyb25tZW50PC9pPiAgCgk8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkFwcmlsIDE2LTE3PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cub3Rpai5vcmcvZXZlbnQvdW1sZm9ydW0vMjAwMy8iIHRhcmdldD0iX2JsYW5rIj5VTUwgCiAgICAgIEZvcnVtIC8gVG9reW8gMjAwMzwvYT4gLCBUb2t5bywgPGI+SmFwYW48L2I+IDxicj4KICAgICAgVGh1cnNkYXkgQXByaWwgMTd0aCAtIDEwOjAwIGFtIDxicj4KICAgICAgS2V5bm90ZTogS2FpLVV3ZSBNYWV0emVsIC0gPGk+VGhlIEVjbGlwc2UgUHJvamVjdDwvaT48L3RkPgogIDwvdHI+Cgo8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+QXByaWwgOSAtIDwvYj48YSBocmVmPSJodHRwOi8vd3d3LnByZXNlbnRhdGlvbnNlbGVjdC5jb20vaHBpbnZlbnQvZGV0YWlscy5hc3A/dHA9cmVnIzU1IiB0YXJnZXQ9Il9ibGFuayI+SW50cm9kdWN0aW9uIAogICAgICB0byB0aGUgRWNsaXBzZSBQbGF0Zm9ybTwvYT4gPGJyPgogICAgICBXZWJpbmFyIHByZXNlbnRlZCBieSBIUCBJbnZlbnQgT25saW5lIHdlYi1iYXNlZCBzZW1pbmFyIHNlcmllczxicj4KICAgICAgMDk6MDAtMTA6MDAgUFNULCAxNzowMC0xODowMCBHTVQgPGJyPgogICAgICBTcGVha2VyOiBBenJhIEZhdGltYSA8L3RkPgogIDwvdHI+ICAgIAogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5BcHJpbCAyIC0gPC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cucW54LmNvbS9uZXdzL2luZGV4Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5GaW5kaW5nIAogICAgICB0aGUgTmVlZGxlIGluIHRoZSBIYXlzdGFjazwvYT46IEhvdyBEaWFnbm9zdGljIFRvb2xzIENhbiBIZWxwIElzb2xhdGUgU2hhcmVkIAogICAgICBSZXNvdXJjZSBQcm9ibGVtcyA8YnI+CiAgICAgIDxiPldlYmNhc3Q8L2I+IFByZXNlbnRlZCBieSA8Yj5RTlggU29mdHdhcmUgU3lzdGVtczwvYj4gPGJyPgogICAgICAxIHAubS4gRVQsIDEwIGEubS4gUFQsIDYgcC5tLiBHTVQgPC90ZD4KICA8L3RyPgogIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5NYXJjaCAxNy0yMSwgMjAwMzwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmFvc2QubmV0L2FyY2hpdmUvMjAwMy9jb25mZXJlbmNlLmh0bWwiIHRhcmdldD0iX2JsYW5rIj48Yj5BT1NEIAogICAgICBDb25mZXJlbmNlPC9iPjwvYT4sIEJvc3RvbiwgTUEsIDxiPlVTQTwvYj4gPGJyPgogICAgICA8YnI+CiAgICAgIFR1ZXNkYXksIE1hcmNoIDE4dGggLSAxOTowMCA8YnI+CiAgICAgIDxiPkFPU0Qgd2l0aCBlY2xpcHNlIC0gQm9GPC9iPiA8YnI+CiAgICAgIFNwZWFrZXJzOiBBZHJpYW4gQ29seWVyIC8gTWlrIEtlcnN0ZW4sIEtldmluIEhhYWxhbmQsIEtyaXMgRGUgVm9sZGVyLCBEb3VnIAogICAgICBKYW56ZW4sIEFuZHkgQ2xlbWVudCwgR2VvcmdlIEhhcmxleSwgTWFydGluIExpcHBlcnQ8YnI+CiAgICAgIDxicj4KICAgICAgTW9uZGF5LCBNYXJjaCAxN3RoIG1vcm5pbmcgKGhhbGYgZGF5KTxicj4KICAgICAgU3BlYWtlcjogRXJpayBIaWxzZGFsZSAtIDxpPkFzcGVjdEo6IEFzcGVjdC1PcmllbnRlZCBQcm9ncmFtbWluZyBpbiBKYXZhPC9pPiAKICAgICAgLSBUdXRvcmlhbCA8YnI+CiAgICAgIFR1ZXNkYXksIE1hcmNoIDE4dGggbW9ybmluZyAoaGFsZiBkYXkpPGJyPgogICAgICBTcGVha2VyOiBFcmlrIEhpbHNkYWxlIC0gPGk+IEFkdmFuY2VkIEFzcGVjdC1PcmllbnRlZCBQcm9ncmFtbWluZyB3aXRoIEFzcGVjdEo8L2k+IAogICAgICAtIFR1dG9yaWFsIDxicj4KICAgICAgPGJyPgogICAgICBXZWRuZXNkYXksIE1hcmNoIDE5dGggMTQ6MDAgLSAxNTozMCBhbmQgVGh1cnNkYXksIE1hcmNoIDIwdGggMTE6MDAgLSAxMjozMDxicj4KICAgICAgU3BlYWtlcnM6IEFkcmlhbiBDb2x5ZXIsIEFuZHkgQ2xlbWVudCwgTWF0dGhldyBXZWJzdGVyIC0gPGk+QXNwZWN0LU9yaWVudGVkIAogICAgICBEZXZlbG9wbWVudCBUb29scyBmb3IgRWNsaXBzZTwvaT4gLSBEZW1vIDxicj4KICAgICAgU3BlYWtlcnM6IE1hcnRpbiBSb2JpbGxhcmQsIEdhaWwgTXVycGh5IC0gPGk+RkVBVCAtIEEgVG9vbCBmb3IgTG9jYXRpbmcsIAogICAgICBEZXNjcmliaW5nLCBhbmQgQW5hbHl6aW5nIENvbmNlcm5zIGluIFNvdXJjZSBDb2RlPC9pPiAtIERlbW8gPGJyPgogICAgICA8YnI+CgkgIFdlZG5lc2RheSBNYXJjaCAxOSwgMTY6MDAgLSAxNzozMCBhbmQgVGh1cnNkYXkgTWFyY2ggMjAsIDE0OjAwIC0gMTU6MzA8YnI+CiAgICAgIFNwZWFrZXJzOiBQZXJpIFRhcnIsIFdpbGxpYW0gSGFycmlzb24sIEhhcm9sZCBPc3NoZXIsIFZpbmNlbnQgS3J1c2thbCAvIAoJICBBbmRyZXcgQ2xlbWVudCwgQWRyaWFuIENvbHllciwgSm9obiBIYXRjaGVyPGJyPgogICAgICA8aT5Ub3dhcmRzIGEgQ29uY2VybiBNYW5pcHVsYXRpb24gRW52aXJvbm1lbnQ6IEFuIE9wZW4sIEV4dGVuc2libGUgRW52aXJvbm1lbnQgCiAgICAgIGZvciBBc3BlY3QgVG9vbHM8L2k+IC0gRGVtbyA8YnI+CjwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+TWFyY2ggMTgtMjAsIDIwMDM8L2I+IC0gV2ViIFNlcnZpY2VzIEVkZ2UgMjAwMyBFYXN0IEJvc3RvbiAKICAgICAgSHluZXMgQ29udmVudGlvbiBDZW50ZXIsIEJvc3RvbiwgTUEsIDxiPlVTQSA8L2I+IDxicj4KICAgICAgV2VkbmVzZGF5IE1hcmNoIDE5LCAyMDAzIDExOjAwIGEubS4gLSAxMTo1MCBhLm0uPGJyPgogICAgICBTcGVha2VyOiBWZXJvbmlrYSBJcnZpbmUgLSA8aT4gU1dUIC0gQW4gT3ZlcnZpZXc8L2k+IDwvdGQ+CiAgPC90cj4KPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkphbiAyMCAtIDI0LCAyMDAzPC9iPiAtIDxiPk9PUCAyMDAzPC9iPiwgSW50ZXJuYXRpb25hbCAKICAgICAgQ29uZ3Jlc3MgQ2VudGVyIE11bmljaCwgPGI+R2VybWFueTwvYj48YnI+CiAgICAgIFdlZG5lc2RheSwgSmFuLiAyMm5kLCAyMDAzIC0gMDk6MDAgLSAxMDozMDxicj4KICAgICAgU3BlYWtlcnM6IEVyaWNoIEdhbW1hLCBLYWktVXdlIE1hZXR6ZWwsIE9USSAtIDxpPkV4dGVuZGluZyBFY2xpcHNlPC9pPiA8YnI+CiAgICAgIDxicj4KICAgICAgVGh1cnNkYXksIEphbnVhcnkgMjNyZCwgMjAwMyAtIDExOjE1IC0gMTI6MDAgPGJyPgogICAgICBTcGVha2VyOiBHZXJub3QgU3RhcmtlIC0gPGk+Vm9uIEZpbnN0ZXJuaXMgdW5kIFN0ZWNrZG9zZW4gliBNZWluZSBsaWVic3RlbiAKICAgICAgRWNsaXBzZSBQbHVnaW5zPC9pPiA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPkphbiAyMiwgMjAwMzwvYj4gLSBVbmlNQUMgKFN3aXNzIFVuaXZlcnNpdHkgTWFjaW50b3NoIAogICAgICBHcm91cCkgPGI+PGEgaHJlZj0iaHR0cDovL3VuaW1hYy5zd2l0Y2guY2gvZGV2dGFsay8iIHRhcmdldD0iX2JsYW5rIj5EZXZUYWxrPC9hPjwvYj4sIAogICAgICBadWcsIFN3aXR6ZXJsYW5kIDxicj4KICAgICAgV2VkbmVzZGF5IEphbnVhcnkgMjIsIDE4OjMwIDxicj4KCQlTcGVha2VyIC0gQW5kcmUgV2VpbmFuZCAtIDxpPkVjbGlwc2Ugb24gTWFjT1MgWDwvaT48YnI+CiAgICAgIDxiPlNwYWNlIGlzIGxpbWl0ZWQgc28gcGxlYXNlIHJlZ2lzdGVyPC9iPiBieSBlbWFpbGluZyA8YSBocmVmPSJtYWlsdG86bWlzY2hsZXJAYW1hemluZy10ZWNobm9sb2dpZXMuY2giPkRhbmllbCAKICAgICAgTWlzY2hsZXI8L2E+ISA8L3RkPgogIDwvdHI+IAogPC90YWJsZT4KPHRhYmxlIEJPUkRFUj0wIENFTExTUEFDSU5HPTUgQ0VMTFBBRERJTkc9MiBXSURUSD0iMTAwJSIgPgogIDx0cj4gCiAgICA8dGQgQUxJR049TEVGVCBWQUxJR049VE9QIENPTFNQQU49IjIiIEJHQ09MT1I9IiMwMDgwQzAiPjxiPjxmb250IGZhY2U9IkFyaWFsLEhlbHZldGljYSIgY29sb3I9IiNGRkZGRkYiPiAKICAgICAgRXZlbnRzIDIwMDI8L2ZvbnQ+PC9iPjwvdGQ+CiAgPC90cj4KPC90YWJsZT4KPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTUgY2VsbHBhZGRpbmc9MiB3aWR0aD0iMTAwJSIgPgo8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPkRlYyA2LTcgLSA8L2I+IDxiPjxhIGhyZWY9Imh0dHA6Ly93d3cuanVncy5vcmcvQ2FtcEVjbGlwc2UvIiB0YXJnZXQ9Il9ibGFuayI+Q2FtcCAKICAgICAgICBFY2xpcHNlPC9hPjwvYj4gLSBVcGRhdGUsIEV4cGVyaWVuY2VzICYgQ29kZSBDYW1wLCBTdHV0dGdhcnQsIDxiPkdlcm1hbnk8L2I+IAogICAgICAgIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGk+PGI+Q2FsbCBmb3IgcGFydGljaXBhdGlvbiEgUHJlc2VudGF0aW9ucyBvbmx5IHNwYWNlIGF2YWlsYWJsZSEgVGhlIAogICAgICAgIENvZGVDYW1wIGlzIG5vdyBmdWxsLCBidXQgeW91IGNhbiBzdGlsbCByZWdpc3RlciBmb3IgdGhlIHByZXNlbnRhdGlvbnMgCiAgICAgICAgYXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuanVncy5vcmcvQ2FtcEVjbGlwc2UvIiB0YXJnZXQ9Il9ibGFuayI+Q2FtcCAKICAgICAgICBFY2xpcHNlIHdlYnNpdGU8L2E+ITwvYj48L2k+IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgUHJlc2VudGF0aW9uczogRnJpZGF5LCBEZWMuIDZ0aCwgMTQ6MDAgLSAxNzo0NSA8YnI+CiAgICAgICAgQ29kZSBDYW1wOiBGcmlkYXkgRGVjLiA2dGgsIDEwOjAwIGFtIC0gU2F0dXJkYXksIERlYy4gN3RoPGJyPgogICAgICA8L3A+CiAgICAgIDxwPlByb2dyYW0gLSAxNDowMCAtIDE1OjE1IDxicj4KICAgICAgICA8Yj5FcmljaCBHYW1tYTwvYj4gLSA8aT5Db250cmlidXRpbmcgdG8gRWNsaXBzZTwvaT48YnI+CiAgICAgICAgPGI+RGlyayBCYWV1bWVyPC9iPiAtIDxpPkluc2lkZSBFY2xpcHNlIFJlZmFjdG9yaW5nPC9pPiA8YnI+CiAgICAgICAgPGJyPgogICAgICAgIFRoYW5rIHlvdSB0byBldmVyeW9uZSB3aG8gcmVzcG9uZGVkIHRvIG91ciBjYWxsIGZvciBleHBlcmllbmNlIHJlcG9ydHMhIAogICAgICAgIFlvdSdsbCBzZWUgdGhhdCB3ZSd2ZSBleHRlbmRlZCB0aGUgZXhwZXJpZW5jZSByZXBvcnQgc2VjdGlvbiBzbGlnaHRseSwgCiAgICAgICAgYW5kIHdpbGwgZm9sbG93IHdpdGggYW4gb3BlbiByb3VuZHRhYmxlIHNlc3Npb24uIElmIHlvdSB3ZXJlbid0IGFibGUgdG8gCiAgICAgICAgcmVnaXN0ZXIgZm9yIHRoZSBjb2RlIGNhbXAsIHdlIGhvcGUgd2UgY2FuIGFjY29tbW9kYXRlIHNvbWUgb2YgeW91ciBxdWVzdGlvbnMgCiAgICAgICAgdGhlcmUhIDxicj4KICAgICAgICA8YnI+CiAgICAgICAgRXhwZXJpZW5jZSBSZXBvcnRzIDE1OjQ1IC0gMTc6MDAgPGJyPgogICAgICAgIDxiPkFkcmlhbiBDb2x5ZXI8L2I+IC0gSUJNIFVLIC0gPGk+QXNwZWN0IE9yaWVudGVkIFNvZnR3YXJlIERldmVsb3BtZW50IAogICAgICAgIGluIEVjbGlwc2U8L2k+IDxicj4KICAgICAgICA8Yj5OYWNpIERhaSA8L2I+LSBFdGVyYXRpb24gLyBPYmplY3RMZWFybiAtIDxpPlRoZSBMb21ib3ogRXhwZXJpbWVudDwvaT4gCiAgICAgICAgPGJyPgogICAgICAgIDxiPk5pY2sgRW50aW4sIEFsZXhhbmRlciBBcHR1cyBhbmQgRGlldHJpY2ggQ2hhcmlzaXVzPC9iPiAtIFRvZ2V0aGVyU29mdCAKICAgICAgICAtIDxpPkVjbGlwc2UgYXMgYSBwbGF0Zm9ybSBmb3IgYSBzdGF0ZS1vZi10aGUtYXJ0IE1vZGVsaW5nIFRvb2w8L2k+IDxicj4KICAgICAgICA8Yj5KYW5vcyBLb3BwYW55PC9iPiAtIEludGxhbmQgR21iSCAtIDxpPlRoZSBDb2RlQmVhbWVyIFByb2plY3Q6IEV4cGVyaWVuY2VzIAogICAgICAgIHdpdGggaW50ZWdyYXRpbmcgYSBDb2xsYWJvcmF0aXZlIERldmVsb3BtZW50IFBsYXRmb3JtIGludG8gRWNsaXBzZSA8L2k+PGJyPgogICAgICAgIDxiPk1hcmNvIExpdHRvPC9iPiAtIE1pbmQ4IEdtYkggLSA8aT5FY2xpcHNlIGFzIGEgUGxhdGZvcm0gZm9yIE1vZGVsIERyaXZlbiAKICAgICAgICBFbmdpbmVlcmluZzwvaT4gPGJyPgogICAgICAgIDxicj4KICAgICAgICBSb3VuZHRhYmxlIC0gMTc6MDAgLSAxNzo0NSAtIDxiPkVyaWNoIEdhbW1hPC9iPiwgQ2hhaXI8YnI+CiAgICAgICAgV2UnbGwgb3BlbiB0aGUgZmxvb3Igcm91bmR0YWJsZSAoQm9GKSBzdHlsZSBmb3IgYSBjaGFuY2UgdG8gZXhjaGFuZ2UgaWRlYXMgCiAgICAgICAgYW5kIGFzayB0aG9zZSBidXJuaW5nIHF1ZXN0aW9ucyEgPGJyPgogICAgICA8L3A+CiAgICAgIDwvdGQ+CiAgPC90cj4KPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+IDxiPk5vdiAyMTwvYj4gLSA8Yj48YSBocmVmPSJodHRwOi8vZXNjaGVyLmVsaXMucnVnLmFjLmJlL35tY2hyaXN0aS9qYWVzL2hvbWUueHRwIiB0YXJnZXQ9Il9ibGFuayI+SmF2YSAKICAgICAgYW5kIEVtYmVkZGVkIFN5c3RlbXMgU3ltcG9zaXVtPC9hPjwvYj4sIFVuaXZlcnNpdHkgb2YgR2hlbnQsIDxiPkJlbGdpdW08L2I+IAogICAgICA8YnI+CiAgICAgIFRodXJzZGF5LCBOb3YuIDIxc3QsIDI6MTUgcG0gPGJyPgogICAgICBTcGVha2VyOiBDaHJpcyBMYWZmcmEgLSA8aT5QYWNrYWdpbmcgSmF2YSBhcHBsaWNhdGlvbnMgZm9yIEVtYmVkZGVkIFN5c3RlbXM8L2k+IAogICAgPC90ZD4KICA8L3RyPgo8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gPGI+Tm92IDE4IC0gMjI8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5zZGV4cG8uY29tLyIgdGFyZ2V0PSJfYmxhbmsiPjxiPlNvZnR3YXJlIAogICAgICBEZXZlbG9wbWVudCBDb25mZXJlbmNlIGFuZCBFeHBvIEVhc3QgMjAwMjwvYj48L2E+LCBCb3N0b24sIE1BLCA8Yj5VLlMuQS48L2I+PGJyPgogICAgICBNb25kYXksIE5vdi4gMTh0aCAxMjoxNSAtIDE6MDAgcG0gLSBLZXlub3RlPGJyPgogICAgICBTcGVha2VyOiBHcmVnb3IgS2ljemFsZXMgLTxpPiBBc3BlY3RKOiBBc3BlY3QtT3JpZW50ZWQgUHJvZ3JhbW1pbmcgaW4gSmF2YTwvaT4gCiAgICA8L3RkPgogIDwvdHI+Cjx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiA8Yj5Ob3YgMTEtMTU8L2I+IC0gPGI+PGEgaHJlZj0iaHR0cDovL3d3dy0zLmlibS5jb20vc2VydmljZXMvbGVhcm5pbmcvY29uZi91cy93ZWJzcGhlcmUvaW5kZXguaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPldlYlNwaGVyZSAKICAgICAgVGVjaG5pY2FsIEV4Y2hhbmdlPC9hPjwvYj4gTGFzIFZlZ2FzLCBOViBVU0EgPGJyPgogICAgICBXZWQuIE5vdi4gMTN0aDxiPiAtIFByZXNlbnRhdGlvbihENDIpPC9iPjogODozMCAtIDk6NDUgYW0gPGI+TGFiIChMNTEpPC9iPiAKICAgICAgMjo0NSAtIDQ6MDAgcG0gPGJyPgogICAgICBUaHUuIE5vdiAxNHRoIC0gPGI+UHJlc2VudGF0aW9uKEQ0Mik8L2I+OiA4OjMwIC0gMDk6NDUgPGI+TGFiIChMNTEpPC9iPiAKICAgICAgVGh1LiBOb3YgMTR0aCwgNDozMCBwbSAtIDU6NDUgcG0gPGJyPgogICAgICBTcGVha2VyOiBTaGVycnkgU2hhdm9yoCAtIDxpPkRldmVsb3BpbmcgUGx1Zy1pbnMgd2l0aCBFY2xpcHNlPC9pPiA8L3RkPgogIDwvdHI+Cjx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPiAKICAgICAgPHA+PGI+Tm92IDEzLTE0IDwvYj4gLSA8Yj5UaGUgSmF2YVBvbGlzIENvbmZlcmVuY2U8L2I+IEFudHdlcnAsIDxiPkJlbGdpdW08L2I+IAogICAgICAgIDxicj4KICAgICAgICBUaHVyc2RheSwgTm92ZW1iZXIgMTR0aCwgMDk6MzAgLSAxMDozMCAtIEtleW5vdGU8YnI+CiAgICAgICAgU3BlYWtlcjogRXJpY2ggR2FtbWEgPGJyPgogICAgICAgIDxicj4KICAgICAgICA8aT48Yj5TZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYmVqdWcub3JnL2luZGV4LmpzcCIgdGFyZ2V0PSJfYmxhbmsiPkJlSlVHIAogICAgICAgIHdlYnNpdGU8L2E+IGZvciBkZXRhaWxzITwvYj48L2k+PC9wPgogICAgPC90ZD4KICA8L3RyPgo8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj4gCiAgICAgIDxwPjxiPk5vdiA0LTggPC9iPiAtIDxiPjxhIGhyZWY9Imh0dHA6Ly9vb3BzbGEuYWNtLm9yZy9vb3BzbGEyMDAyIiB0YXJnZXQ9Il9ibGFuayI+T09QU0xBIAogICAgICAgIDIwMDI8L2E+PC9iPiBTZWF0dGxlLCBXYXNoaW5ndG9uLCA8Yj5VU0E8L2I+IDxicj4KICAgICAgICA8YnI+CiAgICAgICAgVHVlc2RheSBOb3ZlbWJlciA1dGgsIDc6MDAgcG0gLSA8Yj48YSBocmVmPSIuLi9ldmVudHMvb29wc2xhMjAwMi9vb3BzbGFCb0YuaHRtbCI+PGk+Qm9GIAogICAgICAgIC0gQ29ubmVjdGluZyB3aXRoIEVjbGlwc2U8L2k+PC9hPiA8L2I+IDxicj4KICAgICAgICBTcGVha2VyczogRXJpY2ggR2FtbWEgLyBLZW50IEJlY2ssIEpvaG4gRHVpbW92aWNoIC8gSm9obiBPJ0tlZWZlLCBEd2lnaHQgCiAgICAgICAgRGV1Z28sIE1hcmsgQ2h1LUNhcnJvbGwsIE1payBLZXJzdGVuLCBHcmVnb3IgS2ljemFsZXMgLyBLcmlzIERlIFZvbGRlcjxicj4KICAgICAgICA8YnI+CiAgICAgICAgVGh1cnNkYXkgTm92LiA3dGgsIDEyOjAwIGFuZCBGcmkuIE5vdiA4dGggMTowMCBwbSA8YnI+CiAgICAgICAgU3BlYWtlcjogTWlrIEtlcnN0ZW4gLSA8aT48Yj5EZW1vIC0gQXNwZWN0SjogdGhlIExhbmd1YWdlIGFuZCBEZXZlbG9wbWVudCAKICAgICAgICBUb29sczwvYj48L2k+IDwvcD4KICAgICAgPC90ZD4KICA8L3RyPgo8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj48Yj5PY3QgNy0xMDwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3Lm9sZC5uZXRvYmplY3RkYXlzLm9yZy9ub2RlMDIvaW5kZXguaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPjxiPk5ldE9iamVjdCAKICAgICAgRGF5czwvYj48L2E+IEVyZnVydCwgPGI+R2VybWFueTwvYj48YnI+CiAgICAgIFdlZG5lc2RheSwgT2N0b2JlciA5dGgsIDA5OjAwIC0gMTA6MDAgLSBLZXlub3RlPGJyPgogICAgICBTcGVha2VyOiBHcmVnb3IgS2ljemFsZXMgPGJyPgogICAgICBUaHVyc2RheSwgT2N0b2JlciAxMHRoLCAwOTowMCAtIDEwOjAwIC0gVGFsa3M8YnI+CiAgICAgIFNwZWFrZXI6IEFuZHJlIFdlaW5hbmQsIE9USSA8L3RkPgogIDwvdHI+Cjx0cj4gCiAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj48Yj5PY3QgMy00PC9iPiAtIDxiPlNjb3BlIDIwMDI8L2I+LCBWZXJzYWlsbGVzLCA8Yj5GcmFuY2U8L2I+IAogICAgICA8aHR0cDovL3d3dy5qYXZhLXNjb3BlMjAwMi5jb20vaW5kZXguaHRtPiA8YnI+CiAgICAgIFRodXJzZGF5LCBPY3RvYmVyIDNyZCwgMTc6MDAgLSAxODowMCAtIDxodHRwOi8vd3d3LmphdmEtc2NvcGUyMDAyLmNvbS92LWNvbmZhLmh0bT4gCiAgICAgIEF0ZWxpZXIgPGJyPgogICAgICBTcGVha2VyczogTWF1cmljZSBCb3Vkb3QsIElCTSwgUGhpbGlwcGUgTXVsZXQsIE9USSAtIDxpPkF1IGNvZXVyIGRlIGxhIHBsYXRlZm9ybWUgCiAgICAgIEVjbGlwc2U8L2k+PC90ZD4KICA8L3RyPgo8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj48Yj5TZXB0IDMwLU9jdCAzPC9iPiAtIDxiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LTkyNy5pYm0uY29tL2libS9jYXMvYXJjaGl2ZXMvMjAwMi9wYXBlcnMvaW5kZXguc2h0bWwiIHRhcmdldD0iX2JsYW5rIj5DQVNDT04gCiAgICAgIDIwMDI8L2E+PC9iPiwgTWFya2hhbSwgPGI+Q2FuYWRhPC9iPiA8YnI+CiAgICAgIE1vbmRheSBTZXB0ZW1iZXIgMzAgLSB3b3Jrc2hvcDxicj4KICAgICAgU3BlYWtlcjogQ2hyaXN0b3BoZSBFbGVrLCBJQk0gLSA8aT5QbHVnLWluIGRldmVsb3BtZW50IGZvciB0aGUgRWNsaXBzZSBQbGF0Zm9ybTwvaT4gCiAgICAgIChIYW5kcy1vbikgPGJyPgogICAgICBUdWVzZGF5LCBPY3RvYmVyIDFzdCAtIHdvcmtzaG9wPGJyPgogICAgICBTcGVha2VyczogSmFtaWUgUm9iZXJ0cywgS2FyaSBIYWxzdGVkLCBJQk0gLSA8aT5BZHZlbnR1cmVzIGluIEVjbGlwc2UgVXNlciAKICAgICAgQXNzaXN0YW5jZTwvaT4gPC90ZD4KICA8L3RyPgogIAo8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj48Yj5TZXB0IDI1LTI3IDwvYj4gLSA8YSBocmVmPSJodHRwOi8vc2VydmxldC5qYXZhLnN1bi5jb20vamF2YW9uZS9qcDIwMDIvaG9tZS9pbmRleC5lbi5qc3AiIHRhcmdldD0iX2JsYW5rIj48Yj5KYXZhT25lPC9iPjwvYT4sIAogICAgICBZb2tvaGFtYSwgPGI+SmFwYW48L2I+IDxicj4KICAgICAgV2VkbmVzZGF5IFNlcCAyNSwgNzozMCBQTSAtIDk6MzAgUE0sIDxhIGhyZWY9Imh0dHA6Ly9zZXJ2bGV0LmphdmEuc3VuLmNvbS9qYXZhb25lL2pwMjAwMi9jb25mL2JvZnMvZGlzcGxheS0xMjU2LmVuLmpzcCIgdGFyZ2V0PSJfYmxhbmsiPjxpPkJPRi0gCiAgICAgIEphdmEgSURFIEJhdHRsZSAyPC9pPjwvYT4gPGJyPgogICAgICBTcGVha2VyczogSGl0b3NoaSBGdWppaSwgQm9ybGFuZCwgSGlyYXlhc3UgS3VzaGltaXlhLCBJQk0sIE1hcmkgVGFrYWhhc2hpLCAKICAgICAgU3VuLCBLZW5qaSBNaXp1a29zaGksIE10biBWaWV3IFN5c3RlbXMgQ28uIDwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPgogICAgICA8Yj5TZXB0IDI0PC9iPiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuaXJpc2EuZnIvY29vLyIgdGFyZ2V0PSJfYmxhbmsiPjxiPklSSVNBPC9iPjwvYT4sIAogICAgICBSZW5uZXMsIDxiPkZyYW5jZTwvYj4gPGJyPgogICAgICBUdWVzZGF5LCBTZXB0ZW1iZXIgMjR0aCwgMTg6MDAtMTk6MDAgPGJyPgogICAgICBTcGVha2VyOiBQaGlsaXBwZSBNdWxldCwgT1RJIC0gPGk+TGEgcGxhdGVmb3JtZSBFY2xpcHNlPC9pPjwvdGQ+CiAgPC90cj4KPHRyPgogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj48Yj5TZXB0IDE2LTIwIDwvYj4gLSA8Yj5KQU9PIDIwMDIgQ29uZmVyZW5jZSA8L2I+QWFyaHVzLCA8Yj5EZW5tYXJrPC9iPjxicj4KICAgICAgVHVlc2RheSwgU2VwdC4gMTd0aCwgMTA6NDUgLSAxMzo0NSAoUGFydCAxIGFuZCAyKSA8YnI+CiAgICAgIFNwZWFrZXI6IEVyaWNoIEdhbW1hIC0gPGk+RWNsaXBzZTwvaT4gPC90ZD4KICA8L3RyPgo8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj48Yj5KdWx5IDE3PC9iPiAtIFRoZSBFY2xpcHNlIFBsYXRmb3JtLCBJbnZpdGVkIHRhbGsgYnkgUmFuZHkgCiAgICAgIEdpZmZlbiwgT1RJLCA8YSBocmVmPSJodHRwOi8vd3d3LnVuYi5jYSIgdGFyZ2V0PSJfYmxhbmsiPjxiPlVuaXZlcnNpdHkgb2YgCiAgICAgIE5ldyBCcnVuc3dpY2s8L2I+PC9hPiwgTmV3IEJydW5zd2ljaywgPGI+Q2FuYWRhPC9iPjwvdGQ+CiAgIDwvdHI+Cjx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPjxiPkp1bmUgMjc8L2I+IC0gIDxhIGhyZWY9Imh0dHA6Ly93d3cuamZzMjAwMi5kZS8iIHRhcmdldD0iX2JsYW5rIj4gCiAgICAgIDxiPkpVR1M6IEphdmEgRm9ydW08L2I+PC9hPiBTdHV0dGdhcnQsIDxiPkdlcm1hbnk8L2I+PGJyPgogICAgICBQZXRlciBGaXNjaGVyLCA8aT5JQk0gLSBXZWJTcGhlcmUgUG9ydGFsIFNlcnZlciwgUG9ydGxldHMgdW5kIFdlYlNlcnZpY2VzPC9pPjxicj4KICAgICAgQm9kbyBadW5rZXIgdS4gT2xhZiBGaXNjaGJhY2gsIDxpPlRXVCAtIEVjbGlwc2UgLSBJbnRlZ3JhdGlvbiBlaW5lcyBXZWItQXBwbGljYXRpb24gCiAgICAgIEZyYW1ld29ya3M8L2k+IDxicj4KICAgICAgRnJlZGVyaWsgV3lzdHVwLCBYYXJlczMgLSA8aT5FY2xpcHNlIC0gbG9obnQgc2ljaCBkZXIgVW1zdGllZz88L2k+PGJyPgoJICBBbmRyZWFzIEtpbmRiYWNoZXIgYW5kIE1hcnRpbiBLbm9sbCwgUmF0aW9uYWwgLSA8aT5YREUgLSBUaGUgUmF0aW9uYWwgZVh0ZW5kZWQgRGV2ZWxvcG1lbnQgRW52aXJvbm1lbnQKCSAgZm9yIEVjbGlwc2U8L2k+IDwvdGQ+IAogICA8L3RyPgoKICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj48Yj5KdW5lIDI2LTI4PC9iPiAtIDxiPk9PUCBDb25mZXJlbmNlPC9iPiBIb3RlbCBPa3VyYSwgQW1zdGVyZGFtLCAKICAgICAgPGI+VGhlIE5ldGhlcmxhbmRzPC9iPjxicj4KICAgICAgV2VkbmVzZGF5IEp1bmUgMjZ0aCAtIDE4OjAwIC0gMTk6MzAgPGI+TmlnaHRzY2hvb2w8L2I+PGJyPgogICAgICBTcGVha2VyOiBDaHJpcyBMYWZmcmEsIE9USSAtIDxpPkV4cGVyaWVuY2VzIGluIERldmVsb3BpbmcgYSBUb29saW5nIEZyYW1ld29yayAKICAgICAgZm9yIEVtYmVkZGVkIEFwcGxpY2F0aW9ucyBiYXNlZCBvbiBFY2xpcHNlPC9pPjxicj4KICAgICAgVGh1cnNkYXkgSnVuZSAyN3RoIC0gMTM6MzAgLSAxNDoxNSA8Yj5LZXlub3RlPC9iPjxicj4KICAgICAgU3BlYWtlcjogRXJpY2ggR2FtbWEsIE9USSAtIDxpPkVjbGlwc2UgLSBBbiBPcGVuIFNvdXJjZSBQbGF0Zm9ybSBmb3IgdGhlIE5leHQgCiAgICAgIEdlbmVyYXRpb24gb2YgRGV2ZWxvcG1lbnQgVG9vbHM8L2k+IDwvdGQ+CiAgPC90cj4KPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+PGI+SnVuZSAyNS0yNjwvYj4gLSA8YSBocmVmPSJodHRwOi8vd3d3Lm1lcmFudC5jb20vZGUvZXZlbnRzL01VU1QyMDAyL01VU1QyMDAyX092ZXJ2aWV3Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj48Yj5NRVJBTlQgCiAgICAgIFVzZXJ0cmVmZmVuPC9iPjwvYT48Yj4gPC9iPmluIFByaWVuIGFtIENoaWVtc2VlLCA8Yj5HZXJtYW55PC9iPjxicj4KICAgICAgV2VkbmVzZGF5IEp1bmUgMjZ0aCAtIEtleW5vdGUgU3BlYWtlcjogRXJpY2ggR2FtbWEsIE9USSA8L3RkPgogICA8L3RyPiAgCjx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPgogICAgICAgIDxiPkp1bmUgMTAtMTQ8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy5lY29vcDIwMDIubGNjLnVtYS5lcy8iIHRhcmdldD0iX2JsYW5rIj4gCiAgICAgICAgPGI+RUNPT1AgMjAwMjwvYj48L2E+IENvc3RhIGRlbCBTb2wsIDxiPlNwYWluPC9iPjxicj4KICAgICAgVGh1cnNkYXkgSnVuZSAxM3RoIC0gMTg6MDAgLSBFY2xpcHNlIEJPRjxicj4KICAgICAgV2VkbmVzZGF5IEp1bmUgMTJ0aCAtIEZyaWRheSBKdW5lIDE0dGggLSBFY2xpcHNlIEFzcGVjdEogYW5kIEVtYmVkZGVkIEphdmEgCiAgICAgIERlbW9zIDwvdGQ+CiAgPC90cj4KPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+PGI+TWF5IDMwPC9iPiAtIEJpdHMmQ2hpcHMgTWljcm8tZXZlbnQ6IDxhIGhyZWY9Imh0dHA6Ly93d3cuYml0cy1jaGlwcy5ubCIgdGFyZ2V0PSJfYmxhbmsiPiAKICAgICAgPGI+RW1iZWRkZWQgQ29tbXVuaWNhdGlvbnMsIFRlbGVjb20gJiBKYXZhPC9iPjwvYT4gRG9yaW50IENvY2FnbmUgSG90ZWwsIAogICAgICBFaW5kaG92ZW4sIDxiPlRoZSBOZXRoZXJsYW5kczwvYj48YnI+CiAgICAgIEtleW5vdGUgU3BlYWtlcjogQ2hyaXMgTGFmZnJhLCBPVEkgLSA8aT5FeHBlcmllbmNlcyBpbiBEZXZlbG9waW5nIGEgVG9vbGluZyBGcmFtZXdvcmsgCiAgICAgIGZvciBFbWJlZGRlZCBBcHBsaWNhdGlvbnMgYmFzZWQgb24gRWNsaXBzZTwvaT4gPC90ZD4KICA8L3RyPgogICAgIDx0cj4gCiAgICA8dGQgYWxpZ249UklHSFQgdmFsaWduPVRPUCB3aWR0aD0iMyUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvQWRhcnJvdy5naWYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYm9yZGVyPSIwIj48L3RkPgogICAgPHRkIHdpZHRoPSI5NyUiPgo8cD48Yj5NYXkgMjYtMjk8L2I+IC0gPGEgaHJlZj0iaHR0cDovL3hwMjAwMi5vcmcvIiB0YXJnZXQ9Il9ibGFuayI+IDxiPlhQIAogICAgICAgIDIwMDI8L2I+PC9hPiBlWHRyZW1lIFByb2dyYW1taW5nIENvbmZlcmVuY2UsIEFsZ2hlcm8sIFNhcmRpbmlhLCA8Yj5JdGFseTwvYj48YnI+CiAgICAgICAgV2VkbmVzZGF5IE1heSAyOXRoLCAxNjoxNSAtIDE5OjAwPGJyPgogICAgICAgIFNwZWFrZXI6IFJhY2hlbCBSZWluaXR6IC0gPGk+VHV0b3JpYWw6ICZxdW90O0FnaWxlIFNvZnR3YXJlIERldmVsb3BtZW50IAogICAgICAgIFByYWN0aWNlIGZvciBXZWIgU2VydmljZXMgRGV2ZWxvcG1lbnQgYW5kIFRlc3Rpbmc6IEEgSGFuZHMtb24gSW50cm9kdWN0aW9uJnF1b3Q7LiBSYWNoZWwgCgkJd2lsbCBiZSB1c2luZyBFY2xpcHNlIGFzIHRoZSBJREUgZm9yIHRoaXMgaGFuZHMtb24gCiAgICAgICAgdHV0b3JpYWwgaW4gY29uanVuY3Rpb24gd2l0aCBUb21jYXQgYW5kIEF4aXMuPC9pPjwvcD4KICAgICAgPC90ZD4KCSA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj48Yj5NYXkgMTUtMTY8L2I+IC0gPGI+UU5YIGFuZCBSYXRpb25hbCBmZWF0dXJlIGVjbGlwc2UgYXQgCiAgICAgIEVTUyAyMDAyIDwvYj5Mb25kb24sIDxiPlVLPC9iPiA8L3RkPgogIDwvdHI+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj1SSUdIVCB2YWxpZ249VE9QIHdpZHRoPSIzJSI+PGltZyBzcmM9Ii4uL2ltYWdlcy9BZGFycm93LmdpZiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBib3JkZXI9IjAiPjwvdGQ+CiAgICA8dGQgd2lkdGg9Ijk3JSI+PGI+TWF5IDg8L2I+IC0gPGI+V2ViY2FzdDogVGhlIFFOWCBJREU8L2I+IDA5OjAwIEFNLTEwOjAwIAogICAgICBBTSAoUERUKSAsIDE2OjAwLTE3OjAwIChHTVQpPGJyPgogICAgICBTcGVha2VyOiBTZWJhc3RpZW4gTWFyaW5lYXUsIFFOWCAtIDxpPkFjY2VsZXJhdGUgWW91ciBCdXNpbmVzcyBEZXZlbG9wbWVudCBDeWNsZSB3aXRoIHRoZSBORVcgUU5YIElERSEgPC9pPgoJICA8L3RkPgogIDwvdHI+CiAgICA8dHI+IAogICAgPHRkIGFsaWduPVJJR0hUIHZhbGlnbj1UT1Agd2lkdGg9IjMlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGJvcmRlcj0iMCI+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTclIj48Yj5NYXkgNzwvYj4gLSA8Yj48YSBocmVmPSIuLi9ldmVudHMvd3dkYzIwMDIvd3dkYzIwMDIuaHRtbCIgdGFyZ2V0PSJfdG9wIj5FY2xpcHNlIAogICAgICBVc2VyJ3MgR3JvdXA8L2E+IGF0IDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3d3ZGMyMDAyLyIgdGFyZ2V0PSJfYmxhbmsiPkFwcGxlIAogICAgICBXV0RDIDIwMDI8L2E+PC9iPiBUdWVzZGF5IE1heSA3LCAyMDAyPGJyPgogICAgICA2OjMwcG0gVGhlIEZhaXJtb250IFNhbiBKb3NlLCBBdGhlcnRvbiBSb29tIDE3MCBTb3V0aCBNYXJrZXQgU3RyZWV0LCBTYW4gCiAgICAgIEpvc2UsIENBIFRlbC46ICg0MDgpIDk5OC0xOTAwPGJyPgpTcGVha2VyOiAgQW5kcmUgV2VpbmFuZCwgT1RJPC90ZD4KICA8L3RyPgo8dHI+IAogICAgPHRkIGFsaWduPXJpZ2h0IHZhbGlnbj10b3Agd2lkdGg9IjIlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiBib3JkZXI9MCBoZWlnaHQ9MTYgd2lkdGg9MTY+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTglIj48Yj5NYXIgMjcgLSA8YSBocmVmPSIuLi9ldmVudHMvamF2YW9uZTIwMDIuaHRtbCI+RWNsaXBzZSBVc2VyJ3MgCiAgICAgIEdyb3VwIE1lZXRpbmc8L2E+IGF0IDxhIGhyZWY9Imh0dHA6Ly9zZXJ2bGV0LmphdmEuc3VuLmNvbS9qYXZhb25lL3NmMjAwMi9ob21lL2luZGV4LmVuLmpzcCIgdGFyZ2V0PSJfYmxhbmsiPkphdmFPbmU8L2E+IAogICAgICAtIFdlZCBNYXIgMjcsIDctMTBwbTwvYj48L3RkPgogIDwvdHI+ICAKICA8dHI+IAogICAgPHRkIGFsaWduPXJpZ2h0IHZhbGlnbj10b3Agd2lkdGg9IjIlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiBib3JkZXI9MCBoZWlnaHQ9MTYgd2lkdGg9MTY+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTglIj48Yj5NYXIgMjE8L2I+IC0gPGI+PGEgaHJlZj0iaHR0cDovL3d3dy5lbW4uZnIvb2NtMjAwMi9Qcm9ncmFtX2VuLmh0bWwiPk9DTSAKICAgICAgMjAwMjwvYT48L2I+LCBOYW50ZXMsIDxiPkZyYW5jZTwvYj4gPGh0dHA6Ly93d3cuZW1uLmZyL29jbTIwMDIvUHJvZ3JhbV9lbi5odG1sPjxicj4KICAgICAgVGh1cnNkYXksIE1hcmNoIDIxc3QsIDEzOjMwLTE1OjAwIC0gPGk+TGUgcHJvamVjdCBFY2xpcHNlPC9pPjxicj4KCVNwZWFrZXI6IFBoaWxpcHBlIE11bGV0LCBPVEk8L3RkPgogIDwvdHI+ICAKICA8dHI+IAogICAgPHRkIGFsaWduPXJpZ2h0IHZhbGlnbj10b3Agd2lkdGg9IjIlIj48aW1nIHNyYz0iLi4vaW1hZ2VzL0FkYXJyb3cuZ2lmIiBib3JkZXI9MCBoZWlnaHQ9MTYgd2lkdGg9MTY+PC90ZD4KICAgIDx0ZCB3aWR0aD0iOTglIj48Yj5KYW4gMTcgLSBFcmljaCBHYW1tYSwgT1RJIC0gPGk+RGFzIEVjbGlwc2UgUGxhdGZvcm0gUHJvamVjdDwvaT4sIAogICAgICBKYXZhIFVzZXIgR3JvdXAgU3R1dHRnYXJ0LCA8YSBocmVmPSJodHRwOi8vd3d3Lmp1Z3MuZGUvMjAwMi5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RXZlbnRzPC9hPiA8L2I+CiAgICA8L3RkPgogIDwvdHI+ICAKICA8L3RhYmxlPgoKCjx0YWJsZSBCT1JERVI9MCBDRUxMU1BBQ0lORz01IENFTExQQURESU5HPTIgV0lEVEg9IjEwMCUiID4KICAKICAKPC90YWJsZT48YnI+CjxwPlBsZWFzZSBzZWUgb3VyIHdlYnNpdGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC90ZXJtc29mdXNlLmh0bWwiPnRlcm1zIAogIG9mIHVzZTwvYT4uIEZvciBwcm9ibGVtcyB3aXRoIHRoZSBlY2xpcHNlLm9yZyBzaXRlLCBwbGVhc2UgY29udGFjdCB0aGUgPGEgaHJlZj0ibWFpbHRvOndlYm1hc3RlckBlY2xpcHNlLm9yZyI+d2VibWFzdGVyPC9hPjwvcD4KPHA+Jm5ic3A7PC9wPgo8L2JvZHk+CjwvaHRtbD4K