ZGlmZiAtLWdpdCBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvYnVpbGQueG1sIGIvYnVpbGQtdG9tY2F0LXNlcnZlci9idWlsZC54bWwKaW5kZXggODNhY2FlYi4uMzAxNjgwZCAxMDA2NDQKLS0tIGEvYnVpbGQtdG9tY2F0LXNlcnZlci9idWlsZC54bWwKKysrIGIvYnVpbGQtdG9tY2F0LXNlcnZlci9idWlsZC54bWwKQEAgLTcsMTkgKzcsMTAgQEAKIAk8cHJvcGVydHkgZmlsZT0iJHtiYXNlZGlyfS8uLi9idWlsZC52ZXJzaW9ucyIvPgogCTxpbXBvcnQgZmlsZT0iJHtiYXNlZGlyfS8uLi92aXJnby1idWlsZC9tdWx0aS1idW5kbGUvZGVmYXVsdC54bWwiLz4KIAotICAgIDwhLS1QMiBwdWJsaXNoaW5nIHByb3BlcnRpZXMtLT4KLSAgICA8cHJvcGVydHkgbmFtZT0icHVibGlzaGluZy5kaXIiIHZhbHVlPSIke2Jhc2VkaXJ9L3RhcmdldC9yZXBvc2l0b3J5Ii8+Ci0gICAgPHByb3BlcnR5IG5hbWU9ImRpc3Ryby5yZXMiIHZhbHVlPSIke2Jhc2VkaXJ9L2Rpc3Ryb19yZXNvdXJjZXMiLz4KLSAgICA8cHJvcGVydHkgbmFtZT0icDIucmVwby51cmwiIHZhbHVlPSJmaWxlOi8vLyR7cHVibGlzaGluZy5kaXJ9Ii8+Ci0gICAgPHByb3BlcnR5IG5hbWU9InByb2R1Y3QuZmlsZSIgdmFsdWU9IiR7YmFzZWRpcn0vb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLnByb2R1Y3QiLz4KLSAgICA8cHJvcGVydHkgbmFtZT0ibGliLnByb2R1Y3QuZmlsZSIgdmFsdWU9IiR7YmFzZWRpcn0vb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmxpYi5wcm9kdWN0Ii8+Ci0gICAgPHByb3BlcnR5IG5hbWU9ImxpYi5rZXJuZWwucHJvZHVjdC5maWxlIiB2YWx1ZT0iJHtiYXNlZGlyfS9vcmcuZWNsaXBzZS52aXJnby5rZXJuZWwubGliLmtlcm5lbC5wcm9kdWN0Ii8+Ci0gICAgPHByb3BlcnR5IG5hbWU9InJlcG9zaXRvcnkuZXh0LnByb2R1Y3QuZmlsZSIgdmFsdWU9IiR7YmFzZWRpcn0vb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLnJlcG9zaXRvcnkuZXh0LnByb2R1Y3QiLz4KLQogCTx0YXJnZXQgbmFtZT0icHJlY29tbWl0IiBkZXBlbmRzPSJjbGVhbiwgY2xlYW4taW50ZWdyYXRpb24sIHRlc3QsIHBhY2thZ2UsIHNtb2tlLXRlc3QiCiAJCWRlc2NyaXB0aW9uPSJQZXJmb3JtcyBhIENJIHNlcnZlci1saWtlIGJ1aWxkLCBzaG91bGQgYmUgcnVuIHByaW9yIHRvIHBlcmZvcm1pbmcgYSBHaXQgcHVzaCIvPgotCi0JPHRhcmdldCBuYW1lPSJmZXRjaC1rZXJuZWwiPgorICAgIAorICAgIDx0YXJnZXQgbmFtZT0iZmV0Y2gta2VybmVsLXVwZGF0ZXNpdGUiPgogCQk8bWtkaXIgZGlyPSIke3RhcmdldC5kaXJ9Ii8+CiAJCQogCQk8Y29uZGl0aW9uIHByb3BlcnR5PSJkZXBlbmRhbmN5LmZvbGRlciIgdmFsdWU9Im1pbGVzdG9uZSIgZWxzZT0iJHthZGp1c3RlZC5yZWxlYXNlLnR5cGV9Ij4KQEAgLTMzLDM4ICsyNCw4NyBAQAogCQkJPGNvbnRhaW5zIHN0cmluZz0iJHtvcmcuZWNsaXBzZS52aXJnby5rZXJuZWx9IiBzdWJzdHJpbmc9Ii5SRUxFQVNFIi8+CiAJCTwvY29uZGl0aW9uPgogCQkKLQkJPGdldCBzcmM9Imh0dHA6Ly9idWlsZC5lY2xpcHNlLm9yZy9ydC92aXJnby96aXBzLyR7ZGVwZW5kYW5jeS5mb2xkZXJ9L1ZLLyR7b3JnLmVjbGlwc2UudmlyZ28ua2VybmVsfS92aXJnby1rZXJuZWwtJHtvcmcuZWNsaXBzZS52aXJnby5rZXJuZWx9LnppcCIKLQkJCQlkZXN0PSIke3RhcmdldC5kaXJ9L3ZpcmdvLWtlcm5lbC0ke29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbH0uemlwIiAKLQkJCQl1c2V0aW1lc3RhbXA9InRydWUiIC8+CisJCTxnZXQgc3JjPSJodHRwOi8vYnVpbGQuZWNsaXBzZS5vcmcvcnQvdmlyZ28vemlwcy8ke2RlcGVuZGFuY3kuZm9sZGVyfS9WSy8ke29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbH0vdmlyZ28ta2VybmVsLXVwZGF0ZXNpdGUtJHtvcmcuZWNsaXBzZS52aXJnby5rZXJuZWx9LnppcCIKKwkJCWRlc3Q9IiR7dGFyZ2V0LmRpcn0vdmlyZ28ta2VybmVsLXVwZGF0ZXNpdGUtJHtvcmcuZWNsaXBzZS52aXJnby5rZXJuZWx9LnppcCIgCisJCQl1c2V0aW1lc3RhbXA9InRydWUiIC8+CiAKLQkJPGVjaG8gbWVzc2FnZT0iRmV0Y2hlZCB0aGUgS2VybmVsIHppcCB0byAke3RhcmdldC5kaXJ9L3ZpcmdvLWtlcm5lbC0ke29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbH0uemlwIi8+CisJCTxlY2hvIG1lc3NhZ2U9IkZldGNoZWQgdGhlIEtlcm5lbCB1cGRhdGVzaXRlIHppcCB0byAke3RhcmdldC5kaXJ9L3ZpcmdvLWtlcm5lbC11cGRhdGVzaXRlLSR7b3JnLmVjbGlwc2UudmlyZ28ua2VybmVsfS56aXAiLz4KIAk8L3RhcmdldD4KIAotCTx0YXJnZXQgbmFtZT0icGFja2FnZSIgZGVwZW5kcz0iZmV0Y2gta2VybmVsIj4KKwk8dGFyZ2V0IG5hbWU9InBhY2thZ2UiIGRlcGVuZHM9Iml2eS5pbml0LGZldGNoLWtlcm5lbC11cGRhdGVzaXRlIj4KIAkJPGRlbGV0ZSBkaXI9IiR7cGFja2FnZS5vdXRwdXQuZGlyfSIgcXVpZXQ9InRydWUiLz4KIAkJPG1rZGlyIGRpcj0iJHtwYWNrYWdlLm91dHB1dC5kaXJ9Ii8+CiAKIAkJPHByb3BlcnR5IG5hbWU9Imtlcm5lbC5zdGFnZS5maWxlIiB2YWx1ZT0iIi8+Ci0JCTxwcm9wZXJ0eSBuYW1lPSJyZXBvc2l0b3J5LmRpciIgdmFsdWU9IiR7cGFja2FnZS5vdXRwdXQuZGlyfS9yZXBvc2l0b3J5Ii8+Ci0JCTxwcm9wZXJ0eSBuYW1lPSJyZXBvc2l0b3J5LmV4dCIgdmFsdWU9IiR7cmVwb3NpdG9yeS5kaXJ9L2V4dCIvPgotCQk8cHJvcGVydHkgbmFtZT0icmVwb3NpdG9yeS51c3IiIHZhbHVlPSIke3JlcG9zaXRvcnkuZGlyfS91c3IiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InRvbWNhdC5zZXJ2ZXIucmVzb3VyY2VzIiB2YWx1ZT0iJHt0YXJnZXQuZGlyfS90b21jYXRfc2VydmVyX3Jlc291cmNlcyIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0icmVwb3NpdG9yeS5leHQiIHZhbHVlPSIke3RvbWNhdC5zZXJ2ZXIucmVzb3VyY2VzfS9yZXBvc2l0b3J5L2V4dCIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0icmVwb3NpdG9yeS51c3IiIHZhbHVlPSIke3RvbWNhdC5zZXJ2ZXIucmVzb3VyY2VzfS9yZXBvc2l0b3J5L3VzciIvPgogCi0JCTx1bnppcCBzcmM9IiR7dGFyZ2V0LmRpcn0vdmlyZ28ta2VybmVsLSR7b3JnLmVjbGlwc2UudmlyZ28ua2VybmVsfS56aXAiIGRlc3Q9IiR7cGFja2FnZS5vdXRwdXQuZGlyfSI+Ci0JCQk8Z2xvYm1hcHBlciBmcm9tPSJ2aXJnby1rZXJuZWwtJHtvcmcuZWNsaXBzZS52aXJnby5rZXJuZWx9LyoiIHRvPSIqIi8+CisgICAgICAgIDx1bnppcCBzcmM9IiR7dGFyZ2V0LmRpcn0vdmlyZ28ta2VybmVsLXVwZGF0ZXNpdGUtJHtvcmcuZWNsaXBzZS52aXJnby5rZXJuZWx9LnppcCIgZGVzdD0iJHtwMi5yZXBvc2l0b3J5LmRpcn0iPgorCQkJPGdsb2JtYXBwZXIgZnJvbT0idmlyZ28ta2VybmVsLXVwZGF0ZXNpdGUtJHtvcmcuZWNsaXBzZS52aXJnby5rZXJuZWx9LyoiIHRvPSIqIi8+CiAJCTwvdW56aXA+Ci0JCQotCQk8YW50Y2FsbCB0YXJnZXQ9InBhY2thZ2UuYmluIi8+CisgICAgICAgIDxkZWxldGUgZmlsZT0iJHt0YXJnZXQuZGlyfS92aXJnby1rZXJuZWwtdXBkYXRlc2l0ZS0ke29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbH0uemlwIiBxdWlldD0idHJ1ZSIvPgorICAgICAgICAKKyAgICAgICAgPHVuemlwIHNyYz0iJHtwMi5yZXBvc2l0b3J5LmRpcn0vYmluYXJ5L2tlcm5lbF9zcGVjaWZpY19yZXNvdXJjZXNfMS4wLjAiIGRlc3Q9IiR7dG9tY2F0LnNlcnZlci5yZXNvdXJjZXN9Ij4KKwkJCTxnbG9ibWFwcGVyIGZyb209Imtlcm5lbF9zcGVjaWZpY19yZXNvdXJjZXMvKiIgdG89IioiLz4KKwkJPC91bnppcD4KKyAgICAgICAgCisJCTxta2RpciBkaXI9IiR7dG9tY2F0LnNlcnZlci5yZXNvdXJjZXN9L3dvcmsiLz4KKwkJPG1rZGlyIGRpcj0iJHtyZXBvc2l0b3J5LnVzcn0iLz4KKyAgICAgICAgCiAJCTxhbnRjYWxsIHRhcmdldD0icGFja2FnZS5jb25maWciLz4KIAkJPGFudGNhbGwgdGFyZ2V0PSJwYWNrYWdlLmRvY3MiLz4KIAkJPGFudGNhbGwgdGFyZ2V0PSJwYWNrYWdlLmxpYiIvPgogCQk8YW50Y2FsbCB0YXJnZXQ9InBhY2thZ2UucGlja3VwIi8+CiAJCTxhbnRjYWxsIHRhcmdldD0icGFja2FnZS5yZXBvc2l0b3J5Ii8+CiAJCTxhbnRjYWxsIHRhcmdldD0icGFja2FnZS5yZXNvdXJjZXMiLz4KKyAgICAgICAgPGFudGNhbGwgdGFyZ2V0PSJwYWNrYWdlLnB1Ymxpc2giLz4KIAotCQk8bWtkaXIgZGlyPSIke3BhY2thZ2Uub3V0cHV0LmRpcn0vd29yayIvPgotCQk8bWtkaXIgZGlyPSIke3JlcG9zaXRvcnkudXNyfSIvPgorCTwvdGFyZ2V0PgorICAgIAorICAgIDx0YXJnZXQgbmFtZT0icGFja2FnZS5wdWJsaXNoIj4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InRvbWNhdC5zZXJ2ZXIucmVzb3VyY2VzLmxvY2F0aW9uIiB2YWx1ZT0iJHt0YXJnZXQuZGlyfS90b21jYXRfc2VydmVyX3Jlc291cmNlc196aXBwZWQiLz4KKwkJPHppcCBkZXN0ZmlsZT0iJHt0b21jYXQuc2VydmVyLnJlc291cmNlcy5sb2NhdGlvbn0vYmluYXJ5L3RvbWNhdF9zZXJ2ZXJfcmVzb3VyY2VzIj4KKwkJCTx6aXBmaWxlc2V0IGRpcj0iJHt0b21jYXQuc2VydmVyLnJlc291cmNlc30iLz4KKwkJPC96aXA+CisgICAgICAgIDxkZWxldGUgZGlyPSIke3RvbWNhdC5zZXJ2ZXIucmVzb3VyY2VzfSIgcXVpZXQ9InRydWUiLz4KKyAgICAgICAgCisgICAgICAgIDwhLS1wcmVwYXJlIHRvbWNhdCBzZXJ2ZXIgZmVhdHVyZSBmb3IgcHVibGlzaGluZyAtLT4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7dGFyZ2V0LmRpcn0vYXNzZW1ibHkvZmVhdHVyZXMiIGZhaWxvbmVycm9yPSJmYWxzZSI+CisJCQk8ZmlsZXNldCBkaXI9IiR7YmFzZWRpcn0vcHVibGlzaF9yZXNvdXJjZXMvZmVhdHVyZXMiIGV4Y2x1ZGVzPSJrZXlzdG9yZSIvPgorCQk8L2NvcHk+CisgICAgICAgIAorICAgICAgICA8IS0tIHByb2NlZWQgd2l0aCBwdWJsaXNoIC0tPgorICAgICAgICA8YW50Y2FsbCB0YXJnZXQ9ImZldGNoLXVuemlwcGVkLXZpcmdvLWJ1aWxkLXRvb2xzIi8+CisgICAgICAgIAorICAgICAgICA8cHJvcGVydHkgbmFtZT0icDIucHJvZHVjdHMubG9jYXRpb24iIHZhbHVlPSIke2Jhc2VkaXJ9L3B1Ymxpc2hfcmVzb3VyY2VzL3Byb2R1Y3RzIi8+CisgICAgICAgIDxhbnRjYWxsIHRhcmdldD0icDIucHVibGlzaC1iaW5hcnkiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InJlcG9zaXRvcnkiIHZhbHVlPSIke3AyLnJlcG9zaXRvcnkuZGlyfSIvPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InNvdXJjZSIgdmFsdWU9IiR7dG9tY2F0LnNlcnZlci5yZXNvdXJjZXMubG9jYXRpb259Ii8+CisgICAgICAgIDwvYW50Y2FsbD4KKyAgICAgICAgPGVjaG8gbWVzc2FnZT0iUHVibGlzaGVkIHRoZSB0b21jYXQgc2VydmVyIHJlc291cmNlcyB0byAke3AyLnJlcG9zaXRvcnkuZGlyfS4iLz4KKyAgICAgICAgCisgICAgICAgIDxhbnRjYWxsIHRhcmdldD0icDIucHVibGlzaC1idW5kbGVzLWZlYXR1cmVzIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJyZXBvc2l0b3J5IiB2YWx1ZT0iJHtwMi5yZXBvc2l0b3J5LmRpcn0iLz4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJzb3VyY2UiIHZhbHVlPSIke3RhcmdldC5kaXJ9L2Fzc2VtYmx5Ii8+CisgICAgICAgIDwvYW50Y2FsbD4KKyAgICAgICAgPGVjaG8gbWVzc2FnZT0iUHVibGlzaGVkIGJ1bmRsZXMgYW5kIGZlYXR1cmVzIHRvICR7cDIucmVwb3NpdG9yeS5kaXJ9LiIvPgorICAgICAgICAKKyAgICAgICAgPGFudGNhbGwgdGFyZ2V0PSJwMi5wdWJsaXNoLXByb2R1Y3QiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InJlcG9zaXRvcnkiIHZhbHVlPSIke3AyLnJlcG9zaXRvcnkuZGlyfSIvPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InByb2R1Y3QuZmlsZS5sb2NhdGlvbiIgdmFsdWU9IiR7cDIucHJvZHVjdHMubG9jYXRpb259L3RvbWNhdC1zZXJ2ZXIvdG9tY2F0LXNlcnZlci5wcm9kdWN0Ii8+CisgICAgICAgIDwvYW50Y2FsbD4KKyAgICAgICAgPGVjaG8gbWVzc2FnZT0iUHVibGlzaGVkIHRvbWNhdCBzZXJ2ZXIgcHJvZHVjdCB0byAke3AyLnJlcG9zaXRvcnkuZGlyfS4iLz4KIAotCQk8bWtkaXIgZGlyPSIke2FydGlmYWN0cy5kaXJ9Ii8+CisgICAgICAgIDxhbnRjYWxsIHRhcmdldD0icDIuaW5zdGFsbC12aXJnby1wcm9kdWN0Ij4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJyZXBvc2l0b3J5IiB2YWx1ZT0iJHtwMi5yZXBvc2l0b3J5LmRpcn0iLz4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJkZXN0aW5hdGlvbiIgdmFsdWU9IiR7cGFja2FnZS5vdXRwdXQuZGlyfSIvPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InByb2R1Y3QuaXUiIHZhbHVlPSJ0b21jYXQtc2VydmVyLnByb2R1Y3QiLz4KKyAgICAgICAgPC9hbnRjYWxsPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJJbnN0YWxsZWQgVmlyZ28gVG9tY2F0IFNlcnZlciBmb3IgZGlzdHJpYnV0aW9uIHB1cnBvc2VzLiIvPgorICAgICAgICAKKyAgICAgICAgPG1rZGlyIGRpcj0iJHthcnRpZmFjdHMuZGlyfSIvPgorICAgICAgICAKIAkJPHppcCBkZXN0ZmlsZT0iJHtwYWNrYWdlLm91dHB1dC5maWxlfSI+CiAJCQk8emlwZmlsZXNldCBkaXI9IiR7cGFja2FnZS5kaXJ9IiBpbmNsdWRlcz0iJHtwYWNrYWdlLmJhc2VuYW1lfS9iaW4vKi5zaCIgZmlsZW1vZGU9Ijc1NSIvPgogCQkJPHppcGZpbGVzZXQgZGlyPSIke3BhY2thZ2UuZGlyfSIgaW5jbHVkZXM9IiR7cGFja2FnZS5iYXNlbmFtZX0vY29uZmlnL29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5qbXhyZW1vdGUuYWNjZXNzLnByb3BlcnRpZXMiIGZpbGVtb2RlPSI2MDAiLz4KQEAgLTczLDU4ICsxMTMsNTEgQEAKIAkJCQk8ZXhjbHVkZSBuYW1lPSIke3BhY2thZ2UuYmFzZW5hbWV9L2NvbmZpZy9vcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuam14cmVtb3RlLmFjY2Vzcy5wcm9wZXJ0aWVzIi8+CiAJCQk8L3ppcGZpbGVzZXQ+CiAJCTwvemlwPgotCTwvdGFyZ2V0PgotCi0JPHRhcmdldCBuYW1lPSJwYWNrYWdlLmJpbiI+Ci0JCTxjaG1vZCBwZXJtPSI3NTUiPgotCQkJPGZpbGVzZXQgZGlyPSIke3BhY2thZ2Uub3V0cHV0LmRpcn0vYmluIj4KLQkJCQk8aW5jbHVkZSBuYW1lPSIqLnNoIi8+Ci0JCQk8L2ZpbGVzZXQ+Ci0JCTwvY2htb2Q+Ci0JPC90YXJnZXQ+CisgICAgICAgIDx6aXAgZGVzdGZpbGU9IiR7YXJ0aWZhY3RzLmRpcn1cJHtuYXR1cmFsLm5hbWV9LXVwZGF0ZXNpdGUtJHtidW5kbGUudmVyc2lvbn0uemlwIj4KKwkJCTx6aXBmaWxlc2V0IGRpcj0iJHtwMi5yZXBvc2l0b3J5LmRpcn0iLz4KKwkJPC96aXA+CisgICAgICAgIAorICAgICAgICA8ZGVsZXRlIGRpcj0iJHt0b21jYXQuc2VydmVyLnJlc291cmNlcy5sb2NhdGlvbn0iIHF1aWV0PSJ0cnVlIi8+CisgICAgICAgIDxkZWxldGUgZGlyPSIke3RhcmdldC5kaXJ9L2Fzc2VtYmx5IiBxdWlldD0idHJ1ZSIvPgorICAgICAgICA8ZGVsZXRlIGRpcj0iJHt0b29scy5kaXJ9IiBxdWlldD0idHJ1ZSIvPgorICAgIDwvdGFyZ2V0PgogCiAJPHRhcmdldCBuYW1lPSJwYWNrYWdlLmNvbmZpZyI+Ci0JCTxjb3B5IHRvZGlyPSIke3BhY2thZ2Uub3V0cHV0LmRpcn0vY29uZmlnIiBmYWlsb25lcnJvcj0iZmFsc2UiIG92ZXJ3cml0ZT0idHJ1ZSI+CisJCTxjb3B5IHRvZGlyPSIke3RvbWNhdC5zZXJ2ZXIucmVzb3VyY2VzfS9jb25maWciIGZhaWxvbmVycm9yPSJmYWxzZSIgb3ZlcndyaXRlPSJ0cnVlIj4KIAkJCTxmaWxlc2V0IGRpcj0iJHtiYXNlZGlyfS9jb25maWciLz4KIAkJPC9jb3B5PgotCi0JCTxjaG1vZCBwZXJtPSI2MDAiPgotCQkJPGZpbGVzZXQgZGlyPSIke3BhY2thZ2Uub3V0cHV0LmRpcn0vY29uZmlnIj4KLQkJCQk8aW5jbHVkZSBuYW1lPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuam14cmVtb3RlLmFjY2Vzcy5wcm9wZXJ0aWVzIi8+Ci0JCQk8L2ZpbGVzZXQ+Ci0JCTwvY2htb2Q+Ci0KLQkJPHJlcGxhY2VyZWdleHAgbWF0Y2g9ImluaXRpYWxBcnRpZmFjdHMgPS4qXC5zcHJpbmdkbSIKKyAgICAgICAgCisgICAgICAgIDxyZXBsYWNlcmVnZXhwIG1hdGNoPSJpbml0aWFsQXJ0aWZhY3RzID0uKlwuc3ByaW5nZG0iCiAJCQkJcmVwbGFjZT0iaW5pdGlhbEFydGlmYWN0cz1yZXBvc2l0b3J5OnBsYW4vb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLnVzZXJyZWdpb24uc3ByaW5nZG0sIHJlcG9zaXRvcnk6cGxhbi9vcmcuZWNsaXBzZS52aXJnby53ZWIudG9tY2F0IiBmbGFncz0icyIKLQkJCQlmaWxlPSIke3BhY2thZ2Uub3V0cHV0LmRpcn0vY29uZmlnL29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC51c2VycmVnaW9uLnByb3BlcnRpZXMiLz4KLQotCQk8cmVwbGFjZXJlZ2V4cCBtYXRjaD0idmlyZ28ta2VybmVsIiByZXBsYWNlPSJ2aXJnby1zZXJ2ZXIiIGZsYWdzPSJnIgotCQkJCWZpbGU9IiR7cGFja2FnZS5vdXRwdXQuZGlyfS9jb25maWcvc2VydmljZWFiaWxpdHkueG1sIi8+CisJCQkJZmlsZT0iJHt0b21jYXQuc2VydmVyLnJlc291cmNlc30vY29uZmlnL29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC51c2VycmVnaW9uLnByb3BlcnRpZXMiLz4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgPHJlcGxhY2VyZWdleHAgbWF0Y2g9InZpcmdvLWtlcm5lbCIgcmVwbGFjZT0idmlyZ28tc2VydmVyIiBmbGFncz0iZyIKKwkJCQlmaWxlPSIke3RvbWNhdC5zZXJ2ZXIucmVzb3VyY2VzfS9jb25maWcvc2VydmljZWFiaWxpdHkueG1sIi8+CiAJPC90YXJnZXQ+CiAKIAk8dGFyZ2V0IG5hbWU9InBhY2thZ2UuZG9jcyIgZGVwZW5kcz0iaXZ5LmluaXQiPgogCQk8aXZ5OnJlc29sdmUgcmVzb2x2ZUlkPSJjb3B5LnBhdGgiIGZpbGU9IiR7YmFzZWRpcn0vZG9jcy1pdnkueG1sIiB0cmFuc2l0aXZlPSJmYWxzZSIgY29uZj0iZG9jcyIvPgogCQk8aXZ5OnJldHJpZXZlIHJlc29sdmVJZD0iY29weS5wYXRoIiBwYXR0ZXJuPSIke2Jhc2VkaXJ9L3RhcmdldC9kb2NzL1thcnRpZmFjdF0tW3JldmlzaW9uXS5bZXh0XSIgY29uZj0iZG9jcyIgdHlwZT0iemlwLCBwZGYiLz4KIAotCQk8Y29weSB0b2Rpcj0iJHtwYWNrYWdlLm91dHB1dC5kaXJ9L2RvY3MvdmlyZ28tdXNlci1ndWlkZS9wZGYiIGZsYXR0ZW49InRydWUiPgorCQk8Y29weSB0b2Rpcj0iJHt0b21jYXQuc2VydmVyLnJlc291cmNlc30vZG9jcy92aXJnby11c2VyLWd1aWRlL3BkZiIgZmxhdHRlbj0idHJ1ZSI+CiAJCQk8ZmlsZXNldCBkaXI9IiR7YmFzZWRpcn0vdGFyZ2V0L2RvY3MiPgogCQkJCTxpbmNsdWRlIG5hbWU9IioqL3ZpcmdvLXVzZXItZ3VpZGUqLnBkZiIvPgogCQkJPC9maWxlc2V0PgogCQk8L2NvcHk+CiAKLQkJPGNvcHkgdG9kaXI9IiR7cGFja2FnZS5vdXRwdXQuZGlyfS9kb2NzL3ZpcmdvLXByb2dyYW1tZXItZ3VpZGUvcGRmIiBmbGF0dGVuPSJ0cnVlIj4KKwkJPGNvcHkgdG9kaXI9IiR7dG9tY2F0LnNlcnZlci5yZXNvdXJjZXN9L2RvY3MvdmlyZ28tcHJvZ3JhbW1lci1ndWlkZS9wZGYiIGZsYXR0ZW49InRydWUiPgogCQkJPGZpbGVzZXQgZGlyPSIke2Jhc2VkaXJ9L3RhcmdldC9kb2NzIj4KIAkJCQk8aW5jbHVkZSBuYW1lPSIqKi92aXJnby1wcm9ncmFtbWVyLWd1aWRlKi5wZGYiLz4KIAkJCTwvZmlsZXNldD4KIAkJPC9jb3B5PgogCi0JCTx1bnppcCBkZXN0PSIke3BhY2thZ2Uub3V0cHV0LmRpcn0vZG9jcy92aXJnby11c2VyLWd1aWRlIj4KKwkJPHVuemlwIGRlc3Q9IiR7dG9tY2F0LnNlcnZlci5yZXNvdXJjZXN9L2RvY3MvdmlyZ28tdXNlci1ndWlkZSI+CiAJCQk8ZmlsZXNldCBkaXI9IiR7YmFzZWRpcn0vdGFyZ2V0L2RvY3MiPgogCQkgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3ZpcmdvLXVzZXItZ3VpZGUqLnppcCIvPgogCQkgICAgPC9maWxlc2V0PgogCQk8L3VuemlwPgogCi0JCTx1bnppcCBkZXN0PSIke3BhY2thZ2Uub3V0cHV0LmRpcn0vZG9jcy92aXJnby1wcm9ncmFtbWVyLWd1aWRlIj4KKwkJPHVuemlwIGRlc3Q9IiR7dG9tY2F0LnNlcnZlci5yZXNvdXJjZXN9L2RvY3MvdmlyZ28tcHJvZ3JhbW1lci1ndWlkZSI+CiAJCQk8ZmlsZXNldCBkaXI9IiR7YmFzZWRpcn0vdGFyZ2V0L2RvY3MiPgogCQkgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3ZpcmdvLXByb2dyYW1tZXItZ3VpZGUqLnppcCIvPgogCQkgICAgPC9maWxlc2V0PgpAQCAtMTMzLDM0ICsxNjYsMjkgQEAKIAk8L3RhcmdldD4KIAogCTx0YXJnZXQgbmFtZT0icGFja2FnZS5saWIiPgotCQk8ZWNobyBmaWxlPSIke3BhY2thZ2Uub3V0cHV0LmRpcn0vbGliLy52ZXJzaW9uIiBhcHBlbmQ9InRydWUiCisJCTxlY2hvIGZpbGU9IiR7dG9tY2F0LnNlcnZlci5yZXNvdXJjZXN9L2xpYi8udmVyc2lvbiIgYXBwZW5kPSJ0cnVlIgogCQkJCW1lc3NhZ2U9InZpcmdvLnNlcnZlci52ZXJzaW9uPSR7YnVuZGxlLnZlcnNpb259JiN4YTsiLz4KLQotCQk8cmVwbGFjZXJlZ2V4cCBtYXRjaD0idmlyZ28ta2VybmVsIiByZXBsYWNlPSJ2aXJnby1zZXJ2ZXIiIGZsYWdzPSJnIgotCQkJCWZpbGU9IiR7cGFja2FnZS5vdXRwdXQuZGlyfS9saWIvamF2YTYtc2VydmVyLnByb2ZpbGUiLz4KIAk8L3RhcmdldD4KIAogCTx0YXJnZXQgbmFtZT0icGFja2FnZS5waWNrdXAiIGRlcGVuZHM9Iml2eS5pbml0Ij4KIAkJPGl2eTpyZXNvbHZlIHJlc29sdmVJZD0iY29weS5wYXRoIiBmaWxlPSIke2Jhc2VkaXJ9L3BpY2t1cC1pdnkueG1sIiB0cmFuc2l0aXZlPSJ0cnVlIi8+Ci0JCTxpdnk6cmV0cmlldmUgcmVzb2x2ZUlkPSJjb3B5LnBhdGgiIHBhdHRlcm49IiR7cGFja2FnZS5vdXRwdXQuZGlyfS9waWNrdXAvW2FydGlmYWN0XS1bcmV2aXNpb25dLltleHRdIiB0eXBlPSJqYXIsIHdhciwgd2FiIiBjb25mPSJwaWNrdXAiLz4KLQkJPGl2eTpyZXRyaWV2ZSByZXNvbHZlSWQ9ImNvcHkucGF0aCIgcGF0dGVybj0iJHtwYWNrYWdlLm91dHB1dC5kaXJ9L3BpY2t1cC9bYXJ0aWZhY3RdLVtyZXZpc2lvbl0uW2V4dF0iIHR5cGU9InBsYW4iIGNvbmY9InBpY2t1cC1wbGFuIi8+Ci0JCTxpdnk6cmV0cmlldmUgcmVzb2x2ZUlkPSJjb3B5LnBhdGgiIHBhdHRlcm49IiR7cmVwb3NpdG9yeS5leHR9L1thcnRpZmFjdF0tW3JldmlzaW9uXS5bZXh0XSIgdHlwZT0iamFyLCB3YXIsIHdhYiIgY29uZj0icGlja3VwLXBsYW4iLz4KKwkJPGl2eTpyZXRyaWV2ZSByZXNvbHZlSWQ9ImNvcHkucGF0aCIgcGF0dGVybj0iJHt0b21jYXQuc2VydmVyLnJlc291cmNlc30vcGlja3VwL1thcnRpZmFjdF1fW3JldmlzaW9uXS5bZXh0XSIgdHlwZT0iamFyLCB3YXIsIHdhYiIgY29uZj0icGlja3VwIi8+CisJCTxpdnk6cmV0cmlldmUgcmVzb2x2ZUlkPSJjb3B5LnBhdGgiIHBhdHRlcm49IiR7dG9tY2F0LnNlcnZlci5yZXNvdXJjZXN9L3BpY2t1cC9bYXJ0aWZhY3RdX1tyZXZpc2lvbl0uW2V4dF0iIHR5cGU9InBsYW4iIGNvbmY9InBpY2t1cC1wbGFuIi8+CisJCTxpdnk6cmV0cmlldmUgcmVzb2x2ZUlkPSJjb3B5LnBhdGgiIHBhdHRlcm49IiR7cmVwb3NpdG9yeS5leHR9L1thcnRpZmFjdF1fW3JldmlzaW9uXS5bZXh0XSIgdHlwZT0iamFyLCB3YXIsIHdhYiIgY29uZj0icGlja3VwLXBsYW4iLz4KIAk8L3RhcmdldD4KIAogCTx0YXJnZXQgbmFtZT0icGFja2FnZS5yZXBvc2l0b3J5IiBkZXBlbmRzPSJpdnkuaW5pdCI+CiAJCTxpdnk6cmVzb2x2ZSByZXNvbHZlSWQ9ImNvcHkucGF0aCIgZmlsZT0iJHtiYXNlZGlyfS9yZXBvc2l0b3J5LWl2eS54bWwiIHRyYW5zaXRpdmU9ImZhbHNlIi8+Ci0JCTxpdnk6cmV0cmlldmUgcmVzb2x2ZUlkPSJjb3B5LnBhdGgiIHBhdHRlcm49IiR7cmVwb3NpdG9yeS5leHR9L1thcnRpZmFjdF0tW3JldmlzaW9uXS5bZXh0XSIgY29uZj0iZXh0IiB0eXBlPSJsaWJyYXJ5LGphcixwbGFuIi8+CisJCTxpdnk6cmV0cmlldmUgcmVzb2x2ZUlkPSJjb3B5LnBhdGgiIHBhdHRlcm49IiR7cmVwb3NpdG9yeS5leHR9L1thcnRpZmFjdF1fW3JldmlzaW9uXS5bZXh0XSIgY29uZj0iZXh0IiB0eXBlPSJsaWJyYXJ5LGphcixwbGFuIi8+CiAJCTxpdnk6cmV0cmlldmUgcmVzb2x2ZUlkPSJjb3B5LnBhdGgiIHBhdHRlcm49IiR7cmVwb3NpdG9yeS5leHR9L1thcnRpZmFjdF0uW2V4dF0iIGNvbmY9ImV4dCIgdHlwZT0iY29uZmlndXJhdGlvbiIvPgogCiAJCTxpdnk6cmVzb2x2ZSByZXNvbHZlSWQ9ImNvcHkucGF0aCIgZmlsZT0iJHtiYXNlZGlyfS9yZXBvc2l0b3J5LWl2eS54bWwiIHRyYW5zaXRpdmU9InRydWUiLz4KLQkJPGl2eTpyZXRyaWV2ZSByZXNvbHZlSWQ9ImNvcHkucGF0aCIgcGF0dGVybj0iJHtyZXBvc2l0b3J5LmV4dH0vW2FydGlmYWN0XS1bcmV2aXNpb25dLltleHRdIiBjb25mPSJ0cmFuc2l0aXZlIiB0eXBlPSJsaWJyYXJ5LGphcixwbGFuIiAvPgorCQk8aXZ5OnJldHJpZXZlIHJlc29sdmVJZD0iY29weS5wYXRoIiBwYXR0ZXJuPSIke3JlcG9zaXRvcnkuZXh0fS9bYXJ0aWZhY3RdX1tyZXZpc2lvbl0uW2V4dF0iIGNvbmY9InRyYW5zaXRpdmUiIHR5cGU9ImxpYnJhcnksamFyLHBsYW4iIC8+CiAJCTxpdnk6cmV0cmlldmUgcmVzb2x2ZUlkPSJjb3B5LnBhdGgiIHBhdHRlcm49IiR7cmVwb3NpdG9yeS5leHR9L1thcnRpZmFjdF0uW2V4dF0iIGNvbmY9InRyYW5zaXRpdmUiIHR5cGU9ImNvbmZpZ3VyYXRpb24iIC8+CiAJPC90YXJnZXQ+CiAKIAk8dGFyZ2V0IG5hbWU9InBhY2thZ2UucmVzb3VyY2VzIj4KLQkJPG1vdmUgZmlsZT0iJHtwYWNrYWdlLm91dHB1dC5kaXJ9L0Fib3V0Lmh0bWwiIHRvZmlsZT0iJHtwYWNrYWdlLm91dHB1dC5kaXJ9L0Fib3V0S2VybmVsLmh0bWwiLz4KLQotCQk8Y29weSB0b2Rpcj0iJHtwYWNrYWdlLm91dHB1dC5kaXJ9IiBmYWlsb25lcnJvcj0iZmFsc2UiPgorCQk8Y29weSB0b2Rpcj0iJHt0b21jYXQuc2VydmVyLnJlc291cmNlc30iIGZhaWxvbmVycm9yPSJmYWxzZSI+CiAJCQk8ZmlsZXNldCBkaXI9IiR7YmFzZWRpcn0vcmVzb3VyY2VzIi8+CiAJCTwvY29weT4KIAk8L3RhcmdldD4KQEAgLTE3OCw3MiArMjA2LDQgQEAKIAkJPGFudGNhbGwgdGFyZ2V0PSJ0ZXN0LnBvc3QiLz4KIAk8L3RhcmdldD4KIAotCi0gICAgPHRhcmdldCBuYW1lPSJwMi5wdWJsaXNoIiBkZXBlbmRzPSJwYWNrYWdlLnJlc291cmNlcywgcDIuZXh0cmFjdC1wdWJsaXNoZXIiCi0gICAgICAgICAgICBkZXNjcmlwdGlvbj0iUHVibGlzaGVzIGJ1bmRsZXMsIGZlYXR1cmVzIGFuZCBwcm9kdWN0Ij4KLSAgICAgICAgPGphdmEgamFyPSIke3AyLmxhdW5jaGVyLmphcn0iIGZvcms9InRydWUiIHRhc2tuYW1lPSJwMmJ1bmRsZXMiIGZhaWxvbmVycm9yPSJ0cnVlIiBtYXhtZW1vcnk9IjI1Nm0iPgotICAgICAgICAgICAgPGFyZyBsaW5lPSItYXBwbGljYXRpb24gb3JnLmVjbGlwc2UuZXF1aW5veC5wMi5wdWJsaXNoZXIuRmVhdHVyZXNBbmRCdW5kbGVzUHVibGlzaGVyIi8+Ci0gICAgICAgICAgICA8YXJnIGxpbmU9Ii1tZXRhZGF0YVJlcG9zaXRvcnkgJHtwMi5yZXBvLnVybH0iLz4KLSAgICAgICAgICAgIDxhcmcgbGluZT0iLWFydGlmYWN0UmVwb3NpdG9yeSAke3AyLnJlcG8udXJsfSIvPgotICAgICAgICAgICAgPGFyZyBsaW5lPSItYnVuZGxlcyAke3BhY2thZ2Uub3V0cHV0LmRpcn0vbGliLCR7cGFja2FnZS5vdXRwdXQuZGlyfS9yZXBvc2l0b3J5L2V4dCIvPgotICAgICAgICAgICAgPGFyZyBsaW5lPSItcHVibGlzaEFydGlmYWN0cyIvPgotICAgICAgICAgICAgPGFyZyBsaW5lPSItY29uZmlncyBhbGwiLz4KLSAgICAgICAgPC9qYXZhPgotCi0gICAgICAgIDxzc2hleGVjIGhvc3Q9ImJ1aWxkLmVjbGlwc2Uub3JnIiAKLSAgICAgICAgICAgICAgICB1c2VybmFtZT0iJHtlY2xpcHNlLmJ1aWxkSWR9IiAKLSAgICAgICAgICAgICAgICBrZXlmaWxlPSIke2tleS5maWxlfSIgCi0gICAgICAgICAgICAgICAgcGFzc3BocmFzZT0iJHtwYXNzcGhyYXNlfSIKLSAgICAgICAgICAgICAgICBjb21tYW5kPSJta2RpciAtcHYgL29wdC9wdWJsaWMvcnQvdmlyZ28vdXBkYXRlLXNpdGUvJHtyZWxlYXNlLnR5cGV9LyR7YnVpbGQuc3RhbXB9Ii8+Ci0KLSAgICAgICAgPHNjcCB0b2Rpcj0iJHtlY2xpcHNlLmJ1aWxkSWR9QGJ1aWxkLmVjbGlwc2Uub3JnOi9vcHQvcHVibGljL3J0L3ZpcmdvL3VwZGF0ZS1zaXRlLyR7cmVsZWFzZS50eXBlfS8ke2J1aWxkLnN0YW1wfS8iIAotICAgICAgICAgICAgICAgIGtleWZpbGU9IiR7a2V5LmZpbGV9IgotICAgICAgICAgICAgICAgIHBhc3NwaHJhc2U9IiR7cGFzc3BocmFzZX0iPgotICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3B1Ymxpc2hpbmcuZGlyfSIvPgotICAgICAgICA8L3NjcD4KLSAgICAgICAgCi0gICAgICAgIDwhLS0gPGphdmEgamFyPSIke3AyLmxhdW5jaGVyLmphcn0iIGZvcms9InRydWUiIHRhc2tuYW1lPSJwMnByb2R1Y3QiIGZhaWxvbmVycm9yPSJ0cnVlIiBtYXhtZW1vcnk9IjI1Nm0iPgotICAgICAgICAgICAgICAgICA8YXJnIGxpbmU9Ii1hcHBsaWNhdGlvbiBvcmcuZWNsaXBzZS5lcXVpbm94LnAyLnB1Ymxpc2hlci5Qcm9kdWN0UHVibGlzaGVyIi8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLW1ldGFkYXRhUmVwb3NpdG9yeSAke3AyLnJlcG8udXJsfSIvPgotICAgICAgICAgICAgICAgICA8YXJnIGxpbmU9Ii1hcnRpZmFjdFJlcG9zaXRvcnkgJHtwMi5yZXBvLnVybH0iLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItcHJvZHVjdEZpbGUgJHtwcm9kdWN0LmZpbGV9Ii8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLWFwcGVuZCIvPgotICAgICAgICAgICAgICAgICA8YXJnIGxpbmU9Ii1wdWJsaXNoQXJ0aWZhY3RzIi8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLWZsYXZvciB0b29saW5nIi8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLWNvbmZpZ3MgYWxsIi8+Ci0gICAgICAgICAgICAgPC9qYXZhPgotICAgICAgICAgICAgIDxqYXZhIGphcj0iJHtwMi5sYXVuY2hlci5qYXJ9IiBmb3JrPSJ0cnVlIiB0YXNrbmFtZT0icDJwcm9kdWN0IiBmYWlsb25lcnJvcj0idHJ1ZSIgbWF4bWVtb3J5PSIyNTZtIj4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItYXBwbGljYXRpb24gb3JnLmVjbGlwc2UuZXF1aW5veC5wMi5wdWJsaXNoZXIuUHJvZHVjdFB1Ymxpc2hlciIvPgotICAgICAgICAgICAgICAgICA8YXJnIGxpbmU9Ii1tZXRhZGF0YVJlcG9zaXRvcnkgJHtwMi5yZXBvLnVybH0iLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItYXJ0aWZhY3RSZXBvc2l0b3J5ICR7cDIucmVwby51cmx9Ii8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLXByb2R1Y3RGaWxlICR7bGliLnByb2R1Y3QuZmlsZX0iLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItYXBwZW5kIi8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLXB1Ymxpc2hBcnRpZmFjdHMiLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItZmxhdm9yIHRvb2xpbmciLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItY29uZmlncyBhbGwiLz4KLSAgICAgICAgICAgICA8L2phdmE+Ci0gICAgICAgICAgICAgPGphdmEgamFyPSIke3AyLmxhdW5jaGVyLmphcn0iIGZvcms9InRydWUiIHRhc2tuYW1lPSJwMnByb2R1Y3QiIGZhaWxvbmVycm9yPSJ0cnVlIiBtYXhtZW1vcnk9IjI1Nm0iPgotICAgICAgICAgICAgICAgICA8YXJnIGxpbmU9Ii1hcHBsaWNhdGlvbiBvcmcuZWNsaXBzZS5lcXVpbm94LnAyLnB1Ymxpc2hlci5Qcm9kdWN0UHVibGlzaGVyIi8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLW1ldGFkYXRhUmVwb3NpdG9yeSAke3AyLnJlcG8udXJsfSIvPgotICAgICAgICAgICAgICAgICA8YXJnIGxpbmU9Ii1hcnRpZmFjdFJlcG9zaXRvcnkgJHtwMi5yZXBvLnVybH0iLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItcHJvZHVjdEZpbGUgJHtsaWIua2VybmVsLnByb2R1Y3QuZmlsZX0iLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItYXBwZW5kIi8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLXB1Ymxpc2hBcnRpZmFjdHMiLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItZmxhdm9yIHRvb2xpbmciLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItY29uZmlncyBhbGwiLz4KLSAgICAgICAgICAgICA8L2phdmE+Ci0gICAgICAgICAgICAgPGphdmEgamFyPSIke3AyLmxhdW5jaGVyLmphcn0iIGZvcms9InRydWUiIHRhc2tuYW1lPSJwMnByb2R1Y3QiIGZhaWxvbmVycm9yPSJ0cnVlIiBtYXhtZW1vcnk9IjI1Nm0iPgotICAgICAgICAgICAgICAgICA8YXJnIGxpbmU9Ii1hcHBsaWNhdGlvbiBvcmcuZWNsaXBzZS5lcXVpbm94LnAyLnB1Ymxpc2hlci5Qcm9kdWN0UHVibGlzaGVyIi8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLW1ldGFkYXRhUmVwb3NpdG9yeSAke3AyLnJlcG8udXJsfSIvPgotICAgICAgICAgICAgICAgICA8YXJnIGxpbmU9Ii1hcnRpZmFjdFJlcG9zaXRvcnkgJHtwMi5yZXBvLnVybH0iLz4KLSAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSItcHJvZHVjdEZpbGUgJHtyZXBvc2l0b3J5LmV4dC5wcm9kdWN0LmZpbGV9Ii8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLWFwcGVuZCIvPgotICAgICAgICAgICAgICAgICA8YXJnIGxpbmU9Ii1wdWJsaXNoQXJ0aWZhY3RzIi8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLWZsYXZvciB0b29saW5nIi8+Ci0gICAgICAgICAgICAgICAgIDxhcmcgbGluZT0iLWNvbmZpZ3MgYWxsIi8+Ci0gICAgICAgICAgICAgPC9qYXZhPiAtLT4KLSAgICAgICAgICAgICA8ZGVsZXRlIGRpcj0iJHtwMi5wdWJsaXNoaW5nLmRpcn0iIGV4Y2x1ZGVzPSJwMmFnZW50LnppcCIgaW5jbHVkZWVtcHR5ZGlycz0idHJ1ZSIgcXVpZXQ9InRydWUiLz4KLSAgICA8L3RhcmdldD4KLQotCiA8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL2Rpc3Ryb19yZXNvdXJjZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9idWlsZC10b21jYXQtc2VydmVyL2Rpc3Ryb19yZXNvdXJjZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkMDY1OGYuLjAwMDAwMDAKLS0tIGEvYnVpbGQtdG9tY2F0LXNlcnZlci9kaXN0cm9fcmVzb3VyY2VzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1NYW5pZmVzdC1WZXJzaW9uOiAxLjANCi1CdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQotQnVuZGxlLU5hbWU6IFZpcmdvIFJlc291cmNlcw0KLUJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5yZXNvdXJjZXMNCi1CdW5kbGUtVmVyc2lvbjogMS4wLjANCi1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSmF2YVNFLTEuNg0KZGlmZiAtLWdpdCBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvZGlzdHJvX3Jlc291cmNlcy9NRVRBLUlORi9wMi5pbmYgYi9idWlsZC10b21jYXQtc2VydmVyL2Rpc3Ryb19yZXNvdXJjZXMvTUVUQS1JTkYvcDIuaW5mCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjhmN2MzLi4wMDAwMDAwCi0tLSBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvZGlzdHJvX3Jlc291cmNlcy9NRVRBLUlORi9wMi5pbmYKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLSMgQ29weXJpZ2h0IChjKSAyMDEwIFNBUCBBRw0KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQotIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0jDQotIyBDb250cmlidXRvcnM6DQotIyAgICBIcmlzdG8gSWxpZXYsIFNBUCBBRyAtIGluaXRpYWwgY29udHJpYnV0aW9uDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi0NCi1pbnN0cnVjdGlvbnMuY29uZmlndXJlPVwNCi1vcmcuZWNsaXBzZS5lcXVpbm94LnAyLnRvdWNocG9pbnQubmF0aXZlcy51bnppcChzb3VyY2U6QGFydGlmYWN0LHRhcmdldDoke2luc3RhbGxGb2xkZXJ9KTtcDQotb3JnLmVjbGlwc2UuZXF1aW5veC5wMi50b3VjaHBvaW50Lm5hdGl2ZXMucmVtb3ZlKHBhdGg6JHtpbnN0YWxsRm9sZGVyfS9NRVRBLUlORik7DQpkaWZmIC0tZ2l0IGEvYnVpbGQtdG9tY2F0LXNlcnZlci9vcmcuZWNsaXBzZS52aXJnby5rZXJuZWwubGliLmtlcm5lbC5wcm9kdWN0IGIvYnVpbGQtdG9tY2F0LXNlcnZlci9vcmcuZWNsaXBzZS52aXJnby5rZXJuZWwubGliLmtlcm5lbC5wcm9kdWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTIzNjIxLi4wMDAwMDAwCi0tLSBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmxpYi5rZXJuZWwucHJvZHVjdAorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4NCi08P3BkZSB2ZXJzaW9uPSIzLjUiPz4NCi0NCi08IS0tfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KLSAgfiBDb3B5cmlnaHQgKGMpIDIwMTAgU0FQIEFHDQotICB+IEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCi0gIH4gYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQotICB+IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICB+IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICB+DQotICB+IENvbnRyaWJ1dG9yczoNCi0gIH4gICAgSHJpc3RvIElsaWV2LCBTQVAgQUcgLSBpbml0aWFsIGNvbnRyaWJ1dGlvbg0KLSAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+LS0+DQotDQotPHByb2R1Y3QgbmFtZT0iVmlyZ28gS2VybmVsIERpc3RyaWJ1dGlvbiAoa2VybmVsIHJlZ2lvbikiIHVpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmxpYi5rZXJuZWwucHJvZHVjdCIgdmVyc2lvbj0iMS4wLjAiDQotICAgICAgICAgdXNlRmVhdHVyZXM9ImZhbHNlIiBpbmNsdWRlTGF1bmNoZXJzPSJmYWxzZSI+DQotDQotICAgIDxwbHVnaW5zPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYW9wYWxsaWFuY2UiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2Uub3JnLmFwYWNoZS5jb21tb25zLmNvZGVjIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hcGFjaGUuY29tbW9ucy5odHRwY2xpZW50Ii8+DQotCQk8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hcGFjaGUubWluYS5jb3JlIi8+DQotCQk8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hcGFjaGUuc3NoZCIvPg0KLQkJPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXNwZWN0ai53ZWF2ZXIiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2Uuc2xmNGouYXBpIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLnNsZjRqLm9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmNvbmZpZ2FkbWluIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmV2ZW50YWRtaW4iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5hZ2VudC5kbSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmFydGlmYWN0Ii8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuY29yZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmRlcGxveWVyIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuZG0iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5rZXJuZWxkbWZyYWdtZW50Ii8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwubW9kZWwiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5vc2dpIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuc2VydmljZXMiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5zaGVsbCIvPg0KLQkJPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLnVzZXJyZWdpb24iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLm1lZGljIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5tZWRpYy5jb3JlIi8+DQotCQk8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5vc2dpLmxhdW5jaGVyIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5yZXBvc2l0b3J5Ii8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLm9zZ2kiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnV0aWwuY29tbW9uIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLmlvIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLmpteCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5tYXRoIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLnBhcnNlci5tYW5pZmVzdCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5hb3AiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuYXNtIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmV4cHJlc3Npb24iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuY29yZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5jb250ZXh0Ii8+DQotCQk8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmNvbnRleHQuc3VwcG9ydCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmNvcmUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsub3NnaS5leHRlbmRlciIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmlvIi8+DQotICAgIDwvcGx1Z2lucz4NCi0NCi0gICAgPGNvbmZpZ3VyYXRpb25zPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5zbGY0ai5hcGkiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5zbGY0ai5vcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZyIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hc3BlY3RqLndlYXZlciIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5tZWRpYyIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmNvbmZpZ2FkbWluIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLm1lZGljLmNvcmUiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5vc2dpIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZXZlbnRhZG1pbiIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLmNvbW1vbiIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLmlvIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnV0aWwuam14IiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLm1hdGgiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5wYXJzZXIubWFuaWZlc3QiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXBhY2hlLmNvbW1vbnMuY29kZWMiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXBhY2hlLmNvbW1vbnMuaHR0cGNsaWVudCIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5yZXBvc2l0b3J5IiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuYW9wIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmFzbSIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5leHByZXNzaW9uIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmNvcmUiIGF1dG9zdGFydD0iZmFsc2UiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuY29udGV4dCIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmNvcmUiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmFnZW50LmRtIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsub3NnaS5jb3JlIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLm9zZ2kuZXh0ZW5kZXIiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmlvIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hb3BhbGxpYW5jZSIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmFydGlmYWN0IiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5zZXJ2aWNlcyIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwub3NnaSIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuZGVwbG95ZXIiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmRtIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5tb2RlbCIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwua2VybmVsZG1mcmFnbWVudCIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuc2hlbGwiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICA8L2NvbmZpZ3VyYXRpb25zPg0KLQ0KLTwvcHJvZHVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5saWIucHJvZHVjdCBiL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmxpYi5wcm9kdWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDMwNjI1Li4wMDAwMDAwCi0tLSBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmxpYi5wcm9kdWN0CisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+DQotPD9wZGUgdmVyc2lvbj0iMy41Ij8+DQotDQotPCEtLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCi0gIH4gQ29weXJpZ2h0IChjKSAyMDEwIFNBUCBBRw0KLSAgfiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQotICB+IGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KLSAgfiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAgfiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAgfg0KLSAgfiBDb250cmlidXRvcnM6DQotICB+ICAgIEhyaXN0byBJbGlldiwgU0FQIEFHIC0gaW5pdGlhbCBjb250cmlidXRpb24NCi0gIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fi0tPg0KLQ0KLTxwcm9kdWN0IG5hbWU9IlZpcmdvIEtlcm5lbCBEaXN0cmlidXRpb24gKHVzZXIgcmVnaW9uKSIgdWlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwubGliLnByb2R1Y3QiIHZlcnNpb249IjEuMC4wIg0KLSAgICAgICAgIHVzZUZlYXR1cmVzPSJmYWxzZSIgaW5jbHVkZUxhdW5jaGVycz0iZmFsc2UiPg0KLQ0KLSAgICA8cGx1Z2lucz4NCi0JCTxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5yZXNvdXJjZXMiLz4NCi0JCTxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2UuamF2YXgudHJhbnNhY3Rpb24iLz4NCi0JCTxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2Uub3JnLmFvcGFsbGlhbmNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hcGFjaGUuY29tbW9ucy5jb2RlYyIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXBhY2hlLmNvbW1vbnMuaHR0cGNsaWVudCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZyIvPg0KLQkJPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXBhY2hlLm1pbmEuY29yZSIvPg0KLQkJPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXBhY2hlLnNzaGQiLz4NCi0JCTxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2Uub3JnLmFzcGVjdGoucnVudGltZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5zbGY0ai5hcGkiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguY29uZmlnYWRtaW4iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZXZlbnRhZG1pbiIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmFydGlmYWN0Ii8+DQotCQk8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuYXV0aGVudGljYXRpb24iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5jb3JlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuZGVwbG95ZXIiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5tb2RlbCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLm9zZ2kiLz4NCi0JCTxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5vc2dpY29tbWFuZCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLnNlcnZpY2VzIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuc2hlbGwiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLm1lZGljIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5tZWRpYy5jb3JlIi8+DQotCQk8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5vc2dpLmV4dGVuc2lvbnMuZXF1aW5veCIvPg0KLQkJPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ub3NnaS5sYXVuY2hlciIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ucmVwb3NpdG9yeSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5jb21tb24iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnV0aWwuaW8iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnV0aWwuam14Ii8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLm1hdGgiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnV0aWwub3NnaSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5wYXJzZXIubWFuaWZlc3QiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuYW9wIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmFzbSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5leHByZXNzaW9uIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmNvcmUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuY29udGV4dCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmNvcmUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsub3NnaS5leHRlbmRlciIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmlvIi8+DQotICAgIDwvcGx1Z2lucz4NCi0NCi0gICAgPGNvbmZpZ3VyYXRpb25zPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5zbGY0ai5hcGkiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ubWVkaWMiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5jb25maWdhZG1pbiIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5tZWRpYy5jb3JlIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnV0aWwub3NnaSIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmV2ZW50YWRtaW4iIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5jb21tb24iIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5pbyIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLmpteCIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5tYXRoIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnV0aWwucGFyc2VyLm1hbmlmZXN0IiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2Uub3JnLmFwYWNoZS5jb21tb25zLmNvZGVjIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2Uub3JnLmFwYWNoZS5jb21tb25zLmh0dHBjbGllbnQiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ucmVwb3NpdG9yeSIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmFvcCIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5hc20iIGF1dG9zdGFydD0iZmFsc2UiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuZXhwcmVzc2lvbiIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5iZWFucyIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5jb3JlIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmNvbnRleHQiIGF1dG9zdGFydD0iZmFsc2UiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5jb3JlIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsub3NnaS5jb3JlIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLm9zZ2kuZXh0ZW5kZXIiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmlvIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hb3BhbGxpYW5jZSIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmFydGlmYWN0IiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5zZXJ2aWNlcyIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwub3NnaSIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuZGVwbG95ZXIiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLm1vZGVsIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5zaGVsbCIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgIDwvY29uZmlndXJhdGlvbnM+DQotDQotPC9wcm9kdWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLnByb2R1Y3QgYi9idWlsZC10b21jYXQtc2VydmVyL29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5wcm9kdWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MDNhMDgyLi4wMDAwMDAwCi0tLSBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLnByb2R1Y3QKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4NCi08P3BkZSB2ZXJzaW9uPSIzLjUiPz4NCi0NCi08IS0tfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KLSAgfiBDb3B5cmlnaHQgKGMpIDIwMTAgU0FQIEFHDQotICB+IEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCi0gIH4gYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQotICB+IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotICB+IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotICB+DQotICB+IENvbnRyaWJ1dG9yczoNCi0gIH4gICAgSHJpc3RvIElsaWV2LCBTQVAgQUcgLSBpbml0aWFsIGNvbnRyaWJ1dGlvbg0KLSAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+LS0+DQotDQotPHByb2R1Y3QgbmFtZT0iVmlyZ28gS2VybmVsIERpc3RyaWJ1dGlvbiIgdWlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwucHJvZHVjdCIgdmVyc2lvbj0iMS4wLjAiDQotICAgICAgICAgdXNlRmVhdHVyZXM9ImZhbHNlIiBpbmNsdWRlTGF1bmNoZXJzPSJmYWxzZSI+DQotDQotICAgIDxwbHVnaW5zPg0KLQkJPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLnJlc291cmNlcyIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5zbGY0ai5hcGkiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2Uuc2xmNGoub3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmciLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2Uub3JnLmFzcGVjdGoud2VhdmVyIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5tZWRpYyIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmFwYWNoZS5mZWxpeC5jb25maWdhZG1pbiIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ubWVkaWMuY29yZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5vc2dpIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmV2ZW50YWRtaW4iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnV0aWwuY29tbW9uIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLmlvIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLmpteCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5tYXRoIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLnBhcnNlci5tYW5pZmVzdCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXBhY2hlLmNvbW1vbnMuY29kZWMiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9ImNvbS5zcHJpbmdzb3VyY2Uub3JnLmFwYWNoZS5jb21tb25zLmh0dHBjbGllbnQiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnJlcG9zaXRvcnkiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuYW9wIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmFzbSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5leHByZXNzaW9uIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmNvcmUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuY29udGV4dCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmNvcmUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5hZ2VudC5kbSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmNvcmUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsub3NnaS5leHRlbmRlciIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmlvIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hb3BhbGxpYW5jZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmFydGlmYWN0Ii8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuc2VydmljZXMiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5vc2dpIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuZGVwbG95ZXIiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5kbSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLm1vZGVsIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwua2VybmVsZG1mcmFnbWVudCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLnNoZWxsIi8+DQotICAgIDwvcGx1Z2lucz4NCi0NCi0gICAgPGNvbmZpZ3VyYXRpb25zPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5zbGY0ai5hcGkiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5zbGY0ai5vcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZyIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hc3BlY3RqLndlYXZlciIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5tZWRpYyIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuYXBhY2hlLmZlbGl4LmNvbmZpZ2FkbWluIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLm1lZGljLmNvcmUiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5vc2dpIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5hcGFjaGUuZmVsaXguZXZlbnRhZG1pbiIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLmNvbW1vbiIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLmlvIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLnV0aWwuam14IiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby51dGlsLm1hdGgiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28udXRpbC5wYXJzZXIubWFuaWZlc3QiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXBhY2hlLmNvbW1vbnMuY29kZWMiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYXBhY2hlLmNvbW1vbnMuaHR0cGNsaWVudCIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5yZXBvc2l0b3J5IiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuYW9wIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmFzbSIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5leHByZXNzaW9uIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmNvcmUiIGF1dG9zdGFydD0iZmFsc2UiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuY29udGV4dCIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmNvcmUiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmFnZW50LmRtIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsub3NnaS5jb3JlIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLm9zZ2kuZXh0ZW5kZXIiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmlvIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hb3BhbGxpYW5jZSIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmFydGlmYWN0IiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5zZXJ2aWNlcyIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwub3NnaSIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuZGVwbG95ZXIiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmRtIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5tb2RlbCIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwua2VybmVsZG1mcmFnbWVudCIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuc2hlbGwiIGF1dG9zdGFydD0idHJ1ZSIvPg0KLSAgICA8L2NvbmZpZ3VyYXRpb25zPg0KLQ0KLTwvcHJvZHVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5yZXBvc2l0b3J5LmV4dC5wcm9kdWN0IGIvYnVpbGQtdG9tY2F0LXNlcnZlci9vcmcuZWNsaXBzZS52aXJnby5rZXJuZWwucmVwb3NpdG9yeS5leHQucHJvZHVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZlNjRlZS4uMDAwMDAwMAotLS0gYS9idWlsZC10b21jYXQtc2VydmVyL29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5yZXBvc2l0b3J5LmV4dC5wcm9kdWN0CisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+DQotPD9wZGUgdmVyc2lvbj0iMy41Ij8+DQotDQotPCEtLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCi0gIH4gQ29weXJpZ2h0IChjKSAyMDEwIFNBUCBBRw0KLSAgfiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQotICB+IGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KLSAgfiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAgfiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSAgfg0KLSAgfiBDb250cmlidXRvcnM6DQotICB+ICAgIEhyaXN0byBJbGlldiwgU0FQIEFHIC0gaW5pdGlhbCBjb250cmlidXRpb24NCi0gIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fi0tPg0KLQ0KLTxwcm9kdWN0IG5hbWU9IlZpcmdvIEtlcm5lbCBEaXN0cmlidXRpb24gKHJlcG9zaXRvcnkvZXh0KSIgdWlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwucmVwb3NpdG9yeS5leHQucHJvZHVjdCIgdmVyc2lvbj0iMS4wLjAiDQotICAgICAgICAgdXNlRmVhdHVyZXM9ImZhbHNlIiBpbmNsdWRlTGF1bmNoZXJzPSJmYWxzZSI+DQotDQotICAgIDxwbHVnaW5zPg0KLSAgICAgICAgPHBsdWdpbiBpZD0iY29tLnNwcmluZ3NvdXJjZS5vcmcuYW9wYWxsaWFuY2UiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC5hZ2VudC5kbSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmRlcGxveWVyLmRtIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwuZG1mcmFnbWVudCIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5hb3AiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuYXNtIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmV4cHJlc3Npb24iLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuY29yZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5jb250ZXh0Ii8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLm9zZ2kuY29yZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmV4dGVuZGVyIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLm9zZ2kuaW8iLz4NCi0gICAgPC9wbHVnaW5zPg0KLQ0KLSAgICA8Y29uZmlndXJhdGlvbnM+DQotICAgICAgICA8cGx1Z2luIGlkPSJjb20uc3ByaW5nc291cmNlLm9yZy5hb3BhbGxpYW5jZSIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLmFnZW50LmRtIiBhdXRvc3RhcnQ9InRydWUiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuYW9wIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmFzbSIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5leHByZXNzaW9uIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zIiBhdXRvc3RhcnQ9ImZhbHNlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLmNvcmUiIGF1dG9zdGFydD0iZmFsc2UiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsuY29udGV4dCIgYXV0b3N0YXJ0PSJmYWxzZSIvPg0KLSAgICAgICAgPHBsdWdpbiBpZD0ib3JnLnNwcmluZ2ZyYW1ld29yay5vc2dpLmNvcmUiIGF1dG9zdGFydD0iZmFsc2UiLz4NCi0gICAgICAgIDxwbHVnaW4gaWQ9Im9yZy5zcHJpbmdmcmFtZXdvcmsub3NnaS5leHRlbmRlciIgYXV0b3N0YXJ0PSJ0cnVlIi8+DQotICAgICAgICA8cGx1Z2luIGlkPSJvcmcuc3ByaW5nZnJhbWV3b3JrLm9zZ2kuaW8iIGF1dG9zdGFydD0iZmFsc2UiLz4NCi0gICAgPC9jb25maWd1cmF0aW9ucz4NCi0NCi08L3Byb2R1Y3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvYnVpbGQtdG9tY2F0LXNlcnZlci9wMi5pbmYgYi9idWlsZC10b21jYXQtc2VydmVyL3AyLmluZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA5YWQ3Mi4uMDAwMDAwMAotLS0gYS9idWlsZC10b21jYXQtc2VydmVyL3AyLmluZgorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQotIyBDb3B5cmlnaHQgKGMpIDIwMTAgU0FQIEFHDQotIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCi0jIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KLSMNCi0jIENvbnRyaWJ1dG9yczoNCi0jICAgIEhyaXN0byBJbGlldiwgU0FQIEFHIC0gaW5pdGlhbCBjb250cmlidXRpb24NCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLXByb3BlcnRpZXMuMS5uYW1lID0gb3JnLmVjbGlwc2UuZXF1aW5veC5wMi50eXBlLmNhdGVnb3J5DQotcHJvcGVydGllcy4xLnZhbHVlID0gdHJ1ZQ0KZGlmZiAtLWdpdCBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcHVibGlzaF9yZXNvdXJjZXMvZmVhdHVyZXMvb3JnLmVjbGlwc2UudmlyZ28udG9tY2F0LnJlc291cmNlcy8ucHJvamVjdCBiL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcHVibGlzaF9yZXNvdXJjZXMvZmVhdHVyZXMvb3JnLmVjbGlwc2UudmlyZ28udG9tY2F0LnJlc291cmNlcy8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDgyNjRiCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtdG9tY2F0LXNlcnZlci9wdWJsaXNoX3Jlc291cmNlcy9mZWF0dXJlcy9vcmcuZWNsaXBzZS52aXJnby50b21jYXQucmVzb3VyY2VzLy5wcm9qZWN0CkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPm9yZy5lY2xpcHNlLnZpcmdvLmNvcmUuZmVhdHVyZTwvbmFtZT4KKwk8Y29tbWVudD48L2NvbW1lbnQ+CisJPHByb2plY3RzPgorCTwvcHJvamVjdHM+CisJPGJ1aWxkU3BlYz4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVOYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcHVibGlzaF9yZXNvdXJjZXMvZmVhdHVyZXMvb3JnLmVjbGlwc2UudmlyZ28udG9tY2F0LnJlc291cmNlcy9idWlsZC5wcm9wZXJ0aWVzIGIvYnVpbGQtdG9tY2F0LXNlcnZlci9wdWJsaXNoX3Jlc291cmNlcy9mZWF0dXJlcy9vcmcuZWNsaXBzZS52aXJnby50b21jYXQucmVzb3VyY2VzL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI4MGFkZAotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcHVibGlzaF9yZXNvdXJjZXMvZmVhdHVyZXMvb3JnLmVjbGlwc2UudmlyZ28udG9tY2F0LnJlc291cmNlcy9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsNCBAQAorYmluLmluY2x1ZGVzID0gZmVhdHVyZS54bWwsXAorICAgICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzLFwKKyAgICAgICAgICAgICAgIGVwbC12MTAuaHRtbCxcCisgICAgICAgICAgICAgICBlY2xpcHNlX3VwZGF0ZV8xMjAuanBnCmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL3B1Ymxpc2hfcmVzb3VyY2VzL2ZlYXR1cmVzL29yZy5lY2xpcHNlLnZpcmdvLnRvbWNhdC5yZXNvdXJjZXMvZWNsaXBzZV91cGRhdGVfMTIwLmpwZyBiL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcHVibGlzaF9yZXNvdXJjZXMvZmVhdHVyZXMvb3JnLmVjbGlwc2UudmlyZ28udG9tY2F0LnJlc291cmNlcy9lY2xpcHNlX3VwZGF0ZV8xMjAuanBnCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmZGY3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC10b21jYXQtc2VydmVyL3B1Ymxpc2hfcmVzb3VyY2VzL2ZlYXR1cmVzL29yZy5lY2xpcHNlLnZpcmdvLnRvbWNhdC5yZXNvdXJjZXMvZWNsaXBzZV91cGRhdGVfMTIwLmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL3Jlc291cmNlcy9lcGwtdjEwLmh0bWwgYi9idWlsZC10b21jYXQtc2VydmVyL3B1Ymxpc2hfcmVzb3VyY2VzL2ZlYXR1cmVzL29yZy5lY2xpcHNlLnZpcmdvLnRvbWNhdC5yZXNvdXJjZXMvZXBsLXYxMC5odG1sCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGJ1aWxkLXRvbWNhdC1zZXJ2ZXIvcmVzb3VyY2VzL2VwbC12MTAuaHRtbApyZW5hbWUgdG8gYnVpbGQtdG9tY2F0LXNlcnZlci9wdWJsaXNoX3Jlc291cmNlcy9mZWF0dXJlcy9vcmcuZWNsaXBzZS52aXJnby50b21jYXQucmVzb3VyY2VzL2VwbC12MTAuaHRtbApkaWZmIC0tZ2l0IGEvYnVpbGQtdG9tY2F0LXNlcnZlci9wdWJsaXNoX3Jlc291cmNlcy9mZWF0dXJlcy9vcmcuZWNsaXBzZS52aXJnby50b21jYXQucmVzb3VyY2VzL2ZlYXR1cmUucHJvcGVydGllcyBiL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcHVibGlzaF9yZXNvdXJjZXMvZmVhdHVyZXMvb3JnLmVjbGlwc2UudmlyZ28udG9tY2F0LnJlc291cmNlcy9mZWF0dXJlLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjczNGI1MwotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcHVibGlzaF9yZXNvdXJjZXMvZmVhdHVyZXMvb3JnLmVjbGlwc2UudmlyZ28udG9tY2F0LnJlc291cmNlcy9mZWF0dXJlLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxODkgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDExIFNBUCBBRworIworIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhbmQgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4KKyMgVGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgaXMgYXZhaWxhYmxlIGF0CisjICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgYW5kIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIGlzIGF2YWlsYWJsZSBhdAorIyAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYXBhY2hlMi4wLnBocC4KKyMgWW91IG1heSBlbGVjdCB0byByZWRpc3RyaWJ1dGUgdGhpcyBjb2RlIHVuZGVyIGVpdGhlciBvZiB0aGVzZSBsaWNlbnNlcy4KKyMKKyMgQ29udHJpYnV0b3JzOgorIyAgIEJvcmlzbGF2IEthcHVrYXJhbm92IC0gaW5pdGlhbCBjb250cmlidXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgZmVhdHVyZS5wcm9wZXJ0aWVzCisjIGNvbnRhaW5zIGV4dGVybmFsaXplZCBzdHJpbmdzIGZvciBmZWF0dXJlLnhtbAorIyAiJWZvbyIgaW4gZmVhdHVyZS54bWwgY29ycmVzcG9uZHMgdG8gdGhlIGtleSAiZm9vIiBpbiB0aGlzIGZpbGUKKyMgamF2YS5pby5Qcm9wZXJ0aWVzIGZpbGUgKElTTyA4ODU5LTEgd2l0aCAiXCIgZXNjYXBlcykKKyMgVGhpcyBmaWxlIHNob3VsZCBiZSB0cmFuc2xhdGVkLgorCisjICJmZWF0dXJlTmFtZSIgcHJvcGVydHkgLSBuYW1lIG9mIHRoZSBmZWF0dXJlCitmZWF0dXJlTmFtZT1FY2xpcHNlIFZpcmdvIFRvbWNhdCBTZXJ2ZXIgUmVzb3VyY2VzIEZlYXR1cmUKKworIyAicHJvdmlkZXJOYW1lIiBwcm9wZXJ0eSAtIG5hbWUgb2YgdGhlIGNvbXBhbnkgdGhhdCBwcm92aWRlcyB0aGUgZmVhdHVyZQorcHJvdmlkZXJOYW1lPUVjbGlwc2Uub3JnCisKKyMgInVwZGF0ZVNpdGVOYW1lIiBwcm9wZXJ0eSAtIGxhYmVsIGZvciB0aGUgdXBkYXRlIHNpdGUKKworIyAiZGVzY3JpcHRpb24iIHByb3BlcnR5IC0gZGVzY3JpcHRpb24gb2YgdGhlIGZlYXR1cmUKK2Rlc2NyaXB0aW9uPVRoaXMgZmVhdHVyZSBwcm92aWRlcyBjb25maWd1cmF0aW9ucyBzdWNoIGFzIHRvbWNhdCdzIGNvbmZpZ3VyYXRpb24gYW5kIHVwZGF0ZXMgdG8gdGhlIHVzZXIgcmVnaW9uIGFydGlmYWN0cy5cblwKKworIyAiY29weXJpZ2h0IiBwcm9wZXJ0eSAtIHRleHQgb2YgdGhlICJGZWF0dXJlIFVwZGF0ZSBDb3B5cmlnaHQiCitjb3B5cmlnaHQ9XAorQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEwLCAyMDExIFZNd2FyZSBJbmMuIGFuZCBvdGhlcnNcblwKK1xuXAorQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xuXAorYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXG5cCithbmQgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi5cblwKK1RoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIGlzIGF2YWlsYWJsZSBhdFxuXAoraHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcblwKK2FuZCB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCBpcyBhdmFpbGFibGUgYXRcblwKK2h0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYXBhY2hlMi4wLnBocC5cblwKK1lvdSBtYXkgZWxlY3QgdG8gcmVkaXN0cmlidXRlIHRoaXMgY29kZSB1bmRlciBlaXRoZXIgb2YgdGhlc2VcblwKK2xpY2Vuc2VzLlxuXAorXG5cCitDb250cmlidXRvcnM6XG5cCitWTXdhcmUgSW5jLiAtIGluaXRpYWwgY29udHJpYnV0aW9uXG5cCisKKyMgImxpY2Vuc2VVUkwiIHByb3BlcnR5IC0gVVJMIG9mIHRoZSAiRmVhdHVyZSBMaWNlbnNlIgorIyBkbyBub3QgdHJhbnNsYXRlIHZhbHVlIC0ganVzdCBjaGFuZ2UgdG8gcG9pbnQgdG8gYSBsb2NhbGUtc3BlY2lmaWMgSFRNTCBwYWdlCitsaWNlbnNlVVJMPWxpY2Vuc2UuaHRtbAorCisjICJsaWNlbnNlIiBwcm9wZXJ0eSAtIHRleHQgb2YgdGhlICJGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIgorIyBzaG91bGQgYmUgcGxhaW4gdGV4dCB2ZXJzaW9uIG9mIGxpY2Vuc2UgYWdyZWVtZW50IHBvaW50ZWQgdG8gYmUgImxpY2Vuc2VVUkwiCitsaWNlbnNlPVwKK0VjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudFxuXAorQXByaWwgMTQsIDIwMTBcblwKK1xuXAorVXNhZ2UgT2YgQ29udGVudFxuXAorXG5cCitUSEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTixcblwKK0lORk9STUFUSU9OIEFORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTXG5cCisoQ09MTEVDVElWRUxZICJDT05URU5UIikuIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVNcblwKK0FORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0ZcblwKK0xJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLlxuXAorQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTXG5cCitHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWVxuXAorQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRFxuXAorQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVNcblwKK0FHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0VcblwKK0FHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVywgVEhFTiBZT1UgTUFZXG5cCitOT1QgVVNFIFRIRSBDT05URU5ULlxuXAorXG5cCitBcHBsaWNhYmxlIExpY2Vuc2VzXG5cCitcblwKK1VubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uXG5cCitpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpY1xuXAorTGljZW5zZSBWZXJzaW9uIDEuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXNcblwKK0NvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sLlxuXAorRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCitcblwKK0NvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLFxuXAorZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlXG5cCityZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlXG5cCithcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKK1xuXAorLSBDb250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLFxuXAorZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnNcblwKKygiUGx1Zy1pbnMiKSwgcGx1Zy1pbiBmcmFnbWVudHMgKCJGcmFnbWVudHMiKSwgYW5kIGZlYXR1cmVzICgiRmVhdHVyZXMiKS5cblwKKy0gRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSXG5cCisoSmF2YSB0bSBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuXG5cCistIEEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkXG5cCittYXRlcmlhbC4gRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWRcblwKKyJmZWF0dXJlcyIuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0XG5cCitvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhc3NvY2lhdGVkXG5cCit3aXRoIHRoYXQgRmVhdHVyZS5cblwKKy0gRmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuXG5cCitXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGVcblwKK25hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgSW5jbHVkZWQgRmVhdHVyZXMuXG5cCitcblwKK1RoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmVcblwKK2NvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZFxuXAorY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWRcblwKK2luIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiICgiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmVcblwKK0xpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGVcblwKK2luY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOlxuXAorXG5cCistIFRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeVxuXAorLSBQbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3Rvcmllc1xuXAorLSBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCistIFN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnNcblwKKy0gRmVhdHVyZSBkaXJlY3Rvcmllc1xuXAorXG5cCitOb3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWRcblwKK3VzaW5nIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSAoYXMgZGVmaW5lZCBiZWxvdyksIHlvdSBtdXN0IGFncmVlIHRvIGFcblwKK2xpY2Vuc2UgKCJGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIikgZHVyaW5nIHRoZSBpbnN0YWxsYXRpb24gcHJvY2Vzcy5cblwKK0lmIHRoZSBGZWF0dXJlIGNvbnRhaW5zXG5cCitJbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlXG5cCit5b3Ugd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm1cblwKK3lvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW5cblwKK3RoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS5cblwKK1N1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXNcblwKK2FuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXJcblwKK3VzZSBvZiB0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAorXG5cCitUSEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSXG5cCitUTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy5cblwKK1NPTUUgT0YgVEhFU0UgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKK1xuXAorLSBDb21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdFxuXAoraHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCistIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0XG5cCitodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKKy0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXRcblwKK2h0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMClcblwKKy0gTWV0cm8gTGluayBQdWJsaWMgTGljZW5zZSAxLjAwIChhdmFpbGFibGUgYXRcblwKK2h0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vcGVubW90aWYvc3VwcG9ydGVycy9tZXRyb2xpbmsvbGljZW5zZS5odG1sKVxuXAorLSBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXRcblwKK2h0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbClcblwKK1xuXAorSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OU1xuXAorUFJJT1IgVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlXG5cCitVcGRhdGUgTGljZW5zZSBpcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0b1xuXAorZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAorXG5cCitVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKK1xuXAorVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlc1xuXAorb2Ygd2hpY2ggaW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyXG5cCisoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsXG5cCitkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuXG5cCitUaGlzIGNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8gaW5zdGFsbCxcblwKK2V4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuXG5cCitJbmZvcm1hdGlvbiBhYm91dCBwYWNrYWdpbmcgSW5zdGFsbGFibGUgU29mdHdhcmUgaXMgYXZhaWxhYmxlIGF0XG5cCitodHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sICgiU3BlY2lmaWNhdGlvbiIpLlxuXAorXG5cCitZb3UgbWF5IHVzZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSB0byBhbGxvdyBvdGhlciBwYXJ0aWVzIHRvIGluc3RhbGwgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCitZb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nIHRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZ1xuXAordG8gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIHRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LFxuXAordGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uXG5cCitCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZCBtYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2VcblwKK3dpdGggdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXIgYWdyZWVtZW50IHRvLFxuXAorYW5kIHRoZSBhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzpcblwKK1xuXAorLSBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlIHRoZVxuXAorUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgb24gYSBtYWNoaW5lICgiVGFyZ2V0IE1hY2hpbmUiKSB3aXRoIHRoZSBpbnRlbnQgb2YgaW5zdGFsbGluZyxcblwKK2V4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBFY2xpcHNlLWJhc2VkIHByb2R1Y3QuXG5cCistIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmQgcGFydHlcblwKK0luc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLlxuXAorLSBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdFxuXAorZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlICgiSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IilcblwKK2FuZCBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQgTWFjaGluZSBpbiBhY2NvcmRhbmNlXG5cCit3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkgdGhlIGVuZCB1c2VyIGluXG5cCit0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQuXG5cCitVcG9uIHN1Y2ggaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAord2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAorXG5cCitDcnlwdG9ncmFwaHlcblwKK1xuXAorQ29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlXG5cCitjdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZCB1c2UsXG5cCithbmQvb3IgcmUtZXhwb3J0IHRvIGFub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4gQkVGT1JFXG5cCit1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cyxcblwKK3JlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSxcblwKK2FuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLlxuXAorXG5cCitKYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mIE9yYWNsZSBDb3Jwb3JhdGlvbiBpbiB0aGUgVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLlxuXApkaWZmIC0tZ2l0IGEvYnVpbGQtdG9tY2F0LXNlcnZlci9wdWJsaXNoX3Jlc291cmNlcy9mZWF0dXJlcy9vcmcuZWNsaXBzZS52aXJnby50b21jYXQucmVzb3VyY2VzL2ZlYXR1cmUueG1sIGIvYnVpbGQtdG9tY2F0LXNlcnZlci9wdWJsaXNoX3Jlc291cmNlcy9mZWF0dXJlcy9vcmcuZWNsaXBzZS52aXJnby50b21jYXQucmVzb3VyY2VzL2ZlYXR1cmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2ZTczMGIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC10b21jYXQtc2VydmVyL3B1Ymxpc2hfcmVzb3VyY2VzL2ZlYXR1cmVzL29yZy5lY2xpcHNlLnZpcmdvLnRvbWNhdC5yZXNvdXJjZXMvZmVhdHVyZS54bWwKQEAgLTAsMCArMSwyNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxmZWF0dXJlCisgICAgICBpZD0ib3JnLmVjbGlwc2UudmlyZ28udG9tY2F0LnJlc291cmNlcyIKKyAgICAgIGxhYmVsPSIlZmVhdHVyZU5hbWUiCisgICAgICB2ZXJzaW9uPSIxLjAuMCIKKyAgICAgIHByb3ZpZGVyLW5hbWU9IiVwcm92aWRlck5hbWUiCisgICAgICBpbWFnZT0iZWNsaXBzZV91cGRhdGVfMTIwLmpwZyI+CisKKyAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvdmlyZ28vIj4KKyAgICAgICVkZXNjcmlwdGlvbgorICAgPC9kZXNjcmlwdGlvbj4KKworICAgPGNvcHlyaWdodCB1cmw9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvdmlyZ28vIj4KKyAgICAgICVjb3B5cmlnaHQKKyAgIDwvY29weXJpZ2h0PgorCisgICA8bGljZW5zZSB1cmw9IiVsaWNlbnNlVVJMIj4KKyAgICAgICVsaWNlbnNlCisgICA8L2xpY2Vuc2U+CisgICAgCisgICAgPHBsdWdpbgorICAgICAgICAgaWQ9InRvbWNhdF9zZXJ2ZXJfcmVzb3VyY2VzIgorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKKyAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKKyAgICAgICAgIHZlcnNpb249IjEuMC4wIi8+CisKKzwvZmVhdHVyZT4KZGlmZiAtLWdpdCBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcHVibGlzaF9yZXNvdXJjZXMvcHJvZHVjdHMvdG9tY2F0LXNlcnZlci9wMi5pbmYgYi9idWlsZC10b21jYXQtc2VydmVyL3B1Ymxpc2hfcmVzb3VyY2VzL3Byb2R1Y3RzL3RvbWNhdC1zZXJ2ZXIvcDIuaW5mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNmYxMDkKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC10b21jYXQtc2VydmVyL3B1Ymxpc2hfcmVzb3VyY2VzL3Byb2R1Y3RzL3RvbWNhdC1zZXJ2ZXIvcDIuaW5mCkBAIC0wLDAgKzEsMTggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDExIFNBUCBBRworIworIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhbmQgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4KKyMgVGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgaXMgYXZhaWxhYmxlIGF0CisjICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgYW5kIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIGlzIGF2YWlsYWJsZSBhdAorIyAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYXBhY2hlMi4wLnBocC4KKyMgWW91IG1heSBlbGVjdCB0byByZWRpc3RyaWJ1dGUgdGhpcyBjb2RlIHVuZGVyIGVpdGhlciBvZiB0aGVzZSBsaWNlbnNlcy4KKyMKKyMgQ29udHJpYnV0b3JzOgorIyAgIEJvcmlzbGF2IEthcHVrYXJhbm92IC0gaW5pdGlhbCBjb250cmlidXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3JlcXVpcmVzLjAubmFtZSA9IGtlcm5lbC1iYXNlLnByb2R1Y3QKK3JlcXVpcmVzLjAubmFtZXNwYWNlID0gb3JnLmVjbGlwc2UuZXF1aW5veC5wMi5pdQorcmVxdWlyZXMuMC5yYW5nZSA9IDAuMC4wCmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL3B1Ymxpc2hfcmVzb3VyY2VzL3Byb2R1Y3RzL3RvbWNhdC1zZXJ2ZXIvdG9tY2F0LXNlcnZlci5wcm9kdWN0IGIvYnVpbGQtdG9tY2F0LXNlcnZlci9wdWJsaXNoX3Jlc291cmNlcy9wcm9kdWN0cy90b21jYXQtc2VydmVyL3RvbWNhdC1zZXJ2ZXIucHJvZHVjdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNGFlZWNjCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtdG9tY2F0LXNlcnZlci9wdWJsaXNoX3Jlc291cmNlcy9wcm9kdWN0cy90b21jYXQtc2VydmVyL3RvbWNhdC1zZXJ2ZXIucHJvZHVjdApAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/cGRlIHZlcnNpb249IjMuNSI/Pg0KKw0KKzxwcm9kdWN0IG5hbWU9IkVjbGlwc2UgVmlyZ28gS2VybmVsIFByb2R1Y3QiIHVpZD0idG9tY2F0LXNlcnZlci5wcm9kdWN0IiB2ZXJzaW9uPSIxLjAuMCIgdXNlRmVhdHVyZXM9InRydWUiIGluY2x1ZGVMYXVuY2hlcnM9ImZhbHNlIj4NCisNCisgICA8Y29uZmlnSW5pIHVzZT0iZGVmYXVsdCI+DQorICAgPC9jb25maWdJbmk+DQorICAgDQorICAgPHZtPg0KKyAgIDwvdm0+DQorDQorICAgPHBsdWdpbnM+DQorICAgPC9wbHVnaW5zPg0KKw0KKyAgIDxmZWF0dXJlcz4NCisgICAgICA8ZmVhdHVyZSBpZD0ib3JnLmVjbGlwc2UudmlyZ28udG9tY2F0LnJlc291cmNlcyIgdmVyc2lvbj0iMC4wLjAiLz4NCisgICAgICA8ZmVhdHVyZSBpZD0ib3JnLmVjbGlwc2UudmlyZ28uc2NyaXB0cyIgdmVyc2lvbj0iMC4wLjAiLz4NCisgICA8L2ZlYXR1cmVzPg0KKw0KKzwvcHJvZHVjdD4NCmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL3Jlc291cmNlcy9hYm91dF9maWxlcy9MSUNFTlNFLWRvam8udHh0IGIvYnVpbGQtdG9tY2F0LXNlcnZlci9yZXNvdXJjZXMvYWJvdXRfZmlsZXMvTElDRU5TRS1kb2pvLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQxNjc2YS4uMDAwMDAwMAotLS0gYS9idWlsZC10b21jYXQtc2VydmVyL3Jlc291cmNlcy9hYm91dF9maWxlcy9MSUNFTlNFLWRvam8udHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTk1ICswLDAgQEAKLURvam8gaXMgYXZhaWxhYmxlIHVuZGVyICplaXRoZXIqIHRoZSB0ZXJtcyBvZiB0aGUgbW9kaWZpZWQgQlNEIGxpY2Vuc2UgKm9yKiB0aGUKLUFjYWRlbWljIEZyZWUgTGljZW5zZSB2ZXJzaW9uIDIuMS4gQXMgYSByZWNpcGllbnQgb2YgRG9qbywgeW91IG1heSBjaG9vc2Ugd2hpY2gKLWxpY2Vuc2UgdG8gcmVjZWl2ZSB0aGlzIGNvZGUgdW5kZXIgKGV4Y2VwdCBhcyBub3RlZCBpbiBwZXItbW9kdWxlIExJQ0VOU0UKLWZpbGVzKS4gU29tZSBtb2R1bGVzIG1heSBub3QgYmUgdGhlIGNvcHlyaWdodCBvZiB0aGUgRG9qbyBGb3VuZGF0aW9uLiBUaGVzZQotbW9kdWxlcyBjb250YWluIGV4cGxpY2l0IGRlY2xhcmF0aW9ucyBvZiBjb3B5cmlnaHQgaW4gYm90aCB0aGUgTElDRU5TRSBmaWxlcyBpbgotdGhlIGRpcmVjdG9yaWVzIGluIHdoaWNoIHRoZXkgcmVzaWRlIGFuZCBpbiB0aGUgY29kZSBpdHNlbGYuIE5vIGV4dGVybmFsCi1jb250cmlidXRpb25zIGFyZSBhbGxvd2VkIHVuZGVyIGxpY2Vuc2VzIHdoaWNoIGFyZSBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZQotd2l0aCB0aGUgQUZMIG9yIEJTRCBsaWNlbnNlcyB0aGF0IERvam8gaXMgZGlzdHJpYnV0ZWQgdW5kZXIuCi0KLVRoZSB0ZXh0IG9mIHRoZSBBRkwgYW5kIEJTRCBsaWNlbnNlcyBpcyByZXByb2R1Y2VkIGJlbG93LiAKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotVGhlICJOZXciIEJTRCBMaWNlbnNlOgotKioqKioqKioqKioqKioqKioqKioqKgotCi1Db3B5cmlnaHQgKGMpIDIwMDUtMjAwOSwgVGhlIERvam8gRm91bmRhdGlvbgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgRG9qbyBGb3VuZGF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi1BTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLURBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi1TRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLU9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1UaGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlLCB2LiAyLjE6Ci0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLVRoaXMgQWNhZGVtaWMgRnJlZSBMaWNlbnNlICh0aGUgIkxpY2Vuc2UiKSBhcHBsaWVzIHRvIGFueSBvcmlnaW5hbCB3b3JrIG9mCi1hdXRob3JzaGlwICh0aGUgIk9yaWdpbmFsIFdvcmsiKSB3aG9zZSBvd25lciAodGhlICJMaWNlbnNvciIpIGhhcyBwbGFjZWQgdGhlCi1mb2xsb3dpbmcgbm90aWNlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgdGhlIE9yaWdpbmFsCi1Xb3JrOgotCi1MaWNlbnNlZCB1bmRlciB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIHZlcnNpb24gMi4xCi0KLTEpIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBMaWNlbnNvciBoZXJlYnkgZ3JhbnRzIFlvdSBhIHdvcmxkLXdpZGUsCi1yb3lhbHR5LWZyZWUsIG5vbi1leGNsdXNpdmUsIHBlcnBldHVhbCwgc3VibGljZW5zZWFibGUgbGljZW5zZSB0byBkbyB0aGUKLWZvbGxvd2luZzoKLQotYSkgdG8gcmVwcm9kdWNlIHRoZSBPcmlnaW5hbCBXb3JrIGluIGNvcGllczsKLQotYikgdG8gcHJlcGFyZSBkZXJpdmF0aXZlIHdvcmtzICgiRGVyaXZhdGl2ZSBXb3JrcyIpIGJhc2VkIHVwb24gdGhlIE9yaWdpbmFsCi1Xb3JrOwotCi1jKSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgT3JpZ2luYWwgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0byB0aGUKLXB1YmxpYzsKLQotZCkgdG8gcGVyZm9ybSB0aGUgT3JpZ2luYWwgV29yayBwdWJsaWNseTsgYW5kCi0KLWUpIHRvIGRpc3BsYXkgdGhlIE9yaWdpbmFsIFdvcmsgcHVibGljbHkuCi0KLTIpIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBMaWNlbnNvciBoZXJlYnkgZ3JhbnRzIFlvdSBhIHdvcmxkLXdpZGUsCi1yb3lhbHR5LWZyZWUsIG5vbi1leGNsdXNpdmUsIHBlcnBldHVhbCwgc3VibGljZW5zZWFibGUgbGljZW5zZSwgdW5kZXIgcGF0ZW50Ci1jbGFpbXMgb3duZWQgb3IgY29udHJvbGxlZCBieSB0aGUgTGljZW5zb3IgdGhhdCBhcmUgZW1ib2RpZWQgaW4gdGhlIE9yaWdpbmFsCi1Xb3JrIGFzIGZ1cm5pc2hlZCBieSB0aGUgTGljZW5zb3IsIHRvIG1ha2UsIHVzZSwgc2VsbCBhbmQgb2ZmZXIgZm9yIHNhbGUgdGhlCi1PcmlnaW5hbCBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzLgotCi0zKSBHcmFudCBvZiBTb3VyY2UgQ29kZSBMaWNlbnNlLiBUaGUgdGVybSAiU291cmNlIENvZGUiIG1lYW5zIHRoZSBwcmVmZXJyZWQKLWZvcm0gb2YgdGhlIE9yaWdpbmFsIFdvcmsgZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0IGFuZCBhbGwgYXZhaWxhYmxlCi1kb2N1bWVudGF0aW9uIGRlc2NyaWJpbmcgaG93IHRvIG1vZGlmeSB0aGUgT3JpZ2luYWwgV29yay4gTGljZW5zb3IgaGVyZWJ5Ci1hZ3JlZXMgdG8gcHJvdmlkZSBhIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgU291cmNlIENvZGUgb2YgdGhlIE9yaWdpbmFsCi1Xb3JrIGFsb25nIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBPcmlnaW5hbCBXb3JrIHRoYXQgTGljZW5zb3IgZGlzdHJpYnV0ZXMuCi1MaWNlbnNvciByZXNlcnZlcyB0aGUgcmlnaHQgdG8gc2F0aXNmeSB0aGlzIG9ibGlnYXRpb24gYnkgcGxhY2luZyBhCi1tYWNoaW5lLXJlYWRhYmxlIGNvcHkgb2YgdGhlIFNvdXJjZSBDb2RlIGluIGFuIGluZm9ybWF0aW9uIHJlcG9zaXRvcnkKLXJlYXNvbmFibHkgY2FsY3VsYXRlZCB0byBwZXJtaXQgaW5leHBlbnNpdmUgYW5kIGNvbnZlbmllbnQgYWNjZXNzIGJ5IFlvdSBmb3IgYXMKLWxvbmcgYXMgTGljZW5zb3IgY29udGludWVzIHRvIGRpc3RyaWJ1dGUgdGhlIE9yaWdpbmFsIFdvcmssIGFuZCBieSBwdWJsaXNoaW5nCi10aGUgYWRkcmVzcyBvZiB0aGF0IGluZm9ybWF0aW9uIHJlcG9zaXRvcnkgaW4gYSBub3RpY2UgaW1tZWRpYXRlbHkgZm9sbG93aW5nCi10aGUgY29weXJpZ2h0IG5vdGljZSB0aGF0IGFwcGxpZXMgdG8gdGhlIE9yaWdpbmFsIFdvcmsuCi0KLTQpIEV4Y2x1c2lvbnMgRnJvbSBMaWNlbnNlIEdyYW50LiBOZWl0aGVyIHRoZSBuYW1lcyBvZiBMaWNlbnNvciwgbm9yIHRoZSBuYW1lcwotb2YgYW55IGNvbnRyaWJ1dG9ycyB0byB0aGUgT3JpZ2luYWwgV29yaywgbm9yIGFueSBvZiB0aGVpciB0cmFkZW1hcmtzIG9yCi1zZXJ2aWNlIG1hcmtzLCBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKLU9yaWdpbmFsIFdvcmsgd2l0aG91dCBleHByZXNzIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbiBvZiB0aGUgTGljZW5zb3IuIE5vdGhpbmcKLWluIHRoaXMgTGljZW5zZSBzaGFsbCBiZSBkZWVtZWQgdG8gZ3JhbnQgYW55IHJpZ2h0cyB0byB0cmFkZW1hcmtzLCBjb3B5cmlnaHRzLAotcGF0ZW50cywgdHJhZGUgc2VjcmV0cyBvciBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIExpY2Vuc29yIGV4Y2VwdCBhcwotZXhwcmVzc2x5IHN0YXRlZCBoZXJlaW4uIE5vIHBhdGVudCBsaWNlbnNlIGlzIGdyYW50ZWQgdG8gbWFrZSwgdXNlLCBzZWxsIG9yCi1vZmZlciB0byBzZWxsIGVtYm9kaW1lbnRzIG9mIGFueSBwYXRlbnQgY2xhaW1zIG90aGVyIHRoYW4gdGhlIGxpY2Vuc2VkIGNsYWltcwotZGVmaW5lZCBpbiBTZWN0aW9uIDIuIE5vIHJpZ2h0IGlzIGdyYW50ZWQgdG8gdGhlIHRyYWRlbWFya3Mgb2YgTGljZW5zb3IgZXZlbiBpZgotc3VjaCBtYXJrcyBhcmUgaW5jbHVkZWQgaW4gdGhlIE9yaWdpbmFsIFdvcmsuIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlCi1pbnRlcnByZXRlZCB0byBwcm9oaWJpdCBMaWNlbnNvciBmcm9tIGxpY2Vuc2luZyB1bmRlciBkaWZmZXJlbnQgdGVybXMgZnJvbSB0aGlzCi1MaWNlbnNlIGFueSBPcmlnaW5hbCBXb3JrIHRoYXQgTGljZW5zb3Igb3RoZXJ3aXNlIHdvdWxkIGhhdmUgYSByaWdodCB0bwotbGljZW5zZS4KLQotNSkgVGhpcyBzZWN0aW9uIGludGVudGlvbmFsbHkgb21pdHRlZC4KLQotNikgQXR0cmlidXRpb24gUmlnaHRzLiBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgQ29kZSBvZiBhbnkgRGVyaXZhdGl2ZQotV29ya3MgdGhhdCBZb3UgY3JlYXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQgb3IgdHJhZGVtYXJrIG5vdGljZXMgZnJvbSB0aGUKLVNvdXJjZSBDb2RlIG9mIHRoZSBPcmlnaW5hbCBXb3JrLCBhcyB3ZWxsIGFzIGFueSBub3RpY2VzIG9mIGxpY2Vuc2luZyBhbmQgYW55Ci1kZXNjcmlwdGl2ZSB0ZXh0IGlkZW50aWZpZWQgdGhlcmVpbiBhcyBhbiAiQXR0cmlidXRpb24gTm90aWNlLiIgWW91IG11c3QgY2F1c2UKLXRoZSBTb3VyY2UgQ29kZSBmb3IgYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgY3JlYXRlIHRvIGNhcnJ5IGEgcHJvbWluZW50Ci1BdHRyaWJ1dGlvbiBOb3RpY2UgcmVhc29uYWJseSBjYWxjdWxhdGVkIHRvIGluZm9ybSByZWNpcGllbnRzIHRoYXQgWW91IGhhdmUKLW1vZGlmaWVkIHRoZSBPcmlnaW5hbCBXb3JrLgotCi03KSBXYXJyYW50eSBvZiBQcm92ZW5hbmNlIGFuZCBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBMaWNlbnNvciB3YXJyYW50cyB0aGF0Ci10aGUgY29weXJpZ2h0IGluIGFuZCB0byB0aGUgT3JpZ2luYWwgV29yayBhbmQgdGhlIHBhdGVudCByaWdodHMgZ3JhbnRlZCBoZXJlaW4KLWJ5IExpY2Vuc29yIGFyZSBvd25lZCBieSB0aGUgTGljZW5zb3Igb3IgYXJlIHN1YmxpY2Vuc2VkIHRvIFlvdSB1bmRlciB0aGUgdGVybXMKLW9mIHRoaXMgTGljZW5zZSB3aXRoIHRoZSBwZXJtaXNzaW9uIG9mIHRoZSBjb250cmlidXRvcihzKSBvZiB0aG9zZSBjb3B5cmlnaHRzCi1hbmQgcGF0ZW50IHJpZ2h0cy4gRXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gdGhlIGltbWVkaWF0ZWx5IHByb2NlZWRpbmcKLXNlbnRlbmNlLCB0aGUgT3JpZ2luYWwgV29yayBpcyBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2Ugb24gYW4gIkFTIElTIiBCQVNJUwotYW5kIFdJVEhPVVQgV0FSUkFOVFksIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLAotdGhlIHdhcnJhbnRpZXMgb2YgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotUFVSUE9TRS4gVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIE9GIFRIRSBPUklHSU5BTCBXT1JLIElTIFdJVEggWU9VLgotVGhpcyBESVNDTEFJTUVSIE9GIFdBUlJBTlRZIGNvbnN0aXR1dGVzIGFuIGVzc2VudGlhbCBwYXJ0IG9mIHRoaXMgTGljZW5zZS4gTm8KLWxpY2Vuc2UgdG8gT3JpZ2luYWwgV29yayBpcyBncmFudGVkIGhlcmV1bmRlciBleGNlcHQgdW5kZXIgdGhpcyBkaXNjbGFpbWVyLgotCi04KSBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gVW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAotd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsIHNoYWxsIHRoZQotTGljZW5zb3IgYmUgbGlhYmxlIHRvIGFueSBwZXJzb24gZm9yIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsLAotb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2UKLW9yIHRoZSB1c2Ugb2YgdGhlIE9yaWdpbmFsIFdvcmsgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGRhbWFnZXMgZm9yIGxvc3MKLW9mIGdvb2R3aWxsLCB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAotb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3Nlcy4gVGhpcyBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBzaGFsbCBub3QKLWFwcGx5IHRvIGxpYWJpbGl0eSBmb3IgZGVhdGggb3IgcGVyc29uYWwgaW5qdXJ5IHJlc3VsdGluZyBmcm9tIExpY2Vuc29yJ3MKLW5lZ2xpZ2VuY2UgdG8gdGhlIGV4dGVudCBhcHBsaWNhYmxlIGxhdyBwcm9oaWJpdHMgc3VjaCBsaW1pdGF0aW9uLiBTb21lCi1qdXJpc2RpY3Rpb25zIGRvIG5vdCBhbGxvdyB0aGUgZXhjbHVzaW9uIG9yIGxpbWl0YXRpb24gb2YgaW5jaWRlbnRhbCBvcgotY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzbyB0aGlzIGV4Y2x1c2lvbiBhbmQgbGltaXRhdGlvbiBtYXkgbm90IGFwcGx5IHRvIFlvdS4KLQotOSkgQWNjZXB0YW5jZSBhbmQgVGVybWluYXRpb24uIElmIFlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgT3JpZ2luYWwgV29yayBvcgotYSBEZXJpdmF0aXZlIFdvcmssIFlvdSBtdXN0IG1ha2UgYSByZWFzb25hYmxlIGVmZm9ydCB1bmRlciB0aGUgY2lyY3Vtc3RhbmNlcyB0bwotb2J0YWluIHRoZSBleHByZXNzIGFzc2VudCBvZiByZWNpcGllbnRzIHRvIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuIE5vdGhpbmcKLWVsc2UgYnV0IHRoaXMgTGljZW5zZSAob3IgYW5vdGhlciB3cml0dGVuIGFncmVlbWVudCBiZXR3ZWVuIExpY2Vuc29yIGFuZCBZb3UpCi1ncmFudHMgWW91IHBlcm1pc3Npb24gdG8gY3JlYXRlIERlcml2YXRpdmUgV29ya3MgYmFzZWQgdXBvbiB0aGUgT3JpZ2luYWwgV29yawotb3IgdG8gZXhlcmNpc2UgYW55IG9mIHRoZSByaWdodHMgZ3JhbnRlZCBpbiBTZWN0aW9uIDEgaGVyZWluLCBhbmQgYW55IGF0dGVtcHQKLXRvIGRvIHNvIGV4Y2VwdCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIChvciBhbm90aGVyIHdyaXR0ZW4gYWdyZWVtZW50Ci1iZXR3ZWVuIExpY2Vuc29yIGFuZCBZb3UpIGlzIGV4cHJlc3NseSBwcm9oaWJpdGVkIGJ5IFUuUy4gY29weXJpZ2h0IGxhdywgdGhlCi1lcXVpdmFsZW50IGxhd3Mgb2Ygb3RoZXIgY291bnRyaWVzLCBhbmQgYnkgaW50ZXJuYXRpb25hbCB0cmVhdHkuIFRoZXJlZm9yZSwgYnkKLWV4ZXJjaXNpbmcgYW55IG9mIHRoZSByaWdodHMgZ3JhbnRlZCB0byBZb3UgaW4gU2VjdGlvbiAxIGhlcmVpbiwgWW91IGluZGljYXRlCi1Zb3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIGFuZCBhbGwgb2YgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zLgotCi0xMCkgVGVybWluYXRpb24gZm9yIFBhdGVudCBBY3Rpb24uIFRoaXMgTGljZW5zZSBzaGFsbCB0ZXJtaW5hdGUgYXV0b21hdGljYWxseQotYW5kIFlvdSBtYXkgbm8gbG9uZ2VyIGV4ZXJjaXNlIGFueSBvZiB0aGUgcmlnaHRzIGdyYW50ZWQgdG8gWW91IGJ5IHRoaXMgTGljZW5zZQotYXMgb2YgdGhlIGRhdGUgWW91IGNvbW1lbmNlIGFuIGFjdGlvbiwgaW5jbHVkaW5nIGEgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltLAotYWdhaW5zdCBMaWNlbnNvciBvciBhbnkgbGljZW5zZWUgYWxsZWdpbmcgdGhhdCB0aGUgT3JpZ2luYWwgV29yayBpbmZyaW5nZXMgYQotcGF0ZW50LiBUaGlzIHRlcm1pbmF0aW9uIHByb3Zpc2lvbiBzaGFsbCBub3QgYXBwbHkgZm9yIGFuIGFjdGlvbiBhbGxlZ2luZwotcGF0ZW50IGluZnJpbmdlbWVudCBieSBjb21iaW5hdGlvbnMgb2YgdGhlIE9yaWdpbmFsIFdvcmsgd2l0aCBvdGhlciBzb2Z0d2FyZSBvcgotaGFyZHdhcmUuCi0KLTExKSBKdXJpc2RpY3Rpb24sIFZlbnVlIGFuZCBHb3Zlcm5pbmcgTGF3LiBBbnkgYWN0aW9uIG9yIHN1aXQgcmVsYXRpbmcgdG8gdGhpcwotTGljZW5zZSBtYXkgYmUgYnJvdWdodCBvbmx5IGluIHRoZSBjb3VydHMgb2YgYSBqdXJpc2RpY3Rpb24gd2hlcmVpbiB0aGUKLUxpY2Vuc29yIHJlc2lkZXMgb3IgaW4gd2hpY2ggTGljZW5zb3IgY29uZHVjdHMgaXRzIHByaW1hcnkgYnVzaW5lc3MsIGFuZCB1bmRlcgotdGhlIGxhd3Mgb2YgdGhhdCBqdXJpc2RpY3Rpb24gZXhjbHVkaW5nIGl0cyBjb25mbGljdC1vZi1sYXcgcHJvdmlzaW9ucy4gVGhlCi1hcHBsaWNhdGlvbiBvZiB0aGUgVW5pdGVkIE5hdGlvbnMgQ29udmVudGlvbiBvbiBDb250cmFjdHMgZm9yIHRoZSBJbnRlcm5hdGlvbmFsCi1TYWxlIG9mIEdvb2RzIGlzIGV4cHJlc3NseSBleGNsdWRlZC4gQW55IHVzZSBvZiB0aGUgT3JpZ2luYWwgV29yayBvdXRzaWRlIHRoZQotc2NvcGUgb2YgdGhpcyBMaWNlbnNlIG9yIGFmdGVyIGl0cyB0ZXJtaW5hdGlvbiBzaGFsbCBiZSBzdWJqZWN0IHRvIHRoZQotcmVxdWlyZW1lbnRzIGFuZCBwZW5hbHRpZXMgb2YgdGhlIFUuUy4gQ29weXJpZ2h0IEFjdCwgMTcgVS5TLkMuIMOCwqcgMTAxIGV0Ci1zZXEuLCB0aGUgZXF1aXZhbGVudCBsYXdzIG9mIG90aGVyIGNvdW50cmllcywgYW5kIGludGVybmF0aW9uYWwgdHJlYXR5LiBUaGlzCi1zZWN0aW9uIHNoYWxsIHN1cnZpdmUgdGhlIHRlcm1pbmF0aW9uIG9mIHRoaXMgTGljZW5zZS4KLQotMTIpIEF0dG9ybmV5cyBGZWVzLiBJbiBhbnkgYWN0aW9uIHRvIGVuZm9yY2UgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSBvcgotc2Vla2luZyBkYW1hZ2VzIHJlbGF0aW5nIHRoZXJldG8sIHRoZSBwcmV2YWlsaW5nIHBhcnR5IHNoYWxsIGJlIGVudGl0bGVkIHRvCi1yZWNvdmVyIGl0cyBjb3N0cyBhbmQgZXhwZW5zZXMsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCByZWFzb25hYmxlCi1hdHRvcm5leXMnIGZlZXMgYW5kIGNvc3RzIGluY3VycmVkIGluIGNvbm5lY3Rpb24gd2l0aCBzdWNoIGFjdGlvbiwgaW5jbHVkaW5nCi1hbnkgYXBwZWFsIG9mIHN1Y2ggYWN0aW9uLiBUaGlzIHNlY3Rpb24gc2hhbGwgc3Vydml2ZSB0aGUgdGVybWluYXRpb24gb2YgdGhpcwotTGljZW5zZS4KLQotMTMpIE1pc2NlbGxhbmVvdXMuIFRoaXMgTGljZW5zZSByZXByZXNlbnRzIHRoZSBjb21wbGV0ZSBhZ3JlZW1lbnQgY29uY2VybmluZwotdGhlIHN1YmplY3QgbWF0dGVyIGhlcmVvZi4gSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UgaXMgaGVsZCB0byBiZQotdW5lbmZvcmNlYWJsZSwgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgb25seSB0byB0aGUgZXh0ZW50IG5lY2Vzc2FyeSB0bwotbWFrZSBpdCBlbmZvcmNlYWJsZS4KLQotMTQpIERlZmluaXRpb24gb2YgIllvdSIgaW4gVGhpcyBMaWNlbnNlLiAiWW91IiB0aHJvdWdob3V0IHRoaXMgTGljZW5zZSwgd2hldGhlcgotaW4gdXBwZXIgb3IgbG93ZXIgY2FzZSwgbWVhbnMgYW4gaW5kaXZpZHVhbCBvciBhIGxlZ2FsIGVudGl0eSBleGVyY2lzaW5nIHJpZ2h0cwotdW5kZXIsIGFuZCBjb21wbHlpbmcgd2l0aCBhbGwgb2YgdGhlIHRlcm1zIG9mLCB0aGlzIExpY2Vuc2UuIEZvciBsZWdhbAotZW50aXRpZXMsICJZb3UiIGluY2x1ZGVzIGFueSBlbnRpdHkgdGhhdCBjb250cm9scywgaXMgY29udHJvbGxlZCBieSwgb3IgaXMKLXVuZGVyIGNvbW1vbiBjb250cm9sIHdpdGggeW91LiBGb3IgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAiY29udHJvbCIgbWVhbnMKLShpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2gKLWVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvciBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQKLSg1MCUpIG9yIG1vcmUgb2YgdGhlIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaAotZW50aXR5LgotCi0xNSkgUmlnaHQgdG8gVXNlLiBZb3UgbWF5IHVzZSB0aGUgT3JpZ2luYWwgV29yayBpbiBhbGwgd2F5cyBub3Qgb3RoZXJ3aXNlCi1yZXN0cmljdGVkIG9yIGNvbmRpdGlvbmVkIGJ5IHRoaXMgTGljZW5zZSBvciBieSBsYXcsIGFuZCBMaWNlbnNvciBwcm9taXNlcyBub3QKLXRvIGludGVyZmVyZSB3aXRoIG9yIGJlIHJlc3BvbnNpYmxlIGZvciBzdWNoIHVzZXMgYnkgWW91LgotCi1UaGlzIGxpY2Vuc2UgaXMgQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQgTGF3cmVuY2UgRS4gUm9zZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi1QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdGhpcyBsaWNlbnNlIHdpdGhvdXQKLW1vZGlmaWNhdGlvbi4gVGhpcyBsaWNlbnNlIG1heSBub3QgYmUgbW9kaWZpZWQgd2l0aG91dCB0aGUgZXhwcmVzcyB3cml0dGVuCi1wZXJtaXNzaW9uIG9mIGl0cyBjb3B5cmlnaHQgb3duZXIuCmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL3Jlc291cmNlcy9hYm91dF9maWxlcy9hcGFjaGUtdjIwLnR4dCBiL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcmVzb3VyY2VzL2Fib3V0X2ZpbGVzL2FwYWNoZS12MjAudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjQ1Njk1Li4wMDAwMDAwCi0tLSBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcmVzb3VyY2VzL2Fib3V0X2ZpbGVzL2FwYWNoZS12MjAudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAyICswLDAgQEAKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KLQotICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCi0KLSAgIDEuIERlZmluaXRpb25zLgotCi0gICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAotICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCi0KLSAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5Ci0gICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCi0KLSAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKLSAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KLSAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCi0gICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKLSAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCi0gICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKLSAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCi0KLSAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCi0KLSAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAotICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgotICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KLQotICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKLSAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKLSAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKLSAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KLQotICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKLSAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKLSAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawotICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KLQotICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAotICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQotICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKLSAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgotICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAotICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KLQotICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKLSAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKLSAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQotICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgotICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCi0gICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKLSAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKLSAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCi0gICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAotICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKLSAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAotICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKLSAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgotCi0gICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCi0gICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KLQotICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0gICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCi0gICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCi0gICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKLSAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCi0KLSAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAotICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLSAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAotICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCi0gICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQotICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKLSAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKLSAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91Ci0gICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQotICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yawotICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKLSAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKLSAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQotICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotCi0gICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQotICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0Ci0gICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQotICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0KLSAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCi0gICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKLQotICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwotICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAotCi0gICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKLSAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCi0gICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKLSAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCi0gICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAotCi0gICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKLSAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0Ci0gICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCi0gICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90Ci0gICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCi0gICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKLSAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCi0gICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCi0gICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAotICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwotICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKLSAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgotICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCi0gICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCi0gICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCi0gICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgotCi0gICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKLSAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKLSAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKLSAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAotICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCi0gICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgotCi0gICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCi0gICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKLSAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0gICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KLSAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKLSAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCi0gICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCi0KLSAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKLSAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKLSAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQotICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCi0KLSAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgotICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAotICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKLSAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCi0gICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCi0gICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKLSAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQotICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgotCi0gICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKLSAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAotICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKLSAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCi0gICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCi0gICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKLSAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKLSAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKLSAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCi0gICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCi0gICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCi0KLSAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKLSAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCi0gICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAotICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKLSAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5Ci0gICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgotICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAotICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5Ci0gICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCi0gICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KLQotICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCi0KLSAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KLQotICAgICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKLSAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKLSAgICAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCi0gICAgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQotICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCi0gICAgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCi0gICAgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKLSAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KLQotICAgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCi0KLSAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0KLSAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLQotICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL3Jlc291cmNlcy9hYm91dF9maWxlcy9jZGRsLTEwLnR4dCBiL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcmVzb3VyY2VzL2Fib3V0X2ZpbGVzL2NkZGwtMTAudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzA5MDU1Li4wMDAwMDAwCi0tLSBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcmVzb3VyY2VzL2Fib3V0X2ZpbGVzL2NkZGwtMTAudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzgwICswLDAgQEAKLUNPTU1PTiBERVZFTE9QTUVOVCBBTkQgRElTVFJJQlVUSU9OIExJQ0VOU0UgKENEREwpIFZlcnNpb24gMS4wCi0KLTEuIERlZmluaXRpb25zLgotCi0xLjEuICJDb250cmlidXRvciIgbWVhbnMgZWFjaCBpbmRpdmlkdWFsIG9yIGVudGl0eSB0aGF0Ci1jcmVhdGVzIG9yIGNvbnRyaWJ1dGVzIHRvIHRoZSBjcmVhdGlvbiBvZiBNb2RpZmljYXRpb25zLgotCi0xLjIuICJDb250cmlidXRvciBWZXJzaW9uIiBtZWFucyB0aGUgY29tYmluYXRpb24gb2YgdGhlCi1PcmlnaW5hbCBTb2Z0d2FyZSwgcHJpb3IgTW9kaWZpY2F0aW9ucyB1c2VkIGJ5IGEKLUNvbnRyaWJ1dG9yIChpZiBhbnkpLCBhbmQgdGhlIE1vZGlmaWNhdGlvbnMgbWFkZSBieSB0aGF0Ci1wYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLgotCi0xLjMuICJDb3ZlcmVkIFNvZnR3YXJlIiBtZWFucyAoYSkgdGhlIE9yaWdpbmFsIFNvZnR3YXJlLCBvcgotKGIpIE1vZGlmaWNhdGlvbnMsIG9yIChjKSB0aGUgY29tYmluYXRpb24gb2YgZmlsZXMKLWNvbnRhaW5pbmcgT3JpZ2luYWwgU29mdHdhcmUgd2l0aCBmaWxlcyBjb250YWluaW5nCi1Nb2RpZmljYXRpb25zLCBpbiBlYWNoIGNhc2UgaW5jbHVkaW5nIHBvcnRpb25zIHRoZXJlb2YuCi0KLTEuNC4gIkV4ZWN1dGFibGUiIG1lYW5zIHRoZSBDb3ZlcmVkIFNvZnR3YXJlIGluIGFueSBmb3JtCi1vdGhlciB0aGFuIFNvdXJjZSBDb2RlLgotCi0xLjUuICJJbml0aWFsIERldmVsb3BlciIgbWVhbnMgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5Ci10aGF0IGZpcnN0IG1ha2VzIE9yaWdpbmFsIFNvZnR3YXJlIGF2YWlsYWJsZSB1bmRlciB0aGlzCi1MaWNlbnNlLgotCi0xLjYuICJMYXJnZXIgV29yayIgbWVhbnMgYSB3b3JrIHdoaWNoIGNvbWJpbmVzIENvdmVyZWQKLVNvZnR3YXJlIG9yIHBvcnRpb25zIHRoZXJlb2Ygd2l0aCBjb2RlIG5vdCBnb3Zlcm5lZCBieSB0aGUKLXRlcm1zIG9mIHRoaXMgTGljZW5zZS4KLQotMS43LiAiTGljZW5zZSIgbWVhbnMgdGhpcyBkb2N1bWVudC4KLQotMS44LiAiTGljZW5zYWJsZSIgbWVhbnMgaGF2aW5nIHRoZSByaWdodCB0byBncmFudCwgdG8gdGhlCi1tYXhpbXVtIGV4dGVudCBwb3NzaWJsZSwgd2hldGhlciBhdCB0aGUgdGltZSBvZiB0aGUgaW5pdGlhbAotZ3JhbnQgb3Igc3Vic2VxdWVudGx5IGFjcXVpcmVkLCBhbnkgYW5kIGFsbCBvZiB0aGUgcmlnaHRzCi1jb252ZXllZCBoZXJlaW4uCi0KLTEuOS4gIk1vZGlmaWNhdGlvbnMiIG1lYW5zIHRoZSBTb3VyY2UgQ29kZSBhbmQgRXhlY3V0YWJsZQotZm9ybSBvZiBhbnkgb2YgdGhlIGZvbGxvd2luZzoKLQotQS4gQW55IGZpbGUgdGhhdCByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sCi1kZWxldGlvbiBmcm9tIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUgY29udGVudHMgb2YgYQotZmlsZSBjb250YWluaW5nIE9yaWdpbmFsIFNvZnR3YXJlIG9yIHByZXZpb3VzCi1Nb2RpZmljYXRpb25zOwotCi1CLiBBbnkgbmV3IGZpbGUgdGhhdCBjb250YWlucyBhbnkgcGFydCBvZiB0aGUKLU9yaWdpbmFsIFNvZnR3YXJlIG9yIHByZXZpb3VzIE1vZGlmaWNhdGlvbjsgb3IKLQotQy4gQW55IG5ldyBmaWxlIHRoYXQgaXMgY29udHJpYnV0ZWQgb3Igb3RoZXJ3aXNlIG1hZGUKLWF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgotCi0xLjEwLiAiT3JpZ2luYWwgU29mdHdhcmUiIG1lYW5zIHRoZSBTb3VyY2UgQ29kZSBhbmQKLUV4ZWN1dGFibGUgZm9ybSBvZiBjb21wdXRlciBzb2Z0d2FyZSBjb2RlIHRoYXQgaXMKLW9yaWdpbmFsbHkgcmVsZWFzZWQgdW5kZXIgdGhpcyBMaWNlbnNlLgotCi0xLjExLiAiUGF0ZW50IENsYWltcyIgbWVhbnMgYW55IHBhdGVudCBjbGFpbShzKSwgbm93IG93bmVkCi1vciBoZXJlYWZ0ZXIgYWNxdWlyZWQsIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24sCi1tZXRob2QsIHByb2Nlc3MsIGFuZCBhcHBhcmF0dXMgY2xhaW1zLCBpbiBhbnkgcGF0ZW50Ci1MaWNlbnNhYmxlIGJ5IGdyYW50b3IuCi0KLTEuMTIuICJTb3VyY2UgQ29kZSIgbWVhbnMgKGEpIHRoZSBjb21tb24gZm9ybSBvZiBjb21wdXRlcgotc29mdHdhcmUgY29kZSBpbiB3aGljaCBtb2RpZmljYXRpb25zIGFyZSBtYWRlIGFuZCAoYikKLWFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBpbmNsdWRlZCBpbiBvciB3aXRoIHN1Y2ggY29kZS4KLQotMS4xMy4gIllvdSIgKG9yICJZb3VyIikgbWVhbnMgYW4gaW5kaXZpZHVhbCBvciBhIGxlZ2FsCi1lbnRpdHkgZXhlcmNpc2luZyByaWdodHMgdW5kZXIsIGFuZCBjb21wbHlpbmcgd2l0aCBhbGwgb2YKLXRoZSB0ZXJtcyBvZiwgdGhpcyBMaWNlbnNlLiBGb3IgbGVnYWwgZW50aXRpZXMsICJZb3UiCi1pbmNsdWRlcyBhbnkgZW50aXR5IHdoaWNoIGNvbnRyb2xzLCBpcyBjb250cm9sbGVkIGJ5LCBvciBpcwotdW5kZXIgY29tbW9uIGNvbnRyb2wgd2l0aCBZb3UuIEZvciBwdXJwb3NlcyBvZiB0aGlzCi1kZWZpbml0aW9uLCAiY29udHJvbCIgbWVhbnMgKGEpIHRoZSBwb3dlciwgZGlyZWN0IG9yCi1pbmRpcmVjdCwgdG8gY2F1c2UgdGhlIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2gKLWVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvciBvdGhlcndpc2UsIG9yIChiKSBvd25lcnNoaXAKLW9mIG1vcmUgdGhhbiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9mIHRoZSBvdXRzdGFuZGluZyBzaGFyZXMKLW9yIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgotCi0yLiBMaWNlbnNlIEdyYW50cy4KLQotMi4xLiBUaGUgSW5pdGlhbCBEZXZlbG9wZXIgR3JhbnQuCi0KLUNvbmRpdGlvbmVkIHVwb24gWW91ciBjb21wbGlhbmNlIHdpdGggU2VjdGlvbiAzLjEgYmVsb3cgYW5kCi1zdWJqZWN0IHRvIHRoaXJkIHBhcnR5IGludGVsbGVjdHVhbCBwcm9wZXJ0eSBjbGFpbXMsIHRoZQotSW5pdGlhbCBEZXZlbG9wZXIgaGVyZWJ5IGdyYW50cyBZb3UgYSB3b3JsZC13aWRlLAotcm95YWx0eS1mcmVlLCBub24tZXhjbHVzaXZlIGxpY2Vuc2U6Ci0KLShhKSB1bmRlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIChvdGhlciB0aGFuCi1wYXRlbnQgb3IgdHJhZGVtYXJrKSBMaWNlbnNhYmxlIGJ5IEluaXRpYWwgRGV2ZWxvcGVyLAotdG8gdXNlLCByZXByb2R1Y2UsIG1vZGlmeSwgZGlzcGxheSwgcGVyZm9ybSwKLXN1YmxpY2Vuc2UgYW5kIGRpc3RyaWJ1dGUgdGhlIE9yaWdpbmFsIFNvZnR3YXJlIChvcgotcG9ydGlvbnMgdGhlcmVvZiksIHdpdGggb3Igd2l0aG91dCBNb2RpZmljYXRpb25zLAotYW5kL29yIGFzIHBhcnQgb2YgYSBMYXJnZXIgV29yazsgYW5kCi0KLShiKSB1bmRlciBQYXRlbnQgQ2xhaW1zIGluZnJpbmdlZCBieSB0aGUgbWFraW5nLAotdXNpbmcgb3Igc2VsbGluZyBvZiBPcmlnaW5hbCBTb2Z0d2FyZSwgdG8gbWFrZSwgaGF2ZQotbWFkZSwgdXNlLCBwcmFjdGljZSwgc2VsbCwgYW5kIG9mZmVyIGZvciBzYWxlLCBhbmQvb3IKLW90aGVyd2lzZSBkaXNwb3NlIG9mIHRoZSBPcmlnaW5hbCBTb2Z0d2FyZSAob3IKLXBvcnRpb25zIHRoZXJlb2YpLgotCi0oYykgVGhlIGxpY2Vuc2VzIGdyYW50ZWQgaW4gU2VjdGlvbnMgMi4xKGEpIGFuZCAoYikKLWFyZSBlZmZlY3RpdmUgb24gdGhlIGRhdGUgSW5pdGlhbCBEZXZlbG9wZXIgZmlyc3QKLWRpc3RyaWJ1dGVzIG9yIG90aGVyd2lzZSBtYWtlcyB0aGUgT3JpZ2luYWwgU29mdHdhcmUKLWF2YWlsYWJsZSB0byBhIHRoaXJkIHBhcnR5IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzCi1MaWNlbnNlLgotCi0oZCkgTm90d2l0aHN0YW5kaW5nIFNlY3Rpb24gMi4xKGIpIGFib3ZlLCBubyBwYXRlbnQKLWxpY2Vuc2UgaXMgZ3JhbnRlZDogKDEpIGZvciBjb2RlIHRoYXQgWW91IGRlbGV0ZSBmcm9tCi10aGUgT3JpZ2luYWwgU29mdHdhcmUsIG9yICgyKSBmb3IgaW5mcmluZ2VtZW50cwotY2F1c2VkIGJ5OiAoaSkgdGhlIG1vZGlmaWNhdGlvbiBvZiB0aGUgT3JpZ2luYWwKLVNvZnR3YXJlLCBvciAoaWkpIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgT3JpZ2luYWwKLVNvZnR3YXJlIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgZGV2aWNlcy4KLQotMi4yLiBDb250cmlidXRvciBHcmFudC4KLQotQ29uZGl0aW9uZWQgdXBvbiBZb3VyIGNvbXBsaWFuY2Ugd2l0aCBTZWN0aW9uIDMuMSBiZWxvdyBhbmQKLXN1YmplY3QgdG8gdGhpcmQgcGFydHkgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGNsYWltcywgZWFjaAotQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyBZb3UgYSB3b3JsZC13aWRlLCByb3lhbHR5LWZyZWUsCi1ub24tZXhjbHVzaXZlIGxpY2Vuc2U6Ci0KLShhKSB1bmRlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIChvdGhlciB0aGFuCi1wYXRlbnQgb3IgdHJhZGVtYXJrKSBMaWNlbnNhYmxlIGJ5IENvbnRyaWJ1dG9yIHRvCi11c2UsIHJlcHJvZHVjZSwgbW9kaWZ5LCBkaXNwbGF5LCBwZXJmb3JtLCBzdWJsaWNlbnNlCi1hbmQgZGlzdHJpYnV0ZSB0aGUgTW9kaWZpY2F0aW9ucyBjcmVhdGVkIGJ5IHN1Y2gKLUNvbnRyaWJ1dG9yIChvciBwb3J0aW9ucyB0aGVyZW9mKSwgZWl0aGVyIG9uIGFuCi11bm1vZGlmaWVkIGJhc2lzLCB3aXRoIG90aGVyIE1vZGlmaWNhdGlvbnMsIGFzCi1Db3ZlcmVkIFNvZnR3YXJlIGFuZC9vciBhcyBwYXJ0IG9mIGEgTGFyZ2VyIFdvcms7IGFuZAotCi0oYikgdW5kZXIgUGF0ZW50IENsYWltcyBpbmZyaW5nZWQgYnkgdGhlIG1ha2luZywKLXVzaW5nLCBvciBzZWxsaW5nIG9mIE1vZGlmaWNhdGlvbnMgbWFkZSBieSB0aGF0Ci1Db250cmlidXRvciBlaXRoZXIgYWxvbmUgYW5kL29yIGluIGNvbWJpbmF0aW9uIHdpdGgKLWl0cyBDb250cmlidXRvciBWZXJzaW9uIChvciBwb3J0aW9ucyBvZiBzdWNoCi1jb21iaW5hdGlvbiksIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgZm9yIHNhbGUsCi1oYXZlIG1hZGUsIGFuZC9vciBvdGhlcndpc2UgZGlzcG9zZSBvZjogKDEpCi1Nb2RpZmljYXRpb25zIG1hZGUgYnkgdGhhdCBDb250cmlidXRvciAob3IgcG9ydGlvbnMKLXRoZXJlb2YpOyBhbmQgKDIpIHRoZSBjb21iaW5hdGlvbiBvZiBNb2RpZmljYXRpb25zCi1tYWRlIGJ5IHRoYXQgQ29udHJpYnV0b3Igd2l0aCBpdHMgQ29udHJpYnV0b3IgVmVyc2lvbgotKG9yIHBvcnRpb25zIG9mIHN1Y2ggY29tYmluYXRpb24pLgotCi0oYykgVGhlIGxpY2Vuc2VzIGdyYW50ZWQgaW4gU2VjdGlvbnMgMi4yKGEpIGFuZAotMi4yKGIpIGFyZSBlZmZlY3RpdmUgb24gdGhlIGRhdGUgQ29udHJpYnV0b3IgZmlyc3QKLWRpc3RyaWJ1dGVzIG9yIG90aGVyd2lzZSBtYWtlcyB0aGUgTW9kaWZpY2F0aW9ucwotYXZhaWxhYmxlIHRvIGEgdGhpcmQgcGFydHkuCi0KLShkKSBOb3R3aXRoc3RhbmRpbmcgU2VjdGlvbiAyLjIoYikgYWJvdmUsIG5vIHBhdGVudAotbGljZW5zZSBpcyBncmFudGVkOiAoMSkgZm9yIGFueSBjb2RlIHRoYXQgQ29udHJpYnV0b3IKLWhhcyBkZWxldGVkIGZyb20gdGhlIENvbnRyaWJ1dG9yIFZlcnNpb247ICgyKSBmb3IKLWluZnJpbmdlbWVudHMgY2F1c2VkIGJ5OiAoaSkgdGhpcmQgcGFydHkKLW1vZGlmaWNhdGlvbnMgb2YgQ29udHJpYnV0b3IgVmVyc2lvbiwgb3IgKGlpKSB0aGUKLWNvbWJpbmF0aW9uIG9mIE1vZGlmaWNhdGlvbnMgbWFkZSBieSB0aGF0IENvbnRyaWJ1dG9yCi13aXRoIG90aGVyIHNvZnR3YXJlIChleGNlcHQgYXMgcGFydCBvZiB0aGUKLUNvbnRyaWJ1dG9yIFZlcnNpb24pIG9yIG90aGVyIGRldmljZXM7IG9yICgzKSB1bmRlcgotUGF0ZW50IENsYWltcyBpbmZyaW5nZWQgYnkgQ292ZXJlZCBTb2Z0d2FyZSBpbiB0aGUKLWFic2VuY2Ugb2YgTW9kaWZpY2F0aW9ucyBtYWRlIGJ5IHRoYXQgQ29udHJpYnV0b3IuCi0KLTMuIERpc3RyaWJ1dGlvbiBPYmxpZ2F0aW9ucy4KLQotMy4xLiBBdmFpbGFiaWxpdHkgb2YgU291cmNlIENvZGUuCi0KLUFueSBDb3ZlcmVkIFNvZnR3YXJlIHRoYXQgWW91IGRpc3RyaWJ1dGUgb3Igb3RoZXJ3aXNlIG1ha2UKLWF2YWlsYWJsZSBpbiBFeGVjdXRhYmxlIGZvcm0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGluCi1Tb3VyY2UgQ29kZSBmb3JtIGFuZCB0aGF0IFNvdXJjZSBDb2RlIGZvcm0gbXVzdCBiZQotZGlzdHJpYnV0ZWQgb25seSB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLiBZb3UgbXVzdAotaW5jbHVkZSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlIHdpdGggZXZlcnkgY29weSBvZiB0aGUKLVNvdXJjZSBDb2RlIGZvcm0gb2YgdGhlIENvdmVyZWQgU29mdHdhcmUgWW91IGRpc3RyaWJ1dGUgb3IKLW90aGVyd2lzZSBtYWtlIGF2YWlsYWJsZS4gWW91IG11c3QgaW5mb3JtIHJlY2lwaWVudHMgb2YgYW55Ci1zdWNoIENvdmVyZWQgU29mdHdhcmUgaW4gRXhlY3V0YWJsZSBmb3JtIGFzIHRvIGhvdyB0aGV5IGNhbgotb2J0YWluIHN1Y2ggQ292ZXJlZCBTb2Z0d2FyZSBpbiBTb3VyY2UgQ29kZSBmb3JtIGluIGEKLXJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZAotZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLgotCi0zLjIuIE1vZGlmaWNhdGlvbnMuCi0KLVRoZSBNb2RpZmljYXRpb25zIHRoYXQgWW91IGNyZWF0ZSBvciB0byB3aGljaCBZb3UKLWNvbnRyaWJ1dGUgYXJlIGdvdmVybmVkIGJ5IHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuIFlvdQotcmVwcmVzZW50IHRoYXQgWW91IGJlbGlldmUgWW91ciBNb2RpZmljYXRpb25zIGFyZSBZb3VyCi1vcmlnaW5hbCBjcmVhdGlvbihzKSBhbmQvb3IgWW91IGhhdmUgc3VmZmljaWVudCByaWdodHMgdG8KLWdyYW50IHRoZSByaWdodHMgY29udmV5ZWQgYnkgdGhpcyBMaWNlbnNlLgotCi0zLjMuIFJlcXVpcmVkIE5vdGljZXMuCi0KLVlvdSBtdXN0IGluY2x1ZGUgYSBub3RpY2UgaW4gZWFjaCBvZiBZb3VyIE1vZGlmaWNhdGlvbnMKLXRoYXQgaWRlbnRpZmllcyBZb3UgYXMgdGhlIENvbnRyaWJ1dG9yIG9mIHRoZSBNb2RpZmljYXRpb24uCi1Zb3UgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCwgcGF0ZW50IG9yCi10cmFkZW1hcmsgbm90aWNlcyBjb250YWluZWQgd2l0aGluIHRoZSBDb3ZlcmVkIFNvZnR3YXJlLCBvcgotYW55IG5vdGljZXMgb2YgbGljZW5zaW5nIG9yIGFueSBkZXNjcmlwdGl2ZSB0ZXh0IGdpdmluZwotYXR0cmlidXRpb24gdG8gYW55IENvbnRyaWJ1dG9yIG9yIHRoZSBJbml0aWFsIERldmVsb3Blci4KLQotMy40LiBBcHBsaWNhdGlvbiBvZiBBZGRpdGlvbmFsIFRlcm1zLgotCi1Zb3UgbWF5IG5vdCBvZmZlciBvciBpbXBvc2UgYW55IHRlcm1zIG9uIGFueSBDb3ZlcmVkCi1Tb2Z0d2FyZSBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgYWx0ZXJzIG9yIHJlc3RyaWN0cyB0aGUKLWFwcGxpY2FibGUgdmVyc2lvbiBvZiB0aGlzIExpY2Vuc2Ugb3IgdGhlIHJlY2lwaWVudHMnCi1yaWdodHMgaGVyZXVuZGVyLiBZb3UgbWF5IGNob29zZSB0byBvZmZlciwgYW5kIHRvIGNoYXJnZSBhCi1mZWUgZm9yLCB3YXJyYW50eSwgc3VwcG9ydCwgaW5kZW1uaXR5IG9yIGxpYWJpbGl0eQotb2JsaWdhdGlvbnMgdG8gb25lIG9yIG1vcmUgcmVjaXBpZW50cyBvZiBDb3ZlcmVkIFNvZnR3YXJlLgotSG93ZXZlciwgeW91IG1heSBkbyBzbyBvbmx5IG9uIFlvdXIgb3duIGJlaGFsZiwgYW5kIG5vdCBvbgotYmVoYWxmIG9mIHRoZSBJbml0aWFsIERldmVsb3BlciBvciBhbnkgQ29udHJpYnV0b3IuIFlvdQotbXVzdCBtYWtlIGl0IGFic29sdXRlbHkgY2xlYXIgdGhhdCBhbnkgc3VjaCB3YXJyYW50eSwKLXN1cHBvcnQsIGluZGVtbml0eSBvciBsaWFiaWxpdHkgb2JsaWdhdGlvbiBpcyBvZmZlcmVkIGJ5Ci1Zb3UgYWxvbmUsIGFuZCBZb3UgaGVyZWJ5IGFncmVlIHRvIGluZGVtbmlmeSB0aGUgSW5pdGlhbAotRGV2ZWxvcGVyIGFuZCBldmVyeSBDb250cmlidXRvciBmb3IgYW55IGxpYWJpbGl0eSBpbmN1cnJlZAotYnkgdGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9yIHN1Y2ggQ29udHJpYnV0b3IgYXMgYSByZXN1bHQgb2YKLXdhcnJhbnR5LCBzdXBwb3J0LCBpbmRlbW5pdHkgb3IgbGlhYmlsaXR5IHRlcm1zIFlvdSBvZmZlci4KLQotMy41LiBEaXN0cmlidXRpb24gb2YgRXhlY3V0YWJsZSBWZXJzaW9ucy4KLQotWW91IG1heSBkaXN0cmlidXRlIHRoZSBFeGVjdXRhYmxlIGZvcm0gb2YgdGhlIENvdmVyZWQKLVNvZnR3YXJlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2Ugb3IgdW5kZXIgdGhlIHRlcm1zCi1vZiBhIGxpY2Vuc2Ugb2YgWW91ciBjaG9pY2UsIHdoaWNoIG1heSBjb250YWluIHRlcm1zCi1kaWZmZXJlbnQgZnJvbSB0aGlzIExpY2Vuc2UsIHByb3ZpZGVkIHRoYXQgWW91IGFyZSBpbgotY29tcGxpYW5jZSB3aXRoIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgYW5kIHRoYXQgdGhlCi1saWNlbnNlIGZvciB0aGUgRXhlY3V0YWJsZSBmb3JtIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQKLW9yIGFsdGVyIHRoZSByZWNpcGllbnQncyByaWdodHMgaW4gdGhlIFNvdXJjZSBDb2RlIGZvcm0KLWZyb20gdGhlIHJpZ2h0cyBzZXQgZm9ydGggaW4gdGhpcyBMaWNlbnNlLiBJZiBZb3UKLWRpc3RyaWJ1dGUgdGhlIENvdmVyZWQgU29mdHdhcmUgaW4gRXhlY3V0YWJsZSBmb3JtIHVuZGVyIGEKLWRpZmZlcmVudCBsaWNlbnNlLCBZb3UgbXVzdCBtYWtlIGl0IGFic29sdXRlbHkgY2xlYXIgdGhhdAotYW55IHRlcm1zIHdoaWNoIGRpZmZlciBmcm9tIHRoaXMgTGljZW5zZSBhcmUgb2ZmZXJlZCBieSBZb3UKLWFsb25lLCBub3QgYnkgdGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9yIENvbnRyaWJ1dG9yLiBZb3UKLWhlcmVieSBhZ3JlZSB0byBpbmRlbW5pZnkgdGhlIEluaXRpYWwgRGV2ZWxvcGVyIGFuZCBldmVyeQotQ29udHJpYnV0b3IgZm9yIGFueSBsaWFiaWxpdHkgaW5jdXJyZWQgYnkgdGhlIEluaXRpYWwKLURldmVsb3BlciBvciBzdWNoIENvbnRyaWJ1dG9yIGFzIGEgcmVzdWx0IG9mIGFueSBzdWNoIHRlcm1zCi1Zb3Ugb2ZmZXIuCi0KLTMuNi4gTGFyZ2VyIFdvcmtzLgotCi1Zb3UgbWF5IGNyZWF0ZSBhIExhcmdlciBXb3JrIGJ5IGNvbWJpbmluZyBDb3ZlcmVkIFNvZnR3YXJlCi13aXRoIG90aGVyIGNvZGUgbm90IGdvdmVybmVkIGJ5IHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UKLWFuZCBkaXN0cmlidXRlIHRoZSBMYXJnZXIgV29yayBhcyBhIHNpbmdsZSBwcm9kdWN0LiBJbiBzdWNoCi1hIGNhc2UsIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgTGljZW5zZQotYXJlIGZ1bGZpbGxlZCBmb3IgdGhlIENvdmVyZWQgU29mdHdhcmUuCi0KLTQuIFZlcnNpb25zIG9mIHRoZSBMaWNlbnNlLgotCi00LjEuIE5ldyBWZXJzaW9ucy4KLQotU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBpcyB0aGUgaW5pdGlhbCBsaWNlbnNlIHN0ZXdhcmQgYW5kCi1tYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlCi1mcm9tIHRpbWUgdG8gdGltZS4gRWFjaCB2ZXJzaW9uIHdpbGwgYmUgZ2l2ZW4gYQotZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIEV4Y2VwdCBhcyBwcm92aWRlZCBpbgotU2VjdGlvbiA0LjMsIG5vIG9uZSBvdGhlciB0aGFuIHRoZSBsaWNlbnNlIHN0ZXdhcmQgaGFzIHRoZQotcmlnaHQgdG8gbW9kaWZ5IHRoaXMgTGljZW5zZS4KLQotNC4yLiBFZmZlY3Qgb2YgTmV3IFZlcnNpb25zLgotCi1Zb3UgbWF5IGFsd2F5cyBjb250aW51ZSB0byB1c2UsIGRpc3RyaWJ1dGUgb3Igb3RoZXJ3aXNlCi1tYWtlIHRoZSBDb3ZlcmVkIFNvZnR3YXJlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlCi12ZXJzaW9uIG9mIHRoZSBMaWNlbnNlIHVuZGVyIHdoaWNoIFlvdSBvcmlnaW5hbGx5IHJlY2VpdmVkCi10aGUgQ292ZXJlZCBTb2Z0d2FyZS4gSWYgdGhlIEluaXRpYWwgRGV2ZWxvcGVyIGluY2x1ZGVzIGEKLW5vdGljZSBpbiB0aGUgT3JpZ2luYWwgU29mdHdhcmUgcHJvaGliaXRpbmcgaXQgZnJvbSBiZWluZwotZGlzdHJpYnV0ZWQgb3Igb3RoZXJ3aXNlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIGFueQotc3Vic2VxdWVudCB2ZXJzaW9uIG9mIHRoZSBMaWNlbnNlLCBZb3UgbXVzdCBkaXN0cmlidXRlIGFuZAotbWFrZSB0aGUgQ292ZXJlZCBTb2Z0d2FyZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQotdmVyc2lvbiBvZiB0aGUgTGljZW5zZSB1bmRlciB3aGljaCBZb3Ugb3JpZ2luYWxseSByZWNlaXZlZAotdGhlIENvdmVyZWQgU29mdHdhcmUuIE90aGVyd2lzZSwgWW91IG1heSBhbHNvIGNob29zZSB0bwotdXNlLCBkaXN0cmlidXRlIG9yIG90aGVyd2lzZSBtYWtlIHRoZSBDb3ZlcmVkIFNvZnR3YXJlCi1hdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIGFueSBzdWJzZXF1ZW50IHZlcnNpb24gb2YgdGhlCi1MaWNlbnNlIHB1Ymxpc2hlZCBieSB0aGUgbGljZW5zZSBzdGV3YXJkLgotCi00LjMuIE1vZGlmaWVkIFZlcnNpb25zLgotCi1XaGVuIFlvdSBhcmUgYW4gSW5pdGlhbCBEZXZlbG9wZXIgYW5kIFlvdSB3YW50IHRvIGNyZWF0ZSBhCi1uZXcgbGljZW5zZSBmb3IgWW91ciBPcmlnaW5hbCBTb2Z0d2FyZSwgWW91IG1heSBjcmVhdGUgYW5kCi11c2UgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoaXMgTGljZW5zZSBpZiBZb3U6IChhKSByZW5hbWUKLXRoZSBsaWNlbnNlIGFuZCByZW1vdmUgYW55IHJlZmVyZW5jZXMgdG8gdGhlIG5hbWUgb2YgdGhlCi1saWNlbnNlIHN0ZXdhcmQgKGV4Y2VwdCB0byBub3RlIHRoYXQgdGhlIGxpY2Vuc2UgZGlmZmVycwotZnJvbSB0aGlzIExpY2Vuc2UpOyBhbmQgKGIpIG90aGVyd2lzZSBtYWtlIGl0IGNsZWFyIHRoYXQKLXRoZSBsaWNlbnNlIGNvbnRhaW5zIHRlcm1zIHdoaWNoIGRpZmZlciBmcm9tIHRoaXMgTGljZW5zZS4KLQotNS4gRElTQ0xBSU1FUiBPRiBXQVJSQU5UWS4KLQotQ09WRVJFRCBTT0ZUV0FSRSBJUyBQUk9WSURFRCBVTkRFUiBUSElTIExJQ0VOU0UgT04gQU4gIkFTIElTIgotQkFTSVMsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQgT1IgSU1QTElFRCwKLUlOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBXQVJSQU5USUVTIFRIQVQgVEhFIENPVkVSRUQKLVNPRlRXQVJFIElTIEZSRUUgT0YgREVGRUNUUywgTUVSQ0hBTlRBQkxFLCBGSVQgRk9SIEEgUEFSVElDVUxBUgotUFVSUE9TRSBPUiBOT04tSU5GUklOR0lORy4gVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORAotUEVSRk9STUFOQ0UgT0YgVEhFIENPVkVSRUQgU09GVFdBUkUgSVMgV0lUSCBZT1UuIFNIT1VMRCBBTlkKLUNPVkVSRUQgU09GVFdBUkUgUFJPVkUgREVGRUNUSVZFIElOIEFOWSBSRVNQRUNULCBZT1UgKE5PVCBUSEUKLUlOSVRJQUwgREVWRUxPUEVSIE9SIEFOWSBPVEhFUiBDT05UUklCVVRPUikgQVNTVU1FIFRIRSBDT1NUIE9GCi1BTlkgTkVDRVNTQVJZIFNFUlZJQ0lORywgUkVQQUlSIE9SIENPUlJFQ1RJT04uIFRISVMgRElTQ0xBSU1FUiBPRgotV0FSUkFOVFkgQ09OU1RJVFVURVMgQU4gRVNTRU5USUFMIFBBUlQgT0YgVEhJUyBMSUNFTlNFLiBOTyBVU0UgT0YKLUFOWSBDT1ZFUkVEIFNPRlRXQVJFIElTIEFVVEhPUklaRUQgSEVSRVVOREVSIEVYQ0VQVCBVTkRFUiBUSElTCi1ESVNDTEFJTUVSLgotCi02LiBURVJNSU5BVElPTi4KLQotNi4xLiBUaGlzIExpY2Vuc2UgYW5kIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJldW5kZXIgd2lsbAotdGVybWluYXRlIGF1dG9tYXRpY2FsbHkgaWYgWW91IGZhaWwgdG8gY29tcGx5IHdpdGggdGVybXMKLWhlcmVpbiBhbmQgZmFpbCB0byBjdXJlIHN1Y2ggYnJlYWNoIHdpdGhpbiAzMCBkYXlzIG9mCi1iZWNvbWluZyBhd2FyZSBvZiB0aGUgYnJlYWNoLiBQcm92aXNpb25zIHdoaWNoLCBieSB0aGVpcgotbmF0dXJlLCBtdXN0IHJlbWFpbiBpbiBlZmZlY3QgYmV5b25kIHRoZSB0ZXJtaW5hdGlvbiBvZgotdGhpcyBMaWNlbnNlIHNoYWxsIHN1cnZpdmUuCi0KLTYuMi4gSWYgWW91IGFzc2VydCBhIHBhdGVudCBpbmZyaW5nZW1lbnQgY2xhaW0gKGV4Y2x1ZGluZwotZGVjbGFyYXRvcnkganVkZ21lbnQgYWN0aW9ucykgYWdhaW5zdCBJbml0aWFsIERldmVsb3BlciBvcgotYSBDb250cmlidXRvciAodGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9yIENvbnRyaWJ1dG9yIGFnYWluc3QKLXdob20gWW91IGFzc2VydCBzdWNoIGNsYWltIGlzIHJlZmVycmVkIHRvIGFzICJQYXJ0aWNpcGFudCIpCi1hbGxlZ2luZyB0aGF0IHRoZSBQYXJ0aWNpcGFudCBTb2Z0d2FyZSAobWVhbmluZyB0aGUKLUNvbnRyaWJ1dG9yIFZlcnNpb24gd2hlcmUgdGhlIFBhcnRpY2lwYW50IGlzIGEgQ29udHJpYnV0b3IKLW9yIHRoZSBPcmlnaW5hbCBTb2Z0d2FyZSB3aGVyZSB0aGUgUGFydGljaXBhbnQgaXMgdGhlCi1Jbml0aWFsIERldmVsb3BlcikgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbmZyaW5nZXMgYW55Ci1wYXRlbnQsIHRoZW4gYW55IGFuZCBhbGwgcmlnaHRzIGdyYW50ZWQgZGlyZWN0bHkgb3IKLWluZGlyZWN0bHkgdG8gWW91IGJ5IHN1Y2ggUGFydGljaXBhbnQsIHRoZSBJbml0aWFsCi1EZXZlbG9wZXIgKGlmIHRoZSBJbml0aWFsIERldmVsb3BlciBpcyBub3QgdGhlIFBhcnRpY2lwYW50KQotYW5kIGFsbCBDb250cmlidXRvcnMgdW5kZXIgU2VjdGlvbnMgMi4xIGFuZC9vciAyLjIgb2YgdGhpcwotTGljZW5zZSBzaGFsbCwgdXBvbiA2MCBkYXlzIG5vdGljZSBmcm9tIFBhcnRpY2lwYW50Ci10ZXJtaW5hdGUgcHJvc3BlY3RpdmVseSBhbmQgYXV0b21hdGljYWxseSBhdCB0aGUgZXhwaXJhdGlvbgotb2Ygc3VjaCA2MCBkYXkgbm90aWNlIHBlcmlvZCwgdW5sZXNzIGlmIHdpdGhpbiBzdWNoIDYwIGRheQotcGVyaW9kIFlvdSB3aXRoZHJhdyBZb3VyIGNsYWltIHdpdGggcmVzcGVjdCB0byB0aGUKLVBhcnRpY2lwYW50IFNvZnR3YXJlIGFnYWluc3Qgc3VjaCBQYXJ0aWNpcGFudCBlaXRoZXIKLXVuaWxhdGVyYWxseSBvciBwdXJzdWFudCB0byBhIHdyaXR0ZW4gYWdyZWVtZW50IHdpdGgKLVBhcnRpY2lwYW50LgotCi02LjMuIEluIHRoZSBldmVudCBvZiB0ZXJtaW5hdGlvbiB1bmRlciBTZWN0aW9ucyA2LjEgb3IgNi4yCi1hYm92ZSwgYWxsIGVuZCB1c2VyIGxpY2Vuc2VzIHRoYXQgaGF2ZSBiZWVuIHZhbGlkbHkgZ3JhbnRlZAotYnkgWW91IG9yIGFueSBkaXN0cmlidXRvciBoZXJldW5kZXIgcHJpb3IgdG8gdGVybWluYXRpb24KLShleGNsdWRpbmcgbGljZW5zZXMgZ3JhbnRlZCB0byBZb3UgYnkgYW55IGRpc3RyaWJ1dG9yKQotc2hhbGwgc3Vydml2ZSB0ZXJtaW5hdGlvbi4KLQotNy4gTElNSVRBVElPTiBPRiBMSUFCSUxJVFkuCi0KLVVOREVSIE5PIENJUkNVTVNUQU5DRVMgQU5EIFVOREVSIE5PIExFR0FMIFRIRU9SWSwgV0hFVEhFUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UpLCBDT05UUkFDVCwgT1IgT1RIRVJXSVNFLCBTSEFMTCBZT1UsIFRIRQotSU5JVElBTCBERVZFTE9QRVIsIEFOWSBPVEhFUiBDT05UUklCVVRPUiwgT1IgQU5ZIERJU1RSSUJVVE9SIE9GCi1DT1ZFUkVEIFNPRlRXQVJFLCBPUiBBTlkgU1VQUExJRVIgT0YgQU5ZIE9GIFNVQ0ggUEFSVElFUywgQkUKLUxJQUJMRSBUTyBBTlkgUEVSU09OIEZPUiBBTlkgSU5ESVJFQ1QsIFNQRUNJQUwsIElOQ0lERU5UQUwsIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMgT0YgQU5ZIENIQVJBQ1RFUiBJTkNMVURJTkcsIFdJVEhPVVQKLUxJTUlUQVRJT04sIERBTUFHRVMgRk9SIExPU1QgUFJPRklUUywgTE9TUyBPRiBHT09EV0lMTCwgV09SSwotU1RPUFBBR0UsIENPTVBVVEVSIEZBSUxVUkUgT1IgTUFMRlVOQ1RJT04sIE9SIEFOWSBBTkQgQUxMIE9USEVSCi1DT01NRVJDSUFMIERBTUFHRVMgT1IgTE9TU0VTLCBFVkVOIElGIFNVQ0ggUEFSVFkgU0hBTEwgSEFWRSBCRUVOCi1JTkZPUk1FRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLiBUSElTIExJTUlUQVRJT04gT0YKLUxJQUJJTElUWSBTSEFMTCBOT1QgQVBQTFkgVE8gTElBQklMSVRZIEZPUiBERUFUSCBPUiBQRVJTT05BTAotSU5KVVJZIFJFU1VMVElORyBGUk9NIFNVQ0ggUEFSVFknUyBORUdMSUdFTkNFIFRPIFRIRSBFWFRFTlQKLUFQUExJQ0FCTEUgTEFXIFBST0hJQklUUyBTVUNIIExJTUlUQVRJT04uIFNPTUUgSlVSSVNESUNUSU9OUyBETwotTk9UIEFMTE9XIFRIRSBFWENMVVNJT04gT1IgTElNSVRBVElPTiBPRiBJTkNJREVOVEFMIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMsIFNPIFRISVMgRVhDTFVTSU9OIEFORCBMSU1JVEFUSU9OIE1BWSBOT1QKLUFQUExZIFRPIFlPVS4KLQotOC4gVS5TLiBHT1ZFUk5NRU5UIEVORCBVU0VSUy4KLQotVGhlIENvdmVyZWQgU29mdHdhcmUgaXMgYSAiY29tbWVyY2lhbCBpdGVtLCIgYXMgdGhhdCB0ZXJtIGlzCi1kZWZpbmVkIGluIDQ4IEMuRi5SLiAyLjEwMSAoT2N0LiAxOTk1KSwgY29uc2lzdGluZyBvZiAiY29tbWVyY2lhbAotY29tcHV0ZXIgc29mdHdhcmUiIChhcyB0aGF0IHRlcm0gaXMgZGVmaW5lZCBhdCA0OCBDLkYuUi4gwqQKLTI1Mi4yMjctNzAxNChhKSgxKSkgYW5kICJjb21tZXJjaWFsIGNvbXB1dGVyIHNvZnR3YXJlCi1kb2N1bWVudGF0aW9uIiBhcyBzdWNoIHRlcm1zIGFyZSB1c2VkIGluIDQ4IEMuRi5SLiAxMi4yMTIgKFNlcHQuCi0xOTk1KS4gQ29uc2lzdGVudCB3aXRoIDQ4IEMuRi5SLiAxMi4yMTIgYW5kIDQ4IEMuRi5SLiAyMjcuNzIwMi0xCi10aHJvdWdoIDIyNy43MjAyLTQgKEp1bmUgMTk5NSksIGFsbCBVLlMuIEdvdmVybm1lbnQgRW5kIFVzZXJzCi1hY3F1aXJlIENvdmVyZWQgU29mdHdhcmUgd2l0aCBvbmx5IHRob3NlIHJpZ2h0cyBzZXQgZm9ydGggaGVyZWluLgotVGhpcyBVLlMuIEdvdmVybm1lbnQgUmlnaHRzIGNsYXVzZSBpcyBpbiBsaWV1IG9mLCBhbmQgc3VwZXJzZWRlcywKLWFueSBvdGhlciBGQVIsIERGQVIsIG9yIG90aGVyIGNsYXVzZSBvciBwcm92aXNpb24gdGhhdCBhZGRyZXNzZXMKLUdvdmVybm1lbnQgcmlnaHRzIGluIGNvbXB1dGVyIHNvZnR3YXJlIHVuZGVyIHRoaXMgTGljZW5zZS4KLQotOS4gTUlTQ0VMTEFORU9VUy4KLQotVGhpcyBMaWNlbnNlIHJlcHJlc2VudHMgdGhlIGNvbXBsZXRlIGFncmVlbWVudCBjb25jZXJuaW5nIHN1YmplY3QKLW1hdHRlciBoZXJlb2YuIElmIGFueSBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlIGlzIGhlbGQgdG8gYmUKLXVuZW5mb3JjZWFibGUsIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIG9ubHkgdG8gdGhlCi1leHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2UgaXQgZW5mb3JjZWFibGUuIFRoaXMgTGljZW5zZSBzaGFsbCBiZQotZ292ZXJuZWQgYnkgdGhlIGxhdyBvZiB0aGUganVyaXNkaWN0aW9uIHNwZWNpZmllZCBpbiBhIG5vdGljZQotY29udGFpbmVkIHdpdGhpbiB0aGUgT3JpZ2luYWwgU29mdHdhcmUgKGV4Y2VwdCB0byB0aGUgZXh0ZW50Ci1hcHBsaWNhYmxlIGxhdywgaWYgYW55LCBwcm92aWRlcyBvdGhlcndpc2UpLCBleGNsdWRpbmcgc3VjaAotanVyaXNkaWN0aW9uJ3MgY29uZmxpY3Qtb2YtbGF3IHByb3Zpc2lvbnMuIEFueSBsaXRpZ2F0aW9uCi1yZWxhdGluZyB0byB0aGlzIExpY2Vuc2Ugc2hhbGwgYmUgc3ViamVjdCB0byB0aGUganVyaXNkaWN0aW9uIG9mCi10aGUgY291cnRzIGxvY2F0ZWQgaW4gdGhlIGp1cmlzZGljdGlvbiBhbmQgdmVudWUgc3BlY2lmaWVkIGluIGEKLW5vdGljZSBjb250YWluZWQgd2l0aGluIHRoZSBPcmlnaW5hbCBTb2Z0d2FyZSwgd2l0aCB0aGUgbG9zaW5nCi1wYXJ0eSByZXNwb25zaWJsZSBmb3IgY29zdHMsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBjb3VydAotY29zdHMgYW5kIHJlYXNvbmFibGUgYXR0b3JuZXlzJyBmZWVzIGFuZCBleHBlbnNlcy4gVGhlCi1hcHBsaWNhdGlvbiBvZiB0aGUgVW5pdGVkIE5hdGlvbnMgQ29udmVudGlvbiBvbiBDb250cmFjdHMgZm9yIHRoZQotSW50ZXJuYXRpb25hbCBTYWxlIG9mIEdvb2RzIGlzIGV4cHJlc3NseSBleGNsdWRlZC4gQW55IGxhdyBvcgotcmVndWxhdGlvbiB3aGljaCBwcm92aWRlcyB0aGF0IHRoZSBsYW5ndWFnZSBvZiBhIGNvbnRyYWN0IHNoYWxsCi1iZSBjb25zdHJ1ZWQgYWdhaW5zdCB0aGUgZHJhZnRlciBzaGFsbCBub3QgYXBwbHkgdG8gdGhpcyBMaWNlbnNlLgotWW91IGFncmVlIHRoYXQgWW91IGFsb25lIGFyZSByZXNwb25zaWJsZSBmb3IgY29tcGxpYW5jZSB3aXRoIHRoZQotVW5pdGVkIFN0YXRlcyBleHBvcnQgYWRtaW5pc3RyYXRpb24gcmVndWxhdGlvbnMgKGFuZCB0aGUgZXhwb3J0Ci1jb250cm9sIGxhd3MgYW5kIHJlZ3VsYXRpb24gb2YgYW55IG90aGVyIGNvdW50cmllcykgd2hlbiBZb3UgdXNlLAotZGlzdHJpYnV0ZSBvciBvdGhlcndpc2UgbWFrZSBhdmFpbGFibGUgYW55IENvdmVyZWQgU29mdHdhcmUuCi0KLTEwLiBSRVNQT05TSUJJTElUWSBGT1IgQ0xBSU1TLgotCi1BcyBiZXR3ZWVuIEluaXRpYWwgRGV2ZWxvcGVyIGFuZCB0aGUgQ29udHJpYnV0b3JzLCBlYWNoIHBhcnR5IGlzCi1yZXNwb25zaWJsZSBmb3IgY2xhaW1zIGFuZCBkYW1hZ2VzIGFyaXNpbmcsIGRpcmVjdGx5IG9yCi1pbmRpcmVjdGx5LCBvdXQgb2YgaXRzIHV0aWxpemF0aW9uIG9mIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2UKLWFuZCBZb3UgYWdyZWUgdG8gd29yayB3aXRoIEluaXRpYWwgRGV2ZWxvcGVyIGFuZCBDb250cmlidXRvcnMgdG8KLWRpc3RyaWJ1dGUgc3VjaCByZXNwb25zaWJpbGl0eSBvbiBhbiBlcXVpdGFibGUgYmFzaXMuIE5vdGhpbmcKLWhlcmVpbiBpcyBpbnRlbmRlZCBvciBzaGFsbCBiZSBkZWVtZWQgdG8gY29uc3RpdHV0ZSBhbnkgYWRtaXNzaW9uCi1vZiBsaWFiaWxpdHkuCmRpZmYgLS1naXQgYS9idWlsZC10b21jYXQtc2VydmVyL3Jlc291cmNlcy9ub3RpY2UuaHRtbCBiL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcmVzb3VyY2VzL25vdGljZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWU3M2Y0Li4wMDAwMDAwCi0tLSBhL2J1aWxkLXRvbWNhdC1zZXJ2ZXIvcmVzb3VyY2VzL25vdGljZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNDQpaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwvbm90aWNlLmh0bWwgLS0+Ci08SFRNTCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PEhFQUQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Ci0KLTxUSVRMRT5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L1RJVExFPgotPC9IRUFEPjxCT0RZIGxhbmc9IkVOLVVTIj4KLTxIMj5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L0gyPgotPFA+QXByaWwgMTQsIDIwMTA8L1A+Ci0KLTxIMz5Vc2FnZSBPZiBDb250ZW50PC9IMz4KLQotPFA+VEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTCi0gICAoQ09MTEVDVElWRUxZICJDT05URU5UIikuICBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5ECi0gICBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFCi0gICBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUgotICAgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5ECi0gICBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLCBUSEVOIFlPVSBNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC48L1A+Ci0KLTxIMz5BcHBsaWNhYmxlIExpY2Vuc2VzPC9IMz4KLQotPFA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMAotICAgKCJFUEwiKS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8QSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L0E+LgotICAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9QPgotCi08UD5Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlCi0gICByZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzIGRvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLjwvUD4KLQotPFVMPgotICAgICAgIDxMST5Db250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuICBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLCBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmQgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLjwvTEk+Ci0gICAgICAgPExJPkVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IG9yIEpBUiAoSmF2YZkgQVJjaGl2ZSkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLjwvTEk+Ci0gICAgICAgPExJPkEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLiAgRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi4gIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucwotICAgICAgYW5kL29yIEZyYWdtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLjwvTEk+Ci0gICAgICAgPExJPkZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy48L0xJPgotPC9VTD4KLQotPFA+VGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kCi1JbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiICgiRmVhdHVyZSBMaWNlbnNlcyIpLiAgQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUKLWluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvUD4KLQotPFVMPgotICAgICAgIDxMST5UaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3Rvcnk8L0xJPgotICAgICAgIDxMST5QbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3RvcmllczwvTEk+Ci0gICAgICAgPExJPkluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnM8L0xJPgotICAgICAgIDxMST5TdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zPC9MST4KLSAgICAgICA8TEk+RmVhdHVyZSBkaXJlY3RvcmllczwvTEk+Ci08L1VMPgotCi08UD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUKLWluc3RhbGxhdGlvbiBwcm9jZXNzLiAgSWYgdGhlIEZlYXR1cmUgY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3Ugd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvcgotaW5mb3JtIHlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiAgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4KLVN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgKG9yIHJlZmVyZW5jZXMgdG8gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbgotdGhhdCBkaXJlY3RvcnkuPC9QPgotCi08UD5USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUEwgT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiAgU09NRSBPRiBUSEVTRQotT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTo8L1A+Ci0KLTxVTD4KLSAgICAgICA8TEk+Q29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPEEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9BPik8L0xJPgotICAgICAgIDxMST5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdCA8QSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0U8L0E+KTwvTEk+Ci0gICAgICAgPExJPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0IDxBIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPC9BPik8L0xJPgotICAgICAgIDxMST5NZXRybyBMaW5rIFB1YmxpYyBMaWNlbnNlIDEuMDAgKGF2YWlsYWJsZSBhdCA8QSBocmVmPSJodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb3Blbm1vdGlmL3N1cHBvcnRlcnMvbWV0cm9saW5rL2xpY2Vuc2UuaHRtbCI+aHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29wZW5tb3RpZi9zdXBwb3J0ZXJzL21ldHJvbGluay9saWNlbnNlLmh0bWw8L0E+KTwvTEk+Ci0gICAgICAgPExJPk1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCA8QSBocmVmPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwiPmh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbDwvQT4pPC9MST4KLTwvVUw+Ci0KLTxQPklUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE8gVVNFIE9GIFRIRSBDT05URU5ULiAgSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpcyBwcm92aWRlZCwgcGxlYXNlCi1jb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LjwvUD4KLQotCi08SDM+VXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5PC9IMz4KLQotPFA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaCBpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UKLSAgIFVwZGF0ZSBNYW5hZ2VyICgiUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kiKSBmb3IgdGhlIHB1cnBvc2Ugb2YgYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbCBzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yCi0gICBvdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseSAiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZyBzdWNoIHVzZXJzIHRvCi0gICBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLiBJbmZvcm1hdGlvbiBhYm91dCBwYWNrYWdpbmcgSW5zdGFsbGFibGUgU29mdHdhcmUgaXMgYXZhaWxhYmxlIGF0IDxBIGhyZWY9Imh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWwiPmh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWw8L0E+Ci0gICAoIlNwZWNpZmljYXRpb24iKS48L1A+Ci0KLTxQPllvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbCBJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUKLSAgIGFwcGxpY2FibGUgbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQotICAgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZCBtYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUKLSAgIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXIgYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOjwvUD4KLQotPE9MPgotICAgICAgIDxMST5BIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQotICAgICAgIG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGUgaW50ZW50IG9mIGluc3RhbGxpbmcsIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBFY2xpcHNlLWJhc2VkCi0gICAgICAgcHJvZHVjdC48L0xJPgotICAgICAgIDxMST5EdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlCi0gICAgICAgYWNjZXNzZWQgYW5kIGNvcGllZCB0byB0aGUgVGFyZ2V0IE1hY2hpbmUuPC9MST4KLSAgICAgICA8TEk+UHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlCi0gICAgICAgU29mdHdhcmUgKCJJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0Ci0gICAgICAgTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybgotICAgICAgIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkgdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoCi0gICAgICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUuPC9MST4KLTwvT0w+Ci0KLTxIMz5DcnlwdG9ncmFwaHk8L0gzPgotCi08UD5Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvCi0gICBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cywgcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwKLSAgIHBvc3Nlc3Npb24sIG9yIHVzZSwgYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuPC9QPgotCi08UD48U01BTEw+SmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L1NNQUxMPjwvUD4KLQotCi08L0JPRFk+PC9IVE1MPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2J1aWxkLnZlcnNpb25zIGIvYnVpbGQudmVyc2lvbnMKaW5kZXggNGRhNzNkZS4uZDdkNmY3NSAxMDA2NDQKLS0tIGEvYnVpbGQudmVyc2lvbnMKKysrIGIvYnVpbGQudmVyc2lvbnMKQEAgLTEsNiArMSw2IEBACiBvcmcuZWNsaXBzZS52aXJnby5vc2dpPTMuMS4wLkQtMjAxMTEyMDUxNTE1MjgKIG9yZy5lY2xpcHNlLnZpcmdvLm1lZGljPTMuMS4wLkQtMjAxMTEyMDUxNTI1MDQKLW9yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbD0zLjEuMC5ELTIwMTExMjA1MTUzNjAxCitvcmcuZWNsaXBzZS52aXJnby5rZXJuZWw9My4xLjAuQlVJTEQtMjAxMTEyMjExMzAyMTAKIG9yZy5lY2xpcHNlLnZpcmdvLnJlcG9zaXRvcnk9My4xLjAuRC0yMDExMTIwNTE1MzAzMAogb3JnLmVjbGlwc2UudmlyZ28uZG9jdW1lbnRhdGlvbj0zLjEuMC5ELTIwMTExMjA1MTcxMDI3CiBvcmcuZWNsaXBzZS52aXJnby5hcHBzPTMuMS4wLkQtMjAxMTEyMDUxNjU2MDMKQEAgLTMyLDQgKzMyLDUgQEAKIG9yZy5hcGFjaGUubG9nNGo9MS4yLjE1CiBvcmcuc2xmNGoudGVzdD0xLjUuMAogY29tLmR1bWJzdGVyPTEuNi4wCi0KK29yZy5lY2xpcHNlLnZpcmdvLmJ1aWxkLnRvb2xzPTEuMC4wLlJFTEVBU0UKK29yZy5lY2xpcHNlLmVxdWlub3gubGF1bmNoZXI9MS4zLjAudjIwMTExMDAzLTE2NDQKZGlmZiAtLWdpdCBhL3NjcmlwdHMvcmVsZWFzZWxvci9yZWxlYXNlbG9yLnJiIGIvc2NyaXB0cy9yZWxlYXNlbG9yL3JlbGVhc2Vsb3IucmIKaW5kZXggMmNhZjVmYS4uMTVkM2I3MyAxMDA3NTUKLS0tIGEvc2NyaXB0cy9yZWxlYXNlbG9yL3JlbGVhc2Vsb3IucmIKKysrIGIvc2NyaXB0cy9yZWxlYXNlbG9yL3JlbGVhc2Vsb3IucmIKQEAgLTMyLDYgKzMyLDcgQEAKICAgICAndGVzdCcgPT4gJ3Rlc3QnLAogICAgICdtZWRpYycgPT4gJ21lZGljJywKICAgICAnYXJ0aWZhY3QtcmVwb3NpdG9yeScgPT4gJ2FydGlmYWN0LXJlcG9zaXRvcnknLAorICAgICduYW5vJyA9PiAnbmFubycsCiAgICAgJ2tlcm5lbCcgPT4gJ2tlcm5lbCcsCiAgICAgJ2tlcm5lbC10b29scycgPT4gJ2tlcm5lbC10b29scycsCiAgICAgJ2dlbWluaS13ZWInID0+ICdnZW1pbmktd2ViJywKQEAgLTU4LDE1ICs1OSwxNiBAQAogICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAgJ3Rlc3QnLCAgICAgICAgICAgICAgICAgcGF0aHNbJ3Rlc3QnXSwgICAgICAgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLnRlc3QnLCAgICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAgICAgICAgZGVmYXVsdF90YXJnZXRzKSwKICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgICdtZWRpYycsICAgICAgICAgICAgICAgIHBhdGhzWydtZWRpYyddLCAgICAgICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5tZWRpYycsICAgICAgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgICAgICAgIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICAnYXJ0aWZhY3QtcmVwb3NpdG9yeScsICBwYXRoc1snYXJ0aWZhY3QtcmVwb3NpdG9yeSddLCAnb3JnLmVjbGlwc2UudmlyZ28ucmVwb3NpdG9yeScsICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICAgICAgICBkZWZhdWx0X3RhcmdldHMpLAotICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAgJ2tlcm5lbCcsICAgICAgICAgICAgICAgcGF0aHNbJ2tlcm5lbCddLCAgICAgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbCcsICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAgICAgICAgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBzbW9rZS10ZXN0IHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtbWF2ZW4gcHVibGlzaC1wYWNrYWdlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAorICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAgJ25hbm8nLCAgICAgICAgICAgICAgIHBhdGhzWyduYW5vJ10sICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ubmFubycsICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAgICAgICAgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBwdWJsaXNoLWl2eSBwdWJsaXNoLW1hdmVuIHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXVwZGF0ZXNpdGUtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCisgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICAna2VybmVsJywgICAgICAgICAgICAgICBwYXRoc1sna2VybmVsJ10sICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsJywgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICAgICAgICAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gdGVzdCBwYWNrYWdlIHNtb2tlLXRlc3QgcHVibGlzaC1pdnkgcHVibGlzaC1tYXZlbiBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC11cGRhdGVzaXRlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAogICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAgJ2tlcm5lbC10b29scycsICAgICAgICAgcGF0aHNbJ2tlcm5lbC10b29scyddLCAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbC10b29scycsICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAgICAgICAgZGVmYXVsdF90YXJnZXRzKSwKICAgICBSZXBvc2l0b3J5Lm5ldyhnZW1pbmlfZWNsaXBzZV9yZXBvX3Jvb3QsICdnZW1pbmktd2ViLWNvbnRhaW5lcicsIHBhdGhzWydnZW1pbmktd2ViJ10sICAgICAgICAgICdvcmcuZWNsaXBzZS5nZW1pbmkud2ViJywgICAgICAgICAgICBnZW1pbmlfdmVyc2lvbiwgZ2VtaW5pX3JlbGVhc2VfZnJvbV9icmFuY2gsICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IGRvYyBwYWNrYWdlIHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtbWF2ZW4nKSwgCiAgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICAnd2ViJywgICAgICAgICAgICAgICAgICBwYXRoc1snd2ViJ10sICAgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ud2ViJywgICAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICAgICAgICBkZWZhdWx0X3RhcmdldHMpLAogICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAgJ3NuYXBzJywgICAgICAgICAgICAgICAgcGF0aHNbJ3NuYXBzJ10sICAgICAgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLnNuYXBzJywgICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAgICAgICAgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBwdWJsaXNoLWl2eSBwdWJsaXNoLW1hdmVuIHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXBhY2thZ2UtZG93bmxvYWQnKSwKICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgICdhcHBzJywgICAgICAgICAgICAgICAgIHBhdGhzWydhcHBzJ10sICAgICAgICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5hcHBzJywgICAgICAgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgICAgICAgIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICAnZG9jdW1lbnRhdGlvbicsICAgICAgICBwYXRoc1snZG9jdW1lbnRhdGlvbiddLCAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28uZG9jdW1lbnRhdGlvbicsICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICAgICAgICAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gZG9jLWh0bWwgcGFja2FnZSBwdWJsaXNoLWl2eSBwdWJsaXNoLXBhY2thZ2UtZG93bmxvYWQnKSwKLSAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgICd3ZWItc2VydmVyJywgICAgICAgICAgIHBhdGhzWyd3ZWItc2VydmVyJ10sICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby53ZWItc2VydmVyJywgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgICAgICAgICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IHBhY2thZ2Ugc21va2UtdGVzdCBwdWJsaXNoLWl2eSBwdWJsaXNoLW1hdmVuIHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXBhY2thZ2UtZG93bmxvYWQnKSwKLSAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgICdqZXR0eS1zZXJ2ZXInLCAgICAgICAgIHBhdGhzWydqZXR0eS1zZXJ2ZXInXSwgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5qZXR0eS1zZXJ2ZXInLCAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgICAgICAgICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IHBhY2thZ2Ugc21va2UtdGVzdCBwdWJsaXNoLWl2eSBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJykKKyAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgICd3ZWItc2VydmVyJywgICAgICAgICAgIHBhdGhzWyd3ZWItc2VydmVyJ10sICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby53ZWItc2VydmVyJywgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgICAgICAgICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IHBhY2thZ2Ugc21va2UtdGVzdCBwdWJsaXNoLWl2eSBwdWJsaXNoLW1hdmVuIHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXVwZGF0ZXNpdGUtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCisgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICAnamV0dHktc2VydmVyJywgICAgICAgICBwYXRoc1snamV0dHktc2VydmVyJ10sICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28uamV0dHktc2VydmVyJywgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICAgICAgICAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gdGVzdCBwYWNrYWdlIHNtb2tlLXRlc3QgcHVibGlzaC1pdnkgcHVibGlzaC1wYWNrYWdlLWJ1aWxkIHB1Ymxpc2gtdXBkYXRlc2l0ZS1idWlsZCBwdWJsaXNoLXBhY2thZ2UtZG93bmxvYWQgcHVibGlzaC11cGRhdGVzaXRlLWRvd25sb2FkJykKICAgXQogCiBlbHNpZiBhcmdzWzpwcm9kdWN0X3JlbGVhc2VdID09ICdrZXJuZWwnIApAQCAtNzgsNyArODAsOCBAQAogICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAndGVzdCcsICAgICAgICAgICAgICAgIHBhdGhzWyd0ZXN0J10sICAgICAgICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby50ZXN0JywgICAgICAgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgZGVmYXVsdF90YXJnZXRzKSwKICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ21lZGljJywgICAgICAgICAgICAgICBwYXRoc1snbWVkaWMnXSwgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ubWVkaWMnLCAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICdhcnRpZmFjdC1yZXBvc2l0b3J5JywgcGF0aHNbJ2FydGlmYWN0LXJlcG9zaXRvcnknXSwgJ29yZy5lY2xpcHNlLnZpcmdvLnJlcG9zaXRvcnknLCAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCBkZWZhdWx0X3RhcmdldHMpLAotICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAna2VybmVsJywgICAgICAgICAgICAgIHBhdGhzWydrZXJuZWwnXSwgICAgICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwnLCAgICAgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBzbW9rZS10ZXN0IHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtbWF2ZW4gcHVibGlzaC1wYWNrYWdlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAorICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAgJ25hbm8nLCAgICAgICAgICAgICAgIHBhdGhzWyduYW5vJ10sICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ubmFubycsICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAgICAgICAgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBwdWJsaXNoLWl2eSBwdWJsaXNoLW1hdmVuIHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXVwZGF0ZXNpdGUtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCisgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICdrZXJuZWwnLCAgICAgICAgICAgICAgcGF0aHNbJ2tlcm5lbCddLCAgICAgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbCcsICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gdGVzdCBwYWNrYWdlIHNtb2tlLXRlc3QgcHVibGlzaC1pdnkgcHVibGlzaC1tYXZlbiBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC11cGRhdGVzaXRlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAogICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAna2VybmVsLXRvb2xzJywgICAgICAgIHBhdGhzWydrZXJuZWwtdG9vbHMnXSwgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwtdG9vbHMnLCAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgZGVmYXVsdF90YXJnZXRzKQogICBdCiAKQEAgLTg5LDggKzkyLDggQEAKICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ3NuYXBzJywgICAgICAgICAgICAgICBwYXRoc1snc25hcHMnXSwgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28uc25hcHMnLCAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IHBhY2thZ2UgcHVibGlzaC1pdnkgcHVibGlzaC1tYXZlbiBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCiAgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICdhcHBzJywgICAgICAgICAgICAgICAgcGF0aHNbJ2FwcHMnXSwgICAgICAgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLmFwcHMnLCAgICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCBkZWZhdWx0X3RhcmdldHMpLAogICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAnZG9jdW1lbnRhdGlvbicsICAgICAgIHBhdGhzWydkb2N1bWVudGF0aW9uJ10sICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5kb2N1bWVudGF0aW9uJywgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIGRvYy1odG1sIHBhY2thZ2UgcHVibGlzaC1pdnkgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCi0gICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICd3ZWItc2VydmVyJywgICAgICAgICAgcGF0aHNbJ3dlYi1zZXJ2ZXInXSwgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLndlYi1zZXJ2ZXInLCAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gdGVzdCBwYWNrYWdlIHNtb2tlLXRlc3QgcHVibGlzaC1pdnkgcHVibGlzaC1tYXZlbiBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCi0gICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICdqZXR0eS1zZXJ2ZXInLCAgICAgICAgcGF0aHNbJ2pldHR5LXNlcnZlciddLCAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLmpldHR5LXNlcnZlcicsICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gdGVzdCBwYWNrYWdlIHNtb2tlLXRlc3QgcHVibGlzaC1pdnkgcHVibGlzaC1wYWNrYWdlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpCisgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICd3ZWItc2VydmVyJywgICAgICAgICAgcGF0aHNbJ3dlYi1zZXJ2ZXInXSwgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLndlYi1zZXJ2ZXInLCAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gdGVzdCBwYWNrYWdlIHNtb2tlLXRlc3QgcHVibGlzaC1pdnkgcHVibGlzaC1tYXZlbiBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC11cGRhdGVzaXRlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAorICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAnamV0dHktc2VydmVyJywgICAgICAgIHBhdGhzWydqZXR0eS1zZXJ2ZXInXSwgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5qZXR0eS1zZXJ2ZXInLCAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBzbW9rZS10ZXN0IHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXVwZGF0ZXNpdGUtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkIHB1Ymxpc2gtdXBkYXRlc2l0ZS1kb3dubG9hZCcpCiAgIF0KICAgCiBlbHNpZiBhcmdzWzpwcm9kdWN0X3JlbGVhc2VdID09ICd2aXJnbycgCkBAIC0xMDIsMTQgKzEwNSwxNSBAQAogICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAndGVzdCcsICAgICAgICAgICAgICAgIHBhdGhzWyd0ZXN0J10sICAgICAgICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby50ZXN0JywgICAgICAgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgZGVmYXVsdF90YXJnZXRzKSwKICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ21lZGljJywgICAgICAgICAgICAgICBwYXRoc1snbWVkaWMnXSwgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ubWVkaWMnLCAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICdhcnRpZmFjdC1yZXBvc2l0b3J5JywgcGF0aHNbJ2FydGlmYWN0LXJlcG9zaXRvcnknXSwgJ29yZy5lY2xpcHNlLnZpcmdvLnJlcG9zaXRvcnknLCAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCBkZWZhdWx0X3RhcmdldHMpLAotICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAna2VybmVsJywgICAgICAgICAgICAgIHBhdGhzWydrZXJuZWwnXSwgICAgICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwnLCAgICAgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBzbW9rZS10ZXN0IHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtbWF2ZW4gcHVibGlzaC1wYWNrYWdlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAorICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAgJ25hbm8nLCAgICAgICAgICAgICAgIHBhdGhzWyduYW5vJ10sICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ubmFubycsICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAgICAgICAgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBwdWJsaXNoLWl2eSBwdWJsaXNoLW1hdmVuIHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXVwZGF0ZXNpdGUtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCisgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICdrZXJuZWwnLCAgICAgICAgICAgICAgcGF0aHNbJ2tlcm5lbCddLCAgICAgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLmtlcm5lbCcsICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gdGVzdCBwYWNrYWdlIHNtb2tlLXRlc3QgcHVibGlzaC1pdnkgcHVibGlzaC1tYXZlbiBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC11cGRhdGVzaXRlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAogICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAna2VybmVsLXRvb2xzJywgICAgICAgIHBhdGhzWydrZXJuZWwtdG9vbHMnXSwgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5rZXJuZWwtdG9vbHMnLCAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgZGVmYXVsdF90YXJnZXRzKSwKICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ3dlYicsICAgICAgICAgICAgICAgICBwYXRoc1snd2ViJ10sICAgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ud2ViJywgICAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICdzbmFwcycsICAgICAgICAgICAgICAgcGF0aHNbJ3NuYXBzJ10sICAgICAgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLnNuYXBzJywgICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gdGVzdCBwYWNrYWdlIHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtbWF2ZW4gcHVibGlzaC1wYWNrYWdlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAogICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAnYXBwcycsICAgICAgICAgICAgICAgIHBhdGhzWydhcHBzJ10sICAgICAgICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5hcHBzJywgICAgICAgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgZGVmYXVsdF90YXJnZXRzKSwKICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ2RvY3VtZW50YXRpb24nLCAgICAgICBwYXRoc1snZG9jdW1lbnRhdGlvbiddLCAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28uZG9jdW1lbnRhdGlvbicsICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiBkb2MtaHRtbCBwYWNrYWdlIHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAotICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAnd2ViLXNlcnZlcicsICAgICAgICAgIHBhdGhzWyd3ZWItc2VydmVyJ10sICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby53ZWItc2VydmVyJywgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBzbW9rZS10ZXN0IHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtbWF2ZW4gcHVibGlzaC1wYWNrYWdlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAotICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAnamV0dHktc2VydmVyJywgICAgICAgIHBhdGhzWydqZXR0eS1zZXJ2ZXInXSwgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5qZXR0eS1zZXJ2ZXInLCAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBzbW9rZS10ZXN0IHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXBhY2thZ2UtZG93bmxvYWQnKQorICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAnd2ViLXNlcnZlcicsICAgICAgICAgIHBhdGhzWyd3ZWItc2VydmVyJ10sICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby53ZWItc2VydmVyJywgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBzbW9rZS10ZXN0IHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtbWF2ZW4gcHVibGlzaC1wYWNrYWdlLWJ1aWxkIHB1Ymxpc2gtdXBkYXRlc2l0ZS1idWlsZCBwdWJsaXNoLXBhY2thZ2UtZG93bmxvYWQnKSwKKyAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ2pldHR5LXNlcnZlcicsICAgICAgICBwYXRoc1snamV0dHktc2VydmVyJ10sICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28uamV0dHktc2VydmVyJywgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IHBhY2thZ2Ugc21va2UtdGVzdCBwdWJsaXNoLWl2eSBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC11cGRhdGVzaXRlLWJ1aWxkIHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCBwdWJsaXNoLXVwZGF0ZXNpdGUtZG93bmxvYWQnKQogICBdCiAKIGVsc2UKQEAgLTEyMSwxNCArMTI1LDE1IEBACiAgICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ3Rlc3QnLCAgICAgICAgICAgICAgICBwYXRoc1sndGVzdCddLCAgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28udGVzdCcsICAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ21lZGljJywgICAgICAgICAgICAgICBwYXRoc1snbWVkaWMnXSwgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ubWVkaWMnLCAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ2FydGlmYWN0LXJlcG9zaXRvcnknLCBwYXRoc1snYXJ0aWZhY3QtcmVwb3NpdG9yeSddLCAnb3JnLmVjbGlwc2UudmlyZ28ucmVwb3NpdG9yeScsICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsIGRlZmF1bHRfdGFyZ2V0cyksCi0gICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ2tlcm5lbCcsICAgICAgICAgICAgICBwYXRoc1sna2VybmVsJ10sICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsJywgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IHBhY2thZ2Ugc21va2UtdGVzdCBwdWJsaXNoLWl2eSBwdWJsaXNoLW1hdmVuIHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXBhY2thZ2UtZG93bmxvYWQnKSwKKyAgICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAgJ25hbm8nLCAgICAgICAgICAgICAgIHBhdGhzWyduYW5vJ10sICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ubmFubycsICAgICAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAgICAgICAgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBwdWJsaXNoLWl2eSBwdWJsaXNoLW1hdmVuIHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXVwZGF0ZXNpdGUtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCisgICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ2tlcm5lbCcsICAgICAgICAgICAgICBwYXRoc1sna2VybmVsJ10sICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsJywgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IHBhY2thZ2Ugc21va2UtdGVzdCBwdWJsaXNoLWl2eSBwdWJsaXNoLW1hdmVuIHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXVwZGF0ZXNpdGUtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCiAgICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ2tlcm5lbC10b29scycsICAgICAgICBwYXRoc1sna2VybmVsLXRvb2xzJ10sICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ua2VybmVsLXRvb2xzJywgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ3dlYicsICAgICAgICAgICAgICAgICBwYXRoc1snd2ViJ10sICAgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28ud2ViJywgICAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ3NuYXBzJywgICAgICAgICAgICAgICBwYXRoc1snc25hcHMnXSwgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28uc25hcHMnLCAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IHBhY2thZ2UgcHVibGlzaC1pdnkgcHVibGlzaC1tYXZlbiBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCiAgICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ2FwcHMnLCAgICAgICAgICAgICAgICBwYXRoc1snYXBwcyddLCAgICAgICAgICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28uYXBwcycsICAgICAgICAgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsIGRlZmF1bHRfdGFyZ2V0cyksCiAgICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ2RvY3VtZW50YXRpb24nLCAgICAgICBwYXRoc1snZG9jdW1lbnRhdGlvbiddLCAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28uZG9jdW1lbnRhdGlvbicsICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiBkb2MtaHRtbCBwYWNrYWdlIHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtcGFja2FnZS1kb3dubG9hZCcpLAotICAgICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fZWNsaXBzZV9yZXBvX3Jvb3QsICd3ZWItc2VydmVyJywgICAgICAgICAgcGF0aHNbJ3dlYi1zZXJ2ZXInXSwgICAgICAgICAgJ29yZy5lY2xpcHNlLnZpcmdvLndlYi1zZXJ2ZXInLCAgICAgIGJ1bmRsZV92ZXJzaW9uLCByZWxlYXNlX2Zyb21fYnJhbmNoLCAnY2xlYW4gY2xlYW4taW50ZWdyYXRpb24gdGVzdCBwYWNrYWdlIHNtb2tlLXRlc3QgcHVibGlzaC1pdnkgcHVibGlzaC1tYXZlbiBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJyksCi0gICAgICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19lY2xpcHNlX3JlcG9fcm9vdCwgJ2pldHR5LXNlcnZlcicsICAgICAgICBwYXRoc1snamV0dHktc2VydmVyJ10sICAgICAgICAnb3JnLmVjbGlwc2UudmlyZ28uamV0dHktc2VydmVyJywgICAgYnVuZGxlX3ZlcnNpb24sIHJlbGVhc2VfZnJvbV9icmFuY2gsICdjbGVhbiBjbGVhbi1pbnRlZ3JhdGlvbiB0ZXN0IHBhY2thZ2Ugc21va2UtdGVzdCBwdWJsaXNoLWl2eSBwdWJsaXNoLXBhY2thZ2UtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkJykKKyAgICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAnd2ViLXNlcnZlcicsICAgICAgICAgIHBhdGhzWyd3ZWItc2VydmVyJ10sICAgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby53ZWItc2VydmVyJywgICAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBzbW9rZS10ZXN0IHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtbWF2ZW4gcHVibGlzaC1wYWNrYWdlLWJ1aWxkIHB1Ymxpc2gtdXBkYXRlc2l0ZS1idWlsZCBwdWJsaXNoLXBhY2thZ2UtZG93bmxvYWQnKSwKKyAgICAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX2VjbGlwc2VfcmVwb19yb290LCAnamV0dHktc2VydmVyJywgICAgICAgIHBhdGhzWydqZXR0eS1zZXJ2ZXInXSwgICAgICAgICdvcmcuZWNsaXBzZS52aXJnby5qZXR0eS1zZXJ2ZXInLCAgICBidW5kbGVfdmVyc2lvbiwgcmVsZWFzZV9mcm9tX2JyYW5jaCwgJ2NsZWFuIGNsZWFuLWludGVncmF0aW9uIHRlc3QgcGFja2FnZSBzbW9rZS10ZXN0IHB1Ymxpc2gtaXZ5IHB1Ymxpc2gtcGFja2FnZS1idWlsZCBwdWJsaXNoLXVwZGF0ZXNpdGUtYnVpbGQgcHVibGlzaC1wYWNrYWdlLWRvd25sb2FkIHB1Ymxpc2gtdXBkYXRlc2l0ZS1kb3dubG9hZCcpCiAgICAgXQogCiBlbmQKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvYXBwcyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvYXBwcwpuZXcgZmlsZSBtb2RlIDE2MDAwMAppbmRleCAwMDAwMDAwLi44YjA4NmYxCi0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9hcHBzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDhiMDg2ZjEwNjg5ZGVmMTgwMDk0M2FkZWI4OWIwYTU0MWI0Mjc4NzEKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvYXJ0aWZhY3QtcmVwb3NpdG9yeSBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvYXJ0aWZhY3QtcmVwb3NpdG9yeQpuZXcgZmlsZSBtb2RlIDE2MDAwMAppbmRleCAwMDAwMDAwLi4zZmI1Y2I5Ci0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9hcnRpZmFjdC1yZXBvc2l0b3J5CkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDNmYjVjYjk0MTRhM2QzNDc1YTg5YTBmNTczZjA3Mzk1MzZkNjVkNmUKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvZG9jdW1lbnRhdGlvbiBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvZG9jdW1lbnRhdGlvbgpuZXcgZmlsZSBtb2RlIDE2MDAwMAppbmRleCAwMDAwMDAwLi41ZDIyY2ZkCi0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9kb2N1bWVudGF0aW9uCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDVkMjJjZmQ1ZDcyODUzZTg2OTI5MDUzODlmNDA4MDUwOWVkYTlhOGMKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvamV0dHktc2VydmVyIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9qZXR0eS1zZXJ2ZXIKbmV3IGZpbGUgbW9kZSAxNjAwMDAKaW5kZXggMDAwMDAwMC4uM2EwMDc5MwotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvamV0dHktc2VydmVyCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDNhMDA3OTNkM2E5ZTg2Y2NlMDBiZDMxNTk1MjY1OGViZGMwNWUxZDkKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Iva2VybmVsIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9rZXJuZWwKbmV3IGZpbGUgbW9kZSAxNjAwMDAKaW5kZXggMDAwMDAwMC4uNTIyOWNlYgotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Iva2VybmVsCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDUyMjljZWJjMDViNDRkMTAzOTNiZTQ4MTViOTU0MDE0YTMwN2ZlYmQKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Iva2VybmVsLXN5c3RlbS12ZXJpZmljYXRpb24tdGVzdHMgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL2tlcm5lbC1zeXN0ZW0tdmVyaWZpY2F0aW9uLXRlc3RzCm5ldyBmaWxlIG1vZGUgMTYwMDAwCmluZGV4IDAwMDAwMDAuLjQwNTFkOWUKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL2tlcm5lbC1zeXN0ZW0tdmVyaWZpY2F0aW9uLXRlc3RzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDQwNTFkOWU5ZmZkZjYxNDEzMGU3NmE2ZTg0MWNlOWY0NzA5OGNjOTQKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Iva2VybmVsLXRvb2xzIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9rZXJuZWwtdG9vbHMKbmV3IGZpbGUgbW9kZSAxNjAwMDAKaW5kZXggMDAwMDAwMC4uODY5N2MyYQotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Iva2VybmVsLXRvb2xzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDg2OTdjMmE1NzAzZDI2ZWYxMDc3MjNjN2E1M2MxNTdlYzI5OThiZWUKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvbWVkaWMgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL21lZGljCm5ldyBmaWxlIG1vZGUgMTYwMDAwCmluZGV4IDAwMDAwMDAuLjVmMDQyYjcKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL21lZGljCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDVmMDQyYjdjNGZhNDRjODFmYjdmNzA5OWI1NDZmNzhmMDY4Mjg0ZjkKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivb3NnaS1leHRlbnNpb25zIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9vc2dpLWV4dGVuc2lvbnMKbmV3IGZpbGUgbW9kZSAxNjAwMDAKaW5kZXggMDAwMDAwMC4uNjM0NWE1OAotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivb3NnaS1leHRlbnNpb25zCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDYzNDVhNThkMWExN2IzZTgwMzNhOWFmMDZmMjhmMGFlN2JmYzNhNzAKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivb3NnaS10ZXN0LXN0dWJzIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9vc2dpLXRlc3Qtc3R1YnMKbmV3IGZpbGUgbW9kZSAxNjAwMDAKaW5kZXggMDAwMDAwMC4uZmIyODZhNQotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivb3NnaS10ZXN0LXN0dWJzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IGZiMjg2YTVjNjkzMWFlMzNmY2E0NWJmZmU1YTg1OGMwNmJkZDk1ZTQKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvcGVyZm9ybWFuY2UtdGVzdCBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvcGVyZm9ybWFuY2UtdGVzdApuZXcgZmlsZSBtb2RlIDE2MDAwMAppbmRleCAwMDAwMDAwLi5jOGRmMTU0Ci0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9wZXJmb3JtYW5jZS10ZXN0CkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IGM4ZGYxNTQwOTRjOTI5ZGNjZTRjMmZkYzhjYjhhODdhN2QxNDFkNGIKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivc2FtcGxlLWNvbmZpZ3VyYXRpb24tcHJvcGVydGllcyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivc2FtcGxlLWNvbmZpZ3VyYXRpb24tcHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDE2MDAwMAppbmRleCAwMDAwMDAwLi5lYmViM2UzCi0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9zYW1wbGUtY29uZmlndXJhdGlvbi1wcm9wZXJ0aWVzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IGViZWIzZTM0ZjFkNTg5ZjljMTRjMjQyMTFhNGI3ZTI2MWYzYTMwZGIKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivc2FtcGxlLWZvcm10YWdzIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9zYW1wbGUtZm9ybXRhZ3MKbmV3IGZpbGUgbW9kZSAxNjAwMDAKaW5kZXggMDAwMDAwMC4uMWY1ZGVlOAotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivc2FtcGxlLWZvcm10YWdzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDFmNWRlZTg1NDYyM2QwNGM1ZDlkNTE2ZWNjZGRkZmQxYmI4NjhjOTYKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivc2FtcGxlLWdyZWVucGFnZXMgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3NhbXBsZS1ncmVlbnBhZ2VzCm5ldyBmaWxlIG1vZGUgMTYwMDAwCmluZGV4IDAwMDAwMDAuLjI5YTQ4YWMKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3NhbXBsZS1ncmVlbnBhZ2VzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDI5YTQ4YWNlZTQzNDk2NTA1ZTY2YmNkNzIzYTRlZmZlNGQ1OTFiNWYKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivc2FtcGxlLW9zZ2ktZXhhbXBsZXMgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3NhbXBsZS1vc2dpLWV4YW1wbGVzCm5ldyBmaWxlIG1vZGUgMTYwMDAwCmluZGV4IDAwMDAwMDAuLmU0ZmM0MjEKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3NhbXBsZS1vc2dpLWV4YW1wbGVzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IGU0ZmM0MjE0YWU0ZjFkZjI3N2ZlNzhlYTcwMDAwZTA1ZThjNjJlZTAKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivc25hcHMgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3NuYXBzCm5ldyBmaWxlIG1vZGUgMTYwMDAwCmluZGV4IDAwMDAwMDAuLmI0ZmYyOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3NuYXBzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IGI0ZmYyOGZmZTU2ZGFmZTBkZGY1YzRhYzAwMzJlMGFkODFkMzRmMDgKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivc3lzdGVtLXZlcmlmaWNhdGlvbi10ZXN0cyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivc3lzdGVtLXZlcmlmaWNhdGlvbi10ZXN0cwpuZXcgZmlsZSBtb2RlIDE2MDAwMAppbmRleCAwMDAwMDAwLi4xNDAxZWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci9zeXN0ZW0tdmVyaWZpY2F0aW9uLXRlc3RzCkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IDE0MDFlZDU4MzE4OGEwNGNmZmUwZGEwNDFlNjhjZmU1ZjgxY2MxNWQKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvdGVzdCBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvdGVzdApuZXcgZmlsZSBtb2RlIDE2MDAwMAppbmRleCAwMDAwMDAwLi5kNGU3YTA0Ci0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci90ZXN0CkBAIC0wLDAgKzEgQEAKK1N1YnByb2plY3QgY29tbWl0IGQ0ZTdhMDQ4YjM0YzI3ZjU2YmQ2ZDA3MWI4MDNjYjk4ZTFkZDgxYzYKZGlmZiAtLWdpdCBhL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvdXBkYXRlLXZpcmdvLWJ1aWxkLWFsbC5yYiBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvdXBkYXRlLXZpcmdvLWJ1aWxkLWFsbC5yYgppbmRleCAxNzJlYjAxLi5jZWY2ZmQ0IDEwMDc1NQotLS0gYS9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3VwZGF0ZS12aXJnby1idWlsZC1hbGwucmIKKysrIGIvc2NyaXB0cy92aXJnby1idWlsZC11cGRhdGxvci91cGRhdGUtdmlyZ28tYnVpbGQtYWxsLnJiCkBAIC0zNyw5ICszNyw3IEBACiAgICAgJ3NhbXBsZS1ncmVlbnBhZ2VzJyA9PiAnc2FtcGxlLWdyZWVucGFnZXMnLAogICAgICdzYW1wbGUtY29uZmlndXJhdGlvbi1wcm9wZXJ0aWVzJyA9PiAnc2FtcGxlLWNvbmZpZ3VyYXRpb24tcHJvcGVydGllcycsCiAgICAgJ3NhbXBsZS1mb3JtdGFncycgPT4gJ3NhbXBsZS1mb3JtdGFncycsCi0gICAgJ3NhbXBsZS1vc2dpLWV4YW1wbGVzJyA9PiAnc2FtcGxlLW9zZ2ktZXhhbXBsZXMnLAotICAgICdnZW1pbmktd2ViLWNvbnRhaW5lcicgPT4gJ2dlbWluaS13ZWItY29udGFpbmVyJywKLSAgICAnbmFubycgPT4gJ25hbm8nCisgICAgJ3NhbXBsZS1vc2dpLWV4YW1wbGVzJyA9PiAnc2FtcGxlLW9zZ2ktZXhhbXBsZXMnCiAgIH0KIGVuZAogCkBAIC01MSw3ICs0OSw2IEBACiBnZW1pbmlfd2ViX3JlcG9fcm9vdCA9ICdzc2g6Ly8nICsgYXJnc1s6cmVtb3RlX3VzZXJdICsgJ0BnaXQuZWNsaXBzZS5vcmcvZ2l0cm9vdC9nZW1pbmkud2ViL29yZy5lY2xpcHNlLmdlbWluaS53ZWIuJwogCiBWSVJHT19QRVJNSVNTSU9OX1JFUE9TID0gWwotICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19yZXBvX3Jvb3QsICduYW5vJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aHNbJ25hbm8nXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCwgbmlsLCB1cGRhdGVfYnJhbmNoKSwKICAgUmVwb3NpdG9yeS5uZXcodmlyZ29fcmVwb19yb290LCAnc2FtcGxlLWdyZWVucGFnZXMnLCAgICAgICAgICAgICAgICAgICAgIHBhdGhzWydzYW1wbGUtZ3JlZW5wYWdlcyddLCAgICAgICAgICAgICAgICBuaWwsIG5pbCwgdXBkYXRlX2JyYW5jaCksCiAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX3JlcG9fcm9vdCwgJ3NhbXBsZS1jb25maWd1cmF0aW9uLXByb3BlcnRpZXMnLCAgICAgICBwYXRoc1snc2FtcGxlLWNvbmZpZ3VyYXRpb24tcHJvcGVydGllcyddLCAgbmlsLCBuaWwsIHVwZGF0ZV9icmFuY2gpLAogICBSZXBvc2l0b3J5Lm5ldyh2aXJnb19yZXBvX3Jvb3QsICdzYW1wbGUtZm9ybXRhZ3MnLCAgICAgICAgICAgICAgICAgICAgICAgcGF0aHNbJ3NhbXBsZS1mb3JtdGFncyddLCAgICAgICAgICAgICAgICAgIG5pbCwgbmlsLCB1cGRhdGVfYnJhbmNoKSwKQEAgLTc1LDExICs3Miw4IEBACiAgIFJlcG9zaXRvcnkubmV3KHZpcmdvX3JlcG9fcm9vdCwgJ2tlcm5lbC10b29scycsICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoc1sna2VybmVsLXRvb2xzJ10sICAgICAgICAgICAgICAgICAgICAgbmlsLCBuaWwsIHVwZGF0ZV9icmFuY2gpCiBdCiAKLUdFTUlOSV9XRUJfUEVSTUlTU0lPTl9SRVBPUyA9IFsKLSAgUmVwb3NpdG9yeS5uZXcoZ2VtaW5pX3dlYl9yZXBvX3Jvb3QsICdnZW1pbmktd2ViLWNvbnRhaW5lcicsICAgICAgICAgICAgIHBhdGhzWydnZW1pbmktd2ViLWNvbnRhaW5lciddLCAgICAgICAgICAgICBuaWwsIG5pbCwgZ2VtaW5pX3VwZGF0ZV9icmFuY2gpCi1dCiAgCi1BTExfUkVQT1MgPSBWSVJHT19QRVJNSVNTSU9OX1JFUE9TICsgR0VNSU5JX1dFQl9QRVJNSVNTSU9OX1JFUE9TCitBTExfUkVQT1MgPSBWSVJHT19QRVJNSVNTSU9OX1JFUE9TCiAKIHN0YXJ0X3RpbWUgPSBUaW1lLm5ldwogCmRpZmYgLS1naXQgYS9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3V0aWwgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3V0aWwKbmV3IGZpbGUgbW9kZSAxNjAwMDAKaW5kZXggMDAwMDAwMC4uN2U1NzcwYwotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3IvdXRpbApAQCAtMCwwICsxIEBACitTdWJwcm9qZWN0IGNvbW1pdCA3ZTU3NzBjZWY0YjViNDQ2ZmY3NzJiYmQ2NDRjMjE2NmEwNTExYjFiCmRpZmYgLS1naXQgYS9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3dlYiBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivd2ViCm5ldyBmaWxlIG1vZGUgMTYwMDAwCmluZGV4IDAwMDAwMDAuLmY3NGJhOTgKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3dlYgpAQCAtMCwwICsxIEBACitTdWJwcm9qZWN0IGNvbW1pdCBmNzRiYTk4NDZmOWI5OTAxNTczYjYzOWQwOTFkNWMxZGYwYTk0ZTU5CmRpZmYgLS1naXQgYS9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3dlYi1zZXJ2ZXIgYi9zY3JpcHRzL3ZpcmdvLWJ1aWxkLXVwZGF0bG9yL3dlYi1zZXJ2ZXIKbmV3IGZpbGUgbW9kZSAxNjAwMDAKaW5kZXggMDAwMDAwMC4uOTFmMjE5ZgotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvdmlyZ28tYnVpbGQtdXBkYXRsb3Ivd2ViLXNlcnZlcgpAQCAtMCwwICsxIEBACitTdWJwcm9qZWN0IGNvbW1pdCA5MWYyMTlmMTdmMzdiMGZjYmY2NGY2YTMxM2YyY2EyMWVhM2I1ZjI4Cg==