PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPjEyLqBCQlY6IGFuIGV4cGVyaW1lbnRhbCBiYXNpYyBibG9jayB2ZWN0b3IgZ2VuZXJhdGlvbiB0b29sPC90aXRsZT4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+CjxsaW5rIHJlbD0idXAiIGhyZWY9Im1hbnVhbC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVXNlciBNYW51YWwiPgo8bGluayByZWw9InByZXYiIGhyZWY9InNnLW1hbnVhbC5odG1sIiB0aXRsZT0iMTEuoFNHQ2hlY2s6IGFuIGV4cGVyaW1lbnRhbCBzdGFjayBhbmQgZ2xvYmFsIGFycmF5IG92ZXJydW4gZGV0ZWN0b3IiPgo8bGluayByZWw9Im5leHQiIGhyZWY9ImxrLW1hbnVhbC5odG1sIiB0aXRsZT0iMTMuoExhY2tleTogYW4gZXhhbXBsZSB0b29sIj4KPC9oZWFkPgo8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CjxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJzZy1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cjx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cjx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgo8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIFVzZXIgTWFudWFsPC90aD4KPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJsay1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+CjwvdHI+PC90YWJsZT48L2Rpdj4KPGRpdiBjbGFzcz0iY2hhcHRlciI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJiYnYtbWFudWFsIj48L2E+MTIuoEJCVjogYW4gZXhwZXJpbWVudGFsIGJhc2ljIGJsb2NrIHZlY3RvciBnZW5lcmF0aW9uIHRvb2w8L2gxPjwvZGl2PjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b2MiPgo8cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+CjxkbCBjbGFzcz0idG9jIj4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iYmJ2LW1hbnVhbC5odG1sI2Jidi1tYW51YWwub3ZlcnZpZXciPjEyLjEuIE92ZXJ2aWV3PC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC5xdWlja3N0YXJ0Ij4xMi4yLiBVc2luZyBCYXNpYyBCbG9jayBWZWN0b3JzIHRvIGNyZWF0ZSBTaW1Qb2ludHM8L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLnVzYWdlIj4xMi4zLiBCQlYgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLmZpbGVmb3JtYXQiPjEyLjQuIEJhc2ljIEJsb2NrIFZlY3RvciBGaWxlIEZvcm1hdDwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iYmJ2LW1hbnVhbC5odG1sI2Jidi1tYW51YWwuaW1wbGVtZW50YXRpb24iPjEyLjUuIEltcGxlbWVudGF0aW9uPC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC50aHJlYWRzdXBwb3J0Ij4xMi42LiBUaHJlYWRlZCBFeGVjdXRhYmxlIFN1cHBvcnQ8L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLnZhbGlkYXRpb24iPjEyLjcuIFZhbGlkYXRpb248L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLnBlcmZvcm1hbmNlIj4xMi44LiBQZXJmb3JtYW5jZTwvYT48L3NwYW4+PC9kdD4KPC9kbD4KPC9kaXY+CjxwPlRvIHVzZSB0aGlzIHRvb2wsIHlvdSBtdXN0IHNwZWNpZnkKPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10b29sPWV4cC1iYnY8L2NvZGU+IG9uIHRoZSBWYWxncmluZApjb21tYW5kIGxpbmUuPC9wPgo8ZGl2IGNsYXNzPSJzZWN0MSI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+CjxhIG5hbWU9ImJidi1tYW51YWwub3ZlcnZpZXciPjwvYT4xMi4xLqBPdmVydmlldzwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPgogICBBIGJhc2ljIGJsb2NrIGlzIGEgbGluZWFyIHNlY3Rpb24gb2YgY29kZSB3aXRoIG9uZSBlbnRyeSBwb2ludCBhbmQgb25lIGV4aXQKICAgcG9pbnQuICBBIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmJhc2ljIGJsb2NrIHZlY3RvcjwvZW0+PC9zcGFuPiAoQkJWKSBpcyBhIGxpc3Qgb2YgYWxsCiAgIGJhc2ljIGJsb2NrcyBlbnRlcmVkIGR1cmluZyBwcm9ncmFtIGV4ZWN1dGlvbiwgYW5kIGEgY291bnQgb2YgaG93IG1hbnkKICAgdGltZXMgZWFjaCBiYXNpYyBibG9jayB3YXMgcnVuLgo8L3A+CjxwPgogICBCQlYgaXMgYSB0b29sIHRoYXQgZ2VuZXJhdGVzIGJhc2ljIGJsb2NrIHZlY3RvcnMgZm9yIHVzZSB3aXRoIHRoZSAKICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LmNzZS51Y3NkLmVkdS9+Y2FsZGVyL3NpbXBvaW50LyIgdGFyZ2V0PSJfdG9wIj5TaW1Qb2ludDwvYT4KICAgYW5hbHlzaXMgdG9vbC4gCiAgIFRoZSBTaW1Qb2ludCBtZXRob2RvbG9neSBlbmFibGVzIHNwZWVkaW5nIHVwIGFyY2hpdGVjdHVyYWwgCiAgIHNpbXVsYXRpb25zIGJ5IG9ubHkgcnVubmluZyBhIHNtYWxsIHBvcnRpb24gb2YgYSBwcm9ncmFtCiAgIGFuZCB0aGVuIGV4dHJhcG9sYXRpbmcgdG90YWwgYmVoYXZpb3IgZnJvbSB0aGlzCiAgIHNtYWxsIHBvcnRpb24uICBNb3N0IHByb2dyYW1zIGV4aGliaXQgcGhhc2UtYmFzZWQgYmVoYXZpb3IsIHdoaWNoCiAgIG1lYW5zIHRoYXQgYXQgdmFyaW91cyB0aW1lcyBkdXJpbmcgZXhlY3V0aW9uIGEgcHJvZ3JhbSB3aWxsIGVuY291bnRlciAKICAgaW50ZXJ2YWxzIG9mIHRpbWUgd2hlcmUgdGhlIGNvZGUgYmVoYXZlcyBzaW1pbGFybHkgdG8gYSBwcmV2aW91cwogICBpbnRlcnZhbC4gIElmIHlvdSBjYW4gZGV0ZWN0IHRoZXNlIGludGVydmFscyBhbmQgZ3JvdXAgdGhlbSB0b2dldGhlciwgCiAgIGFuIGFwcHJveGltYXRpb24gb2YgdGhlIHRvdGFsIHByb2dyYW0gYmVoYXZpb3IgY2FuIGJlIG9idGFpbmVkCiAgIGJ5IG9ubHkgc2ltdWxhdGluZyBhIGJhcmUgbWluaW11bSBudW1iZXIgb2YgaW50ZXJ2YWxzLCBhbmQgdGhlbiBzY2FsaW5nIAogICB0aGUgcmVzdWx0cy4KPC9wPgo8cD4KICBJbiBjb21wdXRlciBhcmNoaXRlY3R1cmUgcmVzZWFyY2gsIHJ1bm5pbmcgYSAKICBiZW5jaG1hcmsgb24gYSBjeWNsZS1hY2N1cmF0ZSBzaW11bGF0b3IgY2FuIGNhdXNlIHNsb3dkb3ducyBvbiB0aGUgb3JkZXIKICBvZiAxMDAwIHRpbWVzLCBtYWtpbmcgaXQgdGFrZSBkYXlzLCB3ZWVrcywgb3IgZXZlbiBsb25nZXIgdG8gcnVuIGZ1bGwKICBiZW5jaG1hcmtzLiAgQnkgdXRpbGl6aW5nIFNpbVBvaW50IHRoaXMgY2FuIGJlIHJlZHVjZWQgc2lnbmlmaWNhbnRseSwKICB1c3VhbGx5IGJ5IDkwLTk1JSwgd2hpbGUgc3RpbGwgcmV0YWluaW5nIHJlYXNvbmFibGUgYWNjdXJhY3kuCjwvcD4KPHA+CiAgIEEgbW9yZSBjb21wbGV0ZSBpbnRyb2R1Y3Rpb24gdG8gaG93IFNpbVBvaW50IHdvcmtzIGNhbiBiZSAKICAgZm91bmQgaW4gdGhlIHBhcGVyICJBdXRvbWF0aWNhbGx5IENoYXJhY3Rlcml6aW5nIExhcmdlIFNjYWxlIAogICBQcm9ncmFtIEJlaGF2aW9yIiBieSBULiBTaGVyd29vZCwgRS4gUGVyZWxtYW4sIEcuIEhhbWVybHksIGFuZCAKICAgQi4gQ2FsZGVyLiAgCjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0iYmJ2LW1hbnVhbC5xdWlja3N0YXJ0Ij48L2E+MTIuMi6gVXNpbmcgQmFzaWMgQmxvY2sgVmVjdG9ycyB0byBjcmVhdGUgU2ltUG9pbnRzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+CiAgIFRvIHF1aWNrbHkgY3JlYXRlIGEgYmFzaWMgYmxvY2sgdmVjdG9yIGZpbGUsIHlvdSB3aWxsIGNhbGwgVmFsZ3JpbmQKICAgbGlrZSB0aGlzOgoKICAgPC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dmFsZ3JpbmQgLS10b29sPWV4cC1iYnYgL2Jpbi9sczwvcHJlPgo8cD4KCiAgIEluIHRoaXMgY2FzZSB3ZSBhcmUgcnVubmluZyBvbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9iaW4vbHM8L2NvZGU+LAogICBidXQgdGhpcyBjYW4gYmUgYW55IHByb2dyYW0uICBCeSBkZWZhdWx0IGEgZmlsZSBjYWxsZWQKICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5iYi5vdXQuUElEPC9jb2RlPiB3aWxsIGJlIGNyZWF0ZWQsCiAgIHdoZXJlIFBJRCBpcyByZXBsYWNlZCBieSB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgcnVubmluZyBwcm9jZXNzLgogICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGJhc2ljIGJsb2NrIHZlY3Rvci4gIEZvciBsb25nLXJ1bm5pbmcgcHJvZ3JhbXMKICAgdGhpcyBmaWxlIGNhbiBiZSBxdWl0ZSBsYXJnZSwgc28gaXQgbWlnaHQgYmUgd2lzZSB0byBjb21wcmVzcwogICBpdCB3aXRoIGd6aXAgb3Igc29tZSBvdGhlciBjb21wcmVzc2lvbiBwcm9ncmFtLgo8L3A+CjxwPgogICBUbyBjcmVhdGUgYWN0dWFsIFNpbVBvaW50IHJlc3VsdHMsIHlvdSB3aWxsIG5lZWQgdGhlIFNpbVBvaW50IHV0aWxpdHksCiAgIGF2YWlsYWJsZSBmcm9tIHRoZSAKICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LmNzZS51Y3NkLmVkdS9+Y2FsZGVyL3NpbXBvaW50LyIgdGFyZ2V0PSJfdG9wIj5TaW1Qb2ludCB3ZWJwYWdlPC9hPi4KICAgQXNzdW1pbmcgeW91IGhhdmUgZG93bmxvYWRlZCBTaW1Qb2ludCAzLjIgYW5kIGNvbXBpbGVkIGl0LAogICBjcmVhdGUgU2ltUG9pbnQgcmVzdWx0cyB3aXRoIGEgY29tbWFuZCBsaWtlIHRoZSBmb2xsb3dpbmc6CiAgICAgIAogICA8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KLi9TaW1Qb2ludC4zLjIvYmluL3NpbXBvaW50IC1pbnB1dFZlY3RvcnNHemlwcGVkIFwKICAgIC1sb2FkRlZGaWxlIGJiLm91dC4xMjM0Lmd6IFwKICAgIC1rIDUgLXNhdmVTaW1wb2ludHMgcmVzdWx0cy5zaW1wdHMgXAogICAgLXNhdmVTaW1wb2ludFdlaWdodHMgcmVzdWx0cy53ZWlnaHRzPC9wcmU+CjxwPgoKICAgd2hlcmUgYmIub3V0LjEyMzQuZ3ogaXMgeW91ciBjb21wcmVzc2VkIGJhc2ljIGJsb2NrIHZlY3RvciBmaWxlCiAgIGdlbmVyYXRlZCBieSBCQlYuCjwvcD4KPHA+ICAgCiAgIFRoZSBTaW1Qb2ludCB1dGlsaXR5IGRvZXMgcmFuZG9tIGxpbmVhciBwcm9qZWN0aW9uIHVzaW5nIDE1LWRpbWVuc2lvbnMsCiAgIHRoZW4gZG9lcyBrLW1lYW4gY2x1c3RlcmluZyB0byBjYWxjdWxhdGUgd2hpY2ggaW50ZXJ2YWxzIGFyZSAKICAgb2YgaW50ZXJlc3QuICBJbiB0aGlzIGV4YW1wbGUgd2Ugc3BlY2lmeSA1IGludGVydmFscyB3aXRoIHRoZSAKICAgLWsgNSBvcHRpb24uICAgCjwvcD4KPHA+ICAgCiAgIFRoZSBvdXRwdXRzIGZyb20gdGhlIFNpbVBvaW50IHJ1biBhcmUgdGhlIAogICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnJlc3VsdHMuc2ltcHRzPC9jb2RlPgogICBhbmQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5yZXN1bHRzLndlaWdodHM8L2NvZGU+IGZpbGVzLgogICBUaGUgZmlyc3QgaG9sZHMgdGhlIDUgbW9zdCByZWxldmFudCBpbnRlcnZhbHMgb2YgdGhlIHByb2dyYW0uCiAgIFRoZSBzZWNvbmRzIGhvbGRzIHRoZSB3ZWlnaHQgdG8gc2NhbGUgZWFjaCBpbnRlcnZhbCBieSB3aGVuCiAgIGV4dHJhcG9sYXRpbmcgZnVsbC1wcm9ncmFtIGJlaGF2aW9yLiAgVGhlIGludGVydmFscyBhbmQgdGhlIHdlaWdodHMKICAgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhIHNpbXVsYXRvciB0aGF0IHN1cHBvcnRzCiAgIGZhc3QtZm9yd2FyZGluZzsgeW91IGZhc3QtZm9yd2FyZCB0byB0aGUgaW50ZXJ2YWwgb2YgaW50ZXJlc3QsCiAgIGNvbGxlY3Qgc3RhdHMgZm9yIHRoZSBkZXNpcmVkIGludGVydmFsIGxlbmd0aCwgdGhlbiB1c2UKICAgc3RhdGlzdGljcyBnYXRoZXJlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSB3ZWlnaHRzIHRvIAogICBjYWxjdWxhdGUgeW91ciByZXN1bHRzLgo8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MSI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+CjxhIG5hbWU9ImJidi1tYW51YWwudXNhZ2UiPjwvYT4xMi4zLqBCQlYgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD4gQkJWLXNwZWNpZmljIGNvbW1hbmQtbGluZSBvcHRpb25zIGFyZTo8L3A+CjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+CjxhIG5hbWU9ImJidi5vcHRzLmxpc3QiPjwvYT48ZGwgY2xhc3M9InZhcmlhYmxlbGlzdCI+CjxkdD4KPGEgbmFtZT0ib3B0LmJiLW91dC1maWxlIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYmItb3V0LWZpbGU9Jmx0O25hbWUmZ3Q7IFtkZWZhdWx0OiBiYi5vdXQuJXBdIDwvY29kZT4KICAgICA8L3NwYW4+CjwvZHQ+CjxkZD48cD4KICAgICAgICAgICBUaGlzIG9wdGlvbiBzZWxlY3RzIHRoZSBuYW1lIG9mIHRoZSBiYXNpYyBibG9jayB2ZWN0b3IgZmlsZS4gIFRoZQogICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPiVwPC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+JXE8L2NvZGU+IGZvcm1hdCBzcGVjaWZpZXJzIGNhbiBiZQogICAgICAgICAgIHVzZWQgdG8gZW1iZWQgdGhlIHByb2Nlc3MgSUQgYW5kL29yIHRoZSBjb250ZW50cyBvZiBhbiBlbnZpcm9ubWVudAogICAgICAgICAgIHZhcmlhYmxlIGluIHRoZSBuYW1lLCBhcyBpcyB0aGUgY2FzZSBmb3IgdGhlIGNvcmUgb3B0aW9uCiAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjb3B0LmxvZy1maWxlIj4tLWxvZy1maWxlPC9hPjwvY29kZT4uCiAgICAgICAgPC9wPjwvZGQ+CjxkdD4KPGEgbmFtZT0ib3B0LnBjLW91dC1maWxlIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgogICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcGMtb3V0LWZpbGU9Jmx0O25hbWUmZ3Q7IFtkZWZhdWx0OiBwYy5vdXQuJXBdIDwvY29kZT4KICAgICA8L3NwYW4+CjwvZHQ+CjxkZD48cD4KICAgICAgICAgICBUaGlzIG9wdGlvbiBzZWxlY3RzIHRoZSBuYW1lIG9mIHRoZSBQQyBmaWxlLiAgCiAgICAgICAgICAgVGhpcyBmaWxlIGhvbGRzIHByb2dyYW0gY291bnRlciBhZGRyZXNzZXMKICAgICAgICAgICBhbmQgZnVuY3Rpb24gbmFtZSBpbmZvIGZvciB0aGUgdmFyaW91cyBiYXNpYyBibG9ja3MuCiAgICAgICAgICAgVGhpcyBjYW4gYmUgdXNlZCBpbiBjb25qdW5jdGlvbgogICAgICAgICAgIHdpdGggdGhlIGJhc2ljIGJsb2NrIHZlY3RvciBmaWxlIHRvIGZhc3QtZm9yd2FyZCB2aWEgZnVuY3Rpb24gbmFtZXMKICAgICAgICAgICBpbnN0ZWFkIG9mIGp1c3QgaW5zdHJ1Y3Rpb24gY291bnRzLiAgVGhlIAogICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPiVwPC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+JXE8L2NvZGU+IGZvcm1hdCBzcGVjaWZpZXJzIGNhbiBiZQogICAgICAgICAgIHVzZWQgdG8gZW1iZWQgdGhlIHByb2Nlc3MgSUQgYW5kL29yIHRoZSBjb250ZW50cyBvZiBhbiBlbnZpcm9ubWVudAogICAgICAgICAgIHZhcmlhYmxlIGluIHRoZSBuYW1lLCBhcyBpcyB0aGUgY2FzZSBmb3IgdGhlIGNvcmUgb3B0aW9uCiAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjb3B0LmxvZy1maWxlIj4tLWxvZy1maWxlPC9hPjwvY29kZT4uCiAgICAgICAgPC9wPjwvZGQ+CjxkdD4KPGEgbmFtZT0ib3B0LmludGVydmFsLXNpemUiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CiAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1pbnRlcnZhbC1zaXplPSZsdDtudW1iZXImZ3Q7IFtkZWZhdWx0OiAxMDAwMDAwMDBdIDwvY29kZT4KICAgICAgPC9zcGFuPgo8L2R0Pgo8ZGQ+PHA+CiAgICAgICAgIFRoaXMgb3B0aW9uIHNlbGVjdHMgdGhlIHNpemUgb2YgdGhlIGludGVydmFsIHRvIHVzZS4gIAogICAgICAgICBUaGUgZGVmYXVsdCBpcyAxMDAgCiAgICAgICAgIG1pbGxpb24gaW5zdHJ1Y3Rpb25zLCB3aGljaCBpcyBhIGNvbW1vbmx5IHVzZWQgdmFsdWUuICAKICAgICAgICAgT3RoZXIgc2l6ZXMgY2FuIGJlIHVzZWQ7IHNtYWxsZXIgaW50ZXJ2YWxzIGNhbiBoZWxwIHByb2dyYW1zCiAgICAgICAgIHdpdGggZmluZXItZ3JhaW5lZCBwaGFzZXMuICBIb3dldmVyIHNtYWxsZXIgaW50ZXJ2YWwgc2l6ZQogICAgICAgICBjYW4gbGVhZCB0byBhY2N1cmFjeSBpc3N1ZXMgZHVlIHRvIHdhcm0tdXAgZWZmZWN0cyAKICAgICAgICAgKFdoZW4gZmFzdC1mb3J3YXJkaW5nIHRoZSB2YXJpb3VzIGFyY2hpdGVjdHVyYWwgZmVhdHVyZXMKICAgICAgICAgd2lsbCBiZSB1bi1pbml0aWFsaXplZCwgYW5kIGl0IHdpbGwgdGFrZSBzb21lIG51bWJlcgogICAgICAgICBvZiBpbnN0cnVjdGlvbnMgYmVmb3JlIHRoZXkgIndhcm0gdXAiIHRvIHRoZSBzdGF0ZSBhIAogICAgICAgICBmdWxsIHNpbXVsYXRpb24gd291bGQgYmUgYXQgd2l0aG91dCB0aGUgZmFzdC1mb3J3YXJkaW5nLgogICAgICAgICBMYXJnZSBpbnRlcnZhbCBzaXplcyB0ZW5kIHRvIG1pdGlnYXRlIHRoaXMuKQogICAgICA8L3A+PC9kZD4KPGR0Pgo8YSBuYW1lPSJvcHQuaW5zdHItY291bnQtb25seSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWluc3RyLWNvdW50LW9ubHkgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CiAgICAgPC9zcGFuPgo8L2R0Pgo8ZGQ+PHA+CiAgICAgICAgICAgVGhpcyBvcHRpb24gdGVsbHMgdGhlIHRvb2wgdG8gb25seSBkaXNwbGF5IGluc3RydWN0aW9uIGNvdW50CiAgICAgICAgICAgdG90YWxzLCBhbmQgdG8gbm90IGdlbmVyYXRlIHRoZSBhY3R1YWwgYmFzaWMgYmxvY2sgdmVjdG9yIGZpbGUuCiAgICAgICAgICAgVGhpcyBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZywgYW5kIGZvciBnYXRoZXJpbmcgaW5zdHJ1Y3Rpb24gY291bnQKICAgICAgICAgICBpbmZvIHdpdGhvdXQgZ2VuZXJhdGluZyB0aGUgbGFyZ2UgYmFzaWMgYmxvY2sgdmVjdG9yIGZpbGVzLgogICAgICAgIDwvcD48L2RkPgo8L2RsPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0iYmJ2LW1hbnVhbC5maWxlZm9ybWF0Ij48L2E+MTIuNC6gQmFzaWMgQmxvY2sgVmVjdG9yIEZpbGUgRm9ybWF0PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+ICAKICBUaGUgQmFzaWMgQmxvY2sgVmVjdG9yIGlzIGR1bXBlZCBhdCBmaXhlZCBpbnRlcnZhbHMuICBUaGlzCiAgaXMgY29tbW9ubHkgZG9uZSBldmVyeSAxMDAgbWlsbGlvbiBpbnN0cnVjdGlvbnM7IHRoZSAKICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWludGVydmFsLXNpemU8L2NvZGU+IG9wdGlvbiBjYW4gYmUgCiAgdXNlZCB0byBjaGFuZ2UgdGhpcy4KPC9wPgo8cD4KICBUaGUgb3V0cHV0IGZpbGUgbG9va3MgbGlrZSB0aGlzOgo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KVDo0NToxMDI0IDoxODk6OTkzNDMKVDoxMTo3ODU3MyA6MTU6MTM1MyAgOjU2OjEKVDoxODo0NSA6MTI6MTM1MzUzIDo1Njo3OCAzMTQ6NDMyNDI2MzwvcHJlPgo8cD4KICBFYWNoIG5ldyBpbnRlcnZhbCBzdGFydHMgd2l0aCBhIFQuICAgVGhpcyBpcyBmb2xsb3dlZCBvbiB0aGUgc2FtZSBsaW5lCiAgYnkgYSBzZXJpZXMgb2YgYmFzaWMgYmxvY2sgYW5kIGZyZXF1ZW5jeSBwYWlycywgb25lIGZvciBlYWNoCiAgYmFzaWMgYmxvY2sgdGhhdCB3YXMgZW50ZXJlZCBkdXJpbmcgdGhlIGludGVydmFsLiAgVGhlIGZvcm1hdCBmb3IKICBlYWNoIGJsb2NrL2ZyZXF1ZW5jeSBwYWlyIGlzIGEgY29sb24sIGZvbGxvd2VkIGJ5IGEgbnVtYmVyIHRoYXQKICB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBiYXNpYyBibG9jaywgYW5vdGhlciBjb2xvbiwgYW5kIHRoZW4KICB0aGUgZnJlcXVlbmN5ICh3aGljaCBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBibG9jayB3YXMgZW50ZXJlZCwKICBtdWx0aXBsaWVkIGJ5IHRoZSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIGluIHRoZSBibG9jaykuICBUaGUKICBwYWlycyBhcmUgc2VwYXJhdGVkIGZyb20gZWFjaCBvdGhlciBieSBhIHNwYWNlLgo8L3A+CjxwPgogIFRoZSBmcmVxdWVuY3kgY291bnQgaXMgbXVsdGlwbGllZCBieSB0aGUgbnVtYmVyIG9mIGluc3RydWN0aW9ucyB0aGF0IGFyZSAKICBpbiB0aGUgYmFzaWMgYmxvY2ssIGluIG9yZGVyIHRvIHdlaWdoIHRoZSBjb3VudCBzbyB0aGF0IGluc3RydWN0aW9ucyBpbiAKICBzbWFsbCBiYXNpYyBibG9ja3MgYXJlbid0IGNvdW50ZWQgYXMgbW9yZSBpbXBvcnRhbnQgdGhhbiBpbnN0cnVjdGlvbnMgCiAgaW4gbGFyZ2UgYmFzaWMgYmxvY2tzLgo8L3A+CjxwPgogIFRoZSBTaW1Qb2ludCBwcm9ncmFtIG9ubHkgcHJvY2Vzc2VzIGxpbmVzIHRoYXQgc3RhcnQgd2l0aCBhICJUIi4gIEFsbAogIG90aGVyIGxpbmVzIGFyZSBpZ25vcmVkLiAgVHJhZGl0aW9uYWxseSBjb21tZW50cyBhcmUgaW5kaWNhdGVkIGJ5CiAgc3RhcnRpbmcgYSBsaW5lIHdpdGggYSAiIyIgY2hhcmFjdGVyLiAgU29tZSBvdGhlciBCQlYgZ2VuZXJhdGlvbiB0b29scywKICBzdWNoIGFzIFBpblBvaW50cywgZ2VuZXJhdGUgbGluZXMgYmVnaW5uaW5nIHdpdGggbGV0dGVycyBvdGhlciB0aGFuICJUIgogIHRvIGluZGljYXRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2dyYW0gYmVpbmcgcnVuLiAgV2UgZG8KICBub3QgZ2VuZXJhdGUgdGhlc2UsIGFzIHRoZSBTaW1Qb2ludCB1dGlsaXR5IGlnbm9yZXMgdGhlbS4KPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDEiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgo8YSBuYW1lPSJiYnYtbWFudWFsLmltcGxlbWVudGF0aW9uIj48L2E+MTIuNS6gSW1wbGVtZW50YXRpb248L2gyPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD4KICAgVmFsZ3JpbmQgcHJvdmlkZXMgYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgdG8gY3JlYXRlCiAgIEJCViBmaWxlcy4gIEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBhbGwgaW5zdHJ1Y3Rpb25zCiAgIGFyZSBpbnN0cnVtZW50ZWQuICBUaGlzIGlzIHNsb3dlciAoYnkgYXBwcm94aW1hdGVseSBhIGZhY3RvcgogICBvZiB0d28pIHRoYW4gYSBtZXRob2QgdGhhdCBpbnN0cnVtZW50cyBhdCB0aGUgYmFzaWMgYmxvY2sgbGV2ZWwsIAogICBidXQgdGhlcmUgYXJlIHNvbWUgY29tcGxpY2F0aW9ucyAoZXNwZWNpYWxseSB3aXRoIHJlcCBwcmVmaXgKICAgZGV0ZWN0aW9uKSB0aGF0IG1ha2UgdGhhdCBtZXRob2QgbW9yZSBkaWZmaWN1bHQuCjwvcD4KPHA+CiAgIFZhbGdyaW5kIGFjdHVhbGx5IHByb3ZpZGVzIGluc3RydW1lbnRhdGlvbiBhdCBhIHN1cGVyYmxvY2sgbGV2ZWwuCiAgIEEgc3VwZXJibG9jayBoYXMgb25lIGVudHJ5IHBvaW50IGJ1dCB1bmxpa2UgYmFzaWMgYmxvY2tzIGNhbgogICBoYXZlIG11bHRpcGxlIGV4aXQgcG9pbnRzLiAgT25jZSBhIGJyYW5jaCBvY2N1cnMgaW50byB0aGUgbWlkZGxlCiAgIG9mIGEgYmxvY2ssIGl0IGlzIHNwbGl0IGludG8gYSBuZXcgYmFzaWMgYmxvY2suICBCZWNhdXNlCiAgIFZhbGdyaW5kIGNhbm5vdCBwcm9kdWNlICJ0cnVlIiBiYXNpYyBibG9ja3MsIHRoZSBnZW5lcmF0ZWQKICAgQkJWIHZlY3RvcnMgd2lsbCBiZSBkaWZmZXJlbnQgdGhhbiB0aG9zZSBnZW5lcmF0ZWQgYnkgb3RoZXIgdG9vbHMuCiAgIEluIHByYWN0aWNlIHRoaXMgZG9lcyBub3Qgc2VlbSB0byBhZmZlY3QgdGhlIGFjY3VyYWN5IG9mIHRoZQogICBTaW1Qb2ludCByZXN1bHRzLiAgV2UgZG8gaW50ZXJuYWxseSBmb3JjZSB0aGUKICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXgtZ3Vlc3QtY2hhc2UtdGhyZXNoPTA8L2NvZGU+CiAgIG9wdGlvbiB0byBWYWxncmluZCB3aGljaCBmb3JjZXMgYSBtb3JlIGJhc2ljLWJsb2NrLWxpa2UKICAgYmVoYXZpb3IuCjwvcD4KPHA+CiAgIFdoZW4gYSBzdXBlcmJsb2NrIGlzIHJ1biBmb3IgdGhlIGZpcnN0IHRpbWUsIGl0IGlzIGluc3RydW1lbnRlZAogICB3aXRoIG91ciBCQlYgcm91dGluZS4gIEEgYmxvY2sgaW5mbyAoYmJJbmZvKSBzdHJ1Y3R1cmUgaXMgYWxsb2NhdGVkCiAgIHdoaWNoIGhvbGRzIHRoZSB2YXJpb3VzIGluZm9ybWF0aW9uIGFuZCBzdGF0aXN0aWNzIGZvciB0aGUgYmxvY2suCiAgIEEgdW5pcXVlIGJsb2NrIElEIGlzIGFzc2lnbmVkIHRvIHRoZSBibG9jaywgYW5kIHRoZW4gdGhlCiAgIHN0cnVjdHVyZSBpcyBwbGFjZWQgaW50byBhbiBvcmRlcmVkIHNldC4KICAgVGhlbiBlYWNoIG5hdGl2ZSBpbnN0cnVjdGlvbiBpbiB0aGUgYmxvY2sgaXMgaW5zdHJ1bWVudGVkIHRvCiAgIGNhbGwgYW4gaW5zdHJ1Y3Rpb24gY291bnRpbmcgcm91dGluZSB3aXRoIGEgcG9pbnRlciB0byB0aGUgYmxvY2sKICAgaW5mbyBzdHJ1Y3R1cmUgYXMgYW4gYXJndW1lbnQuCjwvcD4KPHA+CiAgIEF0IHJ1bi10aW1lLCBvdXIgaW5zdHJ1Y3Rpb24gY291bnRpbmcgcm91dGluZXMgYXJlIGNhbGxlZCBvbmNlCiAgIHBlciBuYXRpdmUgaW5zdHJ1Y3Rpb24uICBUaGUgcmVsZXZhbnQgYmxvY2sgaW5mbyBzdHJ1Y3R1cmUgaXMgYWNjZXNzZWQKICAgYW5kIHRoZSBibG9jayBjb3VudCBhbmQgdG90YWwgaW5zdHJ1Y3Rpb24gY291bnQgaXMgdXBkYXRlZC4gICAKICAgSWYgdGhlIHRvdGFsIGluc3RydWN0aW9uIGNvdW50IG92ZXJmbG93cyB0aGUgaW50ZXJ2YWwgc2l6ZSAKICAgdGhlbiB3ZSB3YWxrIHRoZSBvcmRlcmVkIHNldCwgd3JpdGluZyBvdXQgdGhlIHN0YXRpc3RpY3MgZm9yCiAgIGFueSBibG9jayB0aGF0IHdhcyBhY2Nlc3NlZCBpbiB0aGUgaW50ZXJ2YWwsIHRoZW4gcmVzZXR0aW5nIHRoZQogICBibG9jayBjb3VudGVycyB0byB6ZXJvLgo8L3A+CjxwPgogICBPbiB0aGUgeDg2IGFuZCBhbWQ2NCBhcmNoaXRlY3R1cmVzIHRoZSBjb3VudGluZyBjb2RlIGhhcyBleHRyYQogICBjb2RlIHRvIGhhbmRsZSByZXAtcHJlZml4ZWQgc3RyaW5nIGluc3RydWN0aW9ucy4gIFRoaXMgaXMgYmVjYXVzZSAKICAgYWN0dWFsIGhhcmR3YXJlIGNvdW50cyBhIHJlcC1wcmVmaXhlZCBpbnN0cnVjdGlvbiAKICAgYXMgb25lIGluc3RydWN0aW9uLCB3aGlsZSBhIG5haXZlIFZhbGdyaW5kIGltcGxlbWVudGF0aW9uCiAgIHdvdWxkIGNvdW50IGl0IGFzIG1hbnkgKHBvc3NpYmx5IGh1bmRyZWRzLCB0aG91c2FuZHMgb3IgZXZlbiBtaWxsaW9ucykKICAgb2YgaW5zdHJ1Y3Rpb25zLiAgV2UgaGFuZGxlIHJlcC1wcmVmaXhlZCBpbnN0cnVjdGlvbnMgc3BlY2lhbGx5LAogICBpbiBvcmRlciB0byBtYWtlIHRoZSByZXN1bHRzIG1hdGNoIHRob3NlIG9idGFpbmVkIHdpdGggaGFyZHdhcmUgcGVyZm9ybWFuY2UKICAgY291bnRlcnMuCjwvcD4KPHA+CiAgIEJCViBhbHNvIGNvdW50cyB0aGUgZmxkY3cgaW5zdHJ1Y3Rpb24uICBUaGlzIGluc3RydWN0aW9uIGlzIHVzZWQgb24gCiAgIHg4NiBtYWNoaW5lcyBpbiB2YXJpb3VzIHdheXM7IGl0IGlzIG1vc3QgY29tbW9ubHkgZm91bmQgd2hlbiBjb252ZXJ0aW5nIAogICBmbG9hdGluZyBwb2ludCB2YWx1ZXMgaW50byBpbnRlZ2Vycy4KICAgT24gUGVudGl1bSA0IHN5c3RlbXMgdGhlIHJldGlyZWQgaW5zdHJ1Y3Rpb24gcGVyZm9ybWFuY2UKICAgY291bnRlciBjb3VudHMgdGhpcyBpbnN0cnVjdGlvbiBhcyB0d28gaW5zdHJ1Y3Rpb25zIChhbGwgb3RoZXIgCiAgIGtub3duIHByb2Nlc3NvcnMgb25seSBjb3VudCBpdCBhcyBvbmUpLgogICBUaGlzIGNhbiBhZmZlY3QgcmVzdWx0cyB3aGVuIHVzaW5nIFNpbVBvaW50IG9uIFBlbnRpdW0gNCBzeXN0ZW1zLgogICBXZSBwcm92aWRlIHRoZSBmbGRjdyBjb3VudCBzbyB0aGF0IHVzZXJzIGNhbiBldmFsdWF0ZSB3aGV0aGVyIGl0CiAgIHdpbGwgaW1wYWN0IHRoZWlyIHJlc3VsdHMgZW5vdWdoIHRvIGF2b2lkIHVzaW5nIFBlbnRpdW0gNCBtYWNoaW5lcwogICBmb3IgdGhlaXIgZXhwZXJpbWVudHMuICBJdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBhZGQgYW4gb3B0aW9uIHRvIAogICB0aGlzIHRvb2wgdGhhdCBtaW1pY3MgdGhlIGRvdWJsZS1jb3VudGluZyBzbyB0aGF0IHRoZSBnZW5lcmF0ZWQgQkJWCiAgIGZpbGVzIHdvdWxkIGJlIHVzYWJsZSBmb3IgZXhwZXJpbWVudHMgdXNpbmcgaGFyZHdhcmUgcGVyZm9ybWFuY2UKICAgY291bnRlcnMgb24gUGVudGl1bSA0IHN5c3RlbXMuCjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0iYmJ2LW1hbnVhbC50aHJlYWRzdXBwb3J0Ij48L2E+MTIuNi6gVGhyZWFkZWQgRXhlY3V0YWJsZSBTdXBwb3J0PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+CiAgIEJCViBzdXBwb3J0cyB0aHJlYWRlZCBwcm9ncmFtcy4gIFdoZW4gYSBwcm9ncmFtIGhhcyBtdWx0aXBsZSB0aHJlYWRzLAogICBhbiBhZGRpdGlvbmFsIGJhc2ljIGJsb2NrIHZlY3RvciBmaWxlIGlzIGNyZWF0ZWQgZm9yIGVhY2ggdGhyZWFkIChlYWNoCiAgIGFkZGl0aW9uYWwgZmlsZSBpcyB0aGUgc3BlY2lmaWVkIGZpbGVuYW1lIHdpdGggdGhlIHRocmVhZCBudW1iZXIKICAgYXBwZW5kZWQgYXQgdGhlIGVuZCkuCjwvcD4KPHA+CiAgIFRoZXJlIGlzIG5vIG9mZmljaWFsIG1ldGhvZCBvZiB1c2luZyBTaW1Qb2ludCB3aXRoCiAgIHRocmVhZGVkIHdvcmtsb2Fkcy4gIFRoZSBtb3N0IGNvbW1vbiBtZXRob2QgaXMgdG8gcnVuCiAgIFNpbVBvaW50IG9uIGVhY2ggdGhyZWFkJ3MgcmVzdWx0cyBpbmRlcGVuZGVudGx5LCBhbmQgdXNlIAogICBzb21lIG1ldGhvZCBvZiBkZXRlcm1pbmlzdGljIGV4ZWN1dGlvbiB0byB0cnkgdG8gbWF0Y2ggdGhlCiAgIG9yaWdpbmFsIHdvcmtsb2FkLiAgVGhpcyBzaG91bGQgYmUgcG9zc2libGUgd2l0aCB0aGUgY3VycmVudAogICBCQlYuCjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0iYmJ2LW1hbnVhbC52YWxpZGF0aW9uIj48L2E+MTIuNy6gVmFsaWRhdGlvbjwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPgogICBCQlYgaGFzIGJlZW4gdGVzdGVkIG9uIHg4NiwgYW1kNjQsIGFuZCBwcGMzMiBwbGF0Zm9ybXMuCiAgIEFuIGVhcmxpZXIgdmVyc2lvbiBvZiBCQlYgd2FzIHRlc3RlZCBpbiBkZXRhaWwgdXNpbmcKICAgaGFyZHdhcmUgcGVyZm9ybWFuY2UgY291bnRlcnMsIHRoaXMgd29yayBpcyBkZXNjcmliZWQgaW4gYSBwYXBlciAKICAgZnJvbSB0aGUgSGlQRUFDJzA4IGNvbmZlcmVuY2UsICJVc2luZyBEeW5hbWljIEJpbmFyeSBJbnN0cnVtZW50YXRpb24gCiAgIHRvIEdlbmVyYXRlIE11bHRpLVBsYXRmb3JtIFNpbVBvaW50czogTWV0aG9kb2xvZ3kgYW5kIEFjY3VyYWN5IiBieQogICBWLk0uIFdlYXZlciBhbmQgUy5BLiBNY0tlZS4KPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDEiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgo8YSBuYW1lPSJiYnYtbWFudWFsLnBlcmZvcm1hbmNlIj48L2E+MTIuOC6gUGVyZm9ybWFuY2U8L2gyPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD4KICBVc2luZyB0aGlzIHByb2dyYW0gc2xvd3MgZG93biBleGVjdXRpb24gYnkgcm91Z2hseSBhIGZhY3RvciBvZiA0MAogIG92ZXIgbmF0aXZlIGV4ZWN1dGlvbi4gIFRoaXMgdmFyaWVzIGRlcGVuZGluZyBvbiB0aGUgbWFjaGluZQogIHVzZWQgYW5kIHRoZSBiZW5jaG1hcmsgYmVpbmcgcnVuLgogIE9uIHRoZSBTUEVDIENQVSAyMDAwIGJlbmNobWFya3MgcnVubmluZyBvbiBhIDMuNEdIeiBQZW50aXVtIEQgCiAgcHJvY2Vzc29yLCB0aGUgc2xvd2Rvd24gcmFuZ2VzIGZyb20gMjR4IChtY2YpIHRvIDM0MHggKHZvcnRleC4yKS4KPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXY+Cjxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cjx0cj4KPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KPGEgYWNjZXNza2V5PSJwIiBocmVmPSJzZy1tYW51YWwuaHRtbCI+Jmx0OyZsdDugMTEuoFNHQ2hlY2s6IGFuIGV4cGVyaW1lbnRhbCBzdGFjayBhbmQgZ2xvYmFsIGFycmF5IG92ZXJydW4gZGV0ZWN0b3I8L2E+oDwvdGQ+Cjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Im1hbnVhbC5odG1sIj5VcDwvYT48L3RkPgo8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsay1tYW51YWwuaHRtbCI+MTMuoExhY2tleTogYW4gZXhhbXBsZSB0b29soCZndDsmZ3Q7PC9hPgo8L3RkPgo8L3RyPgo8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+CjwvdGFibGU+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K