PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiIgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIj4KICAgIDx0aXRsZT5UYWJsZSBnZW5lcmF0aW9uPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InVzZXJndWlkZS5jc3MiPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxoMj5QYXB5cnVzIEFuZCBTaXJpdXMgVGFibGVzPC9oMj4KICAgIDxwPkFzIHRhYmxlcyBleGlzdCBpbiBQYXB5cnVzIGFuZCBTaXJpdXMgd2Ugd2FudCB0byBwcm92aWRlIGEgd2F5IHRvCiAgICAgIGludGVncmF0ZSB0aGVtIGFzIFdvcmQgdGFibGVzIG9yIExpYnJlT2ZmaWNlIHRhYmxlcy48L3A+CiAgICA8cD5HZW5kb2MgdGFnIGFscmVhZHkgZXhpc3RzLCBzbyB0aGUgc29sdXRpb24gcHJvcG9zZWQgaXMgdG8gaGF2ZSBhIHBpdm90CiAgICAgIGdlbmVyaWMgVGFibGUgb2JqZWN0LCBvZmZlcmVkIGJ5IGEgZGVkaWNhdGVkIEdlbmRvYyBtZXRhbW9kZWwsIGluIG9yZGVyIHRvCiAgICAgIGdlbmVyYXRlIGFsbCBraW5kcyBvZiB0YWJsZSB0aGUgc2FtZSB3YXkuIERlZGljYXRlZCBhY2NlbGVvIGJ1bmRsZXMsCiAgICAgIGFscmVhZHkgZXhpc3RpbmcgZm9yIFBhcHlydXMgYW5kIFNpcml1cywgaGF2ZSBhIG5ldyBzZXJ2aWNlIHRvIHRyYW5zZm9ybQogICAgICB0aGVpciB0YWJsZSB0byB0aGUgR2VuZG9jIGdlbmVyaWMgdGFibGUuIDwvcD4KICAgIDxwPkFuIG92ZXJ2aWV3IG9mIHRoZSBHZW5kb2MgdGFibGUgdmVyeSBzaW1wbGUgbWV0YW1vZGVsIGlzIHNob3duIGluIHRoZQogICAgICBwaWN0dXJlIGJlbG93LjwvcD4KICAgIDxwPjxpbWcgYWx0PSIiIHNyYz0iaW1nL0dlbmRvY190YWJsZV9tZXRhbW9kZWwucG5nIj48L3A+CiAgICA8aDM+UGFweXJ1cyB0YWJsZSBnZW5lcmF0aW9uICh3aXRoIG1hbnVhbCBjb25maWd1cmF0aW9uIG9mIHRoZSB0YWJsZSBjb2x1bW5zCiAgICAgIGluIHRoZSB0ZW1wbGF0ZSk8L2gzPgogICAgPHA+RnJvbSBhIFBhcHlydXMgbW9kZWwgY29udGFpbmluZyB0aGlzIHRhYmxlOjwvcD4KICAgIDxwPjxpbWcgYWx0PSIiIHNyYz0iaW1nL1BhcHlydXNfdGFibGVfc2FtcGxlLnBuZyI+PC9wPgogICAgPHA+R2VuZG9jIHRlbXBsYXRlIGZyYWdtZW50IDo8L3A+CiAgICA8ZGl2IGNsYXNzPSJjb2RlQm94IGNiQmcgY29kZSI+CiAgICAgIDxwIGNsYXNzPSJjb2RlIj4mbHQ7Y29uZmlnJmd0OyAmbHQ7ZHJvcC8mZ3Q7PGJyPgogICAgICAgICZuYnNwOyZuYnNwOyAmbHQ7cGFyYW0ga2V5PSdtb2RlbFBhdGgnIHZhbHVlPScke3Byb2plY3RfbG9jfS8uLi4nLyZndDs8YnI+CiAgICAgICAgJm5ic3A7Jm5ic3A7ICZsdDtvdXRwdXQgcGF0aD0nLi4uJy8mZ3Q7PGJyPgogICAgICAgICZsdDsvY29uZmlnJmd0OyAmbHQ7ZHJvcC8mZ3Q7PC9wPgogICAgICAmbHQ7Y29udGV4dCBtb2RlbD0nJHttb2RlbFBhdGh9JyBlbGVtZW50PSdSb290RWxlbWVudC9SZXF1aXJlbWVudHMnCiAgICAgIGltcG9ydGVkQnVuZGxlPSdnbWY7cGFweXJ1cycgc2VhcmNoTWV0YW1vZGVsPSd0cnVlJy8mZ3Q7PGJyPgogICAgICAmbHQ7Z2VuZG9jIGlkPSdyZXF1aXJlbWVudHMnJmd0OyAmbHQ7ZHJvcC8mZ3Q7PGJyPgogICAgICAmbmJzcDsmbmJzcDsgW2ZvciAodGFibGU6IHRhYmxlOjpUYWJsZSB8IHNlbGYuZ2V0UGFweXJ1c1RhYmxlcygpKV0KICAgICAgJmx0O2Ryb3AvJmd0Ozxicj4KICAgICAgJm5ic3A7Jm5ic3A7ICZsdDt0YWJsZSZndDsgJmx0O2Ryb3AvJmd0OwogICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5bdGFibGUubmFtZS9dOjwvZGl2PgogICAgICA8YnI+CiAgICAgIDx0YWJsZSBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO3dpZHRoOiA5MjlweDsgaGVpZ2h0OiA0NHB4OyIgYm9yZGVyPSIxIj4KICAgICAgICA8dGJvZHk+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD48Yj5bdGFibGUudGFibGVoZWFkZXIuY2VsbHMgLSZndDsgYXQoMSkubGFiZWwvXTwvYj48L3RkPgogICAgICAgICAgICA8dGQ+PGI+W3RhYmxlLnRhYmxlaGVhZGVyLmNlbGxzIC0mZ3Q7IGF0KDIpLmxhYmVsL108L2I+PC90ZD4KICAgICAgICAgICAgPHRkPjxiPlt0YWJsZS50YWJsZWhlYWRlci5jZWxscyAtJmd0OyBhdCgzKS5sYWJlbC9dPC9iPjwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGFibGU+CiAgICAgICZuYnNwOyZuYnNwOyBbZm9yIChyb3c6IHRhYmxlOjpSb3cgfCB0YWJsZS5yb3dzKV0gJmx0O2Ryb3AvJmd0OwogICAgICA8dGFibGUgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiPgogICAgICAgIDx0Ym9keT4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPltyb3cuY2VsbHMtJmd0O2F0KDEpLmxhYmVsL108L3RkPgogICAgICAgICAgICA8dGQ+W3Jvdy5jZWxscy0mZ3Q7YXQoMSkubGFiZWwvXTwvdGQ+CiAgICAgICAgICAgIDx0ZD5bcm93LmNlbGxzLSZndDthdCgxKS5sYWJlbC9dPC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90Ym9keT4KICAgICAgPC90YWJsZT4KICAgICAgJm5ic3A7Jm5ic3A7IFsvZm9yXSAmbHQ7ZHJvcC8mZ3Q7PGJyPgogICAgICAmbmJzcDsmbmJzcDsgJmx0Oy90YWJsZSZndDsgJmx0O2Ryb3AvJmd0Ozxicj4KICAgICAgJmx0Oy9nZW5kb2MmZ3Q7ICZsdDtkcm9wLyZndDs8YnI+CiAgICA8L2Rpdj4KICAgIDxwPkluIHRoaXMgZXhhbXBsZSB0aGUgc2VydmljZSAiZ2V0UGFweXJ1c1RhYmxlcygpIiB3aWxsIHJldHVybiB0aGUgbGlzdCBvZgogICAgICB0YWJsZXMgY29udGFpbmVkIGluIHRoZSBjb250ZXh0IGVsZW1lbnQuPC9wPgogICAgPHA+SXQgaXMgcG9zc2libGUgdG8gbmF2aWdhdGUgaW4gYSB0YWJsZSB1c2luZyByZWxhdGlvbnMgk3RhYmxlaGVhZGVylCBhbmQKICAgICAgk3Jvd5QuIFRoZSBmaXJzdCByZWxhdGlvbiByZXR1cm5zIHRoZSBoZWFkZXJzIG9mIGEgdGFibGUgYW5kIHRoZSBsYXR0ZXIgYQogICAgICBsaXN0IG9mIHJvdy4gRnJvbSBlYWNoIG9mIHRoZXNlIG9iamVjdHMgd2UgdXNlIHRoZSByZWxhdGlvbiCTY2VsbHOUIHRvCiAgICAgIGFjY2VzcyB0byB0aGUgbGlzdCBvZiBjZWxscyBjb21wb3NpbmcgYSByb3cgb3IgdGhlIHRhYmxlIGhlYWRlci4gPC9wPgogICAgPHA+UmVzdWx0IGluIHRoZSB3b3JkIGRvY3VtZW50IHByb2R1Y2VkIGJ5IEdlbmRvYyA6PC9wPgogICAgPHRhYmxlIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO3dpZHRoOiA5MjlweDsgaGVpZ2h0OiAyOHB4OyIgYm9yZGVyPSIxIj4KICAgICAgPHRib2R5PgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZCBzdHlsZT0id2lkdGg6IDMwNy41MTdweDsiPjxiPmlkPC9iPjwvdGQ+CiAgICAgICAgICA8dGQgc3R5bGU9IndpZHRoOiAzMDkuODVweDsiPjxiPm5hbWU8L2I+PC90ZD4KICAgICAgICAgIDx0ZCBzdHlsZT0id2lkdGg6IDI4OS42MzNweDsiPjxiPnRleHQ8L2I+PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZCBzdHlsZT0id2lkdGg6IDMwNy43MzNweDsiPlJFUV8wMDE8L3RkPgogICAgICAgICAgPHRkIHN0eWxlPSJ3aWR0aDogMzA4LjYzM3B4OyI+QXV0b21hdGVkIGFsYXJtIGNsb2NrPC90ZD4KICAgICAgICAgIDx0ZCBzdHlsZT0id2lkdGg6IDI5MC42MzNweDsiPlRoZSBhbGFybSBjbG9jayByYWRpbyBzaGFsbCB3YWtlIHVwIHRoZQogICAgICAgICAgICB1c2VyIGF1dG9tYXRpY2FsbHkgYXQgdGhlIHJpZ2h0IHRpbWUsIHRocm91Z2ggcmFkaW8gb3IgYnV6emVyPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZD5SRVFfMDAxMjwvdGQ+CiAgICAgICAgICA8dGQ+UmFkaW8gbWFuYWdlbWVudDwvdGQ+CiAgICAgICAgICA8dGQ+VGhlIHVzZXIgc2hhbGwgYmUgYWJsZSB0byBtb2RpZnkgZWFzaWx5IHRoZSByYWRpbyBzdGF0aW9uIGFuZCB0aGUKICAgICAgICAgICAgdm9sdW1lLjwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICA8dGQ+UkVRXzAwMzwvdGQ+CiAgICAgICAgICA8dGQ+Q2xvY2sgbWFuYWdlbWVudDwvdGQ+CiAgICAgICAgICA8dGQ+VGhlIHVzZXIgc2hhbGwgYmUgYWJsZSB0byB1cGRhdGUgZWFzaWx5IHRoZSB0aW1lIGRpc3BsYXllZCBieSB0aGUKICAgICAgICAgICAgY2xvY2sgb3IgdGhlIGFsYXJtLiA8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgPHRkPi4uLjwvdGQ+CiAgICAgICAgICA8dGQ+PGJyPgogICAgICAgICAgPC90ZD4KICAgICAgICAgIDx0ZD48YnI+CiAgICAgICAgICA8L3RkPgogICAgICAgIDwvdHI+CiAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgogICAgPGgzPlNpcml1cyB0YWJsZSBnZW5lcmF0aW9uICh3aXRoIG1hbnVhbCBjb25maWd1cmF0aW9uIG9mIHRoZSB0YWJsZSBjb2x1bW5zCiAgICAgIGluIHRoZSB0ZW1wbGF0ZSk8L2gzPgogICAgPHA+RnJvbSBhIFNpcml1cyBtb2RlbCBjb250YWluaW5nIHRoaXMgdGFibGU6PC9wPgogICAgPHA+PGltZyBhbHQ9IiIgc3JjPSJpbWcvU2lyaXVzX3RhYmxlX3NhbXBsZS5wbmciPiA8L3A+CiAgICA8cD5HZW5kb2MgdGVtcGxhdGUgZnJhZ21lbnQ6PC9wPgogICAgPHA+IDwvcD4KICAgIDxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyBjb2RlIj4KICAgICAgPHAgY2xhc3M9ImNvZGUiPiZsdDtjb25maWcmZ3Q7ICZsdDtkcm9wLyZndDs8YnI+CiAgICAgICAgJm5ic3A7Jm5ic3A7ICZsdDtwYXJhbSBrZXk9J21vZGVsUGF0aCcgdmFsdWU9JyR7cHJvamVjdF9sb2N9Ly4uLicvJmd0Ozxicj4KICAgICAgICAmbmJzcDsmbmJzcDsgJmx0O291dHB1dCBwYXRoPScuLi4nLyZndDs8YnI+CiAgICAgICAgJmx0Oy9jb25maWcmZ3Q7ICZsdDtkcm9wLyZndDs8L3A+CiAgICAgICZsdDtjb250ZXh0IG1vZGVsPScke21vZGVsUGF0aH0nIGVsZW1lbnQ9J1Jvb3RFbGVtZW50L1JlcXVpcmVtZW50cycKICAgICAgaW1wb3J0ZWRCdW5kbGU9J2dtZjtzaXJpdXMnIHNlYXJjaE1ldGFtb2RlbD0ndHJ1ZScvJmd0Ozxicj4KICAgICAgJmx0O2dlbmRvYyBpZD0ncmVxdWlyZW1lbnRzJyZndDsgJmx0O2Ryb3AvJmd0Ozxicj4KICAgICAgJm5ic3A7Jm5ic3A7IFtmb3IgKHRhYmxlOiB0YWJsZTo6VGFibGUgfCBzZWxmLmdldFNpcml1c1RhYmxlcygpKV0KICAgICAgJmx0O2Ryb3AvJmd0Ozxicj4KICAgICAgJm5ic3A7Jm5ic3A7ICZsdDt0YWJsZSZndDsgJmx0O2Ryb3AvJmd0Ozxicj4KICAgICAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+W3RhYmxlLm5hbWUvXTo8L2Rpdj4KICAgICAgPGJyPgogICAgICA8dGFibGUgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt3aWR0aDogOTI5cHg7IGhlaWdodDogNDRweDsiIGJvcmRlcj0iMSI+CiAgICAgICAgPHRib2R5PgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+PGI+W3RhYmxlLnRhYmxlaGVhZGVyLmNlbGxzIC0mZ3Q7IGF0KDEpLmxhYmVsL108L2I+PC90ZD4KICAgICAgICAgICAgPHRkPjxiPlt0YWJsZS50YWJsZWhlYWRlci5jZWxscyAtJmd0OyBhdCgyKS5sYWJlbC9dPC9iPjwvdGQ+CiAgICAgICAgICAgIDx0ZD48Yj5bdGFibGUudGFibGVoZWFkZXIuY2VsbHMgLSZndDsgYXQoMykubGFiZWwvXTwvYj48L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgICAmbmJzcDsmbmJzcDsgW2ZvciAocm93OiB0YWJsZTo6Um93IHwgdGFibGUucm93cyldICZsdDtkcm9wLyZndDsKICAgICAgPHRhYmxlIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IiBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIj4KICAgICAgICA8dGJvZHk+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5bcm93LmNlbGxzLSZndDthdCgxKS5sYWJlbC9dPC90ZD4KICAgICAgICAgICAgPHRkPltyb3cuY2VsbHMtJmd0O2F0KDEpLmxhYmVsL108L3RkPgogICAgICAgICAgICA8dGQ+W3Jvdy5jZWxscy0mZ3Q7YXQoMSkubGFiZWwvXTwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGFibGU+CiAgICAgICZuYnNwOyZuYnNwOyBbL2Zvcl0gJmx0O2Ryb3AvJmd0Ozxicj4KICAgICAgJm5ic3A7Jm5ic3A7ICZsdDsvdGFibGUmZ3Q7ICZsdDtkcm9wLyZndDs8YnI+CiAgICAgICZsdDsvZ2VuZG9jJmd0OyAmbHQ7ZHJvcC8mZ3Q7PGJyPgogICAgPC9kaXY+CiAgICA8cD5UaGlzIGV4YW1wbGUgaXMgdmVyeSBzaW1pbGFyIHRvIHRoZSBwcmVjZWRlbnQuIFRoZSBvbmx5IG5vdGFibGUKICAgICAgZGlmZmVyZW5jZSBpcyBob3cgd2UgYWNjZXNzIHRvIHRoZSBsaXN0IG9mIHRhYmxlcy4gSW4gdGhpcyBjYXNlIGFzIHdlIGFyZQogICAgICBpbiBhIFNpcml1cyBtb2RlbCwgd2UgdXNlIHRoZSCTZ2V0U2lyaXVzVGFibGVzKCmUIHNlcnZpY2UuPC9wPgogICAgPHA+UmVzdWx0IGluIHRoZSB3b3JkIGRvY3VtZW50IHByb2R1Y2VkIGJ5IEdlbmRvYyA6PC9wPgogICAgPHRhYmxlIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB3aWR0aDogOTE4cHg7IGhlaWdodDogMjhweDsiIGJvcmRlcj0iMSI+CiAgICAgIDx0Ym9keT4KICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgc3R5bGU9IndpZHRoOiAzMDcuNTE3cHg7Ij48YnI+CiAgICAgICAgICA8L3RkPgogICAgICAgICAgPHRkIHN0eWxlPSJ3aWR0aDogMzA5Ljg1cHgiPjxiPkZhdGhlcjwvYj48L3RkPgogICAgICAgICAgPHRkIHN0eWxlPSJ3aWR0aDogMjg5LjYzM3B4OyI+PGI+TW90aGVyPC9iPjwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgc3R5bGU9IndpZHRoOiAzMDcuNTE3cHg7Ij5NYW4gUGF1bDwvdGQ+CiAgICAgICAgICA8dGQgc3R5bGU9IndpZHRoOiAzMDguNjMzcHg7Ij48YnI+CiAgICAgICAgICA8L3RkPgogICAgICAgICAgPHRkIHN0eWxlPSJ3aWR0aDogMjkwLjYzM3B4OyI+PGJyPgogICAgICAgICAgPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZD5Xb21hbiBJc2E8L3RkPgogICAgICAgICAgPHRkPjxicj4KICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8dGQ+PGJyPgogICAgICAgICAgPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZD5NYW4gRWxpYXM8L3RkPgogICAgICAgICAgPHRkPlBhdWw8L3RkPgogICAgICAgICAgPHRkPklzYTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICA8dGQ+V29tYW4gTGVhPC90ZD4KICAgICAgICAgIDx0ZD5QYXVsPGJyPgogICAgICAgICAgPC90ZD4KICAgICAgICAgIDx0ZD5Jc2E8YnI+CiAgICAgICAgICA8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgPHRkPk1hbiBEYXZlPC90ZD4KICAgICAgICAgIDx0ZD5FbGlhczwvdGQ+CiAgICAgICAgICA8dGQ+PGJyPgogICAgICAgICAgPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZD5NYW4gQWxhaW48L3RkPgogICAgICAgICAgPHRkPkRhdmU8L3RkPgogICAgICAgICAgPHRkPkthdGVsbDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICA8dGQ+Li4uPC90ZD4KICAgICAgICAgIDx0ZD48YnI+CiAgICAgICAgICA8L3RkPgogICAgICAgICAgPHRkPjxicj4KICAgICAgICAgIDwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgPC90Ym9keT4KICAgIDwvdGFibGU+CiAgICA8aDM+RXhhbXBsZSBvZiBhbiBhdXRvbWF0ZWQgdGFibGUgZ2VuZXJhdGlvbiBmcm9tIGEgUGFweXJ1cyB0YWJsZTwvaDM+CiAgICA8cD5Gcm9tIGEgUGFweXJ1cyBtb2RlbCBjb250YWluaW5nIHNldmVyYWwgdGFibGVzIG9uIGEgcGFja2FnZSB0aGUgZm9sbG93aW5nCiAgICAgIGdlbmRvYyBmcmFnbWVudCBhbGxvd3MgYSBmdWxsIHRhYmxlIGdlbmVyYXRpb24uPC9wPgogICAgPHA+PHU+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+PC91PjogQXV0b21hdGVkIG1vZGUgYWxzbyB3b3JrcyB3aXRoIFNpcml1czwvcD4KICAgIDxwPkdlbmRvYyBjb2RlOjwvcD4KICAgIDxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyBjb2RlIj4KICAgICAgPHAgY2xhc3M9ImNvZGUiPiZsdDtjb25maWcmZ3Q7ICZsdDtkcm9wLyZndDs8YnI+CiAgICAgICAgJm5ic3A7Jm5ic3A7ICZsdDtwYXJhbSBrZXk9J21vZGVsUGF0aCcgdmFsdWU9JyR7cHJvamVjdF9sb2N9Ly4uLicvJmd0Ozxicj4KICAgICAgICAmbmJzcDsmbmJzcDsgJmx0O291dHB1dCBwYXRoPScuLi4nLyZndDs8YnI+CiAgICAgICAgJmx0Oy9jb25maWcmZ3Q7ICZsdDtkcm9wLyZndDs8L3A+CiAgICAgICZsdDtjb250ZXh0IG1vZGVsPScke21vZGVsUGF0aH0nIGVsZW1lbnQ9J1Jvb3RFbGVtZW50L1JlcXVpcmVtZW50cycKICAgICAgaW1wb3J0ZWRCdW5kbGU9J2dtZjtwYXB5cnVzJyBzZWFyY2hNZXRhbW9kZWw9J3RydWUnLyZndDs8YnI+CiAgICAgICZsdDtnZW5kb2MgaWQ9J3JlcXVpcmVtZW50cycmZ3Q7ICZsdDtkcm9wLyZndDs8YnI+CiAgICAgICZuYnNwOyZuYnNwOyBbZm9yICh0YWJsZTogdGFibGU6OlRhYmxlIHwgc2VsZi5nZXRQYXB5cnVzVGFibGVzKCkpXQogICAgICAmbHQ7ZHJvcC8mZ3Q7CiAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPlt0YWJsZS5uYW1lL106W3QudHlwZS9dIDxicj4KICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+ICZuYnNwOyZuYnNwOyAmbHQ7dGFibGUKICAgICAgICAgIG9iamVjdD0nW3QuZ2V0VGFibGVJZCgpL10nJmd0OyAmbHQ7ZHJvcC8mZ3Q7PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8dGFibGUgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiPgogICAgICAgIDx0Ym9keT4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGFibGU+CiAgICAgICZuYnNwOyZuYnNwOyAmbHQ7L3RhYmxlJmd0OyAmbHQ7ZHJvcC8mZ3Q7PGJyPgogICAgICAmbHQ7L2dlbmRvYyZndDsgJmx0O2Ryb3AvJmd0Ozxicj4KICAgIDwvZGl2PgogICAgPHA+PC9wPgogICAgPHA+VGhlIHRhYmxlIHRhZyBoYXMgYSBuZXcgYXR0cmlidXRlIJNvYmplY3SUIGZvciB0aGUgYXV0b21hdGljIGdlbmVyYXRpb24uCiAgICAgIFRoaXMgYXR0cmlidXRlIGhhcyB0byBiZSBzZXQgdG8gdGhlIGlkZW50aWZpZXIgb2YgdGhlIHRhYmxlLiBUaGUgc2VydmljZQogICAgICCTZ2V0VGFibGVJZCgplCBpcyB1c2VkIHRvIHJldHJpZXZlIHRoaXMgaWRlbnRpZmllci48L3A+CiAgICA8cD48dT48c3Ryb25nPk5vdGU8L3N0cm9uZz48L3U+OiBpbiB0aGlzIG1vZGUgYWxsIGNlbGxzIHdpbGwgaGF2ZSB0aGUgc2FtZQogICAgICBzdHlsZS48L3A+CiAgICA8cD5HZW5kb2MgcmVzdWx0IDo8L3A+CiAgICA8cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+PHN0cm9uZz5SZXF1aXJlbWVudFRhYmxlMCA6IFBhcHlydXNTeXNNTFJlcXVpcmVtZW50VGFibGU8L3N0cm9uZz48L3A+CiAgICA8dGFibGUgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7d2lkdGg6IDkyOXB4OyBoZWlnaHQ6IDI4cHg7IiBib3JkZXI9IjEiPgogICAgICA8dGJvZHk+CiAgICAgICAgPHRyPgogICAgICAgICAgPHRkIHN0eWxlPSJ3aWR0aDogMzA3LjUxN3B4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48Yj5pZCA6IFN0cmluZyBbMV08YnI+CiAgICAgICAgICAgIDwvYj48L3RkPgogICAgICAgICAgPHRkIHN0eWxlPSJ3aWR0aDogMzA5Ljg1cHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxiPm5hbWUgOiBTdHJpbmcKICAgICAgICAgICAgICBbMC4uMV08YnI+CiAgICAgICAgICAgIDwvYj48L3RkPgogICAgICAgICAgPHRkIHN0eWxlPSJ3aWR0aDogMjg5LjYzM3B4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48Yj50ZXh0IDogU3RyaW5nIFsxXTxicj4KICAgICAgICAgICAgPC9iPjwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHIgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICA8dGQgc3R5bGU9IndpZHRoOiAzMDcuNzMzcHg7Ij5SRVFfMDAxPC90ZD4KICAgICAgICAgIDx0ZCBzdHlsZT0id2lkdGg6IDMwOC42MzNweDsiPkF1dG9tYXRlZCBhbGFybSBjbG9jazwvdGQ+CiAgICAgICAgICA8dGQgc3R5bGU9IndpZHRoOiAyOTAuNjMzcHg7Ij5UaGUgYWxhcm0gY2xvY2sgcmFkaW8gc2hhbGwgd2FrZSB1cCB0aGUKICAgICAgICAgICAgdXNlciBhdXRvbWF0aWNhbGx5IGF0IHRoZSByaWdodCB0aW1lLCB0aHJvdWdoIHJhZGlvIG9yIGJ1enplcjwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHIgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICA8dGQ+UkVRXzAwMTI8L3RkPgogICAgICAgICAgPHRkPlJhZGlvIG1hbmFnZW1lbnQ8L3RkPgogICAgICAgICAgPHRkPlRoZSB1c2VyIHNoYWxsIGJlIGFibGUgdG8gbW9kaWZ5IGVhc2lseSB0aGUgcmFkaW8gc3RhdGlvbiBhbmQgdGhlCiAgICAgICAgICAgIHZvbHVtZS48L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgPHRkPlJFUV8wMDM8L3RkPgogICAgICAgICAgPHRkPkNsb2NrIG1hbmFnZW1lbnQ8L3RkPgogICAgICAgICAgPHRkPlRoZSB1c2VyIHNoYWxsIGJlIGFibGUgdG8gdXBkYXRlIGVhc2lseSB0aGUgdGltZSBkaXNwbGF5ZWQgYnkgdGhlCiAgICAgICAgICAgIGNsb2NrIG9yIHRoZSBhbGFybS4gPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZD4uLi48L3RkPgogICAgICAgICAgPHRkPjxicj4KICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8dGQ+PGJyPgogICAgICAgICAgPC90ZD4KICAgICAgICA8L3RyPgogICAgICA8L3Rib2R5PgogICAgPC90YWJsZT4KICAgIDxwPjwvcD4KICAgIDxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij48c3Ryb25nPkFsbG9jYXRpb25UYWJsZTAgOgogICAgICAgIFBhcHlydXNTeXNNTEFsbG9jYXRpb25UYWJsZTwvc3Ryb25nPjwvcD4KICAgIDxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij48c3Ryb25nPjwvc3Ryb25nPjwvcD4KICAgIDx0YWJsZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsiIGJvcmRlcj0iMSINCiAgICAgIHdpZHRoPSIxMDAlIj4KICAgICAgPHRib2R5PgogICAgICAgIDx0ciBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgIDx0ZD48c3Ryb25nPm5hbWUgOiBTdHJpbmcgWzAuLjFdPC9zdHJvbmc+PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0ciBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgIDx0ZD5BbGxvY2F0ZTE8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgPHRkPkFsbG9jYXRlMjwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHIgYWxpZ249ImNlbnRlciI+CiAgICAgICAgICA8dGQ+QWxsb2NhdGUzPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0ciBhbGlnbj0iY2VudGVyIj4KICAgICAgICAgIDx0ZD5BbGxvY2F0ZTQ8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyIGFsaWduPSJjZW50ZXIiPgogICAgICAgICAgPHRkPkFsbG9jYXRlNTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgPC90Ym9keT4KICAgIDwvdGFibGU+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==