PCEtLQpMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBkaXN0cmlidXRlZCB3aXRoCnRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4KVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUgdG8gWW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAKKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS0+CjxkaXYgaWQ9ImRhdGFpbXBvcnQiIGNsYXNzPSJjbGVhcmZpeCI+CgogIDxkaXYgbmctc2hvdz0iIWhhc0hhbmRsZXJzIj5Tb3JyeSwgbm8gZGF0YWltcG9ydC1oYW5kbGVyIGRlZmluZWQhPC9kaXY+CiAgPGRpdiBpZD0iZnJhbWUiIG5nLXNob3c9Imhhc0hhbmRsZXJzIj4KCiAgICA8ZGl2IGlkPSJlcnJvciIgbmctc2hvdz0iZXJyb3IiPjwvZGl2PgoKICAgIDxkaXYgaWQ9ImN1cnJlbnRfc3RhdGUiIGNsYXNzPSJ7e3N0YXR1c319Ij4KCiAgICAgIDxwIGNsYXNzPSJsYXN0X3VwZGF0ZSI+TGFzdCBVcGRhdGU6IDxhYmJyIHRpdGxlPSJ7e2xhc3RVcGRhdGVVVEN9fSI+e3tsYXN0VXBkYXRlfX08L2FiYnI+PC9wPgogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KCiAgICAgICAgPHN0cm9uZz57e2luZm8udGV4dH19PHNwYW4gbmctc2hvdz0iaW5mby50aW1lVGFrZW4iPiAoRHVyYXRpb246IHt7aW5mby50aW1lVGFrZW4gfCByZWFkYWJsZVNlY29uZHMgfX0pPC9zcGFuPgogICAgICAgIDwvc3Ryb25nPgogICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbHMiIG5nLXNob3c9ImluZm8uc2hvd0RldGFpbHMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZG9jcyI+CiAgICAgICAgICAgICAgPHNwYW4gbmctcmVwZWF0PSJkb2MgaW4gaW5mby5kb2NzIj4KICAgICAgICAgICAgICAgICAgPGFiYnIgc3R5bGU9ImRpc3BsYXk6aW5saW5lIiB0aXRsZT0ie3sgZG9jLmRlc2MgfX0iPnt7IGRvYy5uYW1lIH19PC9hYmJyPjoge3tkb2MudmFsdWUgfCBudW1iZXJ9fTwhLS0gcmVtb3ZlIHdoaXRlc3BhY2UhCiAgICAgICAgICAgICAgICAgIC0tPiZuYnNwOzxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZSIgbmctc2hvdz0iZG9jLnNwZWVkIj57eyBkb2Muc3BlZWQgfCBudW1iZXJ9fS9zPC9zcGFuPjwhLS0gcmVtb3ZlIHdoaXRlc3BhY2UhCiAgICAgICAgICAgICAgICAgIC0tPjxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZSIgbmctc2hvdz0iISRsYXN0Ij4sIDwvc3Bhbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRhdGVzIj4KICAgICAgICAgICAgICA8c3BhbiBuZy1yZXBlYXQ9ImRhdGUgaW4gaW5mby5kYXRlcyI+CiAgICAgICAgICAgICAgICAgIDxhYmJyIHRpdGxlPSJ7eyBkYXRlLmRlc2MgfX0iPnt7IGRhdGUubmFtZSB9fTwvYWJicj46CiAgICAgICAgICAgICAgICAgIDxhYmJyIGNsYXNzPSJ0aW1lIj57eyBkYXRlLnZhbHVlIHwgdGltZWFnbyB9fTwvYWJicj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWJvcnQtaW1wb3J0IiBuZy1jbGFzcz0ie3dhcm46IWlzQWJvcnRpbmcsIHN1Y2Nlc3M6IGlzQWJvcnRpbmd9IiBuZy1jbGljaz0iYWJvcnQoKSIgbmctc2hvdz0iaXNSdW5uaW5nIj4KICAgICAgICAgICAgPHNwYW4gbmctc2hvdz0iaXNBYm9ydGluZyI+QWJvcnRpbmcgSW1wb3J0PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBuZy1zaG93PSIhaXNBYm9ydGluZyI+QWJvcnQgSW1wb3J0PC9zcGFuPgogICAgICAgIDwvYnV0dG9uPgoKICAgICAgPC9kaXY+CiAgICAKICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBpZD0icmF3X291dHB1dCIgPgoKICAgICAgPGgyPgogICAgICAgIDxhIGNsYXNzPSJ0b2dnbGUiIG5nLWNsaWNrPSJ0b2dnbGVSYXdTdGF0dXMoKSI+PHNwYW4+UmF3IFN0YXR1cy1PdXRwdXQ8L3NwYW4+PC9hPgogICAgICA8L2gyPgogICAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLWNvbnRhaW5lciIgbmctc2hvdz0ic2hvd1Jhd1N0YXR1cyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlIj48L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50IiBuZy1zaG93PSJzaG93UmF3U3RhdHVzIj4KCiAgICAgICAgPGRpdiBpZD0icmF3X291dHB1dF9jb250YWluZXIiPjxwcmUgY2xhc3M9InN5bnRheCBsYW5ndWFnZS1qc29uIj48Y29kZSBuZy1iaW5kLWh0bWw9InJhd1N0YXR1cyB8IGhpZ2hsaWdodDonanNvbicgfCB1bnNhZmUiPjwvY29kZT48L3ByZT48L2Rpdj4KCiAgICAgIDwvZGl2PgogICAgCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJibG9jayIgaWQ9ImNvbmZpZyIgbmctY2xhc3M9IntkZWJ1Z19tb2RlOmlzRGVidWdNb2RlfSI+CgogICAgICA8aDIgY2xhc3M9ImNsZWFyZml4Ij4KICAgICAgICA8YSBjbGFzcz0idG9nZ2xlIiBuZy1jbGljaz0idG9nZ2xlQ29uZmlndXJhdGlvbigpIj48c3Bhbj5Db25maWd1cmF0aW9uPC9zcGFuPjwvYT4KICAgICAgICA8YSBjbGFzcz0iciByZWxvYWRfY29uZmlnIiBuZy1jbGFzcz0ie3N1Y2Nlc3M6cmVsb2FkZWR9IiBuZy1jbGljaz0icmVsb2FkKCkiIHRpdGxlPSJSZWxvYWQgQ29uZmlndXJhdGlvbiI+UmVsb2FkPC9hPgogICAgICAgIDxhIGNsYXNzPSJyIGRlYnVnX21vZGUiIG5nLWNsaWNrPSJ0b2dnbGVEZWJ1ZygpIj5EZWJ1Zy1Nb2RlPC9hPgogICAgICA8L2gyPgogICAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLWNvbnRhaW5lciIgbmctc2hvdz0ic2hvd0NvbmZpZ3VyYXRpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZSI+PC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgbmctc2hvdz0ic2hvd0NvbmZpZ3VyYXRpb24iPgogICAgICAgIDxkaXYgaWQ9ImRhdGFpbXBvcnRfY29uZmlnIj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtYXR0ZWQiIG5nLXNob3c9IiFpc0RlYnVnTW9kZSI+CgogICAgICAgICAgICA8cHJlIGNsYXNzPSJzeW50YXggbGFuZ3VhZ2UteG1sIj48Y29kZSBuZy1iaW5kLWh0bWw9ImNvbmZpZyB8IGhpZ2hsaWdodDoneG1sJ3wgdW5zYWZlIj48L2NvZGU+PC9wcmU+CgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdGFibGUiIG5nLXNob3c9ImlzRGVidWdNb2RlIj4KCiAgICAgICAgICAgIDx0ZXh0YXJlYSBuZy1tb2RlbD0iY29uZmlnIj48L3RleHRhcmVhPgogICAgICAgICAgCiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CgogICAgICA8L2Rpdj4KICAgIAogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iYmxvY2siIGlkPSJkZWJ1Z19yZXNwb25zZSIgbmctc2hvdz0iZm9ybS5zaG93RGVidWciPgoKICAgICAgPGgyPgogICAgICAgIDxhIGNsYXNzPSJ0b2dnbGUiIG5nLWNsaWNrPSJ0b2dnbGVSYXdEZWJ1ZygpIj48c3Bhbj5SYXcgRGVidWctUmVzcG9uc2U8L3NwYW4+PC9hPgogICAgICA8L2gyPgogICAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLWNvbnRhaW5lciIgbmctc2hvdz0ic2hvd1Jhd0RlYnVnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPjwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIG5nLXNob3c9InNob3dSYXdEZWJ1ZyI+CiAgICAgICAgICA8c3BhbiBuZy1oaWRlPSJyYXdSZXNwb25zZSI+CiAgICAgICAgICAgICAgPGVtPk5vIFJlcXVlc3QgZXhlY3V0ZWQ8L2VtPgogICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPHNwYW4gbmctc2hvdz0icmF3UmVzcG9uc2UiPgogICAgICAgICAgICA8cHJlIGNsYXNzPSJzeW50YXggbGFuZ3VhZ2UtanNvbiI+PGNvZGUgbmctYmluZC1odG1sPSJyYXdSZXNwb25zZSB8IGhpZ2hsaWdodDonanNvbicgfCB1bnNhZmUiPjwvY29kZT48L3ByZT4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAKICAgIDwvZGl2PgogIAogIDwvZGl2PgoKICA8ZGl2IGlkPSJmb3JtIiBuZy1zaG93PSJoYXNIYW5kbGVycyI+CgogICAgPGRpdiBpZD0ibmF2aWdhdGlvbiI+CgogICAgICA8dWw+CiAgICAgICAgICA8bGkgbmctY2xhc3M9IntjdXJyZW50OiBjdXJyZW50SGFuZGxlciA9PSBoYW5kbGVyfSIgbmctcmVwZWF0PSJoYW5kbGVyIGluIGhhbmRsZXJzIj4KICAgICAgICAgICAgICA8YSBocmVmPSIjL3t7Zm9ybS5jb3JlfX0vZGF0YWltcG9ydC97e2hhbmRsZXJ9fSI+e3toYW5kbGVyfX08L2E+CiAgICAgICAgICA8L2xpPgogICAgICA8L3VsPgoKICAgIDwvZGl2PgoKICAgIDxmb3JtIGFjdGlvbj0iIyIgbWV0aG9kPSJnZXQiPgoKICAgICAgPGxhYmVsIGZvcj0iY29tbWFuZCI+CiAgICAgICAgPGEgcmVsPSJoZWxwIj5Db21tYW5kPC9hPgogICAgICA8L2xhYmVsPgogICAgICA8c2VsZWN0IG5hbWU9ImNvbW1hbmQiIGlkPSJjb21tYW5kIiBuZy1tb2RlbD0iZm9ybS5jb21tYW5kIj4KICAgICAgICA8b3B0aW9uPmZ1bGwtaW1wb3J0PC9vcHRpb24+CiAgICAgICAgPG9wdGlvbj5kZWx0YS1pbXBvcnQ8L29wdGlvbj4KICAgICAgPC9zZWxlY3Q+CgogICAgICA8bGFiZWwgZm9yPSJ2ZXJib3NlIiBjbGFzcz0iY2hlY2tib3giPgogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0idmVyYm9zZSIgaWQ9InZlcmJvc2UiIG5nLW1vZGVsPSJmb3JtLnZlcmJvc2UiPgogICAgICAgIFZlcmJvc2UKICAgICAgPC9sYWJlbD4KCiAgICAgIDxsYWJlbCBmb3I9ImNsZWFuIiBjbGFzcz0iY2hlY2tib3giPgogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2xlYW4iIGlkPSJjbGVhbiIgbmctbW9kZWw9ImZvcm0uY2xlYW4iPgogICAgICAgIENsZWFuCiAgICAgIDwvbGFiZWw+CgogICAgICA8bGFiZWwgZm9yPSJjb21taXQiIGNsYXNzPSJjaGVja2JveCI+CiAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJjb21taXQiIGlkPSJjb21taXQiIG5nLW1vZGVsPSJmb3JtLmNvbW1pdCI+CiAgICAgICAgQ29tbWl0CiAgICAgIDwvbGFiZWw+CgogICAgICA8bGFiZWwgZm9yPSJvcHRpbWl6ZSIgY2xhc3M9ImNoZWNrYm94Ij4KICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im9wdGltaXplIiBpZD0ib3B0aW1pemUiIG5nLW1vZGVsPSJmb3JtLm9wdGltaXplIj4KICAgICAgICBPcHRpbWl6ZQogICAgICA8L2xhYmVsPgoKICAgICAgPGxhYmVsIGZvcj0iZGVidWciIGNsYXNzPSJjaGVja2JveCI+CiAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkZWJ1ZyIgaWQ9ImRlYnVnIiBuZy1tb2RlbD0iZm9ybS5zaG93RGVidWciPgogICAgICAgIERlYnVnCiAgICAgIDwvbGFiZWw+CgogICAgICA8bGFiZWwgZm9yPSJlbnRpdHkiPgogICAgICAgIDxhIHJlbD0iaGVscCI+RW50aXR5PC9hPgogICAgICA8L2xhYmVsPgogICAgICA8c2VsZWN0IG5nLW1vZGVsPSJmb3JtLmVudGl0eSIgaWQ9ImVudGl0eSI+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj48L29wdGlvbj4KICAgICAgICA8b3B0aW9uIG5nLXJlcGVhdD0iZW50aXR5IGluIGVudGl0aWVzIj57e2VudGl0eX19PC9vcHRpb24+CiAgICAgIDwvc2VsZWN0PgoKICAgICAgPGxhYmVsIGZvcj0ic3RhcnQiPgogICAgICAgIDxhIHJlbD0iaGVscCI+U3RhcnQ8L2E+LAogICAgICAgIDxhIHJlbD0iaGVscCI+Um93czwvYT4KICAgICAgPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RhcnQiIHBsYWNlaG9sZGVyPSIwIiBuZy1tb2RlbD0iZm9ybS5zdGFydCI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJyb3dzIiBwbGFjZWhvbGRlcj0iMTAiIG5nLW1vZGVsPSJmb3JtLnJvd3MiPgogICAgICA8L2Rpdj4KCiAgICAgIDxsYWJlbCBmb3I9ImN1c3RvbV9wYXJhbWV0ZXJzIj4KICAgICAgICA8YSByZWw9ImhlbHAiPkN1c3RvbSBQYXJhbWV0ZXJzPC9hPgogICAgICA8L2xhYmVsPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImN1c3RvbV9wYXJhbWV0ZXJzIiBuZy1tb2RlbD0iZm9ybS5jdXN0b20iIHBsYWNlaG9sZGVyPSJrZXkxPXZhbDEmYW1wO2tleTI9dmFsMiI+CiAgICA8L2Zvcm0+CiAgICAgIDxidXR0b24gY2xhc3M9ImV4ZWN1dGUiIHR5cGU9InN1Ym1pdCIgbmctY2xpY2s9InN1Ym1pdCgpIj4KICAgICAgICAgIDxzcGFuIG5nLXNob3c9ImlzRGVidWdNb2RlIj5FeGVjdXRlIHdpdGggdGhpcyBDb25maWd1cmF0aW9uIOKGPzwvc3Bhbj4KICAgICAgICAgIDxzcGFuIG5nLXNob3c9IiFpc0RlYnVnTW9kZSI+RXhlY3V0ZTwvc3Bhbj4KICAgICAgPC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9InJlZnJlc2gtc3RhdHVzIiBuZy1jbGljaz0icmVmcmVzaFN0YXR1cygpIiBuZy1jbGFzcz0ie2xvYWRlcjogaXNTdGF0dXNMb2FkaW5nLCBzdWNjZXNzOiBzdGF0dXNVcGRhdGVkfSI+PHNwYW4+UmVmcmVzaCBTdGF0dXM8L3NwYW4+PC9idXR0b24+CgogICAgPHAgaWQ9ImF1dG8tcmVmcmVzaC1zdGF0dXMiPjxhIG5nLWNsaWNrPSJ1cGRhdGVBdXRvUmVmcmVzaCgpIiBuZy1jbGFzcz0ie29uOmF1dG9yZWZyZXNofSI+QXV0by1SZWZyZXNoIFN0YXR1czwvYT48L3A+CiAgCiAgPC9kaXY+Cgo8L2Rpdj4K